diff --git a/.decent_ci-Linux.yaml b/.decent_ci-Linux.yaml index f31d71f635d..209f3482261 100644 --- a/.decent_ci-Linux.yaml +++ b/.decent_ci-Linux.yaml @@ -1,12 +1,12 @@ compilers: - name: "gcc" - version: "11.3" + version: "11.4" cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=ON -DREGRESSION_BASELINE_PATH:PATH=$REGRESSION_BASELINE -DREGRESSION_SCRIPT_PATH:PATH=$REGRESSION_DIR -DREGRESSION_BASELINE_SHA:STRING=$REGRESSION_BASELINE_SHA -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DBUILD_PERFORMANCE_TESTS:BOOL=ON -DVALGRIND_ANALYZE_PERFORMANCE_TESTS:BOOL=ON -DENABLE_PCH:BOOL=OFF collect_performance_results: true s3_upload_bucket: energyplus - name: "gcc" - version: "11.3" + version: "11.4" build_type: Debug cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DENABLE_PCH:BOOL=OFF coverage_enabled: true @@ -20,7 +20,7 @@ compilers: skip_packaging: true - name: "gcc" - version: "11.3" + version: "11.4" build_type: Debug cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DENABLE_PCH:BOOL=OFF coverage_enabled: true diff --git a/.gitignore b/.gitignore index d4ebd59d419..bc3e1ed4d39 100644 --- a/.gitignore +++ b/.gitignore @@ -89,3 +89,4 @@ dist # if you generate sphinx docs, it builds a dummy version of the schema in the idd folder, just ignore it /idd/Energy+.schema.epJSON /idd/Energy+.schema.epJSON.in +design/FY2023/earth_tube_solution_space_diagram.pdf diff --git a/README.md b/README.md index 09098cc4182..5cb72a85de4 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Every commit and every release of EnergyPlus undergoes rigorous testing. The testing consists of building EnergyPlus, of course, then there are unit tests, integration tests, API tests, and regression tests. Since 2014, most of the testing has been performed by our bots ([Tik-Tok](https://github.com/nrel-bot), [Gort](https://github.com/nrel-bot-2), and [Marvin](https://github.com/nrel-bot-3)), using a fork of the [Decent CI](https://github.com/lefticus/decent_ci) continuous integration system. We are now adapting our efforts to use the Github Actions system to handle more of our testing processes. -In the meantime, while Decent CI is still handling the regression and bulkier testing, results from Decent CI are still available on the testing [dashboard](http://nrel.github.io/EnergyPlusBuildResults/). +In the meantime, while Decent CI is still handling the regression and bulkier testing, results from Decent CI are still available on the testing [dashboard](https://myoldmopar.github.io/EnergyPlusBuildResults/). ## Releases diff --git a/datasets/ResidentialACsAndHPsPerfCurves.idf b/datasets/ResidentialACsAndHPsPerfCurves.idf index 8685977b81e..003ea636b99 100644 --- a/datasets/ResidentialACsAndHPsPerfCurves.idf +++ b/datasets/ResidentialACsAndHPsPerfCurves.idf @@ -154,10 +154,10 @@ ! , !- Speed 1 Rated COP {W/W} ! , !- Speed 1 Rated Air Flow Rate {m3/s} ! , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} -! ACHighStageCoolingCAPFTemp, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name -! ACHighStageCoolingCAPFFF, !- Speed 1 Total Cooling Capacity Function of Flow Fraction Curve Name -! ACHighStageCoolingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name -! ACHighStageCoolingEIRFFF, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name +! ACLowStageCoolingCAPFTemp, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name +! ACLowStageCoolingCAPFFF, !- Speed 1 Total Cooling Capacity Function of Flow Fraction Curve Name +! ACLowStageCoolingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name +! ACLowStageCoolingEIRFFF, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name ! AC2StageCoolingPLFFPLR, !- Speed 1 Part Load Fraction Correlation Curve Name ! , !- Speed 1 Nominal Time for Condensate Removal to Begin {s} ! , !- Speed 1 Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} @@ -173,10 +173,10 @@ ! , !- Speed 2 Rated COP {W/W} ! , !- Speed 2 Rated Air Flow Rate {m3/s} ! , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} -! ACLowStageCoolingCAPFTemp, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name -! ACLowStageCoolingCAPFFF, !- Speed 2 Total Cooling Capacity Function of Flow Fraction Curve Name -! ACLowStageCoolingEIRFTemp, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name -! ACLowStageCoolingEIRFFF, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name +! ACHighStageCoolingCAPFTemp, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name +! ACHighStageCoolingCAPFFF, !- Speed 2 Total Cooling Capacity Function of Flow Fraction Curve Name +! ACHighStageCoolingEIRFTemp, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name +! ACHighStageCoolingEIRFFF, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name ! AC2StageCoolingPLFFPLR, !- Speed 2 Part Load Fraction Correlation Curve Name ! , !- Speed 2 Nominal Time for Condensate Removal to Begin {s} ! , !- Speed 2 Ratio of Initial Moisture Evaporation Rate and steady state Latent Capacity {dimensionless} @@ -570,10 +570,10 @@ ! , !- Speed 1 Rated COP {W/W} ! , !- Speed 1 Rated Air Flow Rate {m3/s} ! , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} -! HPHighStageCoolingCAPFTemp, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name -! HPHighStageCoolingCAPFFF, !- Speed 1 Total Cooling Capacity Function of Flow Fraction Curve Name -! HPHighStageCoolingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name -! HPHighStageCoolingEIRFFF, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name +! HPLowStageCoolingCAPFTemp, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name +! HPLowStageCoolingCAPFFF, !- Speed 1 Total Cooling Capacity Function of Flow Fraction Curve Name +! HPLowStageCoolingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name +! HPLowStageCoolingEIRFFF, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name ! HP2StageCoolingPLFFPLR, !- Speed 1 Part Load Fraction Correlation Curve Name ! , !- Speed 1 Nominal Time for Condensate Removal to Begin {s} ! , !- Speed 1 Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} @@ -589,10 +589,10 @@ ! , !- Speed 2 Rated COP {W/W} ! , !- Speed 2 Rated Air Flow Rate {m3/s} ! , !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} -! HPLowStageCoolingCAPFTemp, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name -! HPLowStageCoolingCAPFFF, !- Speed 2 Total Cooling Capacity Function of Flow Fraction Curve Name -! HPLowStageCoolingEIRFTemp, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name -! HPLowStageCoolingEIRFFF, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name +! HPHighStageCoolingCAPFTemp, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name +! HPHighStageCoolingCAPFFF, !- Speed 2 Total Cooling Capacity Function of Flow Fraction Curve Name +! HPHighStageCoolingEIRFTemp, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name +! HPHighStageCoolingEIRFFF, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name ! HP2StageCoolingPLFFPLR, !- Speed 2 Part Load Fraction Correlation Curve Name ! , !- Speed 2 Nominal Time for Condensate Removal to Begin {s} ! , !- Speed 2 Ratio of Initial Moisture Evaporation Rate and steady state Latent Capacity {dimensionless} @@ -762,10 +762,10 @@ ! , !- Speed 1 Rated COP {W/W} ! , !- Speed 1 Rated Air Flow Rate {m3/s} ! , !- Speed 1 Rated Supply Air Fan Power Per Volume Flow Rate {W/(m3/s)} -! HPHighStageHeatingCAPFTemp, !- Speed 1 Total Heating Capacity Function of Temperature Curve Name -! HPHighStageHeatingCAPFFF, !- Speed 1 Total Heating Capacity Function of Flow Fraction Curve Name -! HPHighStageHeatingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name -! HPHighStageHeatingEIRFFF, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name +! HPLowStageHeatingCAPFTemp, !- Speed 1 Total Heating Capacity Function of Temperature Curve Name +! HPLowStageHeatingCAPFFF, !- Speed 1 Total Heating Capacity Function of Flow Fraction Curve Name +! HPLowStageHeatingEIRFTemp, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name +! HPLowStageHeatingEIRFFF, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name ! HP2StageHeatingPLFFPLR, !- Speed 1 Part Load Fraction Correlation Curve Name ! , !- Speed 1 Rated Waste Heat Fraction of Power Input {dimensionless} ! , !- Speed 1 Waste Heat Function of Temperature Curve Name @@ -773,10 +773,10 @@ ! , !- Speed 2 Rated COP {W/W} ! , !- Speed 2 Rated Air Flow Rate {m3/s} ! , !- Speed 2 Rated Supply Air Fan Power Per Volume Flow Rate {W/(m3/s)} -! HPLowStageHeatingCAPFTemp, !- Speed 2 Total Heating Capacity Function of Temperature Curve Name -! HPLowStageHeatingCAPFFF, !- Speed 2 Total Heating Capacity Function of Flow Fraction Curve Name -! HPLowStageHeatingEIRFTemp, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name -! HPLowStageHeatingEIRFFF, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name +! HPHighStageHeatingCAPFTemp, !- Speed 2 Total Heating Capacity Function of Temperature Curve Name +! HPHighStageHeatingCAPFFF, !- Speed 2 Total Heating Capacity Function of Flow Fraction Curve Name +! HPHighStageHeatingEIRFTemp, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name +! HPHighStageHeatingEIRFFF, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name ! HP2StageHeatingPLFFPLR, !- Speed 2 Part Load Fraction Correlation Curve Name ! , !- Speed 2 Rated Waste Heat Fraction of Power Input {dimensionless} ! ; !- Speed 2 Waste Heat Function of Temperature Curve Name diff --git a/design/FY2023/Design-Document-EarthTube-1DEnhancement.md b/design/FY2023/Design-Document-EarthTube-1DEnhancement.md new file mode 100644 index 00000000000..509484e3ccb --- /dev/null +++ b/design/FY2023/Design-Document-EarthTube-1DEnhancement.md @@ -0,0 +1,410 @@ +Earth Tube 1-D Conduction Enhancement (Design Document) +================ + +**Rick Strand, University of Illinois at Urbana-Champaign** + + - April 2023 + - Revision Date (Version 2): May 11, 2023 + - Revision Date (Version 3): May 12, 2023 + - Revision Date (Version 4): June 7, 2023 (converted to a design document, minor grammatical edits, addition of the Code Development setion) + - Revision Date (Version 5): June 27, 2023 (switch to LU decomposition) + + +## Justification for New Feature ## + +It has long been known that the earth tube model in EnergyPlus, though an important addition to the program, has one critical assumption that potentially affects the accuracy of the earth tube results. The assumption is that the presence of the earth tube and any heat transfer from the air passing through it to the ground is negligible. While this is a common assumption for many first principle models in the literature (these models generally all use the model used in EnergyPlus to determine the temperature at a particular depth), it does not take into account any changes that the heat rejection from the outside air to the ground itself. It is not currently known how much of an impact this will have, but it would seem at least plausible that the ground around the earth tube would be impacted and that this would affect the potential outlet temperatures that can be achieved and thus the amount of cooling that is possible. The goal is to provide a more accurate assessment of these systems using EnergyPlus. +The improvement of the earth tube model will be done in stages. The first step is to handle the impact of the earth on the ground surrounding the earth in a single dimension (with the soil depth being that dimension). Future work would potentially handle heat transfer axially along the length of the tube, the impact of more than one earth tube and the impact that adjacent tubes have on each other, and any time lag due to the air passing through the earth tube. + +## E-mail, Slack, and Conference Call Conclusions ## + +Technicalities Meeting (5/3/23): team review the document briefly and stated the desire for this to get additional feedback in the next technicalities meeting. Two initial requests from the team included modifying the proposal to factor in the impact of the soil at the depth of the earth tube since this would be more realistic of the situation (as in, the earth tube in not infinite in width) and to contact John Nelson who has expertise in earth tube modeling and has requested improved earth tube simulation capabilities in EnergyPlus in the past. This update includes a modification of the finite difference scheme to address the concern regarding what is happening at the depth of the earth tube itself. In addition, GitHub was used to contact John Nelson and that conversation is contained in the comments for the GitHub issue regarding earth tubes (https://github.com/NREL/EnergyPlus/issues/6627). John suggested that the model at some point include the ability to model temperature variation axially along the earth tube (something already logged as a potential future enhancement) and also to provide some improved controls where air might bypass the earth tube and use heat recovery in certain situations to save the earth tube’s ability to cool. This is an interesting idea but may also be fairly complicated because it may deal with specific control algorithms and bridging between the zone and air loop simulations. Such a concept is different from what is currently in EnergyPlus and there doesn’t appear to be another model in E+ that bridges with air flow at the zone and air loop level. Such a concept is definitely beyond the scope of this initial enhancement. + +Slack Discussion (5/11/23): Neal Kruis brought up two issues in this NFP. First, there is the issue of the infinitely wide domain which is unrealistic. Second, there is the question of what air temperature is being used for heat transfer between the earth tube and the air passing through it. The second issue will be resolved by adding the discussion of the effectiveness-NTU heat exchanger model that is being used. This will be similar in the assumptions as the heat exchanger algorithm used in the low temperature radiant system model (solid side with a “constant” temperature and a fluid side which has a temperature which varies throughout). The first issue will be addressed by modifying the solution domain to have a user-defined width with adiabatic boundary conditions on either side. In reality, at some distance from the earth tube there will be negligible heat transfer toward/away from the earth tube. Making this a user-defined input parameter will allow the width to be studied. + +Technicalities Meeting (6/14/23): Jason DeGraw expressed specific concern about using matrix inversion as part of the solution technique due to concerns about slow execution speeds. He recommended that an LU decomposition technique be used as a much faster approach and noted that there were several already in EnergyPlus. As a result, this document was modified to remove inversion as a solution approach and replace it with LU decomposition, using the existing routines in the Window Manager. + +## Overview ## + +The earth tube model in EnergyPlus uses an established equation for determining the temperature of soil below grade. This equation is published in the literature and is documented in the EnergyPlus Engineering Reference. In EnergyPlus, this equation for temperature as a function of distance is integrated over the diameter of the earth tube to come up with an average temperature that is then used as the soil temperature with which the earth tube interacts. While this is useful and is a common assumption in much of the existing literature, it does not take into account any impact that the earth tube has on the surrounding soil in any direction. The model simply assumes that the earth tube does not impact the local soil temperature. + +Clearly, over an entire season of cooling, there would be some impact on the local soil temperature due to the presence of the earth tube. While the base equation does account for seasonal variation of the undisturbed earth temperature, it does not include any terms that would account for the heat gains in the soil due to the cooling effect on the air passing through the earth tube. This would vary the soil temperature in all directions around the coil—vertically, horizontally, and axially along the length of the tube. So, to better model an earth tube and its performance within EnergyPlus, improvements must be made to account for the transient impact of the earth tube on the local soil temperatures in all directions. In addition, there should be some sort of accounting for the potential presence of more than a single earth tube, since it is common for such systems to have more than a single pipe/tube. + +In addition, the current model also assumes that the air passing through the tube does so without any time delay. In other words, the air instantaneously passes through the earth tube and this has an immediate impact on the space. In reality, there is a time lag since air entering the tube must pass through the entire length of the tube. While the impact of this assumption has not been explored, it could potentially be another element of the existing model that could be improved. + +Given all of these areas of potential improvement to the model and the limited availability of resources, this initial phase of enhancing the existing earth tube model in EnergyPlus will be to focus on the impact of the heat transfer within the earth tube on the local soil conditions in the vertical direction only. There is actually a good reason to focus on that direction first. It is the direction in which there is an existing equation for temperature as a function of soil depth. + +Furthermore, research in this area seems to at least give the impression that the biggest impact is in the vertical direction. Research by Liu, Xu, Guo, and Zhu (2019) shows that the direction that is the most important as far as variations in temperature are the vertical direction. While temperature variation does occur horizontally and axially as well, the largest temperature changes in comparison to the undisturbed temperature happen vertically. So, it makes the most sense to make the first enhancement pass to the model to look at the vertical temperature variation caused by the heat transfer due to the earth tube. + +## Approach ## + +Overall, the approach will be to add a new 1-D heat transfer model that will run as a separate option from the existing model. The reason for this is two-fold: execution speed and comparative accuracy. First, the new model will be slower than the existing model. It may be that users do not wish to have their run times increase and at this time it is uncertain how much the run time will be impacted given the solution technique that will be used, particularly as additional dimensions of heat transfer get added later. Second, it would be helpful to know how much the solution was impacted by the new enhancement of 1-D heat conduction. This will allow test cases to be run and comparisons made to deduce when the use of the new enhancement will be necessary and how much the soil temperature is impacted. This might also give the team useful information on how important additional solution dimensions will be. + +The 1-D heat conduction model itself will be implemented using a 1-D implicit finite difference scheme. The solution dimension will be bounded by a temperature just below grade at the top of the solution space and another temperature boundary condition at a depth below the earth tube. The temperatures at these upper and lower boundaries will be set using the existing equation from the literature for undisturbed soil temperature. At the sides of the solution space, adiabatic conditions will be assumed. The user will be given the option to specify the overall thickness of the solution region, but there will only be heat transfer vertically (none horizontally since it will be adiabatic on the “sides”). + +The finite difference grid will include an upper portion from the upper temperature boundary to the node just above the earth tube and also a lower portion from the node just below the earth tube to the lower boundary condition. The node at the earth tube itself will also be modeled as an “all soil” node but also include a connection to the earth tube itself. In a one dimensional model like the one proposed for this enhancement, it is more realistic to model the level at the earth tube to be soil because in all directions there will be soil and not an entire layer of air/earth tube. Thus, this earth tube node will capture the conditions of the soil at that level, and a heat exchanger model that connects to the temperature of the earth tube node will be used, and checks will be made to insure that the heat loss of the air is equal to the total heat gain of the soil. + +The solution for this finite difference model will use an implicit scheme. Implicit schemes are known for being inherently stable. Since it is possible that the number of nodes may be small and thus the nodes large, it will be important to avoid potential stability issues in the solution. The user will be given some flexibility in the input to specify the number of nodes above and below the earth tube. While some reasonable limits will be applied to those inputs to avoid too few or too many nodes, the control of the number of nodes will also help during the testing and verification process to make sure that the model is producing results that make sense and are believable. An example of the node layout is shown in the figure below. + +![earth_tube_solution_space_diagram](earth_tube_solution_space_diagram.png) +

Figure 1. Earth Tube 1-D Model Solution Space Node Diagram.

+ +The heat transfer between the soil and the air flowing through the earth tube will be calculated using an effectiveness-NTU heat exchanger formulation. Because the soil temperature does not vary axially along the earth tube in this model, the effectiveness for a heat exchanger equation in this situation where one side is at constant temperature and the other side (air side) varies in temperature is: + +\begin{equation} +\varepsilon = 1 - {e^{ - NTU}} +\end{equation} + +This is similar to the reasoning used in the low temperature radiant system models where similar assumptions are made for the embedding material and the fluid being circulated through the tubing. The effectiveness will then used to calculate the outlet air temperature based on an inlet air temperature, soil temperature, and other conditions of the situation (flow, thermal properties, etc.). The overall heat exchange between the soil and the air is calculated using this effectiveness, and there is no need to determine the "average" temperature of the air as it passes through the earth tube. The heat exchanger model defines the heat exchange using the effectiveness and the theoretical maximum heat transfer between the air and soil. + +Another important point regarding this model is that unlike the existing model which only calculates the performance of the earth tube when the earth tube is actually operating, the enhancement 1-D model will need to calculate the response of the soil even when the earth tube is not running, whether that is due to no cooling being needed, the earth tube is turned off, or it being not the appropriate season for the earth tube to operate. So, while the existing model simply skips the earth tube code when it is “off”, the enhanced model will have to calculate node conditions all the time. This again could add to the execution run time as the earth tube calculations will have to be made all of the time. This will naturally be impacted by the number of nodes selected by the users. At this time, it is uncertain how much time this model will add to execution time. Testing will be done with the new model to help identify some benchmarks and provide some helpful guidance to users via the Engineering Reference documentation. + +This work will also include modernization of the earth tube code based on recent standard practices implemented by the EnergyPlus development team. + +## Testing/Validation/Data Sources ## + +Explicit data sets for earth tube performance that monitors temperature in the vertical direction have not been published in the literature. More qualitative graphs have been published but it is difficult to get exact data from these diagrams. They can, however, be used to establish trends that can be checked against the results from the new EnergyPlus enhancement. The more important testing and validation that will occur will compare the results of the new model with the existing one at various depths, different number of nodes (upper and lower), and for different soil conditions. Comparisons can then be made both to the existing model as well as different depths, node arrangements, and soil conditions to establish the improvement in the temperature predictions of both the soil conditions as well as the outlet air temperatures. It is anticipated that this work will result in a publication following the completion of this work in EnergyPlus. + +## Input Output Reference Documentation ## + +The existing input output reference documentation that already exists for earth tubes will be reviewed and corrected as needed for the model that is already in the code. The most significant changes to the documentation will be the addition of two new fields in the input syntax for earth tubes and the addition of a new input object for the details of the finite difference solution. This is shown starting in the next paragraph. + +\subsection{ZoneEarthtube}\label{zoneearthtube-earth-tube} + +An earth tube is a long, underground metal or plastic pipe through which air is drawn. During cooling season, as air travels through the pipe, it gives up some of its heat to the surrounding soil and enters the room as cooler air. Similarly, during heating season, as air travels through the pipe, it receives some of its heat from the soil and enters the zone as warmer air. Simple earth tubes in EnergyPlus can be controlled by a schedule and through the specification of minimum, maximum, and delta temperatures as described below. As with infiltration and ventilation, the actual flow rate of air through the earth tube can be modified by the temperature difference between the inside and outside environment and the wind speed. The basic equation used to calculate air flow rate of earth tube in EnergyPlus is: + +\begin{equation} +EarthTubeFlowRate = \left( {{E_{design}}} \right)\left( {{F_{schedule}}} \right)\left[ {A + B\left| {{T_{zone}} - {T_{odb}}} \right| + C\left( {WindSpeed} \right) + D\left( {WindSpee{d^2}} \right)} \right] +\end{equation} + +For the simulation of the earth tube, a weather data file is required and, therefore, the earth tube cannot run without weather data file. The required input fields to simulate the earth tube include the average soil surface temperature, the amplitude of soil surface temperature, and the phase constant of soil surface temperature. These fields should be calculated in advance by using a separate stand-alone program (CalcSoilSurfTemp) and should be input into earth tube. + +\subsubsection{CalcSoilSurfTemp -- Auxiliary Programs Document}\label{calcsoilsurftemp-auxiliary-programs-document} + +The CalcSoilSurfTemp program is simple and requires only two input fields: soil condition and soil surface condition in addition to a valid weather file. For soil condition, the user should select the number corresponding to the actual condition of the soil surrounding the earth tube from the four following options: 1. HEAVY AND SATURATED, 2. HEAVY AND DAMP, 3. HEAVY AND DRY and 4. LIGHT AND DRY. This determines the thermal diffusivity and thermal conductivity of the surrounding soil. For soil surface conditions, the user should select the number corresponding to the actual condition of the ground surface above the earth tube from the eight following options: 1. BARE AND WET, 2. BARE AND MOIST, 3. BARE AND ARID, 4. BARE AND DRY, 5. COVERED AND WET, 6. COVERED AND MOIST, 7. COVERED AND ARID and 8. COVERED AND DRY. This determines the absorption coefficient and the fraction of evaporation rate of the ground surface. + + +## Input Description ## + +\subsubsection{Inputs} +From this information and an analysis of the weather for the location selected, the CalcSoilSurfTemp program (ref. Auxiliary Programs document) calculates the three parameters listed above. The user must then add these parameters as input into EnergyPlus. The full input description of an earth tube (EARTHTUBE object) in EnergyPlus is given below. + +\paragraph{Field: Zone Name}\label{field-zone-name-5} + +This field is the name of the zone (ref: Zone) and attaches a particular earth tube statement to a thermal zone in the building. + +\paragraph{Field: Schedule Name}\label{field-schedule-name-6} + +This field is the name of the schedule (ref: Schedule) that modifies the maximum design volume flow rate parameter (see next field). This fraction between 0.0 and 1.0 is noted as F\(_{schedule}\) in the above equation. + +\paragraph{Field: Design Flow Rate}\label{field-design-flow-rate-4} + +This number (noted as E\(_{design}\) in the above equation) is the maximum amount of air mass flow rate of the earth tube expected at design conditions. The flow rate is expressed in units of m\(^{3}\)/s. The design value is modified by the schedule fraction (see previous field) and user specified coefficients (see last four fields). + +\paragraph{Field: Minimum Zone Temperature when Cooling}\label{field-minimum-zone-temperature-when-cooling} + +This is the indoor temperature (in Celsius) below which the earth tube is shut off. This lower temperature limit is intended to avoid overcooling a space and thus result in a heating load. For example, if the user specifies a minimum temperature of 20$^\circ$C, earth tube is assumed to be available if the zone air temperature is above 20$^\circ$C. If the zone air temperature drops below 20$^\circ$C, then earth tube is automatically turned off. + +\paragraph{Field: Maximum Zone Temperature when Heating}\label{field-maximum-zone-temperature-when-heating} + +This is the indoor temperature (in Celsius) above which the earth tube is shut off. This higher temperature limit is intended to avoid overheating a space and thus result in a cooling load. For example, if the user specifies a maximum temperature of 20$^\circ$C, earth tube is assumed to be available if the zone air temperature is below 20$^\circ$C. If the zone air temperature rises above 20$^\circ$C, then earth tube is automatically turned off. + +\paragraph{Field: Delta Temperature}\label{field-delta-temperature-4} + +This is the temperature difference (in Celsius) between the indoor and outdoor air dry-bulb temperatures below which the earth tube is shut off. This is to allow the earth tube to be stopped either if the temperature outside is too warm and could potentially heat the space or if the temperature outside is too cold and could potentially cool the space. For example, if the user specifies a delta temperature of 2$^\circ$C, earth tube is assumed to be available if the temperature difference between indoor and outdoor temperature is at least 2$^\circ$C. If the outside air dry-bulb temperature is less than 2$^\circ$C cooler or warmer than the indoor dry-bulb temperature, then the earth tube is automatically turned off. + +\paragraph{Field: Earthtube Type}\label{field-earthtube-type} + +This alpha character string defines the type of earth tube as one of the following options: \emph{Natural}, \emph{Exhaust}, or \emph{Intake}. A \emph{Natural} earth tube is assumed to be air movement/exchange that will not consume any fan energy or is the result of natural air flow through the tube and into the building. Values for fan pressure and efficiency for a natural flow earth tube are ignored. For either \emph{Exhaust} or \emph{Intake} earth tubes, values for fan pressure and efficiency define the fan electric consumption. For \emph{Natural} and \emph{Exhaust} earth tubes, the conditions of the air entering the space are assumed to be equivalent to the air which is cooled or heated by passing along the pipe. For \emph{Intake} earth tubes, an appropriate amount of fan heat is added to the air stream. + +\paragraph{Field: Fan Pressure Rise}\label{field-fan-pressure-rise-1} + +This is the pressure rise experienced across the fan in Pascals (N/m\(^{2}\)). This is a function of the fan and plays a role in determining the amount of energy consumed by the fan. + +\paragraph{Field: Fan Total Efficiency}\label{field-fan-total-efficiency-1} + +This is the total fan efficiency (a decimal number between 0.0 and 1.0). This is a function of the fan and plays a role in determining the amount of energy consumed by the fan. + +\paragraph{Field: Pipe Radius}\label{field-pipe-radius} + +This is the radius of the earth tube/pipe (in meters). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. If the pipe has non-circular cross section, user can use the concept of hydraulic diameter as follows. + +\begin{equation} +D = 4 \times Area/Perimeter +\end{equation} + +However, since this field requires the pipe radius, hydraulic diameter should be divided by two. + +\paragraph{Field: Pipe Thickness}\label{field-pipe-thickness} + +This is the thickness of the pipe wall (in meters). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. + +\paragraph{Field: Pipe Length}\label{field-pipe-length} + +This is the total length of the pipe (in meters). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. As the length of the pipe becomes longer, the amount of the heat transfer becomes larger. + +\paragraph{Field: Pipe Thermal Conductivity}\label{field-pipe-thermal-conductivity} + +This is the thermal conductivity of the pipe (in W/m-C). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. + +\paragraph{Field: Pipe Depth Under Ground Surface}\label{field-pipe-depth-under-ground-surface} + +This is the depth of the pipe under the ground surface (in meters). This plays a role in determining the temperature of the soil surrounding the pipe. + +\paragraph{Field: Soil Condition}\label{field-soil-condition} + +This alpha character string defines the actual condition of the soil surrounding the earth tube and can be one of any of the following options: HeavyAndSaturated, HeavyAndDamp, HeavyAndDry or LightAndDry. This determines the thermal diffusivity and thermal conductivity of the surrounding soil, which play a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. + +\paragraph{Field: Average Soil Surface Temperature}\label{field-average-soil-surface-temperature} + +This is the annual average soil surface temperature straight above the earth tube, which plays a role in determining the temperature of the soil surrounding the pipe. This field should be calculated in advance using the separate CalcSoilSurfTemp program. + +\paragraph{Field: Amplitude of Soil Surface Temperature}\label{field-amplitude-of-soil-surface-temperature} + +This is the amplitude of soil surface temperature above the earth tube, which plays a role in determining the temperature of the soil surrounding the pipe. This is the difference between the maximum and minimum soil surface temperature for the whole year divided by two. This field should be calculated in advance using the separate CalcSoilSurfTemp program. + +\paragraph{Field: Phase Constant of Soil Surface Temperature}\label{field-phase-constant-of-soil-surface-temperature} + +This is the phase constant of the soil surface temperature straight above the earth tube, which play a role in determining the temperature of the soil surrounding the pipe at particular time. This is the time elapsed from the beginning of the year until the soil surface temperature reaches the minimum value of the year. This field should be calculated in advance using the separate CalcSoilSurfTemp program. + +\paragraph{Field: Constant Term Flow Coefficient}\label{field-constant-term-flow-coefficient} + +This number is the ``A'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter, however, is a constant under all conditions and is not modified by any environmental effect. As a result, it is dimensionless. + +\paragraph{Field: Temperature Term Flow Coefficient}\label{field-temperature-term-flow-coefficient} + +This number is the ``B'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by the temperature difference between the outdoor and indoor air dry-bulb temperatures. The units for this parameter are inverse Celsius. + +\paragraph{Field: Velocity Term Flow Coefficient}\label{field-velocity-term-flow-coefficient} + +This number is the ``C'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by the speed of wind being experienced outside the building. The units for this parameter are s/m. + +\paragraph{Field: Velocity Squared Term Flow Coefficient}\label{field-velocity-squared-term-flow-coefficient} + +This number is the ``D'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by square of the speed of wind being experienced outside the building. The units for this parameter are s\(^{2}\)/m\(^{2}\). + +\paragraph{Field: Earth Tube Model Type}\label{field-earth-tube-model-type} + +This field determines which modeling technique will be used to assess the performance of the earth tube. The options are: Simple and Vertical. In the Simple modeling approach, the temperature of the soil at the earth tube is approximated by the undisturbed ground conditions. In the Vertical modeling approach, the temperature of the soil around the earth tube is modeled using a finite difference scheme to account for the impact of the earth tube on the surrounding soil conditions in a single direction (1-D). For more information on the model type, reference the Earth Tube section of the EnergyPlus Engineering Reference. This input is optional, and the default value is Simple. + +\paragraph{Field: Earth Tube Model Parameters}\label{field-earth-tube-model-parameters} + +This field refers to separate input syntax (see below) that is used for controlling parameters for the 1-D (Vertical) solution technique. This input field is ignored for the Simple model. + +\paragraph{EarthTube:Parameters}\label{field-earth-tube-parameters} +For the 1-D (Vertical) model, some additional optional parameters are available for the user to potentially control the solution space (number of nodes, distances) for the finite difference solution. These are described below. + +\paragraph{Field: Earth Tube Parameters Name}\label{field-earth-tube-parameters-name} +This name is used as a reference in the main EarthTube input syntax. It is used to identify the parameters that the user desires to use to control what is being modeled and how detailed the model is. + +\paragraph{Field: Earth Tube Nodes Above}\label{field-earth-tube-nodes-above} +This parameter sets the number of nodes above the earth tube, between the earth tube and the ground surface. It has a minimum of three nodes and a maximum of ten nodes. These limits were chosen to avoid the extremes of excessive execution times and overly simplified results. The default value for this parameter is 5 (nodes). + +\paragraph{Field: Earth Tube Nodes Below}\label{field-earth-tube-nodes-below} +This parameter sets the number of nodes below the earth tube, between the earth tube and the deep ground boundary. It has a minimum of three nodes and a maximum of ten nodes. These limits were chosen to avoid the extremes of excessive execution times and overly simplified results. The default value for this parameter is 3 (nodes) or the minimum. + +\paragraph{Field: Earth Tube Dimensionless Boundary Above}\label{field-earth-tube-dimensionless-boundary-above} +This parameter sets the dimensionless distance above the earth tube for the solution space. The maximum value is 1.0, and the minimum value is 0.25. When this parameter is set to 1.0, the upper boundary is set to be half of the diameter below the ground surface and the solution space thickness above the earth tube is the depth of the earth tube minus the earth tube diameter. This maximum distance (earth tube depth minus diameter) is multiplied by this parameter to constrain the solution space to less than the maximum (when the parameter is less than 1.0). The default value for this parameter is 1.0 (the maximum value). + +\paragraph{Field: Earth Tube Dimensionless Boundary Below}\label{field-earth-tube-dimensionless-boundary-below} +This parameter sets the dimensionless distance below the earth tube for the solution space. The maximum value is 1.0, and the minimum value is 0.25. This parameter is interpretted in a similar fashion as the previous parameter where the depth of the solution space below the earth tube is determined by the maximum distance above the earth tube (earth tube depth minus diameter). This allows the user to have different thickness for the modeled portion of the ground above and below the earth tube. The default value for this parameter is 0.25 (the minimum value). + +\paragraph{Field: Earth Tube Dimensionless Solution Space Width}\label{field-earth-tube-dimensionless-solution-space-width} +This parameter sets the dimensionless width of the solution space horizontally as a function of the earth tube radius as defined in the main earth tube input syntax. The maximum value is 20.0, and the minimum value is 3.0. The default value for this parameter is 4.0 which means that the width of the solution space is four times the radius. In other words, this would include soil one radius length beyond the edges of the tube on either side of the earth tube. + +An IDF example: + +\begin{lstlisting} + +EARTHTUBE, + Zone 2, !- Zone Name + 1D Modeled Tube, !- Schedule Name + 3.425198, !- Design Volume Flow Rate + 10.0, !- Minimum Zone Temperature when Cooling + 30.0, !- Maximum Zone Temperature when Heating + 1.0, !- Delta Temperature + NATURAL, !- EarthTube Type + 350.0, !- Fan Pressure Rise + 0.9, !- Fan Total Efficiency + 0.25, !- Pipe Radius + 0.2, !- Pipe Thickness + 15.0, !- Pipe Length + 200.0, !- Pipe Thermal Conductivity + 3.5, !- Pipe Depth Under Ground Surface + HeavyAndDamp, !- Soil Condition + 15.0, !- Average Soil Surface Temperature + 5.6, !- Amplitude of Soil Surface Temperature + 0.0, !- Phase Constant of Soil Surface Temperature + 0.6060000 , !- Constant Term Flow Coef + 2.0199999E-02, !- Temp Term Flow Coef + 5.9800001E-04, !- Velocity Term Flow Coef + 0.0000000E+00, !- Velocity**2 Term Flow Coef + Vertical, !- Earth Tube Model Type + EarthTubeParams; !- Earth Tube Model Parameters + +EarthTube:Parameters, + EarthTubeParams, !- Earth Tube Model Parameters (Name) + 5, !- Earth Tube Nodes Above + 3, !- Earth Tube Nodes Below + 1.0, !- Earth Tube Dimensionless Boundary Above + 0.5, !- Earth Tube Dimensionless Boundary Below + 4.0; !- Earth Tube Dimensionless Solution Space Width + +\end{lstlisting} + +## Outputs Description ## + +\subsubsection{Outputs}\label{zoneearthtube-outputs} + +Current Earth Tube output variables: + +\begin{itemize} +\item + HVAC,Sum,Earth Tube Zone Sensible Cooling Energy {[}J{]} +\item + HVAC,Average,Earth Tube Zone Sensible Cooling Rate {[}W{]} +\item + HVAC,Sum,Earth Tube Zone Sensible Heating Energy {[}J{]} +\item + HVAC,Average,Earth Tube Zone Sensible Heating Rate {[}W{]} +\item + HVAC,Sum,Earth Tube Air Flow Volume {[}m3{]} +\item + HVAC,Average,Earth Tube Current Density Volume Flow Rate {[}m3/s{]} +\item + HVAC,Average,Earth Tube Standard Density Volume Flow Rate {[}m3/s{]} +\item + HVAC,Sum,Earth Tube Air Flow Mass {[}kg{]} +\item + HVAC,Average,Earth Tube Air Mass Flow Rate {[}kg/s{]} +\item + HVAC,Average,Earth Tube Water Mass Flow Rate {[}kg/s{]} +\item + HVAC,Sum,Earth Tube Fan Electricity Energy {[}J{]} +\item + HVAC,Average,Earth Tube Fan Electricity Rate {[}W{]} +\item + HVAC,Average,Earth Tube Zone Inlet Air Temperature {[}C{]} +\item + HVAC,Average,Earth Tube Ground Interface Temperature {[}C{]} +\item + HVAC,Average,Earth Tube Outdoor Air Heat Transfer Rate {[}W{]} +\item + HVAC,Average,Earth Tube Inlet Wet Bulb Temperature {[}C{]} +\item + HVAC,Average,Earth Tube Inlet Humidity Ratio {[}kgWater/kgDryAir{]} +\item + HVAC,Average,Earth Tube Node Temperatures {[}C{]} +\item + HVAC,Average,Earth Tube Undisturbed Ground Temperatures {[}C{]} +\end{itemize} + +\paragraph{Earth Tube Zone Sensible Cooling Energy {[}J{]}}\label{earth-tube-zone-sensible-cooling-energy-j} + +\paragraph{Earth Tube Zone Sensible Cooling Rate {[}W{]}}\label{earth-tube-zone-sensible-cooling-rate-w} + +These are the energy and rate associated with the zone cooling provided by the air from the earth tube.~ This occurs when the earth tube outlet air temperature is less than zone air temperature. + +\paragraph{Earth Tube Zone Sensible Heating Energy {[}J{]}}\label{earth-tube-zone-sensible-heating-energy-j} + +\paragraph{Earth Tube Zone Sensible Heating Rate {[}W{]}}\label{earth-tube-zone-sensible-heating-rate-w} + +These are the energy and rate associated with the zone heating provided by the air from the earth tube.~ This occurs when the earth tube outlet air temperature is greater than the zone air temperature. + +\paragraph{Earth Tube Air Flow Volume {[}m3{]}}\label{earth-tube-air-flow-volume-m3} + +The volume flow of air through the earth tube. + +\paragraph{Earth Tube Current Density Volume Flow Rate {[}m3/s{]}}\label{earth-tube-air-current-density-volumetric-flow-rate-m3s} + +The volume flow rate of air through the earth tube evaluating density at current zone conditions. + +\paragraph{Earth Tube Standard Density Volume Flow Rate {[}m3/s{]}}\label{earth-tube-air-standard-density-volumetric-flow-rate-m3s} + +The volume flow rate of air through the earth tube evaluating density at standard conditions. + +\paragraph{Earth Tube Air Flow Mass {[}kg{]}}\label{earth-tube-air-flow-mass-kg} + +The mass flow of air through the earth tube. + +\paragraph{Earth Tube Air Mass Flow Rate {[}kg/s{]}}\label{earth-tube-air-mass-flow-rate-kgs} + +The mass flow rate of air through the earth tube. + +\paragraph{Earth Tube Water Mass Flow Rate {[}kg/s{]}}\label{earth-tube-water-mass-flow-rate-kgs} + +The mass flow rate of water vapor at the exit of the earth tube. + +\paragraph{Earth Tube Fan Electricity Energy {[}J{]}}\label{earth-tube-fan-electric-energy-j} + +\paragraph{Earth Tube Fan Electricity Rate {[}W{]}}\label{earth-tube-fan-electric-power-w} + +These are the fan electricity consumption and power for intake or exhaust earth tube types. + +\paragraph{Earth Tube Zone Inlet Air Temperature {[}C{]}}\label{earth-tube-zone-inlet-air-temperature-c} + +This is the temperature of the air entering the zone after passing through the earth tube {[}C{]}.~ This temperature includes the cooling or heating of outdoor air as it passes along the pipe. ~When intake fan assist is used, then the additional heat due to the fan is included in the inlet air temperature. + +\paragraph{Earth Tube Ground Interface Temperature {[}C{]}}\label{earth-tube-ground-interface-temperature-c} + +This is the average temperature of the ground along the outer surface of the earth tube {[}C{]}. + +\paragraph{Earth Tube Outdoor Air Heat Transfer Rate {[}W{]}}\label{earth-tube-outdoor-air-heat-transfer-rate-w} + +This is the rate of heat transfer from the earth tube to the outdoor air {[}W{]}.~ Positive values indicate the rate at which outdoor air is preheated; negative values indicate the rate of precooling. + +\paragraph{Earth Tube Zone Inlet Wet Bulb Temperature {[}C{]}}\label{earth-tube-zone-inlet-wet-bulb-temperature-c} + +This is the wet bulb temperature of the air entering the zone after passing through the earth tube {[}C{]}. + +\paragraph{Earth Tube Zone Inlet Humidity Ratio {[}kgWater/krDryAir{]}}\label{earth-tube-zone-inlet-humidity-ratio-kgWater/kgDryAir} + +This is the humidity ratio of the air entering the zone after passing through the earth tube {[}kgWater/kgDryAir{]}. + +\paragraph{Earth Tube Node Temperatures {[}C{]}}\label{earth-tube-node-temperatures} + +This will generate the internal node temperatures {[}C{]} for the earth tube as a result of the 1-D finite difference model. This is only valid for the 1-D (Vertical) model. + +\paragraph{Earth Tube Undisturbed Ground Temperatures {[}C{]}}\label{earth-tube-node-temperatures} + +This will report the theoretical undisturbed ground temperature at the location of the internal node temperatures {[}C{]} as well as the average for the location of the earth tube for the 1-D finite difference model. This is only valid for the 1-D (Vertical) model and provides a comparison of conditions for the simple model and the 1-D (Vertical) model. + +## Engineering Reference ## + +Note: The existing engineering reference section on earth tubes will be kept with some editing to account for the fact that there will be two potential models that can be used for the earth tube. Much of the existing text and description can stay since it will apply to both models. A new sections will be added to specifically describe the 1-D (Vertical) earth tube modeling technique. This section will outline the assumptions and boundary conditions of the 1-D model and refer back to the existing description and equations to show what the two models have in common. As this documentation will be specific to how the new model solves for earth tube temperature, this new section of documentation will be written once the approach outlined above has gained the approval of the development team. + +## Example File and Transition Changes ## + +There is already an existing EarthTubeSimpleTest.idf file that is used to test the earth tube as presented in the current version of EnergyPlus. This file will be duplicated, renamed to EarthTubeVerticalTest.idf, and modified to test the 1-D (Vertical) earth tube model being added for this enhancement. + +Due to the fact that the two new fields in the EarthTube input are at the end of the current description and are both optional, no transition changes will be needed. Existing files will continue to run without problem and will default to the simple solution method. In addition, the new input syntax EarthTube:Parameters is also optional and only needed for the 1-D (Vertical) model. Thus, current user files will not need this new input to continue to run their earth tube models. + + +## Code Development ## + +The current code has one main subroutine that is tasked with the calculation of the earth tube performance. First, after some preliminary initializations, the air flow related terms are calculated for the air side of the earth tube. Then, the average earth temperature between the depth of the top of the earth tube and the bottom of the earth tube. Next, given the air flow and thermal properties of the soil, the heat transfer coefficient including the various thermal resistances are calculated. Finally, given the various conditions already calculated, an outlet air temperature is calculated for the earth tube. + +All of this methodology must be preserved since the goal of this implementation is to allow the modeing of both the existing model and the new enhancement so that the results can be compared side-by-side. Most of the auxiliary functions that will be shared between the existing and the new model (air flow terms, heat transfer coefficients, etc.) will be converted to subroutines, reducing the clutter in the main calculation routine. The existing model will also be converted into a function that will calculate the average temperature for various depths. The main calculation routine will then chose one of two options: the existing model or the "vertical" model. The existing model will continue to calculate the ground tempeature as is currently done, using the undisturbed temperature correlation using the new subroutine for average temperature between two depths. The new "vertical" model will call out to a new subroutine that will implement the implicit finite difference scheme presented above. + +The new subroutine that will actually contain new code and not simply code moved from the main routine will deal with the calculation of the new vertical model being installed for this work. The main purpose of this new subroutine will be the calculation of the node temperatures using the implicit finite difference scheme. There will likely also need to be a one-time initialization routine for the various terms in the node equations since they will be based on thermo-physical properties of the unique situation (based on user input) and thus constant (assumption). + +Another initialization that only needs to be done once per day is the calculation of the soil temperatures. In the current implementation, the soil temperature at the depth of the earth tube is calculated every zone time step. This is unnecessary because the equation for the soil temperature at a given depth is set based on the day of the year, not on the hour of the day. So, this initialization could be calculated once each day, increasing the efficiency of the routine. + +The new routine for the vertical model will have the following sequence/components: + +1. Initialize the node equation terms (once per simulation). Also calculate the depth of the various nodes for the vertical solution. Also make initial guesses for the various node temperatures based on the undisturbed ground temperature model. +2. Calculate the air flow related terms for the air side of the earth tube (impacting the air heat balance of the zone). +3. Calculate the soil temperature at the various node depths used for the model (once per day). This includes the temperature at the depth of the tube as well as at the depth of the top and the bottom of the solution space. +4. Calculate the heat transfer coefficients and thermal resistances that will be used for the heat exchanger model. This will have an impact on the earth tube node equation since there will be heat exchange between the earth tube node, surrounding nodes, and the air passing through the earth tube. +5. Calculate the node temperatures and outlet air temperature using an implicit finite difference scheme. The node equations will be set up in a matrix format that follows the general layout of Ax = b. This will be solved via the LU Decomposition strategy using existing EnergyPlus routines (see subroutine LUdecomposition and LUsolution in WindowManager.cc--will need to update so that it is no longer limited to an index of 10). This will avoid the need for iteration to obtain a solution, but it will require the decomposition and solution to be calculated each time step because one of the terms in the A matrix will include the effectiveness (based on NTU as shown above) of the heat transfer between the air passing through the earth tube and the ground. The remaining terms in the A matrix will include thermo-physical properties of the ground and the earth tube material itself which will all be assumed to be constant. Experience with the existing earth tube model and the low temperature hydronic radiant system model has shown that in many situations, the effectiveness is very close or equal to 1. So, during initializations, the decomposed matris for A when the effectiveness is 1 will be calculated and stored to hopefully reduce the time required to obtain a solution. In addition, the decomposition of the A matrix for when the earth tube is not operating (zero flow conditions). This is because the earth tube could spend considerable time being turned off (not needed during cooling season or not being run during heating season, for example). However, due to the transient nature of the model, it will need to model the ground temperature nodes even when the earth tube is not running. Storing A for zero flow and an effectiveness of one will increase data requirements but this will provide a faster solution since during those times, the A matrix will already have been LU decomposed and thus only the solution routine will need to be run. +6. Record and report output from the vertical model. Output for the vertical model will include all of the existing output for the current model. In addition, output variables will be established for the node temperatures both above the earth tube, below the earth tube, and at the location of the earth tube. + +One potential improvememt that could be considered in the future for the model is the ability to specify starting ground temperatures rather than calculate them based on the undisturbed ground temperature as the initial starting point. The point of this would be to allow the user to run multiple simulations sequentially. The last node temperatures of one annual simulation could then be plugged into the next annual simulation as a way to get a better starting point or to see what happens when the earth tube is present for multiple years. Eventually the starting conditions would be no longer be a factor, but at this point it is uncertain whether such a feature is necessary. It is possible that a single annual simulation might be long enough to establish a realistic trend, but this is not known at this time and would be studied at a later date in a future FY. + +## References ## + +Existing EnergyPlus Earth Tube Model, EnergyPlus Engineering Reference, EnergyPlus Input-Output Reference. + +Liu, X., M. Xu, J. Guo, and R. Zhu. 2019. “Conceptual Development of the Earth Tube Cooling System For a Tall Building,” Journal of Green Building (2019) 14 (2): 1–28. + + + diff --git a/design/FY2023/NFP-EarthTube-1DEnhancement.md b/design/FY2023/NFP-EarthTube-1DEnhancement.md new file mode 100644 index 00000000000..e0a422ff1ff --- /dev/null +++ b/design/FY2023/NFP-EarthTube-1DEnhancement.md @@ -0,0 +1,384 @@ +Earth Tube 1-D Conduction Enhancement +================ + +**Rick Strand, University of Illinois at Urbana-Champaign** + + - April 2023 + - Revision Date (Version 2): May 11, 2023 + - Revision Date (Version 3): May 12, 2023 + + +## Justification for New Feature ## + +It has long been known that the earth tube model in EnergyPlus, though an important addition to the program, has one critical assumption that potentially affects the accuracy of the earth tube results. The assumption is that the presence of the earth tube and any heat transfer from the air passing through it to the ground is negligible. While this is a common assumption for many first principle models in the literature (these models generally all use the model used in EnergyPlus to determine the temperature at a particular depth), it does not take into account any changes that the heat rejection from the outside air to the ground itself. It is not currently known how much of an impact this will have, but it would seem at least plausible that the ground around the earth tube would be impacted and that this would affect the potential outlet temperatures that can be achieved and thus the amount of cooling that is possible. The goal is to provide a more accurate assessment of these systems using EnergyPlus. +The improvement of the earth tube model will be done in stages. The first step is to handle the impact of the earth on the ground surrounding the earth in a single dimension (with the soil depth being that dimension). Future work would potentially handle heat transfer axially along the length of the tube, the impact of more than one earth tube and the impact that adjacent tubes have on each other, and any time lag due to the air passing through the earth tube. + +## E-mail, Slack, and Conference Call Conclusions ## + +Technicalities Meeting (5/3/23): team review the document briefly and stated the desire for this to get additional feedback in the next technicalities meeting. Two initial requests from the team included modifying the proposal to factor in the impact of the soil at the depth of the earth tube since this would be more realistic of the situation (as in, the earth tube in not infinite in width) and to contact John Nelson who has expertise in earth tube modeling and has requested improved earth tube simulation capabilities in EnergyPlus in the past. This update includes a modification of the finite difference scheme to address the concern regarding what is happening at the depth of the earth tube itself. In addition, GitHub was used to contact John Nelson and that conversation is contained in the comments for the GitHub issue regarding earth tubes (https://github.com/NREL/EnergyPlus/issues/6627). John suggested that the model at some point include the ability to model temperature variation axially along the earth tube (something already logged as a potential future enhancement) and also to provide some improved controls where air might bypass the earth tube and use heat recovery in certain situations to save the earth tube’s ability to cool. This is an interesting idea but may also be fairly complicated because it may deal with specific control algorithms and bridging between the zone and air loop simulations. Such a concept is different from what is currently in EnergyPlus and there doesn’t appear to be another model in E+ that bridges with air flow at the zone and air loop level. Such a concept is definitely beyond the scope of this initial enhancement. + +Slack Discussion (5/11/23): Neal Kris brought up two issues in this NFP. First, there is the issue of the infinitely wide domain which is unrealistic. Second, there is the question of what air temperature is being used for heat transfer between the earth tube and the air passing through it. The second issue will be resolved by adding the discussion of the effectiveness-NTU heat exchanger model that is being used. This will be similar in the assumptions as the heat exchanger algorithm used in the low temperature radiant system model (solid side with a “constant” temperature and a fluid side which has a temperature which varies throughout). The first issue will be addressed by modifying the solution domain to have a user-defined width with adiabatic boundary conditions on either side. In reality, at some distance from the earth tube there will be negligible heat transfer toward/away from the earth tube. Making this a user-defined input parameter will allow the width to be studied. + +## Overview ## + +The earth tube model in EnergyPlus uses an established equation for determining the temperature of soil below grade. This equation is published in the literature and is documented in the EnergyPlus Engineering Reference. In EnergyPlus, this equation for temperature as a function of distance is integrated over the diameter of the earth tube to come up with an average temperature that is then used as the soil temperature with which the earth tube interacts. While this is useful and is a common assumption in much of the existing literature, it does not take into account any impact that the earth tube has on the surrounding soil in any direction. The model simply assumes that the earth tube does not impact the local soil temperature. + +Clearly, over an entire season of cooling, there would be some impact on the local soil temperature due to the presence of the earth tube. While the base equation does account for seasonal variation of the undisturbed earth temperature, it does not include any terms that would account for the heat gains in the soil due to the cooling effect on the air passing through the earth tube. This would vary the soil temperature in all directions around the coil—vertically, horizontally, and axially along the length of the tube. So, to better model an earth tube and its performance within EnergyPlus, improvements must be made to account for the transient impact of the earth tube on the local soil temperatures in all directions. In addition, there should be some sort of accounting for the potential presence of more than a single earth tube, since it is common for such systems to have more than a single pipe/tube. + +In addition, the current model also assumes that the air passing through the tube does so without any time delay. In other words, the air instantaneously passes through the earth tube and this has an immediate impact on the space. In reality, there is a time lag since air entering the tube must pass through the entire length of the tube. While the impact of this assumption has not been explored, it could potentially be another element of the existing model that could be improved. + +Given all of these areas of potential improvement to the model and the limited availability of resources, this initial phase of enhancing the existing earth tube model in EnergyPlus will be to focus on the impact of the heat transfer within the earth tube on the local soil conditions in the vertical direction only. There is actually a good reason to focus on that direction first. It is the direction in which there is an existing equation for temperature as a function of soil depth. + +Furthermore, research in this area seems to at least give the impression that the biggest impact is in the vertical direction. Research by Liu, Xu, Guo, and Zhu (2019) shows that the direction that is the most important as far as variations in temperature are the vertical direction. While temperature variation does occur horizontally and axially as well, the largest temperature changes in comparison to the undisturbed temperature happen vertically. So, it makes the most sense to make the first enhancement pass to the model to look at the vertical temperature variation caused by the heat transfer due to the earth tube. + +## Approach ## + +Overall, the approach will be to add a new 1-D heat transfer model that will run as a separate option from the existing model. The reason for this is two-fold: execution speed and comparative accuracy. First, the new model will be slower than the existing model. It may be that users do not wish to have their run times increase and at this time it is uncertain how much the run time will be impacted given the solution technique that will be used, particularly as additional dimensions of heat transfer get added later. Second, it would be helpful to know how much the solution was impacted by the new enhancement of 1-D heat conduction. This will allow test cases to be run and comparisons made to deduce when the use of the new enhancement will be necessary and how much the soil temperature is impacted. This might also give the team useful information on how important additional solution dimensions will be. + +The 1-D heat conduction model itself will be implemented using a 1-D implicit finite difference scheme. The solution dimension will be bounded by a temperature just below grade at the top of the solution space and another temperature boundary condition at a depth below the earth tube. The temperatures at these upper and lower boundaries will be set using the existing equation from the literature for undisturbed soil temperature. At the sides of the solution space, adiabatic conditions will be assumed. The user will be given the option to specify the overall thickness of the solution region, but there will only be heat transfer vertically (none horizontally since it will be adiabatic on the “sides”). + +The finite difference grid will include an upper portion from the upper temperature boundary to the node just above the earth tube and also a lower portion from the node just below the earth tube to the lower boundary condition. The node at the earth tube itself will also be modeled as an “all soil” node but also include a connection to the earth tube itself. In a one dimension model like the one proposed for this enhancement, it is more realistic to model the level at the earth tube to be soil because in all directions there will be soil and not an entire layer of air/earth tube. Thus, this earth tube node will capture the conditions of the soil at that level, and a heat exchanger model that connects to the temperature of the earth tube node will be used, and checks will be made to insure that the heat loss of the air is equal to the total heat gain of the soil. + +The solution for this finite difference model will use an implicit scheme. Implicit schemes are known for being inherently stable. Since it is possible that the number of nodes may be small and thus the nodes large, it will be important to avoid potential stability issues in the solution. The user will be given some flexibility in the input to specify the number of nodes above and below the earth tube. While some reasonable limits will be applied to those inputs to avoid too few or too many nodes, the control of the number of nodes will also help during the testing and verification process to make sure that the model is producing results that make sense and are believable. An example of the node layout is shown in the figure below. + +![earth_tube_solution_space_diagram](earth_tube_solution_space_diagram.png) +

Figure 1. Earth Tube 1-D Model Solution Space Node Diagram.

+ +The heat transfer between the soil and the air flowing through the earth tube will be calculated using an effectiveness-NTU heat exchanger formulation. Because the soil temperature does not vary axially along the earth tube in this model, the effectiveness for a heat exchanger equation in this situation where one side is at constant temperature and the other side (air side) varies in temperature is: + +\begin{equation} +\varepsilon = 1 - {e^{ - NTU}} +\end{equation} + +This is similar to the reasoning used in the low temperature radiant system models where similar assumptions are made for the embedding material and the fluid being circulated through the tubing. The effectiveness will then used to calculate the outlet air temperature based on an inlet air temperature, soil temperature, and other conditions of the situation (flow, thermal properties, etc.). The overall heat exchange between the soil and the air is calculated using this effectiveness, and there is no need to determine the "average" temperature of the air as it passes through the earth tube. The heat exchanger model defines the heat exchange using the effectiveness and the theoretical maximum heat transfer between the air and soil. + +Another important point regarding this model is that unlike the existing model which only calculates the performance of the earth tube when the earth tube is actually operating, the enhancement 1-D model will need to calculate the response of the soil even when the earth tube is not running, whether that is due to no cooling being needed, the earth tube is turned off, or it being not the appropriate season for the earth tube to operate. So, while the existing model simply skips the earth tube code when it is “off”, the enhanced model will have to calculate node conditions all the time. This again could add to the execution run time as the earth tube calculations will have to be made all of the time. This will naturally be impacted by the number of nodes selected by the users. At this time, it is uncertain how much time this model will add to execution time. Testing will be done with the new model to help identify some benchmarks and provide some helpful guidance to users via the Engineering Reference documentation. + +This work will also include modernization of the earth tube code based on recent standard practices implemented by the EnergyPlus development team. + +## Testing/Validation/Data Sources ## + +Explicit data sets for earth tube performance that monitors temperature in the vertical direction have not been published in the literature. More qualitative graphs have been published but it is difficult to get exact data from these diagrams. They can, however, be used to establish trends that can be checked against the results from the new EnergyPlus enhancement. The more important testing and validation that will occur will compare the results of the new model with the existing one at various depths, different number of nodes (upper and lower), and for different soil conditions. Comparisons can then be made both to the existing model as well as different depths, node arrangements, and soil conditions to establish the improvement in the temperature predictions of both the soil conditions as well as the outlet air temperatures. It is anticipated that this work will result in a publication following the completion of this work in EnergyPlus. + +## Input Output Reference Documentation ## + +The existing input output reference documentation that already exists for earth tubes will be reviewed and corrected as needed for the model that is already in the code. The most significant changes to the documentation will be the addition of two new fields in the input syntax for earth tubes and the addition of a new input object for the details of the finite difference solution. This is shown starting in the next paragraph. + +\subsection{ZoneEarthtube}\label{zoneearthtube-earth-tube} + +An earth tube is a long, underground metal or plastic pipe through which air is drawn. During cooling season, as air travels through the pipe, it gives up some of its heat to the surrounding soil and enters the room as cooler air. Similarly, during heating season, as air travels through the pipe, it receives some of its heat from the soil and enters the zone as warmer air. Simple earth tubes in EnergyPlus can be controlled by a schedule and through the specification of minimum, maximum, and delta temperatures as described below. As with infiltration and ventilation, the actual flow rate of air through the earth tube can be modified by the temperature difference between the inside and outside environment and the wind speed. The basic equation used to calculate air flow rate of earth tube in EnergyPlus is: + +\begin{equation} +EarthTubeFlowRate = \left( {{E_{design}}} \right)\left( {{F_{schedule}}} \right)\left[ {A + B\left| {{T_{zone}} - {T_{odb}}} \right| + C\left( {WindSpeed} \right) + D\left( {WindSpee{d^2}} \right)} \right] +\end{equation} + +For the simulation of the earth tube, a weather data file is required and, therefore, the earth tube cannot run without weather data file. The required input fields to simulate the earth tube include the average soil surface temperature, the amplitude of soil surface temperature, and the phase constant of soil surface temperature. These fields should be calculated in advance by using a separate stand-alone program (CalcSoilSurfTemp) and should be input into earth tube. + +\subsubsection{CalcSoilSurfTemp -- Auxiliary Programs Document}\label{calcsoilsurftemp-auxiliary-programs-document} + +The CalcSoilSurfTemp program is simple and requires only two input fields: soil condition and soil surface condition in addition to a valid weather file. For soil condition, the user should select the number corresponding to the actual condition of the soil surrounding the earth tube from the four following options: 1. HEAVY AND SATURATED, 2. HEAVY AND DAMP, 3. HEAVY AND DRY and 4. LIGHT AND DRY. This determines the thermal diffusivity and thermal conductivity of the surrounding soil. For soil surface conditions, the user should select the number corresponding to the actual condition of the ground surface above the earth tube from the eight following options: 1. BARE AND WET, 2. BARE AND MOIST, 3. BARE AND ARID, 4. BARE AND DRY, 5. COVERED AND WET, 6. COVERED AND MOIST, 7. COVERED AND ARID and 8. COVERED AND DRY. This determines the absorption coefficient and the fraction of evaporation rate of the ground surface. + + +## Input Description ## + +\subsubsection{Inputs} +From this information and an analysis of the weather for the location selected, the CalcSoilSurfTemp program (ref. Auxiliary Programs document) calculates the three parameters listed above. The user must then add these parameters as input into EnergyPlus. The full input description of an earth tube (EARTHTUBE object) in EnergyPlus is given below. + +\paragraph{Field: Zone Name}\label{field-zone-name-5} + +This field is the name of the zone (ref: Zone) and attaches a particular earth tube statement to a thermal zone in the building. + +\paragraph{Field: Schedule Name}\label{field-schedule-name-6} + +This field is the name of the schedule (ref: Schedule) that modifies the maximum design volume flow rate parameter (see next field). This fraction between 0.0 and 1.0 is noted as F\(_{schedule}\) in the above equation. + +\paragraph{Field: Design Flow Rate}\label{field-design-flow-rate-4} + +This number (noted as E\(_{design}\) in the above equation) is the maximum amount of air mass flow rate of the earth tube expected at design conditions. The flow rate is expressed in units of m\(^{3}\)/s. The design value is modified by the schedule fraction (see previous field) and user specified coefficients (see last four fields). + +\paragraph{Field: Minimum Zone Temperature when Cooling}\label{field-minimum-zone-temperature-when-cooling} + +This is the indoor temperature (in Celsius) below which the earth tube is shut off. This lower temperature limit is intended to avoid overcooling a space and thus result in a heating load. For example, if the user specifies a minimum temperature of 20$^\circ$C, earth tube is assumed to be available if the zone air temperature is above 20$^\circ$C. If the zone air temperature drops below 20$^\circ$C, then earth tube is automatically turned off. + +\paragraph{Field: Maximum Zone Temperature when Heating}\label{field-maximum-zone-temperature-when-heating} + +This is the indoor temperature (in Celsius) above which the earth tube is shut off. This higher temperature limit is intended to avoid overheating a space and thus result in a cooling load. For example, if the user specifies a maximum temperature of 20$^\circ$C, earth tube is assumed to be available if the zone air temperature is below 20$^\circ$C. If the zone air temperature rises above 20$^\circ$C, then earth tube is automatically turned off. + +\paragraph{Field: Delta Temperature}\label{field-delta-temperature-4} + +This is the temperature difference (in Celsius) between the indoor and outdoor air dry-bulb temperatures below which the earth tube is shut off. This is to allow the earth tube to be stopped either if the temperature outside is too warm and could potentially heat the space or if the temperature outside is too cold and could potentially cool the space. For example, if the user specifies a delta temperature of 2$^\circ$C, earth tube is assumed to be available if the temperature difference between indoor and outdoor temperature is at least 2$^\circ$C. If the outside air dry-bulb temperature is less than 2$^\circ$C cooler or warmer than the indoor dry-bulb temperature, then the earth tube is automatically turned off. + +\paragraph{Field: Earthtube Type}\label{field-earthtube-type} + +This alpha character string defines the type of earth tube as one of the following options: \emph{Natural}, \emph{Exhaust}, or \emph{Intake}. A \emph{Natural} earth tube is assumed to be air movement/exchange that will not consume any fan energy or is the result of natural air flow through the tube and into the building. Values for fan pressure and efficiency for a natural flow earth tube are ignored. For either \emph{Exhaust} or \emph{Intake} earth tubes, values for fan pressure and efficiency define the fan electric consumption. For \emph{Natural} and \emph{Exhaust} earth tubes, the conditions of the air entering the space are assumed to be equivalent to the air which is cooled or heated by passing along the pipe. For \emph{Intake} earth tubes, an appropriate amount of fan heat is added to the air stream. + +\paragraph{Field: Fan Pressure Rise}\label{field-fan-pressure-rise-1} + +This is the pressure rise experienced across the fan in Pascals (N/m\(^{2}\)). This is a function of the fan and plays a role in determining the amount of energy consumed by the fan. + +\paragraph{Field: Fan Total Efficiency}\label{field-fan-total-efficiency-1} + +This is the total fan efficiency (a decimal number between 0.0 and 1.0). This is a function of the fan and plays a role in determining the amount of energy consumed by the fan. + +\paragraph{Field: Pipe Radius}\label{field-pipe-radius} + +This is the radius of the earth tube/pipe (in meters). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. If the pipe has non-circular cross section, user can use the concept of hydraulic diameter as follows. + +\begin{equation} +D = 4 \times Area/Perimeter +\end{equation} + +However, since this field requires the pipe radius, hydraulic diameter should be divided by two. + +\paragraph{Field: Pipe Thickness}\label{field-pipe-thickness} + +This is the thickness of the pipe wall (in meters). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. + +\paragraph{Field: Pipe Length}\label{field-pipe-length} + +This is the total length of the pipe (in meters). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. As the length of the pipe becomes longer, the amount of the heat transfer becomes larger. + +\paragraph{Field: Pipe Thermal Conductivity}\label{field-pipe-thermal-conductivity} + +This is the thermal conductivity of the pipe (in W/m-C). This plays a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. + +\paragraph{Field: Pipe Depth Under Ground Surface}\label{field-pipe-depth-under-ground-surface} + +This is the depth of the pipe under the ground surface (in meters). This plays a role in determining the temperature of the soil surrounding the pipe. + +\paragraph{Field: Soil Condition}\label{field-soil-condition} + +This alpha character string defines the actual condition of the soil surrounding the earth tube and can be one of any of the following options: HeavyAndSaturated, HeavyAndDamp, HeavyAndDry or LightAndDry. This determines the thermal diffusivity and thermal conductivity of the surrounding soil, which play a role in determining the amount of heat transferred from the surrounding soil to the air passing along the pipe. + +\paragraph{Field: Average Soil Surface Temperature}\label{field-average-soil-surface-temperature} + +This is the annual average soil surface temperature straight above the earth tube, which plays a role in determining the temperature of the soil surrounding the pipe. This field should be calculated in advance using the separate CalcSoilSurfTemp program. + +\paragraph{Field: Amplitude of Soil Surface Temperature}\label{field-amplitude-of-soil-surface-temperature} + +This is the amplitude of soil surface temperature above the earth tube, which plays a role in determining the temperature of the soil surrounding the pipe. This is the difference between the maximum and minimum soil surface temperature for the whole year divided by two. This field should be calculated in advance using the separate CalcSoilSurfTemp program. + +\paragraph{Field: Phase Constant of Soil Surface Temperature}\label{field-phase-constant-of-soil-surface-temperature} + +This is the phase constant of the soil surface temperature straight above the earth tube, which play a role in determining the temperature of the soil surrounding the pipe at particular time. This is the time elapsed from the beginning of the year until the soil surface temperature reaches the minimum value of the year. This field should be calculated in advance using the separate CalcSoilSurfTemp program. + +\paragraph{Field: Constant Term Flow Coefficient}\label{field-constant-term-flow-coefficient} + +This number is the ``A'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter, however, is a constant under all conditions and is not modified by any environmental effect. As a result, it is dimensionless. + +\paragraph{Field: Temperature Term Flow Coefficient}\label{field-temperature-term-flow-coefficient} + +This number is the ``B'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by the temperature difference between the outdoor and indoor air dry-bulb temperatures. The units for this parameter are inverse Celsius. + +\paragraph{Field: Velocity Term Flow Coefficient}\label{field-velocity-term-flow-coefficient} + +This number is the ``C'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by the speed of wind being experienced outside the building. The units for this parameter are s/m. + +\paragraph{Field: Velocity Squared Term Flow Coefficient}\label{field-velocity-squared-term-flow-coefficient} + +This number is the ``D'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by square of the speed of wind being experienced outside the building. The units for this parameter are s\(^{2}\)/m\(^{2}\). + +\paragraph{Field: Earth Tube Model Type}\label{field-earth-tube-model-type} + +This field determines which modeling technique will be used to assess the performance of the earth tube. The options are: Simple and Vertical. In the Simple modeling approach, the temperature of the soil at the earth tube is approximated by the undisturbed ground conditions. In the Vertical modeling approach, the temperature of the soil around the earth tube is modeled using a finite difference scheme to account for the impact of the earth tube on the surrounding soil conditions in a single direction (1-D). For more information on the model type, reference the Earth Tube section of the EnergyPlus Engineering Reference. This input is optional, and the default value is Simple. + +\paragraph{Field: Earth Tube Model Parameters}\label{field-earth-tube-model-parameters} + +This field refers to separate input syntax (see below) that is used for controlling parameters for the 1-D (Vertical) solution technique. This input field is ignored for the Simple model. + +\paragraph{EarthTube:Parameters}\label{field-earth-tube-parameters} +For the 1-D (Vertical) model, some additional optional parameters are available for the user to potentially control the solution space (number of nodes, distances) for the finite difference solution. These are described below. + +\paragraph{Field: Earth Tube Parameters Name}\label{field-earth-tube-parameters-name} +This name is used as a reference in the main EarthTube input syntax. It is used to identify the parameters that the user desires to use to control what is being modeled and how detailed the model is. + +\paragraph{Field: Earth Tube Nodes Above}\label{field-earth-tube-nodes-above} +This parameter sets the number of nodes above the earth tube, between the earth tube and the ground surface. It has a minimum of three nodes and a maximum of ten nodes. These limits were chosen to avoid the extremes of excessive execution times and overly simplified results. The default value for this parameter is 5 (nodes). + +\paragraph{Field: Earth Tube Nodes Below}\label{field-earth-tube-nodes-below} +This parameter sets the number of nodes below the earth tube, between the earth tube and the deep ground boundary. It has a minimum of three nodes and a maximum of ten nodes. These limits were chosen to avoid the extremes of excessive execution times and overly simplified results. The default value for this parameter is 3 (nodes) or the minimum. + +\paragraph{Field: Earth Tube Dimensionless Boundary Above}\label{field-earth-tube-dimensionless-boundary-above} +This parameter sets the dimensionless distance above the earth tube for the solution space. The maximum value is 1.0, and the minimum value is 0.25. When this parameter is set to 1.0, the upper boundary is set to be half of the diameter below the ground surface and the solution space thickness above the earth tube is the depth of the earth tube minus the earth tube diameter. This maximum distance (earth tube depth minus diameter) is multiplied by this parameter to constrain the solution space to less than the maximum (when the parameter is less than 1.0). The default value for this parameter is 1.0 (the maximum value). + +\paragraph{Field: Earth Tube Dimensionless Boundary Below}\label{field-earth-tube-dimensionless-boundary-below} +This parameter sets the dimensionless distance below the earth tube for the solution space. The maximum value is 1.0, and the minimum value is 0.25. This parameter is interpretted in a similar fashion as the previous parameter where the depth of the solution space below the earth tube is determined by the maximum distance above the earth tube (earth tube depth minus diameter). This allows the user to have different thickness for the modeled portion of the ground above and below the earth tube. The default value for this parameter is 0.25 (the minimum value). + +\paragraph{Field: Earth Tube Dimensionless Solution Space Width}\label{field-earth-tube-dimensionless-solution-space-width} +This parameter sets the dimensionless width of the solution space horizontally as a function of the earth tube radius as defined in the main earth tube input syntax. The maximum value is 20.0, and the minimum value is 3.0. The default value for this parameter is 4.0 which means that the width of the solution space is four times the radius. In other words, this would include soil one radius length beyond the edges of the tube on either side of the earth tube. + +An IDF example: + +\begin{lstlisting} + +EARTHTUBE, + Zone 2, !- Zone Name + 1D Modeled Tube, !- Schedule Name + 3.425198, !- Design Volume Flow Rate + 10.0, !- Minimum Zone Temperature when Cooling + 30.0, !- Maximum Zone Temperature when Heating + 1.0, !- Delta Temperature + NATURAL, !- EarthTube Type + 350.0, !- Fan Pressure Rise + 0.9, !- Fan Total Efficiency + 0.25, !- Pipe Radius + 0.2, !- Pipe Thickness + 15.0, !- Pipe Length + 200.0, !- Pipe Thermal Conductivity + 3.5, !- Pipe Depth Under Ground Surface + HeavyAndDamp, !- Soil Condition + 15.0, !- Average Soil Surface Temperature + 5.6, !- Amplitude of Soil Surface Temperature + 0.0, !- Phase Constant of Soil Surface Temperature + 0.6060000 , !- Constant Term Flow Coef + 2.0199999E-02, !- Temp Term Flow Coef + 5.9800001E-04, !- Velocity Term Flow Coef + 0.0000000E+00, !- Velocity**2 Term Flow Coef + Vertical, !- Earth Tube Model Type + EarthTubeParams; !- Earth Tube Model Parameters + +EarthTube:Parameters, + EarthTubeParams, !- Earth Tube Model Parameters (Name) + 5, !- Earth Tube Nodes Above + 3, !- Earth Tube Nodes Below + 1.0, !- Earth Tube Dimensionless Boundary Above + 0.5, !- Earth Tube Dimensionless Boundary Below + 4.0; !- Earth Tube Dimensionless Solution Space Width + +\end{lstlisting} + +## Outputs Description ## + +\subsubsection{Outputs}\label{zoneearthtube-outputs} + +Current Earth Tube output variables: + +\begin{itemize} +\item + HVAC,Sum,Earth Tube Zone Sensible Cooling Energy {[}J{]} +\item + HVAC,Average,Earth Tube Zone Sensible Cooling Rate {[}W{]} +\item + HVAC,Sum,Earth Tube Zone Sensible Heating Energy {[}J{]} +\item + HVAC,Average,Earth Tube Zone Sensible Heating Rate {[}W{]} +\item + HVAC,Sum,Earth Tube Air Flow Volume {[}m3{]} +\item + HVAC,Average,Earth Tube Current Density Volume Flow Rate {[}m3/s{]} +\item + HVAC,Average,Earth Tube Standard Density Volume Flow Rate {[}m3/s{]} +\item + HVAC,Sum,Earth Tube Air Flow Mass {[}kg{]} +\item + HVAC,Average,Earth Tube Air Mass Flow Rate {[}kg/s{]} +\item + HVAC,Average,Earth Tube Water Mass Flow Rate {[}kg/s{]} +\item + HVAC,Sum,Earth Tube Fan Electricity Energy {[}J{]} +\item + HVAC,Average,Earth Tube Fan Electricity Rate {[}W{]} +\item + HVAC,Average,Earth Tube Zone Inlet Air Temperature {[}C{]} +\item + HVAC,Average,Earth Tube Ground Interface Temperature {[}C{]} +\item + HVAC,Average,Earth Tube Outdoor Air Heat Transfer Rate {[}W{]} +\item + HVAC,Average,Earth Tube Inlet Wet Bulb Temperature {[}C{]} +\item + HVAC,Average,Earth Tube Inlet Humidity Ratio {[}kgWater/kgDryAir{]} +\item + HVAC,Average,Earth Tube Node Temperatures {[}C{]} +\item + HVAC,Average,Earth Tube Undisturbed Ground Temperatures {[}C{]} +\end{itemize} + +\paragraph{Earth Tube Zone Sensible Cooling Energy {[}J{]}}\label{earth-tube-zone-sensible-cooling-energy-j} + +\paragraph{Earth Tube Zone Sensible Cooling Rate {[}W{]}}\label{earth-tube-zone-sensible-cooling-rate-w} + +These are the energy and rate associated with the zone cooling provided by the air from the earth tube.~ This occurs when the earth tube outlet air temperature is less than zone air temperature. + +\paragraph{Earth Tube Zone Sensible Heating Energy {[}J{]}}\label{earth-tube-zone-sensible-heating-energy-j} + +\paragraph{Earth Tube Zone Sensible Heating Rate {[}W{]}}\label{earth-tube-zone-sensible-heating-rate-w} + +These are the energy and rate associated with the zone heating provided by the air from the earth tube.~ This occurs when the earth tube outlet air temperature is greater than the zone air temperature. + +\paragraph{Earth Tube Air Flow Volume {[}m3{]}}\label{earth-tube-air-flow-volume-m3} + +The volume flow of air through the earth tube. + +\paragraph{Earth Tube Current Density Volume Flow Rate {[}m3/s{]}}\label{earth-tube-air-current-density-volumetric-flow-rate-m3s} + +The volume flow rate of air through the earth tube evaluating density at current zone conditions. + +\paragraph{Earth Tube Standard Density Volume Flow Rate {[}m3/s{]}}\label{earth-tube-air-standard-density-volumetric-flow-rate-m3s} + +The volume flow rate of air through the earth tube evaluating density at standard conditions. + +\paragraph{Earth Tube Air Flow Mass {[}kg{]}}\label{earth-tube-air-flow-mass-kg} + +The mass flow of air through the earth tube. + +\paragraph{Earth Tube Air Mass Flow Rate {[}kg/s{]}}\label{earth-tube-air-mass-flow-rate-kgs} + +The mass flow rate of air through the earth tube. + +\paragraph{Earth Tube Water Mass Flow Rate {[}kg/s{]}}\label{earth-tube-water-mass-flow-rate-kgs} + +The mass flow rate of water vapor at the exit of the earth tube. + +\paragraph{Earth Tube Fan Electricity Energy {[}J{]}}\label{earth-tube-fan-electric-energy-j} + +\paragraph{Earth Tube Fan Electricity Rate {[}W{]}}\label{earth-tube-fan-electric-power-w} + +These are the fan electricity consumption and power for intake or exhaust earth tube types. + +\paragraph{Earth Tube Zone Inlet Air Temperature {[}C{]}}\label{earth-tube-zone-inlet-air-temperature-c} + +This is the temperature of the air entering the zone after passing through the earth tube {[}C{]}.~ This temperature includes the cooling or heating of outdoor air as it passes along the pipe. ~When intake fan assist is used, then the additional heat due to the fan is included in the inlet air temperature. + +\paragraph{Earth Tube Ground Interface Temperature {[}C{]}}\label{earth-tube-ground-interface-temperature-c} + +This is the average temperature of the ground along the outer surface of the earth tube {[}C{]}. + +\paragraph{Earth Tube Outdoor Air Heat Transfer Rate {[}W{]}}\label{earth-tube-outdoor-air-heat-transfer-rate-w} + +This is the rate of heat transfer from the earth tube to the outdoor air {[}W{]}.~ Positive values indicate the rate at which outdoor air is preheated; negative values indicate the rate of precooling. + +\paragraph{Earth Tube Zone Inlet Wet Bulb Temperature {[}C{]}}\label{earth-tube-zone-inlet-wet-bulb-temperature-c} + +This is the wet bulb temperature of the air entering the zone after passing through the earth tube {[}C{]}. + +\paragraph{Earth Tube Zone Inlet Humidity Ratio {[}kgWater/krDryAir{]}}\label{earth-tube-zone-inlet-humidity-ratio-kgWater/kgDryAir} + +This is the humidity ratio of the air entering the zone after passing through the earth tube {[}kgWater/kgDryAir{]}. + +\paragraph{Earth Tube Node Temperatures {[}C{]}}\label{earth-tube-node-temperatures} + +This will generate the internal node temperatures {[}C{]} for the earth tube as a result of the 1-D finite difference model. This is only valid for the 1-D (Vertical) model. + +\paragraph{Earth Tube Undisturbed Ground Temperatures {[}C{]}}\label{earth-tube-node-temperatures} + +This will report the theoretical undisturbed ground temperature at the location of the internal node temperatures {[}C{]} as well as the average for the location of the earth tube for the 1-D finite difference model. This is only valid for the 1-D (Vertical) model and provides a comparison of conditions for the simple model and the 1-D (Vertical) model. + +## Engineering Reference ## + +Note: The existing engineering reference section on earth tubes will be kept with some editing to account for the fact that there will be two potential models that can be used for the earth tube. Much of the existing text and description can stay since it will apply to both models. A new sections will be added to specifically describe the 1-D (Vertical) earth tube modeling technique. This section will outline the assumptions and boundary conditions of the 1-D model and refer back to the existing description and equations to show what the two models have in common. As this documentation will be specific to how the new model solves for earth tube temperature, this new section of documentation will be written once the approach outlined above has gained the approval of the development team. + +## Example File and Transition Changes ## + +There is already an existing EarthTubeSimpleTest.idf file that is used to test the earth tube as presented in the current version of EnergyPlus. This file will be duplicated, renamed to EarthTubeVerticalTest.idf, and modified to test the 1-D (Vertical) earth tube model being added for this enhancement. + +Due to the fact that the two new fields in the EarthTube input are at the end of the current description and are both optional, no transition changes will be needed. Existing files will continue to run without problem and will default to the simple solution method. In addition, the new input syntax EarthTube:Parameters is also optional and only needed for the 1-D (Vertical) model. Thus, current user files will not need this new input to continue to run their earth tube models. + +## References ## + +Existing EnergyPlus Earth Tube Model, EnergyPlus Engineering Reference, EnergyPlus Input-Output Reference. + +Liu, X., M. Xu, J. Guo, and R. Zhu. 2019. “Conceptual Development of the Earth Tube Cooling System For a Tall Building,” Journal of Green Building (2019) 14 (2): 1–28. + + + diff --git a/design/FY2023/earth_tube_solution_space_diagram.png b/design/FY2023/earth_tube_solution_space_diagram.png new file mode 100644 index 00000000000..bc8e26b5093 Binary files /dev/null and b/design/FY2023/earth_tube_solution_space_diagram.png differ diff --git a/doc/engineering-reference/media/earth_tube_solution_space_diagram.png b/doc/engineering-reference/media/earth_tube_solution_space_diagram.png new file mode 100644 index 00000000000..bc8e26b5093 Binary files /dev/null and b/doc/engineering-reference/media/earth_tube_solution_space_diagram.png differ diff --git a/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex b/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex index d394b617662..e3a50d0bee3 100644 --- a/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex +++ b/doc/engineering-reference/src/alternative-modeling-processes/airflownetwork-model.tex @@ -1462,7 +1462,7 @@ \subsection{Duct Sizing}\label{duct-sizingl} There are two methods used to size duct diameter and cross section area by assuming round ducts. Each method is presented below. -1. Maxiumum velocity +1. Maximum velocity The cross section area (A) is calculated below @@ -1520,7 +1520,7 @@ \subsection{Duct Sizing}\label{duct-sizingl} When entry and exit velocities and elevations are the same, the total pressure difference is equal to the static pressure difference. The assumption will be used for duct sizing. -The total pressure loss in either a truck or a branch can be calculated using Darcy-Weisbach Equation (Eq. 34 in Chpater 21, 2017 ASHRAE HOF) +The total pressure loss in either a truck or a branch can be calculated using Darcy-Weisbach Equation (Eq. 34 in Chapter 21, 2017 ASHRAE HOF) \begin{equation} \Delta P = \big( \frac{ f L}{D} + \Sigma C ) * \frac{ \rho V^{2} }{2} @@ -1569,7 +1569,7 @@ \subsection{Duct Sizing}\label{duct-sizingl} A = \frac{D^2 * \pi}{4} \end{equation} -When ΔP given, and the relationship between D and V is also given, there is only a single unknow D. The value can be obtained through iteration. +When ΔP given, and the relationship between D and V is also given, there is only a single unknown D. The value can be obtained through iteration. \subsection{References}\label{afn-references} diff --git a/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex b/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex index 296d0ac00c8..f7b78e70650 100644 --- a/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex +++ b/doc/engineering-reference/src/alternative-modeling-processes/hybrid-model.tex @@ -2,11 +2,11 @@ \section{Hybrid Model}\label{hybrid-model} \subsection{Overview} -The hybrid modeling integrates physics-based and data-driven modeling methods which combines forward and inverse physics-based modeling taking advantage of easily measurable zone air temperature, humidity ratio, or CO$_2$ concentration data to solve hard-to-measure zone parameters including internal thermal mass, air infiltration rate, or zone people count. It aims to enhance the current energy retrofit practices not only offering more user-friendly energy modeling environments but also providing more accurate estimates of energy savings at the same time. Parameters such as interior thermal mass, air infiltration rates, and people count are required in physics-based models, and they have significant impacts as they are driving factors for the dynamic performance of buildings. An accurate estimate of interior thermal mass has been a difficult problem because the building usually has various amounts of furniture and changeable partitions. The air infiltration rate changes in time and dynamically interacts with indoor and outdoor climatic conditions. However the accurate estimation of the data is almost impossible to collect without a fan pressurized test, which can not be easily done by typical energy modelers (Gowri et al. 2009). The high uncertainty of occupants’ presence and behavior have significant impacts on building energy modeling (Clevenger \& Haymaker, 2001). However, people count is usually hard to measure in reality, which result in simplification of occupancy schedule assumptions in energy modeling. The hybrid model introduces an approach estimate the zone level interior thermal masss, air infiltration rate, and people count with measured zone air parameters in EnergyPlus. +The hybrid modeling integrates physics-based and data-driven modeling methods which combines forward and inverse physics-based modeling taking advantage of easily measurable zone air temperature, humidity ratio, or CO$_2$ concentration data to solve hard-to-measure zone parameters including internal thermal mass, air infiltration rate, or zone people count. It aims to enhance the current energy retrofit practices not only offering more user-friendly energy modeling environments but also providing more accurate estimates of energy savings at the same time. Parameters such as interior thermal mass, air infiltration rates, and people count are required in physics-based models, and they have significant impacts as they are driving factors for the dynamic performance of buildings. An accurate estimate of interior thermal mass has been a difficult problem because the building usually has various amounts of furniture and changeable partitions. The air infiltration rate changes in time and dynamically interacts with indoor and outdoor climatic conditions. However the accurate estimation of the data is almost impossible to collect without a fan pressurized test, which can not be easily done by typical energy modelers (Gowri et al. 2009). The high uncertainty of occupants’ presence and behavior have significant impacts on building energy modeling (Clevenger \& Haymaker, 2001). However, people count is usually hard to measure in reality, which result in simplification of occupancy schedule assumptions in energy modeling. The hybrid model introduces an approach estimate the zone level interior thermal mass, air infiltration rate, and people count with measured zone air parameters in EnergyPlus. Solving building energy and environmental problems inversely using measured data gets more attention as more data are easily and freely available. (Yinping Zhang et al. 2015). Measurements are to supplement to reduce discrepancies or to identify model parameters, nevertheless the majority of efforts go into the derivation of the dynamic inverse modeling. Inverse modeling is a discipline that applies mathematical techniques to combine measurements and models. Inverse modeling can provide solutions when direct measurements of model parameters are not widely available, rendering the use of numerical techniques. Temperature, humidity, and CO$_2$ concentration data are easily available nowadays and are used for controls of indoor environments due to a wider use of low-cost thermostats with data loggers, which bring opportunities to inversely solve other hard-to-measure parameters. -The new hybrid modeling approach uses the inverse modeling method to improve the accuracy of the building energy simulation for existing buildings, which adds measured data to solve uncertain model parameters. The hybrid modeling approach builds upon the virtue of the physics-based model taking advantage of measured data. The approach uses measured zone air temperature, humidity ratio, or CO$_2$ concentration to solve highly uncertain parameters such as internal thermal mass, infiltration airflow rate, and people count with the reformulated zone heat, moisture, or CO$_2$ balance equations. Figure~\ref{fig:hybrid-model-solution-diagram} shows the relationship among the measurements and unkonwn parameters. +The new hybrid modeling approach uses the inverse modeling method to improve the accuracy of the building energy simulation for existing buildings, which adds measured data to solve uncertain model parameters. The hybrid modeling approach builds upon the virtue of the physics-based model taking advantage of measured data. The approach uses measured zone air temperature, humidity ratio, or CO$_2$ concentration to solve highly uncertain parameters such as internal thermal mass, infiltration airflow rate, and people count with the reformulated zone heat, moisture, or CO$_2$ balance equations. Figure~\ref{fig:hybrid-model-solution-diagram} shows the relationship among the measurements and unknown parameters. \begin{figure}[h] \begin{center} diff --git a/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex b/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex index 7dd8bde537f..1e7fb0d87d2 100644 --- a/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex +++ b/doc/engineering-reference/src/alternative-modeling-processes/room-air-models.tex @@ -72,7 +72,7 @@ \section{RoomAir Models}\label{roomair-models} \subsection{User Defined RoomAir Temperatures}\label{user-defined-roomair-temperatures} -The input object RoomAir:TemperaturePattern:UserDefined provides a capabity for users to define the sort of air temperature pattern he or she expects in the zone. With these models, the pattern is generally set beforehand and does not respond to conditions that evolve during the simulation.~ (Exception: the pattern available through the RoomAir:TemperaturePattern:TwoGradient object will switch between two different pre-defined vertical gradients depending on the current value of certain temperatures or thermal loads. ) +The input object RoomAir:TemperaturePattern:UserDefined provides a capability for users to define the sort of air temperature pattern he or she expects in the zone. With these models, the pattern is generally set beforehand and does not respond to conditions that evolve during the simulation.~ (Exception: the pattern available through the RoomAir:TemperaturePattern:TwoGradient object will switch between two different pre-defined vertical gradients depending on the current value of certain temperatures or thermal loads. ) The user-defined patterns obtain the mean air temperature, \({T_{MAT}}\), from the heat balance domain and then produce modified values for: diff --git a/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex b/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex index 0fbc5a7731f..9ff91c8280b 100644 --- a/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex +++ b/doc/engineering-reference/src/building-system-simulation-system-manager/plant-condenser-loops.tex @@ -6,7 +6,7 @@ \subsection{Integration of System and Plant}\label{integration-of-system-and-pla \subsection{Current Primary System Modeling Methodology}\label{current-primary-system-modeling-methodology} -There are two main types of loops within the HVAC simulation in EnergyPlus: an air loop and a plant loop. The air loop is assumed to use air as the transport medium as part of an air handling system while the plant loops use a liquid fluid of the user's choosing (typically water).~ Condenser loops are a special case of plant loop that are for heat rejection and are distinguished by slightily different control options and applicable equipment types.~ A user may have any number of each type of loop in a particular input file. There are no explicit limits on the number of loops within the program---the user is only limited by computer hardware. Execution speed will naturally vary with the complexity of the input file. +There are two main types of loops within the HVAC simulation in EnergyPlus: an air loop and a plant loop. The air loop is assumed to use air as the transport medium as part of an air handling system while the plant loops use a liquid fluid of the user's choosing (typically water).~ Condenser loops are a special case of plant loop that are for heat rejection and are distinguished by slightly different control options and applicable equipment types.~ A user may have any number of each type of loop in a particular input file. There are no explicit limits on the number of loops within the program---the user is only limited by computer hardware. Execution speed will naturally vary with the complexity of the input file. Plant loops are further divided into ``half-loops'' or ``semi-loops'' for organizational clarity and simulation logistics (see Figure ``Connections between the Main HVAC Simulation Loops and Half-Loops''). These sub-loops, or half-loop sides, are matched pairs that consist of half of a main plant loop. Plant loops are broken into supply and demand sides. The plant demand side half-loop contains equipment that places a load on the primary equipment. This might include coils, baseboards, radiant systems, etc. The load is met by primary equipment such as chillers or boilers on the supply side half-loop. Each supply side half-loop must be connected to a demand side half-loop and vice versa. A similar breakdown is present on condenser loops where the demand side includes the water side of chiller's condensers while the supply side includes condenser equipment such as cooling towers. @@ -16,7 +16,7 @@ \subsection{Current Primary System Modeling Methodology}\label{current-primary-s \caption{Connections between the Main HVAC Simulation Loops and Half-Loops. \protect \label{fig:connections-between-the-main-hvac-simulation}} \end{figure} -The breakdown into two half-loops allows for better handling and control of information and simulation flow throughout the program. Direct connections between the half-loops of the air, plant, and condenser loops are enhanced by components with connections between the various main loop types. For example, coils (heating or cooling) are in reality heat exchangers with an air and a water or refrigerant side. The air side of the coil is handled within the air loop where the control of the device is also maintained. The fluid side of the coil is handled within the plant demand side, which passes the energy requirements of the coil on to the plant supply side. All loops are simulated together by successively modeling each half-loop in a particulary calling order. Overall iterations ensure that the results for the current time step are balanced and updated information has been passed to both sides of the sub-loops as well as across to the other side of air loop connections such as coils. +The breakdown into two half-loops allows for better handling and control of information and simulation flow throughout the program. Direct connections between the half-loops of the air, plant, and condenser loops are enhanced by components with connections between the various main loop types. For example, coils (heating or cooling) are in reality heat exchangers with an air and a water or refrigerant side. The air side of the coil is handled within the air loop where the control of the device is also maintained. The fluid side of the coil is handled within the plant demand side, which passes the energy requirements of the coil on to the plant supply side. All loops are simulated together by successively modeling each half-loop in a particular calling order. Overall iterations ensure that the results for the current time step are balanced and updated information has been passed to both sides of the sub-loops as well as across to the other side of air loop connections such as coils. The plant equipment on a half-loop is described by a set of branches for that half-loop.~ Components can be arranged on a branch in series, and branches can be placed in parallel, with some restrictions. Figure ``Branch Layout for Individual Plant Half-Loops'' provides an overview of the intended branch layout for each plant half-loop. Branches are individual legs within the loop structure. Thus, the segment between point A and point B is defined as a branch, as is the section between points E and F. There may be multiple sections (C1 to D1 through Cn to Dn) in between the splitter and mixer. @@ -38,7 +38,7 @@ \subsection{Plant Manager}\label{plant-manager} \subsubsection{Plant Half-Loop Calling Order}\label{plant-half-loop-calling-order} -Because there can be multiple plant loops in a model that depend on each other, one job of the plant manager is to determine an appropriate calling order for the half-loops.~ The intial starting calling order (and the order always used prior to EnergyPlus Version 7) is as follows: +Because there can be multiple plant loops in a model that depend on each other, one job of the plant manager is to determine an appropriate calling order for the half-loops.~ The initial starting calling order (and the order always used prior to EnergyPlus Version 7) is as follows: 1.~~~~Call all the demand side half-loops of the plant loops (in input object order) @@ -554,11 +554,11 @@ \subsection{Plant Operation Schemes}\label{plant-operation-schemes} \subsubsection{Uncontrolled Loop Operation}\label{uncontrolled-loop-operation} -The PlantEquipmentOperation:Uncontrolled scheme takes the full capacity of the supply equipment and cools or heats the loop accordingly. An example would be a cooling tower where the cooling tower would cool the condenser loop with all of its available capacity and not be limioted by a capacity range or setpoint. Uncontrolled loop operation simply specifies a group of equipment that runs `uncontrolled'. If the loop runs, this equipment will run also, unless turned off by the loop flow resolver to maintain continuity in the fluid loop. +The PlantEquipmentOperation:Uncontrolled scheme takes the full capacity of the supply equipment and cools or heats the loop accordingly. An example would be a cooling tower where the cooling tower would cool the condenser loop with all of its available capacity and not be limited by a capacity range or setpoint. Uncontrolled loop operation simply specifies a group of equipment that runs `uncontrolled'. If the loop runs, this equipment will run also, unless turned off by the loop flow resolver to maintain continuity in the fluid loop. \subsubsection{Cooling Load Range Based Operation or Heating Load Range Based Operation}\label{cooling-load-range-based-operation-or-heating-load-range-based-operation} -PlantEquipmentOperation:CoolingLoad (or PlantEquipmentOperation:HeatingLoad) defines the different ranges and which equipment list is valid for each range. In each trio, there is a lower limit for the load range, an upper limit for the load range, and a name that links to an equipment availability list (PlantEquipmentList). Load range operation is used when the loop load is calculated and then the equipment is selected in the proper range. This allows for the most efficient operation of the plant equipment or for the user to determine the most efficient plant configuration. When the equipment list has been deteremined then the load is allocated to the equipment in a manner selected by the user with ``Optimal or Sequential'' load distribution scheme. The load range based operation scheme has two statements associated with it: a main statement that defines the ranges that individual priority settings are valid and the lists of equipment that may be used for each range. +PlantEquipmentOperation:CoolingLoad (or PlantEquipmentOperation:HeatingLoad) defines the different ranges and which equipment list is valid for each range. In each trio, there is a lower limit for the load range, an upper limit for the load range, and a name that links to an equipment availability list (PlantEquipmentList). Load range operation is used when the loop load is calculated and then the equipment is selected in the proper range. This allows for the most efficient operation of the plant equipment or for the user to determine the most efficient plant configuration. When the equipment list has been determined then the load is allocated to the equipment in a manner selected by the user with ``Optimal or Sequential'' load distribution scheme. The load range based operation scheme has two statements associated with it: a main statement that defines the ranges that individual priority settings are valid and the lists of equipment that may be used for each range. \subsubsection{Outdoor Drybulb Range Based Operation, Outdoor Wetbulb Range Based Operation, Outdoor RHPercent Range Based Operation}\label{outdoor-drybulb-range-based-operation-outdoor-wetbulb-range-based-operation-outdoor-rhpercent-range-based-operation} @@ -566,15 +566,15 @@ \subsubsection{Outdoor Drybulb Range Based Operation, Outdoor Wetbulb Range Base \subsection{Condenser Operation Schemes}\label{condenser-operation-schemes} -This is very similar to the plant operation schemes, but there are several more options avaible with the CondenserLoop. The condenser operation schemes apply to the equipment on the `supply side' of the condenser loop---pumps, cooling towers, ground coupled heat exchangers, etc. The keywords select the algorithm that will be used to determine which equipment is available for each time step. The `\emph{Range Based Operation'} schemes select a user specified set of equipment for each user specified range of a particular simulation variable. `\emph{Load} \emph{Range} \emph{Based'} ~schemes compare the demand on the condenser supply side with specified load ranges and associated equipment lists. `\emph{Outdoor\ldots{}Range Based'} schemes compare the current value of an environmental parameter with user specified ranges of that parameter. See the Input Output Reference for input field details. +This is very similar to the plant operation schemes, but there are several more options available with the CondenserLoop. The condenser operation schemes apply to the equipment on the `supply side' of the condenser loop---pumps, cooling towers, ground coupled heat exchangers, etc. The keywords select the algorithm that will be used to determine which equipment is available for each time step. The `\emph{Range Based Operation'} schemes select a user specified set of equipment for each user specified range of a particular simulation variable. `\emph{Load} \emph{Range} \emph{Based'} ~schemes compare the demand on the condenser supply side with specified load ranges and associated equipment lists. `\emph{Outdoor\ldots{}Range Based'} schemes compare the current value of an environmental parameter with user specified ranges of that parameter. See the Input Output Reference for input field details. \subsubsection{Uncontrolled Loop Operation}\label{uncontrolled-loop-operation-1} -The PlantEquipmentOperation:Uncontrolled scheme takes the full capacity of the supply equipment and cools or heats the loop accordingly. An example would be a cooling tower where the cooling tower would cool the condenser loop with all of its available capacity and not be limioted by a capacity range or setpoint. Uncontrolled loop operation simply specifies a group of equipment that runs `uncontrolled'. If the loop runs, this equipment will run also, unless turned off by the loop flow resolver to maintain continuity in the fluid loop. +The PlantEquipmentOperation:Uncontrolled scheme takes the full capacity of the supply equipment and cools or heats the loop accordingly. An example would be a cooling tower where the cooling tower would cool the condenser loop with all of its available capacity and not be limited by a capacity range or setpoint. Uncontrolled loop operation simply specifies a group of equipment that runs `uncontrolled'. If the loop runs, this equipment will run also, unless turned off by the loop flow resolver to maintain continuity in the fluid loop. \subsubsection{Cooling Load Range Based Operation or Heating Load Range Based Operation}\label{cooling-load-range-based-operation-or-heating-load-range-based-operation-1} -PlantEquipmentOperation:CoolingLoad (or PlantEquipmentOperation:HeatingLoad) statement defines the different ranges and which equipment list is valid for each range. In each trio, there is a lower limit for the load range, an upper limit for the load range, and a name that links to an equipment availability list (CondenserEquipmentList). Load range operation is used when the loop load is calculated and then the equipment is selected in the proper range. This allows for the most efficient operation of the plant equipment or for the user to determine the most efficient plant configuration. When the equipment list has been deteremined then the load is allocated to the equipment in a manner selected by the user with ``Optimal or Sequential'' load distribution scheme. The load range based operation scheme has two statements associated with it: a main statement that defines the ranges that individual priority settings are valid and the lists of equipment that may be used for each range. +PlantEquipmentOperation:CoolingLoad (or PlantEquipmentOperation:HeatingLoad) statement defines the different ranges and which equipment list is valid for each range. In each trio, there is a lower limit for the load range, an upper limit for the load range, and a name that links to an equipment availability list (CondenserEquipmentList). Load range operation is used when the loop load is calculated and then the equipment is selected in the proper range. This allows for the most efficient operation of the plant equipment or for the user to determine the most efficient plant configuration. When the equipment list has been determined then the load is allocated to the equipment in a manner selected by the user with ``Optimal or Sequential'' load distribution scheme. The load range based operation scheme has two statements associated with it: a main statement that defines the ranges that individual priority settings are valid and the lists of equipment that may be used for each range. \subsubsection{Outdoor Drybulb Range Based Operation, Outdoor Wetbulb Range Based Operation, Outdoor RHPercent Range Based Operation}\label{outdoor-drybulb-range-based-operation-outdoor-wetbulb-range-based-operation-outdoor-rhpercent-range-based-operation-1} diff --git a/doc/engineering-reference/src/building-system-simulation-system-manager/steam-systems-and-component-models.tex b/doc/engineering-reference/src/building-system-simulation-system-manager/steam-systems-and-component-models.tex index a06559f989a..4f67afa0cf5 100644 --- a/doc/engineering-reference/src/building-system-simulation-system-manager/steam-systems-and-component-models.tex +++ b/doc/engineering-reference/src/building-system-simulation-system-manager/steam-systems-and-component-models.tex @@ -468,7 +468,7 @@ \subsection{Steam Pipe}\label{steam-pipe} \subsubsection{Description of Model}\label{description-of-model-1} -The steam pipe essentially serves as ``energy carrier'' and transfers the node conditions from one point of the pipe to another.~ It's simply a node inlet to node outlet connection, transferring values from inlet to outlet.~ The pipe forms an important part of the framework connecting various equipments from the supply to demand side and inlet and outlets of the equipments. +The steam pipe essentially serves as ``energy carrier'' and transfers the node conditions from one point of the pipe to another.~ It's simply a node inlet to node outlet connection, transferring values from inlet to outlet.~ The pipe forms an important part of the framework connecting various equipment from the supply to demand side and inlet and outlets of the equipment. The steam pipe supports two additional properties, which are pressure and quality, unlike its water counterpart.~ Pipe simulation model in EnergyPlus is hardwired to water as a fluid type; this necessitated the development of similar model supporting pressure and quality for the steam system. diff --git a/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex b/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex index 818ced83093..8982157d14b 100644 --- a/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex +++ b/doc/engineering-reference/src/building-system-simulation-system-manager/zone-equipment-simulation.tex @@ -163,7 +163,7 @@ \subsection{Simulation}\label{simulation-003} \subsection{Zone Equipment Load Distribution}\label{zone-equipment-load-distribution} -The function \emph{DistributeSystemOutputRequired} allocates the curent zone load among the available pieces of zone equipment for the current load type (cooling, heating, or no-load). Because some air loop components such as AirLoopHVAC:UnitarySystem may be controlled based on a control zone load, the sequenced loads must be known prior to the final iteration of the HVAC simulation so that the air loop equipment will adjust its output accordingly. When the zone equipment list is initially read, the maximum number of equipment across all zones is used to set the number of air loop iterations required after the initial iteration, \emph{MinAirLoopIterationsAfterFirst}. The control sequence is shown below. +The function \emph{DistributeSystemOutputRequired} allocates the current zone load among the available pieces of zone equipment for the current load type (cooling, heating, or no-load). Because some air loop components such as AirLoopHVAC:UnitarySystem may be controlled based on a control zone load, the sequenced loads must be known prior to the final iteration of the HVAC simulation so that the air loop equipment will adjust its output accordingly. When the zone equipment list is initially read, the maximum number of equipment across all zones is used to set the number of air loop iterations required after the initial iteration, \emph{MinAirLoopIterationsAfterFirst}. The control sequence is shown below. \begin{enumerate} \item Initial iteration (\emph{FirstHVACIteration} is true) @@ -188,7 +188,7 @@ \subsection{Zone Equipment Load Distribution}\label{zone-equipment-load-distribu \item UniformLoad - The sequenced loads for all active equipment are set to the full load divided by the number of active pieces of equipment. All inactive sequenced loads are set to zero. \item - UniformPLR - Using the current equipment capacities (stored during the initial iteration), distribute the load among the availalbe pieces of equipment, such that each one is operating at the same part load ratio (PLR). + UniformPLR - Using the current equipment capacities (stored during the initial iteration), distribute the load among the available pieces of equipment, such that each one is operating at the same part load ratio (PLR). \item SequentialUniformPLR - Using the current equipment capacities (stored during the initial iteration), determine how many of the available pieces of equipment are required to meet the current full load. Then distribute the load among those pieces of equipment, such that each one is operating at the same part load ratio (PLR). \end{itemize} diff --git a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex index 7aeb04899d8..03252562a49 100644 --- a/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex +++ b/doc/engineering-reference/src/climate-sky-and-solar-shading-calculations/shading-module.tex @@ -337,7 +337,7 @@ \subsubsection{Polygon Clipping Algorithms}\label{polygon-clipping-algorithms} y'_2 = y_0 + t_2 \Delta y \end{equation} -The Slater-Barsky algorithm uses space subdivision to reduce the number of pre-emptive calculations. We break the plane into 9 parts, where region (4) is the clipping region. +The Slater-Barsky algorithm uses space subdivision to reduce the number of preemptive calculations. We break the plane into 9 parts, where region (4) is the clipping region. | 6 | 7 | 8 | \\ @@ -592,7 +592,7 @@ \subsubsection{FulInteriorAndlExteriorWithReflections}\label{fulinteriorandlexte \subsection{Details of the Interior Solar Distribution Calculation}\label{details-of-the-interior-solar-distribution-calculation} -EnergyPlus calculates the distribution of short-wave radiation in the interior of each thermal zone. This radiation consists of beam solar radiation, diffuse solar radiation, and short-wave radiation from electric lights. The program determines the amount of this radiation that is (1) absorbed on the inside face of opaque surfaces, (2) absorbed in the glass and shading device layers of the zone's exterior and interior windows, (3) transmitted through the zone's interior windows to adjacent zones, and (4) transmitted back out of the exterior windows. The effects of movable shading devices on the exterior windows are taken into account; \emph{the program does not allow shading devices on interior windows}. Most of this calculation is done in subroutine CalcInteriorSolarDistribution in the SolarShading module. EnergyPlus will use either Polygon Clipping or Pixel Counting--depending on the method of shading algorithm selected by the user--to determine interior solar distibution if full interior solar distribution is requested. +EnergyPlus calculates the distribution of short-wave radiation in the interior of each thermal zone. This radiation consists of beam solar radiation, diffuse solar radiation, and short-wave radiation from electric lights. The program determines the amount of this radiation that is (1) absorbed on the inside face of opaque surfaces, (2) absorbed in the glass and shading device layers of the zone's exterior and interior windows, (3) transmitted through the zone's interior windows to adjacent zones, and (4) transmitted back out of the exterior windows. The effects of movable shading devices on the exterior windows are taken into account; \emph{the program does not allow shading devices on interior windows}. Most of this calculation is done in subroutine CalcInteriorSolarDistribution in the SolarShading module. EnergyPlus will use either Polygon Clipping or Pixel Counting--depending on the method of shading algorithm selected by the user--to determine interior solar distribution if full interior solar distribution is requested. \subsubsection{Initial Distribution of Diffuse Solar Transmitted through Exterior and Interior Windows}\label{initial-distribution-of-diffuse-solar-transmitted-through-exterior-and-interior-windows} diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/complex-fenestration-daylighting-calculations.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/complex-fenestration-daylighting-calculations.tex index 6669ae4c8f9..8b1fc00fd3b 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/complex-fenestration-daylighting-calculations.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/complex-fenestration-daylighting-calculations.tex @@ -10,7 +10,7 @@ \section{Complex Fenestration Daylighting Calculations}\label{complex-fenestrati \subsection{Internal Average Reflected Illuminance From Window}\label{internal-average-reflected-illuminance-from-window} -To calculate internal average reflected illumiance from the window it is necessary to calculate transmitted flux at the window.~ Observing an infinitesimal window element, illuminance can originate from the sky or sun, and in both cases the ray can reach the window directly or after reflecting from the ground.~ Based on this, the calculation of luminance at the window is divided into three parts: +To calculate internal average reflected illuminance from the window it is necessary to calculate transmitted flux at the window.~ Observing an infinitesimal window element, illuminance can originate from the sky or sun, and in both cases the ray can reach the window directly or after reflecting from the ground.~ Based on this, the calculation of luminance at the window is divided into three parts: \begin{itemize} \item @@ -23,7 +23,7 @@ \subsection{Internal Average Reflected Illuminance From Window}\label{internal-a where total illuminance will be calculated as a superposition of these three parts. -For any case, illuminace at a window element can be calculated by using the following general approach: +For any case, illuminance at a window element can be calculated by using the following general approach: \begin{equation} dE{W_{at\_window}} = Lu{m_{el}}({\theta_{el}},{\phi_{el}}) \cdot cos({\beta_{el}}) \cdot \cos ({\phi_{el}}) \cdot d{\theta_{el}} \cdot d{\phi_{el}} @@ -48,7 +48,7 @@ \subsection{Internal Average Reflected Illuminance From Window}\label{internal-a Integrating luminous flux given by Equation~\ref{eq:IlluminanceAtWindowElement} over entire window area will give luminous flux on the interior side of the window. -To calculate the interan average reflected illumiance from the window, a simillar approch will be used as described in the chapter ``Internally-Reflected Component of Interior Daylight Illuminance'', which gives the flux balance equation: +To calculate the internal average reflected illuminance from the window, a similar approach will be used as described in the chapter ``Internally-Reflected Component of Interior Daylight Illuminance'', which gives the flux balance equation: \begin{equation} A \cdot {E_r} \cdot (1 - \rho ) = {F_1} diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex index f8b97372051..66d9ca216a6 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/daylight-factor-calculation.tex @@ -249,7 +249,7 @@ \subsubsection{Overcast Sky}\label{overcast-sky} \subsection{Direct Normal Solar Illuminance}\label{direct-normal-solar-illuminance} -For purposes of calculating daylight factors associated with beam solar illuminance, the direct normal solar illuminance is taken to be 1.0 W/m\(^{2}\). The actual direct normal solar illuminance, determined from direct normal solar irradiance from the weather file and empirically-determined luminious efficacy, is used in the time-step calculation. +For purposes of calculating daylight factors associated with beam solar illuminance, the direct normal solar illuminance is taken to be 1.0 W/m\(^{2}\). The actual direct normal solar illuminance, determined from direct normal solar irradiance from the weather file and empirically-determined luminous efficacy, is used in the time-step calculation. \subsection{Exterior Horizontal Illuminance}\label{exterior-horizontal-illuminance} diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex index aad9067f266..db70e97ff72 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/daylighting-devices.tex @@ -169,7 +169,7 @@ \subsubsection{Solar Gains}\label{solar-gains} \(\tau_{diff,horiz}\) = diffuse transmittance of the horizon, derived below -It is important to note that transmittances above are for the total TDD.~ The transmittance of the dome and diffuser must be included to account for their angular dependences as well. +It is important to note that transmittances above are for the total TDD.~ The transmittance of the dome and diffuser must be included to account for their angular dependencies as well. The beam transmittance is used as an approximation for all circumsolar radiation. @@ -300,7 +300,7 @@ \subsubsection{References}\label{references-016} \subsection{Daylighting Shelves}\label{daylighting-shelves} -The input object DaylightingDevice:Shelf provides a special model for light shelves used to augment daylighting.~ Light shelves are constructed from up to three components: a window, an inside shelf, and an outside shelf.~ The inside shelf acts to reflect all transmitted light from the upper window onto the ceiling of the zone as diffuse light.~ The outside shelf changes the amount of light incident on the window.~ All light reflected from the outside shelf also goes onto the zone ceiling.~ The inside shelf and outside shelf are both optional.~ However, if neither shelf is specifed, the daylighting shelf object has no effect on the simulation. +The input object DaylightingDevice:Shelf provides a special model for light shelves used to augment daylighting.~ Light shelves are constructed from up to three components: a window, an inside shelf, and an outside shelf.~ The inside shelf acts to reflect all transmitted light from the upper window onto the ceiling of the zone as diffuse light.~ The outside shelf changes the amount of light incident on the window.~ All light reflected from the outside shelf also goes onto the zone ceiling.~ The inside shelf and outside shelf are both optional.~ However, if neither shelf is specified, the daylighting shelf object has no effect on the simulation. The window is divided into two window surfaces: an upper window and a lower window.~ The upper window interacts with the daylighting shelf but the lower window does not, except to receive shading from the outside shelf. diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/delight-daylighting-calculations.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/delight-daylighting-calculations.tex index add34d3bb75..e09ce4ceb71 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/delight-daylighting-calculations.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/delight-daylighting-calculations.tex @@ -6,7 +6,7 @@ \section{DElight Daylighting Calculations}\label{delight-daylighting-calculation The DElight daylighting calculation has three main steps: -1.~~~~\emph{Daylight Factor Calculation:}~ Daylight factors, which are ratios of interior illuminance to exterior horizontal illuminance, are pre-calculated and stored for later use. The user spcifies the coordinates of one or more reference points in each daylit zone. DElight first calculates the contribution of light transmitted through all simple and complex fenestration systems in the zone to the illuminance at each reference point, and to the luminance at subdivided nodal patches of interior surfaces, for a given exterior luminous environment (including sky, sun, and exterior reflecting surfaces).~ The effect of inter-reflection of this initial light between interior reflecting surfaces is then calculated, resulting in a final total illuminance at each reference point.~ This total illuminace is then divided by the exterior horizontal illuminance for the given exterior environment to give a daylight factor.~ Daylight factors are calculated for each reference point, for a set of sun positions and sky conditions that are representative of the building location. +1.~~~~\emph{Daylight Factor Calculation:}~ Daylight factors, which are ratios of interior illuminance to exterior horizontal illuminance, are pre-calculated and stored for later use. The user specifies the coordinates of one or more reference points in each daylit zone. DElight first calculates the contribution of light transmitted through all simple and complex fenestration systems in the zone to the illuminance at each reference point, and to the luminance at subdivided nodal patches of interior surfaces, for a given exterior luminous environment (including sky, sun, and exterior reflecting surfaces).~ The effect of inter-reflection of this initial light between interior reflecting surfaces is then calculated, resulting in a final total illuminance at each reference point.~ This total illuminance is then divided by the exterior horizontal illuminance for the given exterior environment to give a daylight factor.~ Daylight factors are calculated for each reference point, for a set of sun positions and sky conditions that are representative of the building location. 2.~~~~\emph{Time-Step Interior Daylighting Calculation}:~ A daylighting calculation is performed for each heat-balance time step when the sun is up. In this calculation the illuminance at the reference points in each zone is found by interpolating the stored daylight factors using the current time step sun position and sky condition, then multiplying by the exterior horizontal illuminance. @@ -16,7 +16,7 @@ \subsection{DElight Daylight Factor Calculation Differences from SplitFlux Metho \begin{itemize} \item - \emph{Initial Interior Illuminance/Luminance Calculation:}~ DElight calculates the total initial contribution of light transmitted through all simple fenestration systems (i.e., windows and skylights) in the zone to the illuminance at each reference point, and to the luminance at each gridded nodal patch of interior surfaces.~ This differs from the models behind the ``Daylighting:Controls'' object using the SplitFlux Daylighting Method (henceforth referred to as ``SplitFlux'') in two ways. The first is that SplitFlux calculates initial illuminace values at reference points for each pair of reference point and aperture (window/skylight) in the zone, whereas DElight calculates the total contribution from all apertures to each reference point.~ The second difference from SplitFlux is that the initial luminance of interior surface nodal patches is calculated to support the inter-reflection calculation described below.~ This calculation uses the same formula as SplitFlux modified for arbitrarily oriented surfaces (i.e., non-horizontal), and to calculate luminance rather than illuminance.~ Note however, DElight does not account for interior surface obstructions (e.g., partitions) in this initial interior illuminance/luminance distribution.~ The SplitFlux method does account for interior surface obstruction of initial illuminance distribution on reference points. + \emph{Initial Interior Illuminance/Luminance Calculation:}~ DElight calculates the total initial contribution of light transmitted through all simple fenestration systems (i.e., windows and skylights) in the zone to the illuminance at each reference point, and to the luminance at each gridded nodal patch of interior surfaces.~ This differs from the models behind the ``Daylighting:Controls'' object using the SplitFlux Daylighting Method (henceforth referred to as ``SplitFlux'') in two ways. The first is that SplitFlux calculates initial illuminance values at reference points for each pair of reference point and aperture (window/skylight) in the zone, whereas DElight calculates the total contribution from all apertures to each reference point.~ The second difference from SplitFlux is that the initial luminance of interior surface nodal patches is calculated to support the inter-reflection calculation described below.~ This calculation uses the same formula as SplitFlux modified for arbitrarily oriented surfaces (i.e., non-horizontal), and to calculate luminance rather than illuminance.~ Note however, DElight does not account for interior surface obstructions (e.g., partitions) in this initial interior illuminance/luminance distribution.~ The SplitFlux method does account for interior surface obstruction of initial illuminance distribution on reference points. \item \emph{Reference Points:}~ DElight allows up to 100 reference points to be arbitrarily positioned with a daylighting zone.~ At this time all reference points are assumed to be oriented on a horizontal virtual surface ``facing'' toward the zenith and ``seeing'' the hemisphere above the horizontal plane. \item diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex index 842ad526950..e3bcd560b57 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/window-calculation-module.tex @@ -6,7 +6,7 @@ \section{Window Calculation Module}\label{window-calculation-module} \begin{itemize} \item - \textbf{\emph{Glazing}}, which consists of one or more plane/parallel glass layers. If there are two or more glass layers, the layers are separated by gaps filled with air or another gas. The glazing optical and thermal calculations are based on algorithms from the WINDOW 4 and WINDOW 5 programs {[}Arasteh et al., 1989{]}, {[}Finlayson et al., 1993{]}.~ Glazing layers are described using te input object WindowMaterial:Glazing. + \textbf{\emph{Glazing}}, which consists of one or more plane/parallel glass layers. If there are two or more glass layers, the layers are separated by gaps filled with air or another gas. The glazing optical and thermal calculations are based on algorithms from the WINDOW 4 and WINDOW 5 programs {[}Arasteh et al., 1989{]}, {[}Finlayson et al., 1993{]}.~ Glazing layers are described using the input object WindowMaterial:Glazing. \item \textbf{\emph{Gap}}, layers filled with air or another gas that separate glazing layers.~ Gaps are described using the input object WindowMaterial:Gas. \item @@ -19,7 +19,7 @@ \section{Window Calculation Module}\label{window-calculation-module} In the following, the description of the layer-by-layer glazing algorithms is based on material from Finlayson et al., 1993. The frame and divider thermal model, and the shading device optical and thermal models, are new to EnergyPlus. -A second approch has been developed where windows are modeled in a simplified approach that requires minimal user input that is processed to develop and equivalent layer that then reuses much of the layer-by-model.~ This ``Simple Window Construction: model is described below. +A second approach has been developed where windows are modeled in a simplified approach that requires minimal user input that is processed to develop and equivalent layer that then reuses much of the layer-by-model.~ This ``Simple Window Construction: model is described below. \subsection{Optical Properties of Glazing}\label{optical-properties-of-glazing} @@ -175,7 +175,7 @@ \subsubsection{Step 1.~ Determine glass-to-glass Resistance.}\label{step-1.-dete \({R_{o,w}}\)~is the resistance of the exterior film coefficient under standard winter conditions in units of m\(^{2}\)·K/W, and -\({R_{l,w}}\)~is the resisance of the bare window under winter conditions (without the film coefficients) in units of m\(^{2}\)·K/W. +\({R_{l,w}}\)~is the resistance of the bare window under winter conditions (without the film coefficients) in units of m\(^{2}\)·K/W. The values for \({R_{i,w}}\)~and \({R_{o,w}}\)~depend on U and are calculated using the following correlations. @@ -197,7 +197,7 @@ \subsubsection{Step 1.~ Determine glass-to-glass Resistance.}\label{step-1.-dete {R_{l,w}} = \frac{1}{U} - {R_{i,w}} - {R_{o,w}} \end{equation} -Because the window model in EnergyPlus is for flat geometries, the models are not necessarily applicable to low-performance projecting products, such as skylights with unisulated curbs.~ The model cannot support glazing systems with a U higher than 7.0 because the thermal resistance of the film coefficients alone can provide this level of performance and none of the various resistances can be negative. +Because the window model in EnergyPlus is for flat geometries, the models are not necessarily applicable to low-performance projecting products, such as skylights with uninsulated curbs.~ The model cannot support glazing systems with a U higher than 7.0 because the thermal resistance of the film coefficients alone can provide this level of performance and none of the various resistances can be negative. \subsubsection{Step 2.~ Determine Layer Thickness.}\label{step-2.-determine-layer-thickness.} @@ -559,7 +559,7 @@ \subsection{Calculation of Angular Properties}\label{calculation-of-angular-prop \subsubsection{Angular Properties for Uncoated Glass}\label{angular-properties-for-uncoated-glass} -The following discussion assumes that optical quantities such as transmissivity, reflectvity, absorptivity, and index of refraction are a function of wavelength, λ. If there are no spectral data the angular dependence is calculated based on the single values for transmittance and reflectance in the visible and solar range. In the visible range an average wavelength of 0.575 microns is used in the calculations. In the solar range an average wavelength of 0.898 microns is used. +The following discussion assumes that optical quantities such as transmissivity, reflectivity, absorptivity, and index of refraction are a function of wavelength, λ. If there are no spectral data the angular dependence is calculated based on the single values for transmittance and reflectance in the visible and solar range. In the visible range an average wavelength of 0.575 microns is used in the calculations. In the solar range an average wavelength of 0.898 microns is used. The spectral data include the transmittance, \emph{T}, and the reflectance, \emph{R}. For uncoated glass the reflectance is the same for the front and back surfaces. For angle of incidence, \(\phi\) , the transmittance and reflectance are related to the transmissivity, \(\tau\), and reflectivity, \(\rho\), by the following relationships: @@ -707,7 +707,7 @@ \subsection{Optical Properties of Window Shading Devices}\label{optical-properti With ``Switchable glazing,'' shading is achieved making the glazing more absorbing or more reflecting, usually by an electrical or chemical mechanism. An example is electrochromic glazing where the application of an electrical voltage or current causes the glazing to switch from light to dark. -Shades and blinds can be either fixed or moveable. If moveable, they can be deployed according to a schedule or according to a trigger variable, such as solar radiation incident on the window. Screens can be either fixed or moveable according to a schedule. +Shades and blinds can be either fixed or movable. If movable, they can be deployed according to a schedule or according to a trigger variable, such as solar radiation incident on the window. Screens can be either fixed or movable according to a schedule. \subsubsection{Shades}\label{shades} @@ -1134,7 +1134,7 @@ \subsubsection{Diffuse-to-Diffuse Transmittance and Reflectance of Blind}\label{ \subsubsection{Blind properties for sky and ground diffuse radiation}\label{blind-properties-for-sky-and-ground-diffuse-radiation} -For horizontal slats on a vertical window (the most common configuration) the blind diffuse-to-diffuse properties will be sensitve to whether the radiation is incident upward from the ground or downward from the sky (Figure~\ref{fig:side-view-of-horizontal-slats-in-a-vertical}). For this reason we also calculate the following solar properties for a blind consisting of horizontal slats in a vertical plane: +For horizontal slats on a vertical window (the most common configuration) the blind diffuse-to-diffuse properties will be sensitive to whether the radiation is incident upward from the ground or downward from the sky (Figure~\ref{fig:side-view-of-horizontal-slats-in-a-vertical}). For this reason we also calculate the following solar properties for a blind consisting of horizontal slats in a vertical plane: \(\tau_{bl,f}^{gnd - dif,dif} = {\rm{ }}\) front transmittance for ground diffuse solar @@ -1960,13 +1960,13 @@ \subsubsection{Solar Radiation Transmitted and Absorbed by a Window/Screen Syste \subsection{Complex Fenestration Calculation Module}\label{complex-fenestration-calculation-module} -This section describes detailed method for modeling complex fenestration systems, including shading devices and general fenestration attachments. This detailed method primarily refers to the optical side of modeling complex fenestration systems. Thermal modeling is done according to ISO 15099 standard, which is described in the Window Heat Balance Calculation section with the addition of deflection and vacuum glazing systems modeling and some modifications to shading layer algorithms, which is described in Shading Device Thermal Model section. Optical caclulations in this method are done using Bidirectional Scattering Distribution Function (BSDF) approach.~ The concept behind BSDF is based on the definition of descrete set of incident and outgoing angles, which fully describes optical performance of any system, simple or complex, limited only by the resolution of angular discretization.~ In this method each layer, as well as the whole system is described by a matrix of incident and outgoing angles. +This section describes detailed method for modeling complex fenestration systems, including shading devices and general fenestration attachments. This detailed method primarily refers to the optical side of modeling complex fenestration systems. Thermal modeling is done according to ISO 15099 standard, which is described in the Window Heat Balance Calculation section with the addition of deflection and vacuum glazing systems modeling and some modifications to shading layer algorithms, which is described in Shading Device Thermal Model section. Optical calculations in this method are done using Bidirectional Scattering Distribution Function (BSDF) approach.~ The concept behind BSDF is based on the definition of discrete set of incident and outgoing angles, which fully describes optical performance of any system, simple or complex, limited only by the resolution of angular discretization.~ In this method each layer, as well as the whole system is described by a matrix of incident and outgoing angles. \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fenestration-solar-optical-calculations} \paragraph{\textbf{Solar radiation calculation outline}}\label{solar-radiation-calculation-outline} -For solar radiation calculations, each of the layers as well as entire glazing system can be represented with the set of Bi-directional Scattering Distribution Functions or BSDF, consisting of Bi-directional Reflectance Distribution Function or BRDF and Bi-directional Transmittance Distribution Function or BTDF.~ Each function is a matrix 145 x 145 that describes reflectance or transmittance distribution in the outgoing hemisphere for each incident angle in the incidence hemisphere.~ For each function there is forward and back matrix, for a total of 4 145 x 145 matrices.~ Depending on the purpose of calculations, description of entire glazing system is divided into solar and visible spectrum, which means that there can be 8 matrices describing visible and complete solar spectrums.~ Reflectance and transmittance being non-dimnsional ratios of reflected or transmitted energy over incident energy, in order to get total reflected and transmitted energy it is necessary to supply vector of incident solar energy, which usually consists of direct and diffuse radition.Specifics of calculations of direct and diffuse solar radiationis be described in some detail in oncoming chapters. +For solar radiation calculations, each of the layers as well as entire glazing system can be represented with the set of Bi-directional Scattering Distribution Functions or BSDF, consisting of Bi-directional Reflectance Distribution Function or BRDF and Bi-directional Transmittance Distribution Function or BTDF.~ Each function is a matrix 145 x 145 that describes reflectance or transmittance distribution in the outgoing hemisphere for each incident angle in the incidence hemisphere.~ For each function there is forward and back matrix, for a total of 4 145 x 145 matrices.~ Depending on the purpose of calculations, description of entire glazing system is divided into solar and visible spectrum, which means that there can be 8 matrices describing visible and complete solar spectrums.~ Reflectance and transmittance being non-dimensional ratios of reflected or transmitted energy over incident energy, in order to get total reflected and transmitted energy it is necessary to supply vector of incident solar energy, which usually consists of direct and diffuse radiation.Specifics of calculations of direct and diffuse solar radiation is be described in some detail in oncoming chapters. \subparagraph{\textbf{Scattering (Non-Specular) Glazing and Shading Devices}}\label{scattering-non-specular-glazing-and-shading-devices} @@ -2679,7 +2679,7 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Z\(^{(sp,Sf,n),k}_{r(t)}\) & Exterior surface specular irradiation factor; N\(^{(Sf,n)}_{Sun}\) X N\(_{Sf}\) X N\(_{IntSurf}\) \tabularnewline Z\(^{(Sun,Sf,n),k}_{s(t)}\) & Exterior surface direct-diffuse irradiation factor; N\(^{(Sf,n)}_{Sun}\) X N\(_{Sf}\) X N\(_{IntSurf}\) \tabularnewline Z\(^{(Sky,Sf,n),k}\) & Exterior surface sky irradiation factor; N\(_{Sf}\) X N\(_{IntSurf}\) \tabularnewline -Z\(^{(D,Gnd),k}_{s(t)}\) & Ground-reflected direct solar irradiaton factor (given sun direction s(\emph{t})); N\(^{(Gnd)}_{Sun}\) X N\(_{IntSurf}\) \tabularnewline +Z\(^{(D,Gnd),k}_{s(t)}\) & Ground-reflected direct solar irradiation factor (given sun direction s(\emph{t})); N\(^{(Gnd)}_{Sun}\) X N\(_{IntSurf}\) \tabularnewline Z\(^{(Sky,Gnd),k}\) & Ground-reflected diffuse solar irradiation factor; N\(_{IntSurf}\) \tabularnewline Z\(^{(Sun),k}_{s(t)}\) & Direct solar irradiation factor; N\(_{Sun}\) X N\(_{IntSurf}\) \tabularnewline K\(^{(Sky),l}\) & Sky absorption factor; N\(_{Layers}\) \tabularnewline @@ -2770,11 +2770,11 @@ \subsubsection{Complex Fenestration Solar-Optical Calculations}\label{complex-fe Distribution of solar radiation transmitted through exterior window is divided on diffuse and direct part. -Diffuse solar transmitted through exterior complex fenestration and absorbed in interor walls is calculated and treated in same way as described in the section on Initial Distribution of Diffuse Solar Transmitted through Exterior and Interior Windows. Even though that BSDF is given for various directions, for purpose of diffuse solar radiation, transmittance and reflectances of fenestration system is integrated over incoming and outgoing hemisphere.~ Because incoming diffuse solar radiation is divided on ground and sky parts, integration of incoming hemisphere is also perfomed over ground and sky part (see Equation~\ref{eq:SSfnpTEquation}). +Diffuse solar transmitted through exterior complex fenestration and absorbed in interior walls is calculated and treated in same way as described in the section on Initial Distribution of Diffuse Solar Transmitted through Exterior and Interior Windows. Even though that BSDF is given for various directions, for purpose of diffuse solar radiation, transmittance and reflectances of fenestration system is integrated over incoming and outgoing hemisphere.~ Because incoming diffuse solar radiation is divided on ground and sky parts, integration of incoming hemisphere is also performed over ground and sky part (see Equation~\ref{eq:SSfnpTEquation}). Direct Solar Radiation Transmitted by Complex Fenestration -Direct solar (beam) transmitted through exterior window is using same overlap calculations (see Figure~\ref{fig:vertical-section-through-a-two-zone-building}) for each outgoing basis direction.~ For certain sun position, algorithm calculatates equivalent incoming beam number.~ The inside beam solar irradiance is calculated in similar manner as described in the section titled Interior Beam Radiation. +Direct solar (beam) transmitted through exterior window is using same overlap calculations (see Figure~\ref{fig:vertical-section-through-a-two-zone-building}) for each outgoing basis direction.~ For certain sun position, algorithm calculates equivalent incoming beam number.~ The inside beam solar irradiance is calculated in similar manner as described in the section titled Interior Beam Radiation. \begin{equation} \begin{split} diff --git a/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex b/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex index b4af846ae61..a6714f41d39 100644 --- a/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex +++ b/doc/engineering-reference/src/daylighting-and-window-calculations/window-heat-balance-calculation.tex @@ -173,7 +173,7 @@ \subsection{Room-Side Convection}\label{room-side-convection} Nu = 0.58Ra_H^{{\raise0.7ex\hbox{1} \!\mathord{\left/ {\vphantom {1 5}}\right.}\!\lower0.7ex\hbox{5}}};\;R{a_H} \le {10^{11}} \end{equation} -The material properties are evaluated at the mean film temperature.~ Standard EnergyPlus pyschrometric functions are used for \(\rho\) ~and \({c_p}\).~ Thermal conductivity is calculated using: +The material properties are evaluated at the mean film temperature.~ Standard EnergyPlus psychrometric functions are used for \(\rho\) ~and \({c_p}\).~ Thermal conductivity is calculated using: \begin{equation} \lambda = 2.873 \times {10^{ - 3}} + 7.76 \times {10^{ - 5}}{T_{m,f}} @@ -185,7 +185,7 @@ \subsection{Room-Side Convection}\label{room-side-convection} \mu = 3.723 \times {10^{ - 6}} + 4.94 \times {10^{ - 8}}{T_{m,f}} \end{equation} -This correlation depends on the surface temperature of the room-side glazing surface and is therefore included inside the window heat balance interation loop. +This correlation depends on the surface temperature of the room-side glazing surface and is therefore included inside the window heat balance iteration loop. \subsection{Solving the Glazing Heat Balance Equations}\label{solving-the-glazing-heat-balance-equations} @@ -2149,7 +2149,7 @@ \subsubsection{Calculation of the thermal performance caused by measured deflect \begin{figure}[hbtp] % fig 112 \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/image1798.png} -\caption{Sketch of the non-symetrically Deflected Glazing Panes \protect \label{fig:sketch-of-the-non-symetrically-deflected}} +\caption{Sketch of the non-symmetrically Deflected Glazing Panes \protect \label{fig:sketch-of-the-non-symmetrically-deflected}} \end{figure} If we label the ratio of mean deflection and maximum deflection as R\(_{(i)}\), then: @@ -2298,7 +2298,7 @@ \subsubsection{References}\label{references-1-019} \subsection{Equivalent Layer Fenestration Model}\label{equivalent-layer-fenestration-model} -The section describes the equivalent layer fenestration optical and thermal model. The Equivalent Layer fenestration model can have four types of attachments: drapes, venetian blinds, roller blinds and insect screens. In this model shading layers are assumed to be uniform and can be represented by an equivalent homogenous layer that has spatially-averaged ``effective'' optical and thermal properties (ASHRAE 1311-RP). Likewise, venetian blinds can be characterized using effective optical and thermal properties. When solar radiation strikes a window surface some fraction of the incident solar radiation passes unobstructed through openings in a shading layer and the remaining fraction is intercepted by the structure of the layer. The intercepted radiation is partly absorbed, partly reflected and partly transmitted. These reflected and transmitted components of the scattered solar radiation are assumed to be uniformly diffuse. Shading layers, because of their openness, generally transmit longwave radiation, and the effective infrared properties of shades account for that. Using effective optical properties and a beam/diffuse split of solar radiation at each layer, the equivalent layer approach can represent multi-layer systems. This representation provides virtually unlimited flexibility to combine different types of shading layers in a fenestration. The equivalent layer window model requires a few set of optical data to characterize a particular layer and this set of data is used to calculate effective layer properties. For instance, the effective solar optical properties of a venetian blind can be calculated as a function of slats optical properties and geometry. Also, it is possible to adjust slat angle at each time step in response to the changing angular position of the sun. Moreover, the model provides control strategies as a function of slat angle that can be changed at each time step as needed. Likewise, effective properties of a pleated drape are calculated as a function of fabric properties and a specified value of fullness. The only input data needed to fully characterize drapery fabrics, roller blinds and insect screens are material openness as area fraction, and the transmittance and reflectance at normal incidence. Shade openness area fraction is the same as the beam-beam transmittance at normal incidence. In multilayer fenestration, each layer is separated by a gap. A gap in equivalent layer model is defined by specifying the fill gas and the gap spacing. Currently five gas types are allowed: Air, Argon, Xenon, Krypton and Custom. The convective heat transfer coefficient in a gap is calculated depending on the spacing, the temperatures of the layers and the fill gas properties. Equivalent-layer concept -- offers wide range of multiple glazing and shading layers combination and can simulate multi-layer complex fenestration systems. The effective layer properties of venetian blinds, pleated drapes, roller blinds, and insect screens are calculated from geometric layer models and material properties. A set of empirical correlations for estimating off-normal material properties were developed under ASHRAE research project (ASHRAE 1311-RP). The equivalent layer window model supports many layers of glazing and shade combination in any order but does not support WindowShadingControl. However, the venetian blind model of equivalent layer window model provides three types of blind slat angle control. +The section describes the equivalent layer fenestration optical and thermal model. The Equivalent Layer fenestration model can have four types of attachments: drapes, venetian blinds, roller blinds and insect screens. In this model shading layers are assumed to be uniform and can be represented by an equivalent homogeneous layer that has spatially-averaged ``effective'' optical and thermal properties (ASHRAE 1311-RP). Likewise, venetian blinds can be characterized using effective optical and thermal properties. When solar radiation strikes a window surface some fraction of the incident solar radiation passes unobstructed through openings in a shading layer and the remaining fraction is intercepted by the structure of the layer. The intercepted radiation is partly absorbed, partly reflected and partly transmitted. These reflected and transmitted components of the scattered solar radiation are assumed to be uniformly diffuse. Shading layers, because of their openness, generally transmit longwave radiation, and the effective infrared properties of shades account for that. Using effective optical properties and a beam/diffuse split of solar radiation at each layer, the equivalent layer approach can represent multi-layer systems. This representation provides virtually unlimited flexibility to combine different types of shading layers in a fenestration. The equivalent layer window model requires a few set of optical data to characterize a particular layer and this set of data is used to calculate effective layer properties. For instance, the effective solar optical properties of a venetian blind can be calculated as a function of slats optical properties and geometry. Also, it is possible to adjust slat angle at each time step in response to the changing angular position of the sun. Moreover, the model provides control strategies as a function of slat angle that can be changed at each time step as needed. Likewise, effective properties of a pleated drape are calculated as a function of fabric properties and a specified value of fullness. The only input data needed to fully characterize drapery fabrics, roller blinds and insect screens are material openness as area fraction, and the transmittance and reflectance at normal incidence. Shade openness area fraction is the same as the beam-beam transmittance at normal incidence. In multilayer fenestration, each layer is separated by a gap. A gap in equivalent layer model is defined by specifying the fill gas and the gap spacing. Currently five gas types are allowed: Air, Argon, Xenon, Krypton and Custom. The convective heat transfer coefficient in a gap is calculated depending on the spacing, the temperatures of the layers and the fill gas properties. Equivalent-layer concept -- offers wide range of multiple glazing and shading layers combination and can simulate multi-layer complex fenestration systems. The effective layer properties of venetian blinds, pleated drapes, roller blinds, and insect screens are calculated from geometric layer models and material properties. A set of empirical correlations for estimating off-normal material properties were developed under ASHRAE research project (ASHRAE 1311-RP). The equivalent layer window model supports many layers of glazing and shade combination in any order but does not support WindowShadingControl. However, the venetian blind model of equivalent layer window model provides three types of blind slat angle control. \subsubsection{The Equivalent Layer Analysis}\label{the-equivalent-layer-analysis} @@ -2615,7 +2615,7 @@ \subsubsection{Equivalent Layer Window Solar Model}\label{equivalent-layer-windo \subsubsection{Equivalent Layer Window Thermal Model}\label{equivalent-layer-window-thermal-model} -The equivalent layer thermal model is calculated only once for each time step. But the thermal model has internal iterative solutions scheme. During each time step, the procedure initially assumes that room air and means radiant temperatures are known. The surface heat balance loops through all zone surfaces while invoking the Equivalent Layer thermal model only once for each window surface at the first iteration. The window surfaces temperatures from the first iteration are used to complete the heat balances for the indoor (and implicitly the outdoor) face of each surface iteratively. Once indoor surface temperatures are calculated using the surface heat balance, the zone air temperature can be updated and the loads are predicted. Shaded fenestration in general do not have single inside temperature by virture their long-wave radiation transmittance. The equivalent layer window model accounts for this using effective emissivity of the composite layers derived for each fenestration (ASHRAE 1311-RP) as shown below: +The equivalent layer thermal model is calculated only once for each time step. But the thermal model has internal iterative solutions scheme. During each time step, the procedure initially assumes that room air and means radiant temperatures are known. The surface heat balance loops through all zone surfaces while invoking the Equivalent Layer thermal model only once for each window surface at the first iteration. The window surfaces temperatures from the first iteration are used to complete the heat balances for the indoor (and implicitly the outdoor) face of each surface iteratively. Once indoor surface temperatures are calculated using the surface heat balance, the zone air temperature can be updated and the loads are predicted. Shaded fenestration in general do not have single inside temperature by virtue of their long-wave radiation transmittance. The equivalent layer window model accounts for this using effective emissivity of the composite layers derived for each fenestration (ASHRAE 1311-RP) as shown below: \begin{equation} {\varepsilon ^{eff}} = \sum\limits_{j = 0}^{nl} {\left[ {{\varepsilon_j} \cdot \prod\limits_{k = j{ + 1}}^{nl + {1}} {{\tau_k}} } \right]} @@ -2631,7 +2631,7 @@ \subsubsection{Equivalent Layer Window Thermal Model}\label{equivalent-layer-win \emph{nl~~~ = ~~~~~~~~~} number of layers in fenestration system (glazing and shade). Layers are numbered outside to inside (layer 1 is outermost, layer \emph{nl} is innermost). -Each equivalent layer window surafce yields net longwave radiant flux exchanged with the zone surfaces. Net longwave radiation exchange from the window to the zone is recast for a composite surface temperature calculation as follows: +Each equivalent layer window surface yields net longwave radiant flux exchanged with the zone surfaces. Net longwave radiation exchange from the window to the zone is recast for a composite surface temperature calculation as follows: \begin{equation} {T^{eff}} = \sqrt[4]{{\frac{{{Q_{lw}}}}{{\sigma {\varepsilon ^{eff}}}}}} + {T_0} diff --git a/doc/engineering-reference/src/demand-limiting.tex b/doc/engineering-reference/src/demand-limiting.tex index 4c3e3bc4e8a..4274666b567 100644 --- a/doc/engineering-reference/src/demand-limiting.tex +++ b/doc/engineering-reference/src/demand-limiting.tex @@ -32,7 +32,7 @@ \section{Algorithm}\label{algorithm} HVAC system simulation (air and plant loops) \end{itemize} -The exterior energy use segment is completely independent of the zone heat balance and HVAC system simulation.~ Exterior energy use handles energy use accounting for exterior lights and exterior equipment that are outside of the building and are not part of the zone heat balance.~ The zone heat balance segment includes all of the surface heat balances, internal heat gains, and air flows.~ The HVAC system simulation includes air and plant loops with their associated HVAC components.~ The behaviour of the HVAC system depends on the results of the zone heat balance.~ The HVAC system simulation operates on a variable ``system'' time step which is automatically shortened if necessary for stability. +The exterior energy use segment is completely independent of the zone heat balance and HVAC system simulation.~ Exterior energy use handles energy use accounting for exterior lights and exterior equipment that are outside of the building and are not part of the zone heat balance.~ The zone heat balance segment includes all of the surface heat balances, internal heat gains, and air flows.~ The HVAC system simulation includes air and plant loops with their associated HVAC components.~ The behavior of the HVAC system depends on the results of the zone heat balance.~ The HVAC system simulation operates on a variable ``system'' time step which is automatically shortened if necessary for stability. The Demand Manager is called after the first pass through the HVAC system simulation, before the system time step is shortened.~ After evaluating the DemandManagerAssignmentList object, the Demand Manager decides if demand limiting is required.~ If demand limiting is required, the individual DemandManager objects are surveyed to determine which loads can be limited.~ Based on the \emph{Demand Manager Priority} selected, the Demand Manager then decides which DemandManager objects should be activated.~ In turn, the activated DemandManager objects set the demand limiting hooks on their respective load objects.~ Finally, depending on the type of DemandManager objects that were activated, one or more of the major segments of code must be called to be resimulated because the load conditions have changed.~ The code segments depend on the type of DemandManager and the relationship of its load objects to the overall solution method.~ The table below shows the different DemandManager types and the related code segments that must be resimulated. diff --git a/doc/engineering-reference/src/economics-calculations/tariff-computation.tex b/doc/engineering-reference/src/economics-calculations/tariff-computation.tex index 2ee0d888716..e84d9e8f20f 100644 --- a/doc/engineering-reference/src/economics-calculations/tariff-computation.tex +++ b/doc/engineering-reference/src/economics-calculations/tariff-computation.tex @@ -103,7 +103,7 @@ \subsection{Default Order of Computation}\label{default-order-of-computation} The order in which the computation should be made is complicated by the fact that the objects can each have variables that are inputs and others that are outputs.~ Since any of the variables can be used as inputs, we must ensure that they are computed prior to being used. In other words, because the objects allow a great deal of flexibility, there is no simple default order that the computations should be made. -Luckily there are known algorithms for sorting though these types of interdependencies.~ In fact, the method that spreadsheets use for sorting through the dependencies of cell formulas referencing other cells with formula is very similar.~ In addition, linkers (used as part of the computer language compiling process) face similar issues of sorting through dependences. Figuring out the optimal path in a complex project represented by a PERT Chart also uses a similar algorithm. +Luckily there are known algorithms for sorting though these types of interdependencies.~ In fact, the method that spreadsheets use for sorting through the dependencies of cell formulas referencing other cells with formula is very similar.~ In addition, linkers (used as part of the computer language compiling process) face similar issues of sorting through dependencies. Figuring out the optimal path in a complex project represented by a PERT Chart also uses a similar algorithm. Generically, dependency problems are usually characterized as Directed Acycle Graphs (DAGs). A DAG shows the individual formulas as circles and uses arrows between the circles to show which formula is dependent on which other formulas.~ One example algorithm that was used in EnergyPlus is described below: 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 c1cc6685b45..814f26c43d3 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 @@ -109,7 +109,7 @@ \subsubsection{Overall Return Air Balance}\label{overall-return-air-balance} \subsubsection{Allocation of Excess Exhaust Flow}\label{allocation-of-excess-exhaust-flow} -If the total (unbalanced) exhaust fan flow exceeds the supply flow in a given zone, this exhaust flow can be made up with outdoor air by any air loop serving the zone and the return air in other zones on the same air loop(s) will be reduced proportionally. First, the amount of excess exhaust for all zones on a given air loop is totalled. If a zone with excess exhuast is served by more than one air loop, the exhaust is shared by each air loop in proportion to the maximum available outdoor air for a given air loop. +If the total (unbalanced) exhaust fan flow exceeds the supply flow in a given zone, this exhaust flow can be made up with outdoor air by any air loop serving the zone and the return air in other zones on the same air loop(s) will be reduced proportionally. First, the amount of excess exhaust for all zones on a given air loop is totaled. If a zone with excess exhaust is served by more than one air loop, the exhaust is shared by each air loop in proportion to the maximum available outdoor air for a given air loop. \begin{equation} {\dot m_{ExcessExh,i}} = {\sum\nolimits_{j} {\frac{\dot m_{ExcessExh,j} * \dot m_{MaxOA,i}} {\dot m_{TotOA,j}} }} @@ -234,7 +234,7 @@ \subsection{Zone Mixing Flow Rate Calculations}\label{zone-mixing-flow-rate-calc \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. +There are three options for the treatment 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. If a zone is excluded from infiltration adjustments, then the base infiltration rate specified by the Infiltration:* object(s) in the zone is assumed to be self-balanced, and infiltration is not included in the mass flow calculations for that zone. @@ -244,7 +244,7 @@ \subsection{Infiltration Flow Rate Adjustments}\label{infiltration-flow-rate-adj {\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: +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 zone infiltration flow rate is: \begin{equation} {\dot m_{Inf}} = {\dot m_{Inf-base}} + {\dot m_{Inf-required}} diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex index 4fe7e28ca9e..19413a69472 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/component-sizing.tex @@ -205,7 +205,7 @@ \subsubsection{Design Coil Load - System Coils}\label{design-coil-load---system- \paragraph{\textbf{Coil in main air stream, outside air preconditioned} }\label{coil-in-main-air-stream-outside-air-preconditioned} -The oustide air fraction is calculated as (where V\(_{cc,air}\) is calculated as above): +The outside air fraction is calculated as (where V\(_{cc,air}\) is calculated as above): \begin{itemize} \item @@ -382,7 +382,7 @@ \subsubsection{Design Air Inlet Humidity Ratio - Zone Coils}\label{design-air-in \item For fan coil units the design inlet humidity ratio is set to the mixed air humidity ratio: \(W_{air,in,des} = f_{oa}W_{oa,coolpeak} + \left(1-f_{oa}\right)W_{z,coolpeak}\) , where \(f_{oa} = \rho_a \dot V_{z,oa,des} / \dot m_{z,cool,des}\) \item - In all other cases the design inlet humidity ratio is set to the zone design cooling coil inlet hunidity ratio which is calculated in the zone sizing simulation and is basically the same calculation as the fan coil unit. + In all other cases the design inlet humidity ratio is set to the zone design cooling coil inlet humidity ratio which is calculated in the zone sizing simulation and is basically the same calculation as the fan coil unit. \end{enumerate} \subsubsection{Design Outlet Air Humidity Ratio - System Coils}\label{design-outlet-air-humidity-ratio---system-coils} @@ -1182,7 +1182,7 @@ \subsubsection{System Coils}\label{system-coils-5} FlowCapRatio_{max} = 0.00006041 m^{3}/s per watt (450 cfm/ton) \end{equation} -The sizing calculation for DX cooling coils for 100\% dedicated outdor air system (DOAS) are identical to regular DX cooling coils. However, they operate operate at different flow to capacity ratio ranges and are within the prescribed range below: +The sizing calculation for DX cooling coils for 100\% dedicated outdoor air system (DOAS) are identical to regular DX cooling coils. However, they operate operate at different flow to capacity ratio ranges and are within the prescribed range below: \begin{equation} FlowCapRatio_{min} = 0.00001677 m^{3}/s per Watt (125 cfm/ton) @@ -1276,7 +1276,7 @@ \subsubsection{Zone Coils}\label{zone-coils-5} \emph{FlowCapRatio\(_{max}\)} = 0.00006041 m^{3}/s per watt (450 cfm/ton) \end{equation} -We check the design flow to the total cooling capacity rato for dedicated zone outdoor unit DX cooling coils to be within the limits prescribed below: +We check the design flow to the total cooling capacity ratio for dedicated zone outdoor unit DX cooling coils to be within the limits prescribed below: \begin{equation} \emph{FlowCapRatio\(_{min}\)} = 0.00001677 m^{3}/s per Watt (125 cfm/ton) @@ -1383,7 +1383,7 @@ \subsection{Coil:Cooling:DX:VariableSpeed Sizing}\label{coilcoolingdxvariablespe where -WB\(_{i}\) = wet-bulb temperature of the air entering thecooling coil, degC +WB\(_{i}\) = wet-bulb temperature of the air entering the cooling coil, degC DB\(_{o}\) = condenser entering air temperature, degC @@ -1587,7 +1587,7 @@ \subsection{Boiler Sizing}\label{boiler-sizing} Generally boilers will need nominal heating capacity and water volume flow rate. Both quantities can be straightforwardly obtained using the user specified loop sizing data and the loop design flow rates. -All boilers on a loop are sized to meet the full loop load multipled by a component-level sizing factor. If there are multiple boilers on a loop that call for autosizing, they will all be assigned a heating capacity and flow rate using their own sizing factor. +All boilers on a loop are sized to meet the full loop load multiplied by a component-level sizing factor. If there are multiple boilers on a loop that call for autosizing, they will all be assigned a heating capacity and flow rate using their own sizing factor. \subsubsection{Nominal Capacity}\label{nominal-capacity} @@ -2500,7 +2500,7 @@ \subsubsection{Minimum Air Flow Rate}\label{minimum-air-flow-rate} {\dot V_{air,min,terminal}} = Fra{c_{air,\min }}*DesVolFlow_{zone} \end{equation} -where \emph{\(Frac_{air,min}\)} corresponds to the minimum flow fraction of the teminal unit. This value is provided as user input, typically as the field ``Zone Minimum Air Flow Fraction.'' For the VAV terminals that allow scheduling minimum flow fraction (e.g., AirTerminal:SingleDuct:VAV:Reheat), there are two ways that \emph{\(Frac_{air,min}\)} can be determined. If a value is entered in the input field Constant Minimum Air Flow Fraction, then it is always used for \emph{\(Frac_{air,min}\)}. If the mimimum air flow fraction method is ``Schedule'' and the Constant Minimum Air Flow Fraction is left blank, then the program uses the average of the minimum and maximum values in the schedule for \emph{\(Frac_{air,min}\)}. +where \emph{\(Frac_{air,min}\)} corresponds to the minimum flow fraction of the terminal unit. This value is provided as user input, typically as the field ``Zone Minimum Air Flow Fraction.'' For the VAV terminals that allow scheduling minimum flow fraction (e.g., AirTerminal:SingleDuct:VAV:Reheat), there are two ways that \emph{\(Frac_{air,min}\)} can be determined. If a value is entered in the input field Constant Minimum Air Flow Fraction, then it is always used for \emph{\(Frac_{air,min}\)}. If the minimum air flow fraction method is ``Schedule'' and the Constant Minimum Air Flow Fraction is left blank, then the program uses the average of the minimum and maximum values in the schedule for \emph{\(Frac_{air,min}\)}. \subsubsection{Fan On Flow Fraction}\label{fan-on-flow-fraction} @@ -2558,7 +2558,7 @@ \subsection{Indirect Evaporative Cooler Sizing}\label{indirect-evaporative-coole \subsubsection{Secondary Fan Flow Rate}\label{secondary-fan-flow-rate} -The secondary fan is not part of an airstream that is directly modeled in EnergyPlus. Because the primary side air flows can be autosized as part of the air system, it is convenent to also scale the size of the secondary flow. If the cooler is part of the main loop of a central air system, then the secondary fan flow rate is sized to equal to the main design flow rate. +The secondary fan is not part of an airstream that is directly modeled in EnergyPlus. Because the primary side air flows can be autosized as part of the air system, it is convenient to also scale the size of the secondary flow. If the cooler is part of the main loop of a central air system, then the secondary fan flow rate is sized to equal to the main design flow rate. \begin{equation} \dot V_{fan,max} = DesMainVolFlow_{sys} @@ -2572,7 +2572,7 @@ \subsubsection{Secondary Fan Flow Rate}\label{secondary-fan-flow-rate} \subsection{Secondary DX Coils Sizing}\label{secondary-dx-coils-sizing} -The secondary DX coils model does not have a standalone object and it is models as add-on feature to the DX Coils. When the secondary DX coil is added to a primary DX cooling coil, the heat rejected to secondary zone is sensible only and is treated as tnternal gain, hence secondary air flow rate is not required in the model. Where as when the secondary DX coil is added to a primary DX heating coil, then the heat removed from secondary zone may have sensible and latent components and is treated as tnternal gain. The sensible/latent component split among other parameters requires secondary coil air flow rate. Hence secondary coil air flow rate sizing is added based on the primary DX cooling coil only. +The secondary DX coils model does not have a standalone object and it is models as add-on feature to the DX Coils. When the secondary DX coil is added to a primary DX cooling coil, the heat rejected to secondary zone is sensible only and is treated as internal gain, hence secondary air flow rate is not required in the model. Where as when the secondary DX coil is added to a primary DX heating coil, then the heat removed from secondary zone may have sensible and latent components and is treated as internal gain. The sensible/latent component split among other parameters requires secondary coil air flow rate. Hence secondary coil air flow rate sizing is added based on the primary DX cooling coil only. \begin{equation} \dot{V}_{\rm{SecCoil}} = \dot{V}_{\rm{PriHeatCoil}} \cdot \text{ScalingFactor} diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex index f422fa19524..c7428d785e9 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/system-design-loads-and-air-flow-rates.tex @@ -164,7 +164,7 @@ \subsubsection{DuringDay}\label{duringday} {\setlength\parindent{25pt} \(T_{outside}\) is the current outside air temperature {[}C{]}; } {\setlength\parindent{25pt} \(W_{outside}\) is the current outside air humidity ratio {[}kg water / kg dry air{]}. } -Note: When latent sizing is requested the zone design supply air humidity ratio used during zone latent sizing is used as the system cooling coil outlet air humidity ratio (\emph{w\(_{sup}\)}) for sytem cooling coil sizing. The system cooling coil outlet air humidity ratio is calculated as a mass flow rate weighted average of each zone's latent cooling supply air humidity ratio. See \emph{Sizing:Zone} field \emph{Zone Latent Cooling Design Supply Air Humidity Ratio Input Method}. This calculated value is used only when one or more zone latent load is found to be greater than that zone's sensible load, or latent only sizing is requested. A control method that enables the system cooling coil to dehumidify to the design latent supply air humidity ratio is suggested so that the system sensible load can be exceeded when additional dehumidification is required. +Note: When latent sizing is requested the zone design supply air humidity ratio used during zone latent sizing is used as the system cooling coil outlet air humidity ratio (\emph{w\(_{sup}\)}) for system cooling coil sizing. The system cooling coil outlet air humidity ratio is calculated as a mass flow rate weighted average of each zone's latent cooling supply air humidity ratio. See \emph{Sizing:Zone} field \emph{Zone Latent Cooling Design Supply Air Humidity Ratio Input Method}. This calculated value is used only when one or more zone latent load is found to be greater than that zone's sensible load, or latent only sizing is requested. A control method that enables the system cooling coil to dehumidify to the design latent supply air humidity ratio is suggested so that the system sensible load can be exceeded when additional dehumidification is required. \begin{enumerate} @@ -239,7 +239,7 @@ \subsubsection{EndDay}\label{endday} \emph{DesMainVolFlow\(_{sys}\)} = \textbf{Max}(\emph{DesCoolVolFlow\(_{sys}\)}, \emph{DesHeatVolFlow\(_{sys}\)}) -Based on the outdoor air method selected, the \emph{DesCoolVolFlow\(_{sys}\)} and \emph{DesHeatVolFlow\(_{sys}\)} are modified based on the system ventilation effciency calculated based on the maximum outdoor air fraction. +Based on the outdoor air method selected, the \emph{DesCoolVolFlow\(_{sys}\)} and \emph{DesHeatVolFlow\(_{sys}\)} are modified based on the system ventilation efficiency calculated based on the maximum outdoor air fraction. \subsubsection{EndSysSizingCalc}\label{endsyssizingcalc} @@ -477,7 +477,7 @@ \subsection{System Design Outdoor Air Flow Rate}\label{Design-Outdoor-Air-Flow-R \subsection{Scalable System HVAC Sizing}\label{scalable-system-HVAC-sizing} -The scalable system sizing applies to system supply air flow rates and sysyem capacity in coolin and heating modes. +The scalable system sizing applies to system supply air flow rates and system capacity in cooling and heating modes. \textbf{Scalable System Air Flow Sizing} diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-design-loads-and-air-flow-rates.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-design-loads-and-air-flow-rates.tex index ebae1962ad3..c0cffe63c7d 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-design-loads-and-air-flow-rates.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-design-loads-and-air-flow-rates.tex @@ -2,7 +2,7 @@ \section{Zone Design Loads and Air Flow Rates}\label{zone-design-loads-and-air-f \subsection{Overview}\label{overview-030} -There is no single best way to establish design HVAC flow rates and size HVAC equipment. Different building designs, climates, and HVAC systems will impose varying constraints on the designer. The method used to size an HVAC system in a hot, moist climate such as Miami will be different than the method used for a building in Albuquerque. The type of building is also relevant - a simple watts per square foot loads estimate could be adequate for a building containing a network server farm while a detailed, dynamic loads simulation would be necessary for a passive solar building. In the end the designer's experience and engineering judgement will play an important role in any sizing calculation. +There is no single best way to establish design HVAC flow rates and size HVAC equipment. Different building designs, climates, and HVAC systems will impose varying constraints on the designer. The method used to size an HVAC system in a hot, moist climate such as Miami will be different than the method used for a building in Albuquerque. The type of building is also relevant - a simple watts per square foot loads estimate could be adequate for a building containing a network server farm while a detailed, dynamic loads simulation would be necessary for a passive solar building. In the end the designer's experience and engineering judgment will play an important role in any sizing calculation. HVAC equipment sizing begins with the calculation of space heating and cooling sensible and/or latent loads. A space cooling (heating) sensible load is defined as the rate at which heat must be removed (added) to a space to maintain a constant zone temperature. A space cooling (heating) latent load is defined as the rate at which moisture must be removed (added) to a space to maintain a constant zone moisture/humidity ratio/relative humidity level. The current industry standard method for calculating space loads is the \emph{heat balance method} {[}ASHRAE Fundamentals (2001), page 29.1; Pedersen et al., (1997); Pedersen (2001). Since EnergyPlus is a heat balance based simulation program it is straightforward for the program to use this method for calculating zone loads. @@ -111,7 +111,7 @@ \subsection{Zone Design Load Calculation}\label{zone-design-load-calculation} In module \emph{HVACManager}, subroutine \emph{ManageHVAC} calls \emph{SimHVAC}. \emph{SimHVAC} checks \emph{ZoneSizingCalc}. If it is \emph{true}, \emph{SimHVAC} calls \emph{ManageZoneEquipment} and returns, rather than simulating the actual system. In turn \emph{ManageZoneEquipment} checks if \emph{ZoneSizingCalc} is \emph{true}; if it is it calls \emph{SizeZoneEquipment} rather than \emph{SimZoneEquipment}. -\emph{SizeZoneEquipment} assumes that each controlled zone is served by an ideal air conditioning unit. This unit supplies sensible and latent (if latent sizing is requeted) heating or cooling air at a fixed, user input temperature and humidity (specified in the Sizing:Zone objects). The units have infinite capacity: the flow rate can be any amount. Zone humidity is controlled at a constant level when latent sizing is requested, otherwise zone humidity is allowed to float. The sensible and latent loads and air mass flow rates are saved and reported to \emph{eplusout.zsz}. +\emph{SizeZoneEquipment} assumes that each controlled zone is served by an ideal air conditioning unit. This unit supplies sensible and latent (if latent sizing is requested) heating or cooling air at a fixed, user input temperature and humidity (specified in the Sizing:Zone objects). The units have infinite capacity: the flow rate can be any amount. Zone humidity is controlled at a constant level when latent sizing is requested, otherwise zone humidity is allowed to float. The sensible and latent loads and air mass flow rates are saved and reported to \emph{eplusout.zsz}. Before the ideal zone load is calculated, the function checks whether the user wants to account for the heat gain or loss caused by the ventilation air from a Dedicated Outdoor Air System (DOAS). If the user has selected \emph{Account For Dedicated Outdoor Air = Yes} the function performs an ideal DOAS calculation. The DOAS supply temperature is set according to the user's choice of 1 of 3 possible control strategies: \emph{NeutralSupplyAir}, \emph{NeutralDehumidifiedSupplyAir}, or \emph{ColdSupplyAir}. This value is saved and reported to \emph{eplusout.zsz}. The different strategies are: @@ -119,7 +119,7 @@ \subsection{Zone Design Load Calculation}\label{zone-design-load-calculation} \item \emph{DOAS Control Strategy = NeutralSupplyAir}. The purpose of this strategy is to cool or heat the outdoor air (OA) to keep it between the \emph{T\(_{l}\)} and \emph{T\(_{h}\)} setpoints. \item - \emph{DOAS Control Strategy = Neutral Dehumidified Supply Air}. The purpose of this strategy is to cool and dehumidify the outdoor air, then reheat it to a ``neutral'' temperature so that no sensible load is imposed on the space or AHU unit. The DOAS will with this strategy handle some or all of the latent load. If the outdoor air temperature is greater than \emph{T\(_{l}\)} the outdoor air is cooled to \emph{T\(_{l}\)} and reheated to \emph{T\(_{h}\)}. If the outdoor air temperaure is below \emph{T\(_{l}\)} it is heated to \emph{T\(_{h}\)}. + \emph{DOAS Control Strategy = Neutral Dehumidified Supply Air}. The purpose of this strategy is to cool and dehumidify the outdoor air, then reheat it to a ``neutral'' temperature so that no sensible load is imposed on the space or AHU unit. The DOAS will with this strategy handle some or all of the latent load. If the outdoor air temperature is greater than \emph{T\(_{l}\)} the outdoor air is cooled to \emph{T\(_{l}\)} and reheated to \emph{T\(_{h}\)}. If the outdoor air temperature is below \emph{T\(_{l}\)} it is heated to \emph{T\(_{h}\)}. \item \emph{DOAS Control Strategy = ColdSupplyAir}. The purpose of this strategy is to provide cool, dehumidified ventilation air to the zone. In this case the DOAS can handle part of the sensible zone cooling load as well as meet part or all of the latent load. If the outdoor air temperature is below \emph{T\(_{l}\)} it is heated to \emph{T\(_{h}\)}. If it is above \emph{T\(_{l}\)}, it is cooled to \emph{T\(_{l}\)}. \end{itemize} diff --git a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex index a29a15e7a04..46adde99728 100644 --- a/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex +++ b/doc/engineering-reference/src/loop-equipment-sizing-and-other-design-data/zone-outdoor-air-design-data.tex @@ -16,7 +16,7 @@ \section{Zone Outdoor Air Design Data}\label{zone-outdoor-air-design-data} Outdoor air changes per hour \end{itemize} -This design data is entered in an outdoor air design data object and may be referenced by other objects during the simulation. A single specification for outdoor air design data may be used by all other appropriate objects within EnergyPlus, or multiple outdoor air design data objects may be specified and these design data objects may be used as necessary by other objects when outdoor air design quantaties vary for any reason. +This design data is entered in an outdoor air design data object and may be referenced by other objects during the simulation. A single specification for outdoor air design data may be used by all other appropriate objects within EnergyPlus, or multiple outdoor air design data objects may be specified and these design data objects may be used as necessary by other objects when outdoor air design quantities vary for any reason. \subsection{Design Outdoor Air Calculation}\label{design-outdoor-air-calculation} diff --git a/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex b/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex index fa71c1239cd..3322c95ce26 100644 --- a/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex +++ b/doc/engineering-reference/src/on-site-generation/electric-load-center-distribution-manager.tex @@ -102,7 +102,7 @@ \subsection{Inverters}\label{inverters} {P_{AC - out}} = {P_{DC - in}} \cdot {\varepsilon_{inverter}} \end{equation} -The inverter efficiency is determined using one of the three models. For the ``Simple'' inveter model, efficiency is constant and input by the user. For the ``Look Up Table'' model, the efficiency is calculated using linear interpolation. For the ``Function of Power'' model, the efficiency is calculating using a single-variable curve object. For both the Look Up Table and Function of Power models, the power production is normalized by \({P_{DC - in}}\). +The inverter efficiency is determined using one of the three models. For the ``Simple'' inverter model, efficiency is constant and input by the user. For the ``Look Up Table'' model, the efficiency is calculated using linear interpolation. For the ``Function of Power'' model, the efficiency is calculating using a single-variable curve object. For both the Look Up Table and Function of Power models, the power production is normalized by \({P_{DC - in}}\). The conversion power losses are calculated from the difference between ${P_{DC,in}}$ and ${P_{AC,out}}$ and are metered as negative values on PowerConversion:ElectricityProduced. The thermal losses include the conversion power losses plus any ancillary power consumed during standby. The ancillary electric power consumption occurs when the inverter is scheduled to be available but it is not conditioning any power flows at the time. @@ -527,13 +527,13 @@ \subsubsection{References}\label{references-022-b} N. DiOrio et al. Technoeconomic modeling of battery energy storage in SAM. Tech. rep. National Renewable Energy Lab. (NREL), Golden, CO (United States), 2015. \noindent -K. Smith et al. “Life prediction model for grid-connected Li-ion batteryenergy storage system”. In: 2017 American Control Conference (ACC). IEEE. 2017, pp. 4062–4068. +K. Smith et al. “Life prediction model for grid-connected Li-ion battery energy storage system”. In: 2017 American Control Conference (ACC). IEEE. 2017, pp. 4062–4068. \noindent -O. Tremblay, L.-A. Dessaint, and A.-I. Dekkiche. “A generic battery modelfor the dynamic simulation of hybrid electric vehicles”. In: 2007 IEEE Vehicle Power and Propulsion Conference. Ieee. 2007, pp. 284–289. +O. Tremblay, L.-A. Dessaint, and A.-I. Dekkiche. “A generic battery model for the dynamic simulation of hybrid electric vehicles”. In: 2007 IEEE Vehicle Power and Propulsion Conference. Ieee. 2007, pp. 284–289. \noindent -P. P. Mishra et al. “Analysis of degradation in residential battery energystorage systems for rate-based use-cases”. In: Applied Energy 264 (2020), p. 114632. +P. P. Mishra et al. “Analysis of degradation in residential battery energy storage systems for rate-based use-cases”. In: Applied Energy 264 (2020), p. 114632. \subsection{Electric Load Center Transformers}\label{electric-load-center-transformers} diff --git a/doc/engineering-reference/src/on-site-generation/generators.tex b/doc/engineering-reference/src/on-site-generation/generators.tex index 4e7719e8f68..29c998edcc0 100644 --- a/doc/engineering-reference/src/on-site-generation/generators.tex +++ b/doc/engineering-reference/src/on-site-generation/generators.tex @@ -1,6 +1,6 @@ \section{Generators}\label{generators} -\subsection{Internal Cumbustion Engine}\label{internal-cumbustion-engine} +\subsection{Internal Combustion Engine}\label{internal-combustion-engine} The engine-driven generator model was originally developed for the BLAST program and was subsequently adapted for use in EnergyPlus. The model uses the following set of equations all of which are quadratic fits to the PLR (Part Load Ratio) of the generator.~ The coefficients must be derived from manufacturers data. @@ -698,7 +698,7 @@ \subsection{Micro-Cogenerator}\label{micro-cogenerator} The engine and heat recovery thermal conditions are modeled for all modes so, for example, an engine that is off but still warm could provide some hot water recovery. -The engine model can use an arbitray fuel mixture that is defined by the user -- see the entry for Generator:FuelSupply. +The engine model can use an arbitrary fuel mixture that is defined by the user -- see the entry for Generator:FuelSupply. \subsubsection{References}\label{references-024} diff --git a/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex b/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex index 6b02fa6e619..7b5fda3dc7d 100644 --- a/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex +++ b/doc/engineering-reference/src/on-site-generation/photovoltaic-arrays.tex @@ -222,7 +222,7 @@ \subsubsection{Mathematical Description}\label{mathematical-description-1} The PV model uses one of five methods for determining cell temperature data. The cell temperature of a PV module is important because the hotter the temperature of the panel, the lower its electrical output. The cell temperature calculation method is chosen by the user in the EnergyPlus IDF file through a parameter choice in the IDD entry called Integration and Cell Temperature Mode. -If the value of this parameter is ``\textbf{Decoupled NOCT Conditions}'' then the cell temperature of the PV is modeled using the method from the Duffie and Beckman (1991) for estimating cell temperature. This is based upon the standard NOCT (Nominal Operating Cell Temperature) measurements to compute the module temperature \(T_c\) at each timestep. The NOCT temperature (\(T_c\),NOCT) is the operating temperature of the module with a wind speed of 1 m/s, no electrical load, and a certain specified insolation and ambient temperature {[}Beckman and Duffie, 1991{]}. The values for insolation GT,NOCT ~and ambient temperature \(T_{a,NOCT}\) are usually 800 W/m\(^{2}\) and 20\(^{\circ}\)C. \(\eta_{c}\) is the convesion efficiency of the module, which varies with ambient conditions. \({\tau \alpha}\) is a user-defined constant. +If the value of this parameter is ``\textbf{Decoupled NOCT Conditions}'' then the cell temperature of the PV is modeled using the method from the Duffie and Beckman (1991) for estimating cell temperature. This is based upon the standard NOCT (Nominal Operating Cell Temperature) measurements to compute the module temperature \(T_c\) at each timestep. The NOCT temperature (\(T_c\),NOCT) is the operating temperature of the module with a wind speed of 1 m/s, no electrical load, and a certain specified insolation and ambient temperature {[}Beckman and Duffie, 1991{]}. The values for insolation GT,NOCT ~and ambient temperature \(T_{a,NOCT}\) are usually 800 W/m\(^{2}\) and 20\(^{\circ}\)C. \(\eta_{c}\) is the conversion efficiency of the module, which varies with ambient conditions. \({\tau \alpha}\) is a user-defined constant. The equation is: @@ -236,7 +236,7 @@ \subsubsection{Mathematical Description}\label{mathematical-description-1} {\left. {{T_{cell}}} \right|_t} = {T_{ambient}} + \left( {{{\left. {{T_{cell}}} \right|}_{t - 1}} - {T_{ambient}}} \right)*{e^{\frac{{ - UL}}{{Cap}}\Delta t}} \end{equation} -In other words, the cell temperature is a function of the privious cell temperature and the thermal capacity of the PV module material. +In other words, the cell temperature is a function of the previous cell temperature and the thermal capacity of the PV module material. If the user specifies ``\textbf{Integrated Surface Outside Face''} for this parameter, then the temperature result from EnergyPlus's modeling of surfaces is used for the cell temperature. Also the energy exported from the surface as electricity becomes a sink in the internal source modeling for the heat transfer surface. @@ -326,8 +326,8 @@ \subsubsection{Mathematical Description}\label{mathematical-description-2} m\(_{\beta}\)\(_{Voco}\) & Coefficient for irradiance dependence of open-circuit-voltage-temperature coefficient, often zero (V/\(^{\circ}\)C) \tabularnewline $\beta$\(_{Vmp}\)(E\(_{e}\)) & Temperature coefficient for module maximum-power-voltage as a function of E \tabularnewline $\beta$\(_{Vmpo}\) & Temperature coefficient for module maximum-power-voltage at reference conditions \tabularnewline -m\(_{\beta}\)\(_{Voco}\) & Cofficient for irradiance dependence of maximum-power-voltage-temperature coefficient, often zero (V/\(^{\circ}\)C) \tabularnewline -T\(_{m}\) & PV module temperature at back suface (\(^{\circ}\)C) \tabularnewline +m\(_{\beta}\)\(_{Voco}\) & Coefficient for irradiance dependence of maximum-power-voltage-temperature coefficient, often zero (V/\(^{\circ}\)C) \tabularnewline +T\(_{m}\) & PV module temperature at back surface (\(^{\circ}\)C) \tabularnewline T\(_{a}\) & Ambient outdoor drybulb temperature (\(^{\circ}\)C) \tabularnewline E & Solar irradiance incident on module surface (W/m\(^{2}\)) \tabularnewline WS & Wind speed at standard 10-m height (m/s) \tabularnewline diff --git a/doc/engineering-reference/src/performance-curves-and-lookup-tables/performance-curves.tex b/doc/engineering-reference/src/performance-curves-and-lookup-tables/performance-curves.tex index 011df508229..039f7cb1c15 100644 --- a/doc/engineering-reference/src/performance-curves-and-lookup-tables/performance-curves.tex +++ b/doc/engineering-reference/src/performance-curves-and-lookup-tables/performance-curves.tex @@ -94,7 +94,7 @@ \subsubsection{BiCubic Curves}\label{bicubic-curves} z = a + bx + c{x^2} + dy + e{y^2} + fxy + g{x^3} + h{y^3} + i{x^2}y \end{equation} -Calulating performance curve coefficients in a spreadsheet is a simple matter of finding the data required to perform the regression analysis. For example, the biquadratic equation shown above is representative of the cooling capacity as a function of temperature performance curve for DX cooling coils. The fundamental equation for DX cooling coil capacity is: +Calculating performance curve coefficients in a spreadsheet is a simple matter of finding the data required to perform the regression analysis. For example, the biquadratic equation shown above is representative of the cooling capacity as a function of temperature performance curve for DX cooling coils. The fundamental equation for DX cooling coil capacity is: \begin{equation} TotCapTempModFac = a + b\left( {{T_{wb,i}}} \right) + c{\left( {{T_{wb,i}}} \right)^2} + d\left( {{T_{c,i}}} \right) + e{\left( {{T_{c,i}}} \right)^2} + f\left( {{T_{wb,i}}} \right)\left( {{T_{c,i}}} \right) @@ -106,7 +106,7 @@ \subsubsection{BiCubic Curves}\label{bicubic-curves} \(T_{c,i}\) (or \(T_{db,i}\)) is the dry-bulb temperature of the air entering an air-cooled condenser (\(^{\circ}\)C). -Given the data set shown in Figure~\ref{fig:dx-cooling-data-table}, each of the independent variables would be calculated according to the fundamental equation above (i.e., the T, T\(^{2}\), and cross-product terms would be multiplied out). The data would be converted to degrees celcius and the cooling capacity would be converted to Watts. The data would also be normalized using the ARI rating point shown as highlighted in Figure~\ref{fig:dx-cooling-data-normalized}. +Given the data set shown in Figure~\ref{fig:dx-cooling-data-table}, each of the independent variables would be calculated according to the fundamental equation above (i.e., the T, T\(^{2}\), and cross-product terms would be multiplied out). The data would be converted to degrees Celsius and the cooling capacity would be converted to Watts. The data would also be normalized using the ARI rating point shown as highlighted in Figure~\ref{fig:dx-cooling-data-normalized}. \begin{figure}[htbp] \centering @@ -122,7 +122,7 @@ \subsubsection{BiCubic Curves}\label{bicubic-curves} \caption{Regression Analysis for Example \protect \label{fig:dx-cooling-data-normalized}} \end{figure} -The regression analysis and summary statistical output is shown below. The equation coefficients are shown highlighted. In this example, the equation coefficents are: a = 0.757382, b = 0.014666, c = 0.000459, d = -0.00095, e = -6.7E-05, and f = -0.00015. These coefficients would be entered in a Curve:BiQuadratic object and used to describe the cooling capacity as a function of temperature for the DX cooling coil model. Minimum and Maximum values from the tabular data are entered as Min/Max values for the curve object. The values may be relaxed slightly with care to allow extrapolation as needed. A performance table may be used to automatically perform the regression analysis as described in the following section. +The regression analysis and summary statistical output is shown below. The equation coefficients are shown highlighted. In this example, the equation coefficients are: a = 0.757382, b = 0.014666, c = 0.000459, d = -0.00095, e = -6.7E-05, and f = -0.00015. These coefficients would be entered in a Curve:BiQuadratic object and used to describe the cooling capacity as a function of temperature for the DX cooling coil model. Minimum and Maximum values from the tabular data are entered as Min/Max values for the curve object. The values may be relaxed slightly with care to allow extrapolation as needed. A performance table may be used to automatically perform the regression analysis as described in the following section. \begin{figure}[htbp] \centering diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex index 8bbb6116ccb..5e6118cbf05 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/coils.tex @@ -224,11 +224,11 @@ \subsubsection{Design Block Calculations}\label{design-block-calculations} Airside combined heat and mass transfer coefficient = 140 (W/m\(^2\)-\(^{\circ}\)C) \end{itemize} -Interior and exterior U values (really UA's per unit exterior surface area) are calculated by dividing the above UA's by the area. The resulting U\(_{coil,ext}\) is assumed to be U\(_{coil,ext,wet}\); U\(_{coil,ext,dry}\) is set equal to U\(_{coil,ext,wet}\). We now have all the starting values needed for inverting the simple coil model using the chosen root solver iterative method. Once the iteration is completed, we have coil UA's and U's that yield the design outlet air and water enthalpies given the inlet design conditions and flow rates. Note that the simple coil model can not exactly match the specified design outlet air temperature and humidity ratio. It can only match the design air outlet enthalpy. Generally the simple coil model will yield outlet conditions near the saturation curve if any dehumidification is occuring. Typical outlet relative humidities are around 95\%. +Interior and exterior U values (really UA's per unit exterior surface area) are calculated by dividing the above UA's by the area. The resulting U\(_{coil,ext}\) is assumed to be U\(_{coil,ext,wet}\); U\(_{coil,ext,dry}\) is set equal to U\(_{coil,ext,wet}\). We now have all the starting values needed for inverting the simple coil model using the chosen root solver iterative method. Once the iteration is completed, we have coil UA's and U's that yield the design outlet air and water enthalpies given the inlet design conditions and flow rates. Note that the simple coil model can not exactly match the specified design outlet air temperature and humidity ratio. It can only match the design air outlet enthalpy. Generally the simple coil model will yield outlet conditions near the saturation curve if any dehumidification is occurring. Typical outlet relative humidities are around 95\%. \subsubsection{Variable UA}\label{variable-ua} -The above calculations yield coil UA's for the design inlet conditions and air and water flow rates. As the flow rates vary during the time step calculations, the UA's need to be adjusted, since coil UA's are a rather strong function of air and water side flow rates. Each time step the coil UA's are modified using the same formulas as are used in the hot water coil model. Refer to that model for the flow dependences. +The above calculations yield coil UA's for the design inlet conditions and air and water flow rates. As the flow rates vary during the time step calculations, the UA's need to be adjusted, since coil UA's are a rather strong function of air and water side flow rates. Each time step the coil UA's are modified using the same formulas as are used in the hot water coil model. Refer to that model for the flow dependencies. \subsubsection{Operating Block Calculations:}\label{operating-block-calculations} @@ -528,7 +528,7 @@ \subsubsection{Coil Part Wet Part Dry Calculations (operating block)}\label{coil \subsubsection{References}\label{references-011} -IBPSA BuildSim-2004. 2004. Colarado Boulder: An Improvement of Ashrae Secondary HVAC toolkit Simple Cooling Coil Model for Building Simulation, Rahul J Chillar, Richard J Liesen M\&IE ,UIUC. +IBPSA BuildSim-2004. 2004. Colorado Boulder: An Improvement of Ashrae Secondary HVAC toolkit Simple Cooling Coil Model for Building Simulation, Rahul J Chillar, Richard J Liesen M\&IE ,UIUC. Stoecker, W.F. \textless{}dates unspecified\textgreater{} Design of Thermal Systems,: ME 423 Class Notes , M\& IE Dept UIUC. @@ -1258,7 +1258,7 @@ \subsubsection{SHR Calculation Using User Specified SHR Modifier Curves}\label{s {h_{out}} = {h_{in}} - \frac{{{{\dot Q}_{total}}}}{{\dot m}} \end{equation} -The cooling coil outlet air enthalpy at the coil enlet air temperature and coil outlet humidity ratio is given by: +The cooling coil outlet air enthalpy at the coil inlet air temperature and coil outlet humidity ratio is given by: \begin{equation} {h_{{T_{in}}{\omega_{out}}}} = {h_{in}} - \left( {1.0 - SHR} \right)\frac{{{{\dot Q}_{total}}}}{{\dot m}} @@ -1362,7 +1362,7 @@ \subsubsection{Supply Air Fan Control: Cycling vs.~Continuous}\label{supply-air- For the case of cycling fan/cycling compressor when humidity control is not specified, the conditions of the air leaving the cooling coil are the steady-state values calculated using Equations~\ref{eq:CoilSHRhout},~\ref{eq:CoilSHRomegaout}, and~\ref{eq:CoilSHRTdbout} above. However the air mass flow rate passed along to the next component (and eventually to the conditioned zone) is the average air mass flow rate for the system simulation time step (determined by the cooling system; see ZoneHVAC:WindowAirConditioner, AirLoopHVAC:Unitary:Furnace:HeatCool, AirLoopHVAC:UnitaryHeatCool, or AirLoopHVAC:UnitaryHeatPump:AirToAir). -For the case of cycling fan/cyling compressor when humidity control is specified, the conditions of the air leaving the cooling coil are calculated as the average conditions during the fan operating period. When the compressor operates in tandem with the fan (i.e., compressor part-load ratio {[}PLR{]} is equal to the fan PLR), the outlet conditions are identical to the calculations described above. When the compressor operates for a shorter duration than the fan (i.e., the compressor PLR is less than the heating/fan PLR), the air properties leaving the cooling coil are calculated as the average conditions during the fan operating period. In this case the calculation of exiting air conditions is analogous to the calculations for continuous fan mode described below except that PLR in the equations represents the ratio of the compressor to the fan operating period. For cycling fan systems, the fan will only operate longer than the compressor, and therefore latent degradation may be modeled (user input), when humidity control is specified, a moisture load exists (i.e., the zone air humidistat senses a moisture load), and a heating load exists where the heating PLR is greater than the cooling PLR. +For the case of cycling fan/cycling compressor when humidity control is specified, the conditions of the air leaving the cooling coil are calculated as the average conditions during the fan operating period. When the compressor operates in tandem with the fan (i.e., compressor part-load ratio {[}PLR{]} is equal to the fan PLR), the outlet conditions are identical to the calculations described above. When the compressor operates for a shorter duration than the fan (i.e., the compressor PLR is less than the heating/fan PLR), the air properties leaving the cooling coil are calculated as the average conditions during the fan operating period. In this case the calculation of exiting air conditions is analogous to the calculations for continuous fan mode described below except that PLR in the equations represents the ratio of the compressor to the fan operating period. For cycling fan systems, the fan will only operate longer than the compressor, and therefore latent degradation may be modeled (user input), when humidity control is specified, a moisture load exists (i.e., the zone air humidistat senses a moisture load), and a heating load exists where the heating PLR is greater than the cooling PLR. Continuous Fan Mode: @@ -1577,9 +1577,9 @@ \subsubsection{Special Calculations for Coil:Cooling:DX:TwoStageWithHumidityCont \paragraph{Subcool Reheat Mode}\label{subcool-reheat-mode} -When 3 operation modes are entered in the Coil:Cooling:DX:CurveFit:Performance object with a parent as Coil:Cooling:DX, the coil is considered as a Subcool Reheat Coil and can perfom normal DX coil operation alone, and combined sensible cooling and dehumidification simultaneously with combination of normal mode and subcool or reheat mode. Load sensible heat ratio (LoadSHR) ( Zone Sensible Load / ( Zone Sensible Load + Zone Latent Load)) determines which mode operates. +When 3 operation modes are entered in the Coil:Cooling:DX:CurveFit:Performance object with a parent as Coil:Cooling:DX, the coil is considered as a Subcool Reheat Coil and can perform normal DX coil operation alone, and combined sensible cooling and dehumidification simultaneously with combination of normal mode and subcool or reheat mode. Load sensible heat ratio (LoadSHR) ( Zone Sensible Load / ( Zone Sensible Load + Zone Latent Load)) determines which mode operates. -The zone sensible and latent loads determine the coil delivered energy between system supply node and controlled zone node. Due to fan heat and outdoor air introduction, the coil inlet node conditions are not equal to ones at the controlled zone node. In other words, the requested coil output sensible heat ratio (CoilSHR) (Sensible Coil output / (Sensible Coil Output + Latent Coile Output)) will be different from LoadSHR. The given LoadSHR needs to be converted into coil sensible heat ratio (CoilSHR), so that coil requested sensible and latent energy can be delivered correctly to control zone temperature and humidity ratio simultaneously. +The zone sensible and latent loads determine the coil delivered energy between system supply node and controlled zone node. Due to fan heat and outdoor air introduction, the coil inlet node conditions are not equal to ones at the controlled zone node. In other words, the requested coil output sensible heat ratio (CoilSHR) (Sensible Coil output / (Sensible Coil Output + Latent Coil Output)) will be different from LoadSHR. The given LoadSHR needs to be converted into coil sensible heat ratio (CoilSHR), so that coil requested sensible and latent energy can be delivered correctly to control zone temperature and humidity ratio simultaneously. CoilSHR calculation procedure @@ -1593,7 +1593,7 @@ \subsubsection{Special Calculations for Coil:Cooling:DX:TwoStageWithHumidityCont 3. At the same time, coil sensible and latent outputs across the coil are obtained in Step 2 as SenCoilOutput and LatCoilOutput. -4. If coil sensible and latent outputs are also propotional to the part load ratios, sensible (SenCoil) and latent (LatCoil) coil load at given part load ratios are calculated as +4. If coil sensible and latent outputs are also proportional to the part load ratios, sensible (SenCoil) and latent (LatCoil) coil load at given part load ratios are calculated as SenCoil = SenPLR * SenCoilOutput @@ -1639,7 +1639,7 @@ \subsubsection{Special Calculations for Coil:Cooling:DX:TwoStageWithHumidityCont Else - Performreheatg operation + Perform reheating operation SenLoad = SenOut\(_{Reheat}\) * PLR @@ -1831,7 +1831,7 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Single-Speed DX Coil} where \(\% Load\) is the part-load operating points, i.e., 75\% (B), 50\% (C), 25\% (D). -The calculations for \(Q_{Total,Net,PartLoad}\) and \(Power_{Total,PartLoad}\) are calculated in nearly the same way as \(Q_{Total,Net,TestB}\) and \(Power_{Total,TestB}\) are calculated for SEER (defined above). The only difference is that these cooling capacity and power values, used for calculating \(EER_{B} / EER_{C} / EER_{D}\) for IEER, are calculated for a series of dry-bulb temperatures of air entering the air-cooled condenser (B = 27.5\(^{\circ}\)C, C = 20.0\(^{\circ}\)C, D = 18.3\(^{\circ}\)C) and part-load performance degradiation correction is also applied to the condensing unit electric power calculation. +The calculations for \(Q_{Total,Net,PartLoad}\) and \(Power_{Total,PartLoad}\) are calculated in nearly the same way as \(Q_{Total,Net,TestB}\) and \(Power_{Total,TestB}\) are calculated for SEER (defined above). The only difference is that these cooling capacity and power values, used for calculating \(EER_{B} / EER_{C} / EER_{D}\) for IEER, are calculated for a series of dry-bulb temperatures of air entering the air-cooled condenser (B = 27.5\(^{\circ}\)C, C = 20.0\(^{\circ}\)C, D = 18.3\(^{\circ}\)C) and part-load performance degradation correction is also applied to the condensing unit electric power calculation. \subsubsection{ANSI/ASHRAE 127 - Standard Ratings of Single-Speed DX Cooling Coils}\label{ansiashrae-127---standard-ratings-of-single-speed-dx-cooling-coils} @@ -1960,7 +1960,7 @@ \subsubsection{Model Inputs}\label{model-inputs} \subsubsection{Speed 1 Operation}\label{speed-1-operation} -The calculation procedures in this model, including defrost and crankcase heater, are indentical to the Coil:Heating:DX:SingleSpeed object (Ref: Coil:Heating:DX:SingleSpeed) with one exception: outlet node condition calculation when the supply air fan operates continuously (i.e., supply air fan operating mode schedule value is not equal to 0; Ref. AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed). +The calculation procedures in this model, including defrost and crankcase heater, are identical to the Coil:Heating:DX:SingleSpeed object (Ref: Coil:Heating:DX:SingleSpeed) with one exception: outlet node condition calculation when the supply air fan operates continuously (i.e., supply air fan operating mode schedule value is not equal to 0; Ref. AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed). The following procedure provides the detailed description of the exception. @@ -2305,7 +2305,7 @@ \subsubsection{Standard Rating of Multi-Speed DX Cooling Coils}\label{standard-r For multi-speed direct expansion cooling coils, the following industry standard ratings are calculated and reported according to the industry standards listed below: ANSI/AHRI Standard 210-240 (AHRI 2017 and 2023) -[AHRI 2017] For multi-speed direct expansion cooling coils, the industry standard ratings are calculated according to ANSI/AHRI Standard 210-240 (AHRI 2017). These Standard Ratings are: Standard Rating Cooling Capacity and Seasonal Energy Efficiency Ratio (SEER). These standard ratings are calculated using the user-entered data in the Coil:Cooling:DX:MultiSpeed object. These AHRI Standard ratings apply only to air-to-air unitary heat pumps and air conditioners with rated cooling capacities less than 65,000 Btu/h (19,000 Watts). The equations required to calculate the net cooling capacity and SEER values aaccording to the AHRI 2017 standard are outlined in the next two sections. Further detail can be found in the AHRI Standard 210-240 (2017) (section 11). +[AHRI 2017] For multi-speed direct expansion cooling coils, the industry standard ratings are calculated according to ANSI/AHRI Standard 210-240 (AHRI 2017). These Standard Ratings are: Standard Rating Cooling Capacity and Seasonal Energy Efficiency Ratio (SEER). These standard ratings are calculated using the user-entered data in the Coil:Cooling:DX:MultiSpeed object. These AHRI Standard ratings apply only to air-to-air unitary heat pumps and air conditioners with rated cooling capacities less than 65,000 Btu/h (19,000 Watts). The equations required to calculate the net cooling capacity and SEER values according to the AHRI 2017 standard are outlined in the next two sections. Further detail can be found in the AHRI Standard 210-240 (2017) (section 11). [AHRI 2023] Support for the 2023 version of this Standard was added in EnergyPlus version 22.2. The updated Standard Ratings are designated as: Standard Rating (Net) Cooling Capacity, Energy Efficiency Ratio (EER2), and Seasonal Energy Efficiency Ratio (SEER2). As with th 2017 version, this standard and ratings apply only to air-to-air unitary heat pumps and air conditioners with rated cooling capacities less than 65,000 Btu/h (19 kW). The equations used in this implementation are detailed in the AHRI standard (Section 11). The reader can download the standard document to view these details from AHRI(https://www.ahrinet.org/search-standards/ahri-210240-2023-2020-performance-rating-unitary-air-conditioning-air-source-heat). ANSI/AHRI Standard 340-360 (AHRI 2022) @@ -2490,7 +2490,7 @@ \subsubsection{Seasonal Energy Efficiency Ratio (SEER) for Multi-Speed DX Coil}\ \(FanPowerPerVolFlowRat{e^{k = 2}}\) is the the Rated Evaporator (Indoor Coil) Fan Power Per Volume Flow rate at maximum (high) compressor speed specified value by the user (W/(m\(^3\)/s)). -The above steps show how the cooling capacity and electric power inputs are determined when the DX cooling coil is operating at minimum (low) and maximum (high) compressor speeds.~ But the unit may operate at minimum (low) speed capacity, cycle on--off, cycle between successiave lower and higher compressor speed capacity, or operate at maximum (high) speed capacity depending on the building cooling load. The operating range of the DX cooling coil is determined based on the building cooling load for each binned outside air temperature. The building cooling load at an outdoor air temperature \(T_{j}\), is calculated as follows: +The above steps show how the cooling capacity and electric power inputs are determined when the DX cooling coil is operating at minimum (low) and maximum (high) compressor speeds.~ But the unit may operate at minimum (low) speed capacity, cycle on--off, cycle between successive lower and higher compressor speed capacity, or operate at maximum (high) speed capacity depending on the building cooling load. The operating range of the DX cooling coil is determined based on the building cooling load for each binned outside air temperature. The building cooling load at an outdoor air temperature \(T_{j}\), is calculated as follows: \begin{equation} BL({T_j}) = \left( {\frac{{{T_j} - 18.3}}{{35.0 - 18.3}}} \right)\left( {\frac{{\dot Q_c^{k = 2}(35.0)}}{{1.1}}} \right) @@ -3191,7 +3191,7 @@ \subsection{Electric Air Heating Coil}\label{electric-air-heating-coil} ~~~~~ QCoilCap = CapacitanceAir*(TempSetPoint - TempAirIn) -~~~~~ ! check to see if setpoint above enetering temperature. If not, set +~~~~~ ! check to see if setpoint above entering temperature. If not, set ~~~~~ ! output to zero. @@ -3799,7 +3799,7 @@ \subsubsection{References}\label{references-5-001} \subsection{Single-Speed DX Heating Coil Standard Ratings}\label{single-speed-dx-heating-coil-standard-ratings} -For single-speed direct expansion (DX) heating coils, the industry standard ratings are calculated according to the ANSI/AHRI Standard 210-240 (AHRI 2008/AHRI 2017). The equations presented in this section are from these two versions of the standard. These ratings are: High Temperature Heating Standard (Net) Rating Capacity, Low Temperature Heating Standard (Net) Rating Capacity and Heating Seasonal Performance Factor (HSPF). The rated Energy Efficiency Ratio (EER) is not calculated for any DX heatings coils at this time. +For single-speed direct expansion (DX) heating coils, the industry standard ratings are calculated according to the ANSI/AHRI Standard 210-240 (AHRI 2008/AHRI 2017). The equations presented in this section are from these two versions of the standard. These ratings are: High Temperature Heating Standard (Net) Rating Capacity, Low Temperature Heating Standard (Net) Rating Capacity and Heating Seasonal Performance Factor (HSPF). The rated Energy Efficiency Ratio (EER) is not calculated for any DX heating coils at this time. For the Coil:Heating:DX:SingleSpeed object in EnergyPlus, these standard ratings are not direct inputs to the model. However, these standard ratings can are calculated using user-entered data for the Coil:Heating:DX:SingleSpeed object. These standard rating values are provided in the eplusout.eio output file (Ref. OutputDetailsAndExamples.pdf) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). Currently, the standard ratings for DX heating coils are only calculated and output for single-speed and multi-speed DX heating coils. @@ -4020,7 +4020,7 @@ \subsubsection{Heating Seasonal Performance Factor (HSPF)}\label{heating-seasona H2 Test (Required, Steady) & 21.11 & 15.56 & 1.67 & 0.56 & Heating Full-load \tabularnewline H3 Test (Required, Steady) & 21.11 & 15.56 & -8.33 & -9.44 & Heating Full-load \tabularnewline \bottomrule -\multicolumn{6}{p{6in}}{\raggedright Notes: 1) Heating air volume arte are defined in section 3.1.4.4 of ANSI/AHRI 210/240-2008 2) Maintain the airflow nozzles static pressure difference ro velocity pressure during the ON periodat the same pressure difference or velocity pressure as measured during the H1 Test.} \tabularnewline +\multicolumn{6}{p{6in}}{\raggedright Notes: 1) Heating air volume rate are defined in section 3.1.4.4 of ANSI/AHRI 210/240-2008 2) Maintain the airflow nozzles static pressure difference or velocity pressure during the ON period at the same pressure difference or velocity pressure as measured during the H1 Test.} \tabularnewline \multicolumn{6}{p{6in}}{Source: Table 9, Page 74, ANSI/AHRI Standard 210/240-2008} \end{longtable} @@ -4103,7 +4103,7 @@ \subsubsection{Model Inputs}\label{model-inputs-3} \subsubsection{Speed 1 Operation}\label{speed-1-operation-1} -The calculation procedures in this model, including defrost and crankcase heater, are indentical to the Coil:Heating:DX:SingleSpeed object (Ref: Coil:Heating:DX:SingleSpeed) with one exception: outlet node condition calculation when the supply air fan operation mode is ContinuousFanWithCyclingCompressor. The following procedure provides the detailed description of the exception. +The calculation procedures in this model, including defrost and crankcase heater, are identical to the Coil:Heating:DX:SingleSpeed object (Ref: Coil:Heating:DX:SingleSpeed) with one exception: outlet node condition calculation when the supply air fan operation mode is ContinuousFanWithCyclingCompressor. The following procedure provides the detailed description of the exception. \begin{itemize} \item Total delivered heating capacity @@ -5400,7 +5400,7 @@ \subsection{Heat Exchanger Assisted Air Cooling Coil Systems}\label{heat-exchang The heat exchanger assisted DX cooling coil may also be used with a DX system located in an air loop (ref. CoilSystem:Cooling:DX). This system object also has three options for dehumidification control (None, Multimode, and CoolReheat). When no dehumidification control is specified (None), the heat exchanger is always active when the cooling coil is operating. When multimode or coolreheat dehumidification control is specified, a humidistat and a maximum humidity setpoint manager are required as shown in Figure~\ref{fig:schematic-of-heat-exchanger-assisted-dx-coil} (setpoint needs to be placed on the DX system's control node). For multimode dehumidification control, the heat exchanger is only active when the zone humidity levels are above the humidistat setpoint (i.e., the system's cooling coil can't meet the maximum humidity ratio setpoint when operating without heat exchanger energy transfer) while the AC system operates to meet the sensible (dry-bulb cooling thermostat) load. For coolreheat dehumidification control, the heat exchanger is always active when the cooling coil operates and this system tries to meet both the sensible (thermostat) and latent (humidistat) loads. -When the heat exchanger assisted cooling coil is used with a furnace or unitary system (ref. AirLoopHVAC:Unitary:Furnace:HeatCool or AirLoopHVAC:UnitaryHeatCool) or DX system (ref. CoilSystem:Cooling:DX) located in an air loop (or DX system used in an outside air system), an ecomizier function may be customized as necessary. For economizer control, an outdoor air controller (ref. Controller:OutdoorAir) is used to define the economizer control inputs and determine when economizer mode is active. The heat exchanger (ref. HeatExchanger:*) object provides an economizer lockout feature which disables heat recovery any time the economizer is active. This feature can be turned on and off using the heat exchanger lockout input. Heat exchanger assisted cooling coils used with the zone equipment described below disregard this economizer control feature. +When the heat exchanger assisted cooling coil is used with a furnace or unitary system (ref. AirLoopHVAC:Unitary:Furnace:HeatCool or AirLoopHVAC:UnitaryHeatCool) or DX system (ref. CoilSystem:Cooling:DX) located in an air loop (or DX system used in an outside air system), an economizer function may be customized as necessary. For economizer control, an outdoor air controller (ref. Controller:OutdoorAir) is used to define the economizer control inputs and determine when economizer mode is active. The heat exchanger (ref. HeatExchanger:*) object provides an economizer lockout feature which disables heat recovery any time the economizer is active. This feature can be turned on and off using the heat exchanger lockout input. Heat exchanger assisted cooling coils used with the zone equipment described below disregard this economizer control feature. \begin{figure}[hbtp] % fig 177 \centering @@ -5930,7 +5930,7 @@ \subsubsection{Model Description}\label{model-description-9} \end{itemize} -The \emph{total cooling capacity modifier curve (function of temperature)} defines the performance of the DX cooling coil as a function of operating conditions. These operating conditions may be specified as either a linear, quadratic or cubic equation using coil entering air wet-bulb temperature as the independent variable or as a biquadratic equation using both coil entering air wet-bulb temperature and outdoor dry-bulb temperuate as the independent variables. Since the variable refrigerant flow system modulates the compressor speed to serve the individual cooling coils, the single independent variable equation is likely to be sufficient to define the DX cooling coil performance. However, if other more accurate information is available, a biquadratic curve using two independent variables may be used. The output of this curve is multiplied by the rated total cooling capacity to give the total cooling capacity at the specific entering air temperatures at which the DX coil unit is operating (i.e., at temperatures different from the rating point temperatures). +The \emph{total cooling capacity modifier curve (function of temperature)} defines the performance of the DX cooling coil as a function of operating conditions. These operating conditions may be specified as either a linear, quadratic or cubic equation using coil entering air wet-bulb temperature as the independent variable or as a biquadratic equation using both coil entering air wet-bulb temperature and outdoor dry-bulb temperature as the independent variables. Since the variable refrigerant flow system modulates the compressor speed to serve the individual cooling coils, the single independent variable equation is likely to be sufficient to define the DX cooling coil performance. However, if other more accurate information is available, a biquadratic curve using two independent variables may be used. The output of this curve is multiplied by the rated total cooling capacity to give the total cooling capacity at the specific entering air temperatures at which the DX coil unit is operating (i.e., at temperatures different from the rating point temperatures). \begin{equation} TotCapTempModFac = a + b\left( {{T_{wb,i}}} \right) + c{\left( {{T_{wb,i}}} \right)^2} + d{\left( {{T_{wb,i}}} \right)^3} @@ -6012,7 +6012,7 @@ \subsubsection{Model Description}\label{model-description-9} For a given coil geometry, the bypass factor is only a function of air mass flow rate. The model calculates the parameter A\(_{o}\) in the equation above based on BF\(_{rated}\) and the rated air mass flow rate. With A\(_{o}\) known, the coil BF can be determined for non-rated air flow rates. -For each simulation time step when the DX cooling coil operates, the total cooling capacity and coil bypass factor at the actual operating conditions are calculated. The coil bypass factor is used to calculate the operating sensible heat ratio (SHR) of the cooling coil using the following equations. Here is where the differnce in models occur for the VRF DX cooling coil and single-speed DX cooling coil. The original coil model (ref: Coil:Cooling:DX:SingleSpeed) calculates the full load outlet air enthalpy and, considering the bypass factor, finds the coil surface temperture (h\(_{ADP}\)) at full load (i.e., PLR = 1). Conversely, the VRF coil model modulates refrigerant flow to the VRF DX cooling coil which is why this model uses the full load coil capacity multipled by the part-load ratio (the modulated refrigerant flow). The effectively finds the coil surface temperature for a variable refrigerant flow DX cooling coil and the operating sensible heat ratio (SHR) can be calculated. +For each simulation time step when the DX cooling coil operates, the total cooling capacity and coil bypass factor at the actual operating conditions are calculated. The coil bypass factor is used to calculate the operating sensible heat ratio (SHR) of the cooling coil using the following equations. Here is where the difference in models occur for the VRF DX cooling coil and single-speed DX cooling coil. The original coil model (ref: Coil:Cooling:DX:SingleSpeed) calculates the full load outlet air enthalpy and, considering the bypass factor, finds the coil surface temperature (h\(_{ADP}\)) at full load (i.e., PLR = 1). Conversely, the VRF coil model modulates refrigerant flow to the VRF DX cooling coil which is why this model uses the full load coil capacity multiplied by the part-load ratio (the modulated refrigerant flow). The effectively finds the coil surface temperature for a variable refrigerant flow DX cooling coil and the operating sensible heat ratio (SHR) can be calculated. \begin{equation} {h_{ADP}} = {h_{in}} - \frac{{\left( {{\dot{Q}_{total}}/ \dot{m}} \right)}}{{1 - BF}} ~~for a single-speed DX coil model (h_{ADP1} in figure below) @@ -6592,7 +6592,7 @@ \subsubsection{Overview}\label{overview-14} Variable-speed cooling coils lead to varied dehumidification behaviors, that the Bypass Factor (BF) is not only dependent on the indoor air flow rate, but also on the refrigerant mass flow rate, i.e.~the compressor speed. It is necessary to assess the BF approach for single-speed DX coil, to be used for the variable-speed systems. -TheDOE/ORNL Heat Pump Design Model(HPDM) is a steady-state vapor compression equipment simulation model, which is able to simulate the performance of a VS WSHP system. We rana calibrated HPDM model to produce performance data of a 2.5-ton, VS WSHPunit in space cooling mode. We ran the model to get the total cooling capacities and SHRs, by specifying the EWT at 65\(^{\circ}\)F, indoor air DB at 80\(^{\circ}\)F and relative humidity at 0.5, and then varying the indoor air flow rate from 400 scfm to 1000 scfm, the compressor speed from 30 Hz to 90 Hz in a 7×7 matrix. Based on the performance results, we used EES (Engineering Equation Solver) to back-calculate the corresponding BF factors and the A\(_{o}\) (effective coil surface area) parameters,using the BF equations for the single speed DX cooling coil in EnergyPlus Engineering Reference. +TheDOE/ORNL Heat Pump Design Model(HPDM) is a steady-state vapor compression equipment simulation model, which is able to simulate the performance of a VS WSHP system. We ran a calibrated HPDM model to produce performance data of a 2.5-ton, VS WSHPunit in space cooling mode. We ran the model to get the total cooling capacities and SHRs, by specifying the EWT at 65\(^{\circ}\)F, indoor air DB at 80\(^{\circ}\)F and relative humidity at 0.5, and then varying the indoor air flow rate from 400 scfm to 1000 scfm, the compressor speed from 30 Hz to 90 Hz in a 7×7 matrix. Based on the performance results, we used EES (Engineering Equation Solver) to back-calculate the corresponding BF factors and the A\(_{o}\) (effective coil surface area) parameters,using the BF equations for the single speed DX cooling coil in EnergyPlus Engineering Reference. And then, we plotted the resultant A\(_{o}\) as a function of indoor air flow rate and compressor speed, as below: @@ -7179,7 +7179,7 @@ \subsubsection{Sensible and Latent Split}\label{sensible-and-latent-split} \(h_{Outlet}\) is the enthalpy of air leaving the passive coil (J/kg) -\(h_{T_{in},\omega_{out}}\) is the enthalpy of air at the leaving humidity ratio and the entering dry bulb temerature +\(h_{T_{in},\omega_{out}}\) is the enthalpy of air at the leaving humidity ratio and the entering dry bulb temperature \(\dot{m}_{sec}\) is the secondary DX coil mass flow rate (kg/s) @@ -7240,7 +7240,7 @@ \subsection{Packaged Thermal Storage Cooling Coil}\label{packaged-thermal-storag \begin{figure}[hbtp] % fig 185 \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/image4293.png} -\caption{Thermal Storage Coil Cooling Only Modee \protect \label{fig:thermal-storage-coil-cooling-only-modee}} +\caption{Thermal Storage Coil Cooling Only Mode \protect \label{fig:thermal-storage-coil-cooling-only-mode}} \end{figure} The governing equations for Cooling Only Mode include: @@ -7265,7 +7265,7 @@ \subsection{Packaged Thermal Storage Cooling Coil}\label{packaged-thermal-storag {\dot Q_{Plant}} = \dot m{c_p}\varepsilon \left( {{T_{TES}} - {T_{w,in}}} \right) \end{equation} -The input correlations are used in the following manner to determine cooling capacity and energy consumption for a given set of operationg conditions. +The input correlations are used in the following manner to determine cooling capacity and energy consumption for a given set of operating conditions. One total evaporator cooling capacity modifier curve is a function of evaporator inlet wetbulb temperature and condenser inlet drybulb temperature. @@ -7355,7 +7355,7 @@ \subsection{Packaged Thermal Storage Cooling Coil}\label{packaged-thermal-storag {\dot Q_{Plant}} = \dot m{c_p}\varepsilon \left( {{T_{TES}} - {T_{w,in}}} \right) \end{equation} -The input correlations are used in the following manner to determine cooling capacity, chargine capacity, and energy consumption for a given set of operationg conditions. +The input correlations are used in the following manner to determine cooling capacity, charging capacity, and energy consumption for a given set of operating conditions. One total evaporator cooling capacity modifier curve is a function of evaporator inlet wetbulb and condenser inlet drybulb temperatures and state of TES, \({S_{TES}}\) ~(temperature of water or fraction of ice). diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex index ea7c15d3c9d..a2cb42b72df 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-001/hvac-controllers.tex @@ -93,7 +93,7 @@ \subsubsection{Model Description}\label{model-description-012} \subsection{Outdoor Air Damper Controller for Air Systems}\label{outdoor-air-damper-controller-for-air-systems} -When the heat exchanger assisted cooling coil is used with a furnace or unitary system (ref. AirLoopHVAC:Unitary:Furnace:HeatCool or AirLoopHVAC:UnitaryHeatCool) or DX system (ref. CoilSystem:Cooling:DX) located in an air loop (or DX system used in an outside air system), an ecomizier function may be customized as necessary. For economizer control, an outdoor air controller (ref. Controller:OutdoorAir) is used to define the economizer control inputs and determine when economizer mode is active. The heat exchanger (ref. HeatExchanger:*) object provides an economizer lockout feature which disables heat recovery any time the economizer is active. This feature can be turned on and off using the heat exchanger lockout input. Heat exchanger assisted cooling coils used with the zone equipment described below disregard this economizer control feature. The heat recovery bypass control input may also be used to selectively control heat recovery. +When the heat exchanger assisted cooling coil is used with a furnace or unitary system (ref. AirLoopHVAC:Unitary:Furnace:HeatCool or AirLoopHVAC:UnitaryHeatCool) or DX system (ref. CoilSystem:Cooling:DX) located in an air loop (or DX system used in an outside air system), an economizer function may be customized as necessary. For economizer control, an outdoor air controller (ref. Controller:OutdoorAir) is used to define the economizer control inputs and determine when economizer mode is active. The heat exchanger (ref. HeatExchanger:*) object provides an economizer lockout feature which disables heat recovery any time the economizer is active. This feature can be turned on and off using the heat exchanger lockout input. Heat exchanger assisted cooling coils used with the zone equipment described below disregard this economizer control feature. The heat recovery bypass control input may also be used to selectively control heat recovery. \subsubsection{Inputs}\label{inputs} @@ -143,7 +143,7 @@ \subsubsection{Inputs}\label{inputs} \item High humidity control flag: \emph{Yes} \textbar{} \emph{No} \item - Humidstat control zone name (zone name where humidistat is located) + Humidistat control zone name (zone name where humidistat is located) \item Control high indoor humidity based on outdoor humidity ratio: \emph{Yes} \textbar{} \emph{No} \item @@ -229,14 +229,14 @@ \subsubsection{Step 3: Do the on/off and limit checks}\label{step-3-Do-the-onoff \begin{itemize} \item If \({T_i} > {T_{mix,set}}\), \({S_{oa,init}} = 1\). -\item If Differential dry-bulb was input as Economizer choiceand \({T_i} > {T_r}\), then \({S_{oa,init}} = {f_{oa,\min }}\). -\item If Differential Enthalpy was input as Economizer choiceand \({h_i} > {h_r}\) , then \({S_{oa,init}} = {f_{oa,\min }}\), where \emph{h\(_{i}\)} and \emph{h\(_{r}\)}~are the outside air inlet and return air enthalpies. +\item If Differential dry-bulb was input as Economizer choice and \({T_i} > {T_r}\), then \({S_{oa,init}} = {f_{oa,\min }}\). +\item If Differential Enthalpy was input as Economizer choice and \({h_i} > {h_r}\) , then \({S_{oa,init}} = {f_{oa,\min }}\), where \emph{h\(_{i}\)} and \emph{h\(_{r}\)}~are the outside air inlet and return air enthalpies. \end{itemize} Setpoints are checked after this which include check for Fixed dry-bulb temperature~ limit, Enthalpy Limit, Dewpoint Limit and Humidity ratio limit if specified. \begin{itemize} -\item If Differential Enthalpy was input as Economizer choiceand \({h_i} > {h_r}\) , then \({S_{oa,init}} = {f_{oa,\min }}\), where \emph{h\(_{i}\)} and \emph{h\(_{r}\)}~are the outside air inlet and return air enthalpies. +\item If Differential Enthalpy was input as Economizer choice and \({h_i} > {h_r}\) , then \({S_{oa,init}} = {f_{oa,\min }}\), where \emph{h\(_{i}\)} and \emph{h\(_{r}\)}~are the outside air inlet and return air enthalpies. \end{itemize} Setpoints are checked after this which include check for Fixed dry-bulb temperature limit, Enthalpy Limit, Dewpoint Limit and Humidity ratio limit if specified. @@ -257,14 +257,14 @@ \subsubsection{Step 3: Do the on/off and limit checks}\label{step-3-Do-the-onoff Note: the above nine cases set the \emph{EconomizerOperationFlag} to \emph{false} (economizer not operating), otherwise the economizer is active. \begin{itemize} -\item If high humidity control is specified and the zone humidistat indicates a moisture load (i.e.~zone relative humidity greater than the relative humidity setpoint), the \emph{HighHumidityOperationFlag} is set to \emph{true.} If high humidity control is based on the outdoor humidity ratio then the \emph{HighHumidityOperationFlag} is set to \emph{true} only when the outdoor air humidity ratio is less than the humidstat's zone humidity ratio. A \emph{true} HIghHumidityOperationFlag also enables economizer operation in the heat exchangers as if the economizer flag used here was also set to \emph{true} (Ref. HeatExchanger:* - field Economizer Lockout). +\item If high humidity control is specified and the zone humidistat indicates a moisture load (i.e.~zone relative humidity greater than the relative humidity setpoint), the \emph{HighHumidityOperationFlag} is set to \emph{true.} If high humidity control is based on the outdoor humidity ratio then the \emph{HighHumidityOperationFlag} is set to \emph{true} only when the outdoor air humidity ratio is less than the humidistat's zone humidity ratio. A \emph{true} HIghHumidityOperationFlag also enables economizer operation in the heat exchangers as if the economizer flag used here was also set to \emph{true} (Ref. HeatExchanger:* - field Economizer Lockout). \end{itemize} The economizer schedule is then checked to determine if a ``push-button'' type economizer control is used. When schedule values are greater than 0, the economizer is active (\emph{EconomizerOperationFlag} = \emph{true)}. This test overrides the economizer limit checks described above in Step 3. \subsubsection{Step 4: Calculate the final outside air signal}\label{step-4-Calculate-the-final-outside-air-signal} -If \emph{S\(_{oa,init}\)} is greater than \({f_{oa,\min }}\) and less than 1 and the mixed air mass flow rate is greater than \({\dot m_{verysmall}}\) (\({10^{ - 30}}\) ) and night venting is not occuring and \emph{HighHumidityOperationFlag} is false, then we calculate a final outside air signal \emph{S\(_{oa}\)} by using the root solver method routine \emph{SolveRegulaFalsi} to zero the residual \({T_{mix,set}} - {T_{mix}}\) by varying the outside air mass flow rate \({S_{oa}}\cdot {\dot m_{mix}}\) . Mass and energy balance are used to obtain the mixed air humidity ratio and enthalpy from the recirculated air and outside air inlet conditions. The psychrometric function \emph{PsyTdbFnHW} is used to obtain \emph{T\(_{mix}\)} from the mixed air enthalpy and humidity ratio. +If \emph{S\(_{oa,init}\)} is greater than \({f_{oa,\min }}\) and less than 1 and the mixed air mass flow rate is greater than \({\dot m_{verysmall}}\) (\({10^{ - 30}}\) ) and night venting is not occurring and \emph{HighHumidityOperationFlag} is false, then we calculate a final outside air signal \emph{S\(_{oa}\)} by using the root solver method routine \emph{SolveRegulaFalsi} to zero the residual \({T_{mix,set}} - {T_{mix}}\) by varying the outside air mass flow rate \({S_{oa}}\cdot {\dot m_{mix}}\) . Mass and energy balance are used to obtain the mixed air humidity ratio and enthalpy from the recirculated air and outside air inlet conditions. The psychrometric function \emph{PsyTdbFnHW} is used to obtain \emph{T\(_{mix}\)} from the mixed air enthalpy and humidity ratio. Otherwise, \({S_{oa}} = {S_{oa,init}}\). @@ -278,7 +278,7 @@ \subsubsection{Step 5: calculate the outside air flow rate and apply final const S_{oa} = \max\PB{f_{oa,min},OAFlowRatio_{HighRH}\frac{\dot{m}_{oa,max,des}}{\dot{m}_{mix}}} \end{equation} -If night ventilation is occuring, \({S_{oa}} = 1\). Note that night ventilation has priority over the above constraints. +If night ventilation is occurring, \({S_{oa}} = 1\). Note that night ventilation has priority over the above constraints. Now, the outside air flow rate is calculated: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex index a50586e0509..c87640be23b 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-compound-component-groups.tex @@ -34,7 +34,7 @@ \subsubsection{Setpoint based control:}\label{setpoint-based-control} \paragraph{Step 2a -- Humidity Control = MultiMode}\label{step-2a-humidity-control-multimode} -If the humidity control type is MultiMode, then the coil's enhanced dehumidification mode is activated when the coil type is Coil:Cooling:DX:TwoStageWithHumidityControlMode and Step 1 above is repeated to meet the sensible load using the coil performance resulting from the enhanced dehumidificaiton mode. This is a semi-passive approach to dehumidification which may fall short or may exceed the dehumidification requirement. +If the humidity control type is MultiMode, then the coil's enhanced dehumidification mode is activated when the coil type is Coil:Cooling:DX:TwoStageWithHumidityControlMode and Step 1 above is repeated to meet the sensible load using the coil performance resulting from the enhanced dehumidification mode. This is a semi-passive approach to dehumidification which may fall short or may exceed the dehumidification requirement. \paragraph{Step 2b -- Humidity Control = CoolReheat}\label{step-2b-humidity-control-coolreheat} @@ -69,7 +69,7 @@ \subsubsection{Load based control:}\label{load-based-control} \label{eq:UnitarySystemCoolingLoad} \end{equation} -If the supply air fan operating mode schedule requests cycling fan operation, the model first checks for the presence of an ecomomizer in the outside air system serving the unitary system's air loop (Ref. AirLoopHVAC:OutdoorAirSystem). If an outside air system is not present or if an air-side economizer is not used, the unitary system's compressor is used to meet the unitary system cooling load. If an air-side economizer is used and is active (i.e., economizer controls indicate that conditions are favorable to increase the outside air flow rate), the unitary system will try to meet the cooling load by operating only the supply air fan. If the fan is able to satisfy the unitary system cooling load, the compressor remains off for the entire simulation time step. If the operation of the fan alone is unable to meet the entire cooling load, then the compressor is enabled and additional calculations are performed to determine the compressor's part-load ratio. +If the supply air fan operating mode schedule requests cycling fan operation, the model first checks for the presence of an economizer in the outside air system serving the unitary system's air loop (Ref. AirLoopHVAC:OutdoorAirSystem). If an outside air system is not present or if an air-side economizer is not used, the unitary system's compressor is used to meet the unitary system cooling load. If an air-side economizer is used and is active (i.e., economizer controls indicate that conditions are favorable to increase the outside air flow rate), the unitary system will try to meet the cooling load by operating only the supply air fan. If the fan is able to satisfy the unitary system cooling load, the compressor remains off for the entire simulation time step. If the operation of the fan alone is unable to meet the entire cooling load, then the compressor is enabled and additional calculations are performed to determine the compressor's part-load ratio. The model then calculates the unitary system's sensible cooling energy rate delivered to the zones being served when the system runs at full-load conditions and when the cooling coil is OFF. If the supply air fan cycles with the compressor, then the sensible cooling energy rate is zero when the cooling coil is OFF. However if the fan is configured to run continuously regardless of coil operation, then the sensible cooling energy rate will probably not be zero when the cooling coil is OFF. Calculating the sensible cooling energy rate involves modeling the supply air fan (and associated fan heat), the cooling coil, and the heating and reheat coil (simply to pass the air properties and mass flow rate from its inlet node to its outlet node). For each of these cases (full load and cooling coil OFF), the sensible cooling energy rate delivered by the unitary system is calculated as follows: @@ -659,7 +659,7 @@ \subsubsection{High Humidity Control}\label{high-humidity-control} \caption{Supplemental heating coil load when predicted zone air temperature is above the heating Setpoint \protect \label{fig:supplemental-heating-coil-load-when-predicted}} \end{figure} -If a heating load exists (Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-001}), the supplementalheating coil is used to meet the heating coil load and at the same time offset the entire sensible cooling energy rate of the cooling coil (to meet the humidistat setpoint). Note that when a heating load exists and high humidity control is required, the unitary system operates at the user-specified cooling air flow rate for the entire simulation time step. As with the fan, and cooling coil, report variables associated with supplemental heating coil performance (e.g., heating coil energy, heating coil rate, heating coil gas or electric energy, heating coil runtime fraction, etc.) are managed in the supplemental (heating) coil object. +If a heating load exists (Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-001}), the supplemental heating coil is used to meet the heating coil load and at the same time offset the entire sensible cooling energy rate of the cooling coil (to meet the humidistat setpoint). Note that when a heating load exists and high humidity control is required, the unitary system operates at the user-specified cooling air flow rate for the entire simulation time step. As with the fan, and cooling coil, report variables associated with supplemental heating coil performance (e.g., heating coil energy, heating coil rate, heating coil gas or electric energy, heating coil runtime fraction, etc.) are managed in the supplemental (heating) coil object. \begin{figure}[hbtp] % fig 220 \centering @@ -828,7 +828,7 @@ \subsubsection{HeatOnly Configuration}\label{heatonly-configuration} \emph{h\(_{out,coil~off}\)} is the enthalpy of air exiting the furnace with the heating coil OFF (J/kg) -\(\Delta_{sen,full~load}\) is the ensible load difference between the system output node and the zone inlet node at full-load conditions. +\(\Delta_{sen,full~load}\) is the sensible load difference between the system output node and the zone inlet node at full-load conditions. \begin{equation} \begin{array}{rl} @@ -909,7 +909,7 @@ \subsubsection{HeatCool Configuration}\label{heatcool-configuration} Furnace~Cooling~Load = \frac{{Control~Zone~Cooling~Load}}{{Control~Zone~Air~Flow~Fraction}} \end{equation} -If the supply air fan operating mode schedule requests cycling fan operation, the model first checks for the presence of an ecomomizer in the outside air system serving the furnace's air loop (Ref. AirLoopHVAC:OutdoorAirSystem). If an outside air system is not present or if an air-side economizer is not used, the furnace's compressor is used to meet the furnace cooling load. If an air-side economizer is used and is active (i.e., economizer controls indicate that conditions are favorable to increase the outside air flow rate), the furnace will try to meet the cooling load by operating only the supply air fan. If the fan is able to satisfy the furnace cooling load, the compressor remains off for the entire simulation time step. If the operation of the fan alone is unable to meet the entire cooling load, then the compressor is enabled and additional calculations are performed to determine the compressor's part-load ratio. +If the supply air fan operating mode schedule requests cycling fan operation, the model first checks for the presence of an economizer in the outside air system serving the furnace's air loop (Ref. AirLoopHVAC:OutdoorAirSystem). If an outside air system is not present or if an air-side economizer is not used, the furnace's compressor is used to meet the furnace cooling load. If an air-side economizer is used and is active (i.e., economizer controls indicate that conditions are favorable to increase the outside air flow rate), the furnace will try to meet the cooling load by operating only the supply air fan. If the fan is able to satisfy the furnace cooling load, the compressor remains off for the entire simulation time step. If the operation of the fan alone is unable to meet the entire cooling load, then the compressor is enabled and additional calculations are performed to determine the compressor's part-load ratio. The model then calculates the furnace's sensible cooling energy rate delivered to the zones being served when the system runs at full-load conditions and when the DX cooling coil is OFF. If the supply air fan cycles with the compressor, then the sensible cooling energy rate is zero when the cooling coil is OFF. However if the fan is configured to run continuously regardless of coil operation, then the sensible cooling energy rate will probably not be zero when the cooling coil is OFF. Calculating the sensible cooling energy rate involves modeling the supply air fan (and associated fan heat), the DX cooling coil, and the heating coil (simply to pass the air properties and mass flow rate from its inlet node to its outlet node). For each of these cases (full load and DX cooling coil OFF), the sensible cooling energy rate delivered by the furnace is calculated as follows: @@ -1346,7 +1346,7 @@ \subsubsection{Cooling Operation}\label{cooling-operation-1} Heat~Pump~Cooling~Load = \frac{{Control~Zone~Cooling~Load}}{{Control~Zone~Air~Flow~Fraction}} \end{equation} -If the supply air fan operating mode schedule requests cycling fan operation, the model first checks for the presence of an ecomomizer in the outside air system serving the heat pump's air loop (Ref. AirLoopHVAC:OutdoorAirSystem). If an outside air system is not present or if an air-side economizer is not used, the heat pump's compressor is used to meet the heat pump cooling load. If an air-side economizer is used and is active (i.e., economizer controls indicate that conditions are favorable to increase the outside air flow rate), the heat pump will try to meet the cooling load by operating only the supply air fan. If the fan is able to satisfy the heat pump cooling load, the compressor remains off for the entire simulation time step. If the operation of the fan alone is unable to meet the entire cooling load, then the compressor is enabled and additional calculations are performed to determine the compressor's part-load ratio. +If the supply air fan operating mode schedule requests cycling fan operation, the model first checks for the presence of an economizer in the outside air system serving the heat pump's air loop (Ref. AirLoopHVAC:OutdoorAirSystem). If an outside air system is not present or if an air-side economizer is not used, the heat pump's compressor is used to meet the heat pump cooling load. If an air-side economizer is used and is active (i.e., economizer controls indicate that conditions are favorable to increase the outside air flow rate), the heat pump will try to meet the cooling load by operating only the supply air fan. If the fan is able to satisfy the heat pump cooling load, the compressor remains off for the entire simulation time step. If the operation of the fan alone is unable to meet the entire cooling load, then the compressor is enabled and additional calculations are performed to determine the compressor's part-load ratio. The model then calculates the heat pump's sensible cooling energy rate delivered to the zones being served when the system runs at full-load conditions and when the DX cooling coil is OFF. If the supply air fan cycles with the compressor, then the sensible cooling energy rate is zero when the cooling coil is OFF. However if the fan is scheduled to run continuously regardless of coil operation, then the sensible cooling energy rate will not be zero when the cooling coil is OFF. Calculating the sensible cooling energy rate involves modeling the supply air fan (and associated fan heat) and the DX cooling coil. The DX heating coil and the supplemental heating coil are also modeled, but only to pass the air properties and mass flow rate from their inlet nodes to their outlet nodes. For each of these cases (full load and DX cooling coil OFF), the sensible cooling energy rate delivered by the heat pump is calculated as follows: @@ -1565,7 +1565,7 @@ \subsubsection{High Humidity Control with AirToAir HeatPump Model}\label{high-hu \(PL{R_{MIN}}\) is the minimum part-load ratio, which is usually 0.0. For the case when the latent capacity degradation model is used (Ref: DX Cooling Coil Model), this value is the minimum part-load ratio at which the cooling coil will dehumidify the air. -When the predicted zone air temperature is above the heating setpoint and if there is a dehumidification load, the supplemental heating coil load is required to offset the excess cooling as shown in Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-002}. If the model determines that the LatentPartLoadRatio is to be used as the operating part-load ratio of the heatpump's cooling coil, the supplemental heating coil is used to offset the excess sensible capacity provided by the heat pump DX cooling coil. The model first checks the sensible load that exists for the current simulation time step (predicted zone temperature with no HVAC operation compared to the thermostat setpoint temperatures). If a sensible cooling load or no sensible cooling or heating load exists (see Figure~\ref{fig:flows-of-warmup-convergence-checks}), the model calculates the difference between the sensible heating load required to reach or maintain the heating dry-bulb temperature setpoint and the actual sensible cooling energy rate delivered by the unit (with LatentPartLoadRatio). In this case, thesupplemental heating coil is used to offset the excess sensible cooling energy provided by the DX cooling coil (if any) that could have caused an overshoot of the heating dry-bulb temperature setpoint. Note that when a humidistat is used and high humidity control is required, the zone dry-bulb temperature will typically move toward the heating temperature setpoint when a high moisture (latent) load exists. +When the predicted zone air temperature is above the heating setpoint and if there is a dehumidification load, the supplemental heating coil load is required to offset the excess cooling as shown in Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-002}. If the model determines that the LatentPartLoadRatio is to be used as the operating part-load ratio of the heatpump's cooling coil, the supplemental heating coil is used to offset the excess sensible capacity provided by the heat pump DX cooling coil. The model first checks the sensible load that exists for the current simulation time step (predicted zone temperature with no HVAC operation compared to the thermostat setpoint temperatures). If a sensible cooling load or no sensible cooling or heating load exists (see Figure~\ref{fig:flows-of-warmup-convergence-checks}), the model calculates the difference between the sensible heating load required to reach or maintain the heating dry-bulb temperature setpoint and the actual sensible cooling energy rate delivered by the unit (with LatentPartLoadRatio). In this case, the supplemental heating coil is used to offset the excess sensible cooling energy provided by the DX cooling coil (if any) that could have caused an overshoot of the heating dry-bulb temperature setpoint. Note that when a humidistat is used and high humidity control is required, the zone dry-bulb temperature will typically move toward the heating temperature setpoint when a high moisture (latent) load exists. \begin{figure}[hbtp] % fig 228 \centering @@ -1573,7 +1573,7 @@ \subsubsection{High Humidity Control with AirToAir HeatPump Model}\label{high-hu \caption{Supplemental heating coil load when predicted zone air temperature is above the heating Setpoint \protect \label{fig:supplemental-heating-coil-load-when-predicted-002}} \end{figure} -If a heating load exists (Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-003}), the supplementalheating coil is used to meet the heating coil load and at the same time offset the entire sensible cooling energy rate of the DX cooling coil (to meet the humidistat setpoint). Note that when a heating load exists and high humidity control is required, the heat pump operates at the user-specified cooling air flow rate for the entire simulation time step. As with the fan, and DX cooling coil, report variables associated with supplemental heating coil performance (e.g., heating coil energy, heating coil rate, heating coil gas or electric energy, heating coil runtime fraction, etc.) are managed in the supplemental (heating) coil object. +If a heating load exists (Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-003}), the supplemental heating coil is used to meet the heating coil load and at the same time offset the entire sensible cooling energy rate of the DX cooling coil (to meet the humidistat setpoint). Note that when a heating load exists and high humidity control is required, the heat pump operates at the user-specified cooling air flow rate for the entire simulation time step. As with the fan, and DX cooling coil, report variables associated with supplemental heating coil performance (e.g., heating coil energy, heating coil rate, heating coil gas or electric energy, heating coil runtime fraction, etc.) are managed in the supplemental (heating) coil object. \begin{figure}[hbtp] % fig 229 \centering @@ -1928,7 +1928,7 @@ \subsubsection{Heating Operation}\label{heating-operation-1} For this case where speed 1 operation was able to meet the required heating load, the speed ratio is set to zero and speed number is equal to 1. -Finally, if the heat pump's heating output at full load for Speed 1 is insufficient to meet the entire heatling load, the Cycling ratio (PartLoadRatio) is set equal to 1.0 (compressor and fan are not cycling). Then the heating speed is increased and the delivered sensible capacity is calculated. If the full load sensible capacity at Speed n is greater than or equal to the sensible load, the speed ratio for the heat pump is estimated: +Finally, if the heat pump's heating output at full load for Speed 1 is insufficient to meet the entire heating load, the Cycling ratio (PartLoadRatio) is set equal to 1.0 (compressor and fan are not cycling). Then the heating speed is increased and the delivered sensible capacity is calculated. If the full load sensible capacity at Speed n is greater than or equal to the sensible load, the speed ratio for the heat pump is estimated: \begin{equation} Speed~Ratio = \frac{{ABS(Heat~Pump~Heating~Load - AddedFanHeat - Full~Heat~Outpu{t_{Speedn-1}})}}{{ABS(Full~Heat~Outpu{t_{Speedn}} - Full~Heat~Outpu{t_{Speedn-1}})}} @@ -2014,7 +2014,7 @@ \subsubsection{Controls}\label{controls-1} \paragraph{Step 2a -- Humidity Control = MultiMode}\label{step-2a-humidity-control-multimode-1} If the humidity control type is MultiMode, then the coil's enhanced dehumidification mode is activated when the coil type is Coil:Cooling:DX:TwoStageWithHumidityControlMode or the heat exchanger is activated when the coil type is \\ -CoilSystem:Cooling:DX:CoolingHeatExchangerAssisted and Step 1 above is repeated to meet the sensible load using the coil performance resulting from the enhanced dehumidificaiton mode. This is a semi-passive approach to dehumidification which may fall short or may exceed the dehumidification requirement. If the user has specified Run on Latent Load = Yes in the CoilSystem:Cooling:DX object, and there is no sensible load to be met, then the system will try to meet the entire dehumidification load. If dehumidification mode should not be active when there is no sensible load, then choose Run on Latent Load = No. +CoilSystem:Cooling:DX:CoolingHeatExchangerAssisted and Step 1 above is repeated to meet the sensible load using the coil performance resulting from the enhanced dehumidification mode. This is a semi-passive approach to dehumidification which may fall short or may exceed the dehumidification requirement. If the user has specified Run on Latent Load = Yes in the CoilSystem:Cooling:DX object, and there is no sensible load to be met, then the system will try to meet the entire dehumidification load. If dehumidification mode should not be active when there is no sensible load, then choose Run on Latent Load = No. \paragraph{Step 2b -- Humidity Control = CoolReheat}\label{step-2b-humidity-control-coolreheat-1} @@ -2254,7 +2254,7 @@ \subsubsection{Coefficient estimation procedure:}\label{coefficient-estimation-p \subsubsection{High Humidity Control with WaterToAir HeatPump Equation Fit model}\label{high-humidity-control-with-watertoair-heatpump-equation-fit-model} -The specific configuration of the WaterToAir HeatPump with supplemental heating coil is shown above (see Figure~\ref{fig:source-side-and-load-side-configuration-of-a}). This figure shows the fan placement when a blow through fan is specified. If a draw through fan is specified, the fan is located between the heating coil and the reheat coil. The system is controlled to keep the high relative humidity in the control zone from exceeding the setpoint specified in the object ZoneControl:Humidistat. When high humidity control is specified and the compressor operates, the heatpump always operates at the cooling air flow rate when a zone heating load is present as determined by the zone thermostat. High humidity control is specified as either None, or CoolReheat in the Dehumidification Control Type input field. CoolReheat is specified when a DX cooling coil is used to over-cool the supply air stream in order to meet the zone latent load. In this case, a supplemental heating coil will ensure the zone temperature does not fall below the zone heating temperature set point. If the dehumidification control type is selected as None, the WaterToAir HeatPump uns only to meet the sensible cooling load. A supplemental heating coil is required for all dehumidification control types. +The specific configuration of the WaterToAir HeatPump with supplemental heating coil is shown above (see Figure~\ref{fig:source-side-and-load-side-configuration-of-a}). This figure shows the fan placement when a blow through fan is specified. If a draw through fan is specified, the fan is located between the heating coil and the reheat coil. The system is controlled to keep the high relative humidity in the control zone from exceeding the setpoint specified in the object ZoneControl:Humidistat. When high humidity control is specified and the compressor operates, the heatpump always operates at the cooling air flow rate when a zone heating load is present as determined by the zone thermostat. High humidity control is specified as either None, or CoolReheat in the Dehumidification Control Type input field. CoolReheat is specified when a DX cooling coil is used to over-cool the supply air stream in order to meet the zone latent load. In this case, a supplemental heating coil will ensure the zone temperature does not fall below the zone heating temperature set point. If the dehumidification control type is selected as None, the WaterToAir HeatPump runs only to meet the sensible cooling load. A supplemental heating coil is required for all dehumidification control types. The model first calculates the \emph{PartLoadRatio} required meeting the sensible cooling load.~ The heatpump's sensible cooling load is determined from the control zone sensible cooling load to the cooling setpoint and the control zone air flow fraction to maintain the dry-bulb temperature setpoint in the control zone: @@ -2306,7 +2306,7 @@ \subsubsection{High Humidity Control with WaterToAir HeatPump Equation Fit model \(PL{R_{MIN}}\) is the minimum part-load ratio, which is usually 0.0. For the case when the latent capacity degradation model is used (Ref: DX Cooling Coil Model), this value is the minimum part-load ratio at which the cooling coil will dehumidify the air. -When the predicted zone air temperature is above the heating setpoint and if there is a dehumidification load, the supplemental heating coil load is required to offset the excess cooling as shown in Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-004}. If the model determines that the LatentPartLoadRatio is to be used as the operating part-load ratio of the heatpump's cooling coil, the supplemental coil is used to offset the excess sensible capacity provided by the unit. The model first checks the sensible load that exists for the current simulation time step (predicted zone temperature with no HVAC operation compared to the thermostat setpoint temperatures). If a sensible cooling load or no sensible cooling or heating load exists (see Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-004}),~ the model calculates the difference between the sensible heating load required to reach or maintain the heating dry-bulb temperature setpoint and the actual sensible cooling energy rate delivered by the heat pump (with LatentPartLoadRatio). In this case, thesupplemental heating coil is used to offset the excess sensible cooling energy provided by the DX cooling coil (if any) that could have caused an overshoot of the heating dry-bulb temperature setpoint. Note that when a humidistat is used and high humidity control is required, the zone dry-bulb temperature will typically move toward the heating temperature setpoint when a high moisture (latent) load exists. +When the predicted zone air temperature is above the heating setpoint and if there is a dehumidification load, the supplemental heating coil load is required to offset the excess cooling as shown in Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-004}. If the model determines that the LatentPartLoadRatio is to be used as the operating part-load ratio of the heatpump's cooling coil, the supplemental coil is used to offset the excess sensible capacity provided by the unit. The model first checks the sensible load that exists for the current simulation time step (predicted zone temperature with no HVAC operation compared to the thermostat setpoint temperatures). If a sensible cooling load or no sensible cooling or heating load exists (see Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-004}),~ the model calculates the difference between the sensible heating load required to reach or maintain the heating dry-bulb temperature setpoint and the actual sensible cooling energy rate delivered by the heat pump (with LatentPartLoadRatio). In this case, the supplemental heating coil is used to offset the excess sensible cooling energy provided by the DX cooling coil (if any) that could have caused an overshoot of the heating dry-bulb temperature setpoint. Note that when a humidistat is used and high humidity control is required, the zone dry-bulb temperature will typically move toward the heating temperature setpoint when a high moisture (latent) load exists. \begin{figure}[hbtp] % fig 236 \centering @@ -2314,7 +2314,7 @@ \subsubsection{High Humidity Control with WaterToAir HeatPump Equation Fit model \caption{Supplemental heating coil load when predicted zone air temperature is above the heating Setpoint \protect \label{fig:supplemental-heating-coil-load-when-predicted-004}} \end{figure} -If a heating load exists (Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-005}), the supplementalheating coil is used to meet the heating coil load and at the same time offset the entire sensible cooling energy rate of the DX cooling coil (to meet the humidistat setpoint). Note that when a heating load exists and high humidity control is required, the heat pump operates at the user-specified cooling air flow rate for the entire simulation time step. As with the fan, and DX cooling coil, report variables associated with supplemental heating coil performance (e.g., heating coil energy, heating coil rate, heating coil gas or electric energy, heating coil runtime fraction, etc.) are managed in the supplemental (heating) coil object. +If a heating load exists (Figure~\ref{fig:supplemental-heating-coil-load-when-predicted-005}), the supplemental heating coil is used to meet the heating coil load and at the same time offset the entire sensible cooling energy rate of the DX cooling coil (to meet the humidistat setpoint). Note that when a heating load exists and high humidity control is required, the heat pump operates at the user-specified cooling air flow rate for the entire simulation time step. As with the fan, and DX cooling coil, report variables associated with supplemental heating coil performance (e.g., heating coil energy, heating coil rate, heating coil gas or electric energy, heating coil runtime fraction, etc.) are managed in the supplemental (heating) coil object. \begin{figure}[hbtp] % fig 237 \centering @@ -2502,7 +2502,7 @@ \subsubsection{Parameter estimation procedure}\label{parameter-estimation-proced \begin{figure}[hbtp] % fig 240 \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/image5306.png} -\caption{Information Flowchart for Water-To-Water Heat Pump Parameter Estimation Mmodel implementation (Jin 2002) \protect \label{fig:information-flowchart-for-water-to-water-heat}} +\caption{Information Flowchart for Water-To-Water Heat Pump Parameter Estimation Model implementation (Jin 2002) \protect \label{fig:information-flowchart-for-water-to-water-heat}} \end{figure} where: @@ -2584,12 +2584,12 @@ \subsection{Fuel-Fired Air to Water Heat Pumps}\label{fuel-fired-air-to-water-he The underlying fuel-fired absorption heat pump model uses equation-fit models based on manufacturer data. The implemented model is as follows: \subsubsection{Equipment Capacity} -The heating and cooling capacities are derived from the nominal (rated) capacity and a capacity function of tempereatures. +The heating and cooling capacities are derived from the nominal (rated) capacity and a capacity function of temperatures. \begin{equation} \mathrm{GAHP Heating/Cooling Capacity} = \mathrm{Rated Capacity} \times \mathrm{CAPFT} \end{equation} -The temperatures used for the equation model are the ambient air temperature ($T_{mathrm{amb}}$) and the returning (or entering) water temeprature ($T_{\mathrm{ret}}$) of the load side. +The temperatures used for the equation model are the ambient air temperature ($T_{mathrm{amb}}$) and the returning (or entering) water temperature ($T_{\mathrm{ret}}$) of the load side. \begin{equation} \mathrm{CAPFT} = a_1 \times T_{\mathrm{amb}} + b_1 \times T_{\mathrm{amb}}^{2} + c_1 \times T_{\mathrm{ret}} + d_1 \times T_{\mathrm{ret}}^{2} + e_1 \times T_{\mathrm{amb}} \times T_{\mathrm{ret}} + f_1 \end{equation} @@ -2601,14 +2601,14 @@ \subsubsection{Part Load Ratio} \end{equation} \subsubsection{Fuel Use} -The fuel usage is calculated using the folloiwing formula, taking consideration of the load capacity, nominal COP, and the various adjustment factors (temperature, PLR, Defrosting, and Cycling Ratio): +The fuel usage is calculated using the following formula, taking consideration of the load capacity, nominal COP, and the various adjustment factors (temperature, PLR, Defrosting, and Cycling Ratio): \begin{equation} \mathrm{Fuel Use} = \frac{\mathrm{Load} \times \mathrm{EIRFT} \times \mathrm{EIRFPLR} \times \mathrm{EIRDEFROST}}{\mathrm{COP}_\mathrm{nominal} \times \mathrm{CRF}} \end{equation} \subsubsection{EIR Temperature Adjustment} -A typical EIR temperature correction function will involve two independent temperature variables---the ambient air temperature ($T_{mathrm{amb}}$) and the returning (or entering) water temeprature ($T_{\mathrm{ret}}$) of the load side. +A typical EIR temperature correction function will involve two independent temperature variables---the ambient air temperature ($T_{mathrm{amb}}$) and the returning (or entering) water temperature ($T_{\mathrm{ret}}$) of the load side. \begin{equation} \mathrm{EIRFT} = a_2 \times Tamb + b_2 \times T_{\mathrm{amb}}^{2} + c_2 \times T_{\mathrm{ret}}^{2} + d_2 \times T_{\mathrm{ret}}^{2} + e_2 \times T_{\mathrm{amb}} \times T_{\mathrm{ret}} + f_2 \end{equation} @@ -2620,7 +2620,7 @@ \subsubsection{EIR PLR Adjustment} \end{equation} \subsubsection{Defrosting Adjustment (Heating mode only)} -If the defrost control type is OnDemand, then the defrost fuel use correction is modeled using the ambient air temperature as the independent varable. The inputs allows a cubic (or lower order) function. For example, one possible curve correlation can look like the following: +If the defrost control type is OnDemand, then the defrost fuel use correction is modeled using the ambient air temperature as the independent variable. The inputs allows a cubic (or lower order) function. For example, one possible curve correlation can look like the following: \begin{equation} \mathrm{EIRDEFROST} = -0.0011 \times T_{\mathrm{amb}}^{2} - 0.006 \times T_{\mathrm{amb}} + 1.0317, \mathrm{for} -8.89^{\circ}\mathrm{C} \leq T_{\mathrm{amb}} \leq 3.33^{\circ}\mathrm{C} \end{equation} @@ -2637,12 +2637,12 @@ \subsubsection{Cycling Ratio Adjustment} \mathrm{CR} = \frac{\mathrm{PLR}}{\mathrm{PLR}_{\mathrm{min}}}, \mathrm{for} 0.2 \leq \mathrm{PLR} \leq 0.25 \end{equation} -Please note that since the object is based on curve inputs, the user also has the flexibility of defining the curves by themselves---e.g. from the capactity function of temperature to the defrost EIR corrections. +Please note that since the object is based on curve inputs, the user also has the flexibility of defining the curves by themselves---e.g. from the capacity function of temperature to the defrost EIR corrections. \subsubsection{Electricty Use} -The electricity use for the fuel-fired absorption heat pump is modeled using EIR (Electricity based relation) input curves. The two part of electricity use is the ``auxiliary electricty'' and the ``standby electricity'': +The electricity use for the fuel-fired absorption heat pump is modeled using EIR (Electricity based relation) input curves. The two part of electricity use is the ``auxiliary electricity'' and the ``standby electricity'': \begin{equation} -\mathrm{Electricity use} = \mathrm{Norminal Auxilary Power} \times \mathrm{EIR}_{\mathrm{auxiliary}} + \mathrm{Electricty}_{\mathrm{Standby}}, +\mathrm{Electricity use} = \mathrm{Norminal Auxiliary Power} \times \mathrm{EIR}_{\mathrm{auxiliary}} + \mathrm{Electricty}_{\mathrm{Standby}}, \end{equation} -where $\mathrm{EIR}_{\mathrm{auxiliary}}$ are supplied by the curve input, and $\mathrm{Norminal Auxilary Power}$ and $\mathrm{Electricty}_{\mathrm{Standby}}$ are supplied by the equipment standby electricity inputs. +where $\mathrm{EIR}_{\mathrm{auxiliary}}$ are supplied by the curve input, and $\mathrm{Norminal Auxiliary Power}$ and $\mathrm{Electricty}_{\mathrm{Standby}}$ are supplied by the equipment standby electricity inputs. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex index 4e03e24adec..32219cb08d4 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/air-system-fans.tex @@ -182,7 +182,7 @@ \subsubsection{Simulation}\label{simulation} RTF = \frac{f_{flow}}{PLF} \end{equation} -The total fan power is then calculated as the maximum fan power multipled by the run time fraction. +The total fan power is then calculated as the maximum fan power multiplied by the run time fraction. \begin{equation} {\dot{Q}_{tot}} = RTF\left[ {\dot{m} \cdot \Delta P/\left( {{\varepsilon_{tot}}\cdot {\rho_{air}}} \right)} \right] @@ -228,7 +228,7 @@ \subsubsection{Simulation}\label{simulation} {\dot{Q}_{tot}} = RTF\left[ {\frac{{\dot{m} \Delta P}}{{{\varepsilon_{tot}}{\rho_{air}}}}} \right]\left( {\frac{{PowerRatio}}{{EfficiencyRatio}}} \right) \end{equation} -Each of the performance curves described above may be used to model the performance of a multi-speed fan motor, however, the power ratio curve must be used to envoke the multi-speed simulation. These curves are used when the fan is used in an HVAC system having multiple flow rates (i.e., different flow rates in cooling and heating mode). If an HVAC system operates at the same speed in either cooling or heating mode, these curves are not required. When these curves are not used, the associated ratio term in the equation above is assumed to be 1. The remaining calculations are identical to the simple single-speed fan model described above. +Each of the performance curves described above may be used to model the performance of a multi-speed fan motor, however, the power ratio curve must be used to invoke the multi-speed simulation. These curves are used when the fan is used in an HVAC system having multiple flow rates (i.e., different flow rates in cooling and heating mode). If an HVAC system operates at the same speed in either cooling or heating mode, these curves are not required. When these curves are not used, the associated ratio term in the equation above is assumed to be 1. The remaining calculations are identical to the simple single-speed fan model described above. \emph{\textbf{Variable Speed Fan Model}} @@ -570,7 +570,7 @@ \subsubsection{Simulation}\label{simulation} \caption{Belt Maximum Efficiency vs. Fan Shaft Power Input \protect \label{fig:belt-maximum-efficiency-vs.-fan-shaft-power}} \end{figure} -The quardratic polynomial curves in Figure~\ref{fig:belt-maximum-efficiency-vs.-fan-shaft-power} and their coefficients are as follows: +The quadratic polynomial curves in Figure~\ref{fig:belt-maximum-efficiency-vs.-fan-shaft-power} and their coefficients are as follows: \begin{equation} {\eta_{belt,max,ln}} = {c_1} + {c_2} \cdot {x_{belt,max}} + {c_3} \cdot x_{belt,max}^2 + {c_4} \cdot x_{belt,max}^3 + {c_5} \cdot x_{belt,max }^4 diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/demand-controlled-ventilation.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/demand-controlled-ventilation.tex index 3946a8f0194..18f78702518 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/demand-controlled-ventilation.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/demand-controlled-ventilation.tex @@ -2,7 +2,7 @@ \section{Demand Controlled Ventilation }\label{demand-controlled-ventilation} ASHRAE Standard 62.1, Ventilation for Acceptable Indoor Air Quality, contains provisions that allow building ventilation systems to vary the amount of outdoor ventilation air delivered to occupied zones based on feedback from sensors that monitor various indoor air contaminants (ASHRAE 2007). Although not a contaminant of concern in most buildings, carbon dioxide (CO\(_{2}\)) levels can be monitored as an indicator of building occupancy and the associated human bioeffluent concentration. Demand controlled ventilation (DCV) is being increasingly used to modulate outdoor ventilation air based on real-time occupancy (Emmerich and Persily 1997, Schell et al. 1998, Schell and Int-Hout 2001). Modulating the outdoor ventilation air while maintaining proper indoor air quality has the potential for large energy savings compared to constant rate ventilation systems that are typically designed to provide outdoor ventilation air based on maximum anticipated occupancy. -EnergyPlus can model DCV by the ventilation rate procedure (VRP) defined in ASHRAE Standard 62.1-2007/2010 for single and multiple path systems, and the indoor air quality procedure (IAQP) defined in Standard 62. The VRP first calculates the breathing-zone outdoor air flow rate based on two components -- the zone occupant component and the zone floor area component, then it calculates the zone supply outdoor air flow rate considering the zone air distribution effectiveness and secondary recirculation (for mult-path systems only), and finally calculates the system outdoor air flow rate considering the zone diversity and system ventilation efficiency. The user must include the following five objects in their input data file in order to model DCV (using VRP or IAQP): +EnergyPlus can model DCV by the ventilation rate procedure (VRP) defined in ASHRAE Standard 62.1-2007/2010 for single and multiple path systems, and the indoor air quality procedure (IAQP) defined in Standard 62. The VRP first calculates the breathing-zone outdoor air flow rate based on two components -- the zone occupant component and the zone floor area component, then it calculates the zone supply outdoor air flow rate considering the zone air distribution effectiveness and secondary recirculation (for multi-path systems only), and finally calculates the system outdoor air flow rate considering the zone diversity and system ventilation efficiency. The user must include the following five objects in their input data file in order to model DCV (using VRP or IAQP): \begin{itemize} \item \textbf{AirLoopHVAC:OutdoorAirSystem} to simulate the mixed air box of the air loop @@ -90,7 +90,7 @@ \subsubsection{Calculation of system minimum outdoor air flow}\label{calculation {V_{ot}} = min(V_{{ot}_{design}}, {V_{ou}}/{E_v}) \end{equation} -The ``Standard62.1VentilationRateProcedureWithLimit'' option should be used when the system outdoor air intake must stay at or below the design minimum outdoor air flow rate. This option can be used to meet the ``Multiple-Zone VAV System Ventilation Optimization Control'' requirements in ASHRAE Standards 90.1-2010 (and onwards) as well as the ``Outdoor Airflow Set Point for ASHRAE Standard 62.1-2016 Ventilation'' in Section 5.16.3.1 in the ASHRAE Guideline 36-2018. +The ``Standard62.1VentilationRateProcedureWithLimit'' option should be used when the system outdoor air intake must stay at or below the design minimum outdoor air flow rate. This option can be used to meet the ``Multiple-Zone VAV System Ventilation Optimization Control'' requirements in ASHRAE Standards 90.1-2010 (and onward) as well as the ``Outdoor Airflow Set Point for ASHRAE Standard 62.1-2016 Ventilation'' in Section 5.16.3.1 in the ASHRAE Guideline 36-2018. where: diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex index c02718b8913..a79a83fe057 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/evaporative-coolers.tex @@ -271,7 +271,7 @@ \subsubsection{Wet Mode Operation}\label{wet-mode-operation} Calculate heat transfer rate \end{enumerate} -The secondary air entering wet-bulb temperature would be the loswest limit allowed, although this temperature cannot be attained in most practical situations. This is checked as a limiting case. +The secondary air entering wet-bulb temperature would be the lowest limit allowed, although this temperature cannot be attained in most practical situations. This is checked as a limiting case. \begin{equation} \begin{array}{rl} @@ -390,7 +390,7 @@ \subsubsection{Dry Mode Operation}\label{dry-mode-operation} \setcounter{enumi}{4} \tightlist \item - Recalculate leaving supply air dryblub using new heat transfer rate from step 4 + Recalculate leaving supply air drybulb using new heat transfer rate from step 4 \end{enumerate} \begin{equation} @@ -584,7 +584,7 @@ \subsubsection{Indirect Evaporative Cooler Sizing}\label{indirect-evaporative-co \paragraph{Secondary Air DesignFan Flow Rate}\label{secondary-air-designfan-flow-rate} -The secondary air design flow rate fan is not part of an airstream that is directly modeled in EnergyPlus. Because the primary side air flows can be autosized as part of the air system, it is convenentconvenient to also scale the size of the secondary flow. If the cooler is part of the main loop of a central air system, then the secondary fan flow rate is sized to equal to the main design flow rate. +The secondary air design flow rate fan is not part of an airstream that is directly modeled in EnergyPlus. Because the primary side air flows can be autosized as part of the air system, it is convenient to also scale the size of the secondary flow. If the cooler is part of the main loop of a central air system, then the secondary fan flow rate is sized to equal to the main design flow rate. User inputs for autosizing scaling factors are included so that when modeling an autosized IEC, all the design values can be scaled off of Primary Design Air Flow Rate. User input for Secondary Air Flow Sizing Factor is multiplied by DesMainVolFlow\(_{sys}\) as follows: @@ -600,7 +600,7 @@ \subsubsection{Indirect Evaporative Cooler Sizing}\label{indirect-evaporative-co \paragraph{Secondary Fan Design Power}\label{secondary-fan-design-power} -The Secondary Fan Design Power is outosized from secondary air design flow rate and user input for Secondary Fan Sizing Specific Power in units of W/(m3/s) as follows: +The Secondary Fan Design Power is autosized from secondary air design flow rate and user input for Secondary Fan Sizing Specific Power in units of W/(m3/s) as follows: \begin{equation} P_{sec,fan,design} = \dot{V}_{sec,design}\cdot\text{FanPowerScalingFactor} @@ -649,7 +649,7 @@ \subsection{Direct Evaporative Cooler Special Research Model}\label{direct-evapo where: -\({T_{db,out,sys}}\) is the drybub temperature of the air leaving the cooler (\(^{\circ}\)C) +\({T_{db,out,sys}}\) is the drybulb temperature of the air leaving the cooler (\(^{\circ}\)C) \({T_{db,in,sys}}\) is the drybulb temperature of the air entering the cooler (\(^{\circ}\)C) \({T_{wb,in,sys}}\) is the wetbulb temperature of the air entering the cooler (\(^{\circ}\)C) \(\varepsilon_{design}\) is the cooler design effectiveness diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/heat-exchangers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/heat-exchangers.tex index 5ffc0c86a3a..bd1fbaa531e 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/heat-exchangers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/heat-exchangers.tex @@ -499,7 +499,7 @@ \subsubsection{Model Description}\label{model-description-1-007} UA = U{A_{des}}({r_{hA}} + 1)/({({\dot m_{p,des}}{T_{p,des}}/{\dot m_p}{T_p})^{.78}} + {r_{hA}}{({\dot m_{s,des}}{T_{s,des}}/{\dot m_s}{T_s})^{.78}}) \end{equation} -where \emph{des} means \emph{design}, \emph{p} means \emph{primary}, \emph{s} means \emph{secondary}, \emph{T} is air stream temperature, and \(\dot m\) is air stream mass flow rate. From the \emph{UA} and the capacity flow ratio the \emph{NTU} is determined: \(NTU = UA/{C_{\min }}\). Then the NTU -- effectiveness formulas are used to calculate the effectiveness. From the effectiveness and the inlet conditions, outlet condtions are determined. +where \emph{des} means \emph{design}, \emph{p} means \emph{primary}, \emph{s} means \emph{secondary}, \emph{T} is air stream temperature, and \(\dot m\) is air stream mass flow rate. From the \emph{UA} and the capacity flow ratio the \emph{NTU} is determined: \(NTU = UA/{C_{\min }}\). Then the NTU -- effectiveness formulas are used to calculate the effectiveness. From the effectiveness and the inlet conditions, outlet conditions are determined. \subsubsection{Economizer Operation}\label{economizer-operation-1} @@ -949,7 +949,7 @@ \subsubsection{Long Time-Step Response Factors}\label{long-time-step-response-fa \(t\) is the simulation time -\(u_1\) is the starting discretization point for borhole +\(u_1\) is the starting discretization point for borehole \(u_2\) is the final discretization point for borehole @@ -986,7 +986,7 @@ \subsubsection{Description of the Load Aggregation Scheme}\label{description-of- \begin{figure}[hbtp] % fig 256 \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/image5657.png} -\caption{Schematic Showing the Calculation of Hourly Load from the Sub Houly Loads. \protect \label{fig:schematic-showing-the-calculation-of-hourly}} +\caption{Schematic Showing the Calculation of Hourly Load from the Sub Hourly Loads. \protect \label{fig:schematic-showing-the-calculation-of-hourly}} \end{figure} The bottom text in the boxes represents the magnitude of the sub hourly loads in W/m for each time step. The duration of the occurrence of each time-step for the each block is shown below the respective block. The first hourly load is given by the expression: @@ -1192,7 +1192,7 @@ \subsubsection{References}\label{references-2-006} \subsection{GroundHeatExchanger:Slinky}\label{groundheatexchangerslinky} -This model reuses much of the same code including the load aggregation and temperature response caluclations which are described above in the GroundHeatExchanger:Vertical model. As a result, that section can also be used as reference material. This model is unique in that it generates it's own temperature response factor g-functions, rather than relying on the other software or data to generate the g-functions. These are generated based on the work by Xiong et al. 2015. +This model reuses much of the same code including the load aggregation and temperature response calculations which are described above in the GroundHeatExchanger:Vertical model. As a result, that section can also be used as reference material. This model is unique in that it generates it's own temperature response factor g-functions, rather than relying on the other software or data to generate the g-functions. These are generated based on the work by Xiong et al. 2015. \subsubsection{Horizontal Slinky Temperature Response Functions}\label{horizontal-slinky-temperature-response-functions} @@ -1265,11 +1265,11 @@ \subsubsection{Vertical Slinky Temperature Response Functions}\label{vertical-sl \subsubsection{Model Simplifications for Computational Efficiency}\label{model-simplifications-for-computational-efficiency} -Several simplifications were used to ensure the g-function temperature response factors are computationally efficient. The first simplification is achieved by taking advantage of symmetry. In the Figure~\ref{fig:slinky-first-and-second-improvements} below, we can see that by taking advantage of symmettry the temperature response for only one quarter of the rings needs be calculated. +Several simplifications were used to ensure the g-function temperature response factors are computationally efficient. The first simplification is achieved by taking advantage of symmetry. In the Figure~\ref{fig:slinky-first-and-second-improvements} below, we can see that by taking advantage of symmetry the temperature response for only one quarter of the rings needs be calculated. -The second simplification occurs by realizing that the effect between two rings decreases exponentially as the distance between the rings increases. Near-field rings are defined as rings whose centers are within 2.5m + D distance from the center of ring i as is seen in Figure~\ref{fig:slinky-first-and-second-improvements}. Far-field rings are defined as rings whose centers are beyond 10m + D, with middle-field rings occupying the space in between the near-field and far-field rings. Near-field ring temperature response factors are determined as indicated above for horzontal or vertical slinkys. Middle-field rings are considerably simplified -- the interaction between ring is approximated as that of two point sources at their centers. Thermal effect of far-field rings are ignored. +The second simplification occurs by realizing that the effect between two rings decreases exponentially as the distance between the rings increases. Near-field rings are defined as rings whose centers are within 2.5m + D distance from the center of ring i as is seen in Figure~\ref{fig:slinky-first-and-second-improvements}. Far-field rings are defined as rings whose centers are beyond 10m + D, with middle-field rings occupying the space in between the near-field and far-field rings. Near-field ring temperature response factors are determined as indicated above for horizontal or vertical slinkys. Middle-field rings are considerably simplified -- the interaction between ring is approximated as that of two point sources at their centers. Thermal effect of far-field rings are ignored. -The third and final simplification takes advantatge of geometric similarity that ring share. Ring pairs that are geometrically similar do not require recalculation of distances or reponse factors. Thus the calculations for geometrically similar ring pairs can be reused. +The third and final simplification takes advantage of geometric similarity that ring share. Ring pairs that are geometrically similar do not require recalculation of distances or response factors. Thus the calculations for geometrically similar ring pairs can be reused. For more information, see the Xiong et al. (2015) reference listed below. @@ -1603,7 +1603,7 @@ \subsection{Plant Loop Fluid-to-Fluid Heat Exchanger}\label{plant-loop-fluid-to- This component (Object: HeatExchanger:FluidToFluid) is a simple hydronic heat exchanger that can be used to couple two (hydronic) plant or condenser loops.~ Sizing and nominal capacity calculations are discussed elsewhere in this document, see the section called Plant Heat Exchanger Sizing. This section first discusses the heat transfer modeling and the control issues. -Heat exchanger performance modeling uses classic effectiveness-NTU correlations. The heat exchanger model can be specified as one of seven types: ~cross flow both fluid streams unmixed, cross flow both fluid streams mixed, cross flow Loop Supply Side mixed and Loop Demand Side unmixed, cross flow Loop Supply Side unmixed and Loop Demand Side mixed, counter flow, parallel flow, or ideal. The model correlations determine a heat transfer effectiveness value, \(\varepsilon\), which is a function of heat exchanger UA, the mass flow rates through boths sides, and the specific heat of the fluids in the streams.~ The effectiveness of an ideal heat exchanger is set to 1.0 and no correlation is needed. +Heat exchanger performance modeling uses classic effectiveness-NTU correlations. The heat exchanger model can be specified as one of seven types: ~cross flow both fluid streams unmixed, cross flow both fluid streams mixed, cross flow Loop Supply Side mixed and Loop Demand Side unmixed, cross flow Loop Supply Side unmixed and Loop Demand Side mixed, counter flow, parallel flow, or ideal. The model correlations determine a heat transfer effectiveness value, \(\varepsilon\), which is a function of heat exchanger UA, the mass flow rates through both sides, and the specific heat of the fluids in the streams.~ The effectiveness of an ideal heat exchanger is set to 1.0 and no correlation is needed. Because the heat exchanger is intended to be generic, its two sides are distinguished by the nature of loop side being connected.~ One side is called ``Loop Supply Side'' to indicate the heat exchanger is situated on the supply side of a loop. The other side is called ``Loop Demand Side'' to indicate it is on the demand side of a loop.~ The heat exchanger is intended to act as a supply component for the loop connected to it as the ``Loop Supply Side'' and as a demand component for the loop connected to it as the ``Loop Demand Side.''~ From the point of view of the heat exchanger component itself, the Loop Demand Side acts like a supply source/sink for the Loop Supply Side which acts like a demand to the component. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/variable-refrigerant-flow-heat-pumps.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/variable-refrigerant-flow-heat-pumps.tex index 4bac955aa55..df0bb4f02cf 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/variable-refrigerant-flow-heat-pumps.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-002/variable-refrigerant-flow-heat-pumps.tex @@ -1798,7 +1798,7 @@ \subsubsection{\emph{Modeling of the outdoor unit (O/U) - Heating Mode}}\label{m \item Initialize outdoor unit \(SH\) with the reference value (from IDF input, e.g., 1.5\(^{\circ}\)C) \item - Iinitialize the compressor power \(N_{comp}\) with the value calculated from the reference \(COP\) (e.g., 3.5): + Initialize the compressor power \(N_{comp}\) with the value calculated from the reference \(COP\) (e.g., 3.5): \end{itemize} \begin{equation} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex index 4c89cf2ec03..aa52bba1935 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/pumps.tex @@ -129,7 +129,7 @@ \subsection{Pressure-based Flow for Variable Speed Pumps}\label{pressure-based-f \subsection{Constant Speed Pump}\label{constant-speed-pump} -The operation of a constant speed pump (object name: Pump:ConstantSpeed) is fairly straightforward. The user designates a maximum flow rate and when this pumpo operates it will run at that capacity. The main difference between the constant speed pump and the variable speed pump is that the fraction of full load power is always = 1. In the pseudo code below, the FracFullLoadPower is = 1.0, therefore the Power is always the full power. +The operation of a constant speed pump (object name: Pump:ConstantSpeed) is fairly straightforward. The user designates a maximum flow rate and when this pump operates it will run at that capacity. The main difference between the constant speed pump and the variable speed pump is that the fraction of full load power is always = 1. In the pseudo code below, the FracFullLoadPower is = 1.0, therefore the Power is always the full power. ~~~~VolFlowRate = PumpMassFlowRate / LoopDensity @@ -173,7 +173,7 @@ \subsection{Pump Heat Addition to the Loop}\label{pump-heat-addition-to-the-loop where the pump motor efficiency is defined by the user input and the FracMotorLossToFluid is the amount of heat generated by the pump motor that is added to the fluid loop (as opposed to being lost to the environment where the pump is located). FracMotorLossToFluid is also a user input. -Note that the shaft power relates to the increase in head through the pump. Since all of this head is lost through the piping network due to frictional heat, this represents a heat gain by the fluid throughout the network. For simplicity, this heat is added along with the heat resulting from the pump motor. The difference between the pump power and the shaft power is the inefficiency of the pump---or the amount of energy input into the pump that the motor converts to heat rather than mechanical energy. Some of this heat is added to the fluid being pumped. These two terms are shown in the PumpHeatToFluid equation shown above. Since EnergyPlus Version 7, this heat is added to the loop capacitance tank(s) rather than at the pump's outlet and so the outlet temperatue is equal to the inlet temperaure. +Note that the shaft power relates to the increase in head through the pump. Since all of this head is lost through the piping network due to frictional heat, this represents a heat gain by the fluid throughout the network. For simplicity, this heat is added along with the heat resulting from the pump motor. The difference between the pump power and the shaft power is the inefficiency of the pump---or the amount of energy input into the pump that the motor converts to heat rather than mechanical energy. Some of this heat is added to the fluid being pumped. These two terms are shown in the PumpHeatToFluid equation shown above. Since EnergyPlus Version 7, this heat is added to the loop capacitance tank(s) rather than at the pump's outlet and so the outlet temperature is equal to the inlet temperature. \subsection{Pump Heat Addition to Surrounding Zone}\label{pump-heat-addition-to-surrounding-zone} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/zone-internal-gains.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/zone-internal-gains.tex index dc69e6ac3a6..1735150d7d8 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/zone-internal-gains.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-003/zone-internal-gains.tex @@ -8,7 +8,7 @@ \subsection{Heat Gain from Lights}\label{heat-gain-from-lights} The input object Lights provides a model for internal gains from lights.~ Radiant gains from lights must be handled differently from other radiant gains for reasons described here (long wavelength description).~ The total radiant gains from lights must be divided into visible and thermal portions.~ For example, the total electric input to typical incandescent lights is converted to 10\% visible radiation, 80\% thermal radiation, and 10\% convective gain.~ In contrast, the electric input to typical fluorescent lights is converted to 20\% visible radiation, 20\% thermal radiation, and 60\% convective gain (see Carrier 1965).~ These percentage splits are under user control with the Lights input object. -When the value of Return Air Fraction is greater than 0 and the return air flow rate is greater than 0, the portion of light heat will be added to the return air node. The added heat will make the node temperature rise. The temperature difference is calculated in the CalcZoneLeavingConditions funtion of the ZoneEquipmentManager module: +When the value of Return Air Fraction is greater than 0 and the return air flow rate is greater than 0, the portion of light heat will be added to the return air node. The added heat will make the node temperature rise. The temperature difference is calculated in the CalcZoneLeavingConditions function of the ZoneEquipmentManager module: \begin{equation} @@ -43,7 +43,7 @@ \subsection{Heat Gain from Lights}\label{heat-gain-from-lights} \(CpAir\) is the specific heat (J/kg-K) -Although a single Lights object allows a return node and an exhaust node, it is possible to have multiple Lights objects with different return nodes and referrred to the same exhaust node. Therefore, the exhaust node will share return heat from different return nodes. The temperature rise at i-th return node is given below: +Although a single Lights object allows a return node and an exhaust node, it is possible to have multiple Lights objects with different return nodes and referred to the same exhaust node. Therefore, the exhaust node will share return heat from different return nodes. The temperature rise at i-th return node is given below: \begin{equation} TempRetRise_i = \frac{QRetAir_i} {(MassFlowRA_i + MassFlowEx ) * CpAir} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex index ca61f33803d..38eef8b86ab 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/radiant-system-models.tex @@ -443,7 +443,7 @@ \subsubsection{Two-Dimensional Solutions for Radiant Systems}\label{two-dimensio ConstructionProperty:InternalHeatSource object. This tubing spacing is halved to determine the perpendicular distance for the solution domain. \item -While the number of nodes used for each layer of a construction is determined by the thermo-physical properties of the material for the layer to maintain solution stability, the number of nodes in the perpendicular direction is fixed for all layers of the construction. Currently in EnergyPlus, the number of nodes in the perpendicular direction is fixed at 7. This number was chosen as a result of testing with an evaluation version of one of the precedessor programs of EnergyPlus. This number of nodes was a balance between accuracy requirements and solution speed. Because the speed of the process required to calculate conduction transfer functions increases greatly as the number of nodes used in the model increases, increasing the number of nodes in the perpendicular direction too much will result in an unacceptible increase in the time required to calculate the conduction transfer functions. +While the number of nodes used for each layer of a construction is determined by the thermo-physical properties of the material for the layer to maintain solution stability, the number of nodes in the perpendicular direction is fixed for all layers of the construction. Currently in EnergyPlus, the number of nodes in the perpendicular direction is fixed at 7. This number was chosen as a result of testing with an evaluation version of one of the predecessor programs of EnergyPlus. This number of nodes was a balance between accuracy requirements and solution speed. Because the speed of the process required to calculate conduction transfer functions increases greatly as the number of nodes used in the model increases, increasing the number of nodes in the perpendicular direction too much will result in an unacceptable increase in the time required to calculate the conduction transfer functions. \item The heat source or sink is applied evenly over the entire node where the user defines the location of the source through the @@ -605,7 +605,7 @@ \subsubsection{Low Temperature Radiant System Controls}\label{low-temperature-ra Since flow rate is varied in a variable flow radiant system, there is no explicit control on the inlet water temperature or mixing to achieve some inlet water temperature in a hydronic system.~ However, the user does have the ability to specify on an hourly basis through a schedule the temperature of the water that would be supplied to the radiant system. Graphical descriptions of the controls for the low temperature radiant system model in EnergyPlus are shown in Figure~\ref{fig:variable-flow-low-temperature-radiant-system} for a hydronic system.~ In a system that uses electric resistance heating, the power or heat addition to the system varies in a manner similar to mass flow rate variation shown in Figure~\ref{fig:variable-flow-low-temperature-radiant-system}. -In the constant flow/variable temperature systems, the controls are also considered piecewise linear functions, but in this case the user selects both the control temperatures and the water temperatures via schedules. This offers greater flexibility for defining how the radiant system operates though it may not model every situation.~ Figure~\ref{fig:variable-temperature-low-temperature-radiant} shows how the ``desired'' inlet water temperature is controlled based on user schedules.~ The user has the ability to specify the high and low water and control temperature schedules for heating and cooling (separately; a total of eight temperature schedules).~ Note that this inlet temperature is a ``desired'' inlet temperature in that there is no guarantee that the system will provide water to the system at that temperature.~ The model includes a local loop that attempts to meet this demand temperature through mixing and recirculation. Finally, the control temperature options are the same for a constant flow/variable temperature system as they are for the variable flow and electric radiant systems: mean air temperautre, mean radiant temperature, operative temperature, outdoor dry-bulb temperature, outdoor wet-bulb temperature, surface inside face temperature, and surface interior temperature. +In the constant flow/variable temperature systems, the controls are also considered piecewise linear functions, but in this case the user selects both the control temperatures and the water temperatures via schedules. This offers greater flexibility for defining how the radiant system operates though it may not model every situation.~ Figure~\ref{fig:variable-temperature-low-temperature-radiant} shows how the ``desired'' inlet water temperature is controlled based on user schedules.~ The user has the ability to specify the high and low water and control temperature schedules for heating and cooling (separately; a total of eight temperature schedules).~ Note that this inlet temperature is a ``desired'' inlet temperature in that there is no guarantee that the system will provide water to the system at that temperature.~ The model includes a local loop that attempts to meet this demand temperature through mixing and recirculation. Finally, the control temperature options are the same for a constant flow/variable temperature system as they are for the variable flow and electric radiant systems: mean air temperature, mean radiant temperature, operative temperature, outdoor dry-bulb temperature, outdoor wet-bulb temperature, surface inside face temperature, and surface interior temperature. \begin{figure}[hbtp] % fig 271 \centering diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex index e42db152530..b054115f592 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/refrigeration-equipment.tex @@ -262,7 +262,7 @@ \subsubsection{Condenser Heat Rejection, Energy Use, and Water Use}\label{conden \subsection{Refrigerated Cases}\label{refrigerated-cases} -The refrigerated case object (Refrigration:Case) works in conjunction with the compressor rack, detailed refrigeration system, or secondary refrigeration system object (Refrigeration:CompressorRack, Refrigeration:System, or Refrigeration:SecondarySystem) to simulate the performance of a refrigerated case system. The refrigerated case model uses performance information at rated conditions along with performance curves for latent case credits and defrost heat load to determine performance at off-rated conditions. Energy use for lights, fans and anti-sweat heaters is modeled based on inputs for nominal power, schedules, and control type. The refrigerated case model accounts for the sensible and latent heat exchange with the surrounding environment (termed ``case credits'') which impacts the temperature and humidity in the zone where the case is located. The simplified model described here provides the flexibility to simulate a broad range of refrigerated case types. +The refrigerated case object (Refrigeration:Case) works in conjunction with the compressor rack, detailed refrigeration system, or secondary refrigeration system object (Refrigeration:CompressorRack, Refrigeration:System, or Refrigeration:SecondarySystem) to simulate the performance of a refrigerated case system. The refrigerated case model uses performance information at rated conditions along with performance curves for latent case credits and defrost heat load to determine performance at off-rated conditions. Energy use for lights, fans and anti-sweat heaters is modeled based on inputs for nominal power, schedules, and control type. The refrigerated case model accounts for the sensible and latent heat exchange with the surrounding environment (termed ``case credits'') which impacts the temperature and humidity in the zone where the case is located. The simplified model described here provides the flexibility to simulate a broad range of refrigerated case types. The total load on the refrigerated case evaporator is made up of various components: @@ -1091,7 +1091,7 @@ \subsubsection{Unit Load Factor Capacity}\label{unit-load-factor-capacity} {q_{sens}} = \dot m \times {c_p} \times \varepsilon \times ({T_{coil,inlet}} - {T_{evap}}) = \dot m \times {c_p} \times \varepsilon \times DT1 \end{equation} -\emph{For a given size of coil operating with constant airflow rate, the effectiveness can be considered constant over the small op- erating temperature ranges typical of refrigeration applications, and therefore, capacity can be considered to be proportional to the ratio of DT1. Hence, if evaporator coil sensible capac- ity is known for a given DT1, then capacity at a new initial temperature difference, DT1*, can be found by multiplying the original capacity by the ratio DT1*/DT1.''} +\emph{For a given size of coil operating with constant airflow rate, the effectiveness can be considered constant over the small operating temperature ranges typical of refrigeration applications, and therefore, capacity can be considered to be proportional to the ratio of DT1. Hence, if evaporator coil sensible capacity is known for a given DT1, then capacity at a new initial temperature difference, DT1*, can be found by multiplying the original capacity by the ratio DT1*/DT1.''} where: @@ -1105,7 +1105,7 @@ \subsubsection{Unit Load Factor Capacity}\label{unit-load-factor-capacity} T\(_{coil,inlet}\) is the dry-bulb air temperature entering the coil (\(^{\circ}\)C) -T\(_{evap}\) is the average refrigeratnt evaporating temperature (\(^{\circ}\)C) +T\(_{evap}\) is the average refrigerant evaporating temperature (\(^{\circ}\)C) T\(_{coil,exit}\) is the dry-bulb air temperature leaving the coil (\(^{\circ}\)C) @@ -1135,7 +1135,7 @@ \subsubsection{Unit Load Factor Capacity}\label{unit-load-factor-capacity} \({Q_{Total}}\) is the cooling capacity (total), actual. -The total capacity is therefore a function of the sensible heat ratio, which is a function of the total capacity, and they are both, of course a function of the psychometrics of the air flowing through the chiller. This is handled with a two step estimation process. +The total capacity is therefore a function of the sensible heat ratio, which is a function of the total capacity, and they are both, of course a function of the psychrometrics of the air flowing through the chiller. This is handled with a two step estimation process. \begin{equation} \begin{array}{rl} @@ -1306,7 +1306,7 @@ \subsubsection{Compressor Energy Use}\label{compressor-energy-use-1} \subsubsection{Two-Stage Compression Systems}\label{two-stage-compression-systems} -In addition to the single-stage compression refrigeration system illustrated above, two-stage compression systems can be modeled.~ For low temperature applications where the pressure ratio between the low- and high-pressure sides of the system could be 1:10 or more, it may be beneficial to utilize two stages of compressions (Evans 2008).~ Two smaller compressors in series have a smaller displacement and usually operate more efficiently than one large compressor that covers the entire pressure range from the evaporator to the condenser.~ This is especially true in ammonia refrigeration systems due to the large amount of superheating that occurs during the compression process (ASHRAE 2009b). +In addition to the single-stage compression refrigeration system illustrated above, two-stage compression systems can be modeled.~ For low temperature applications where the pressure ratio between the low- and high-pressure sides of the system could be 1:10 or more, it may be beneficial to utilize two stages of compression (Evans 2008).~ Two smaller compressors in series have a smaller displacement and usually operate more efficiently than one large compressor that covers the entire pressure range from the evaporator to the condenser.~ This is especially true in ammonia refrigeration systems due to the large amount of superheating that occurs during the compression process (ASHRAE 2009b). Between the two stages of compression, an intercooler is used to cool the discharge gas exiting the low-stage compressor before it enters the high-stage compressor.~ The cooling is performed within the intercooler by refrigerant at an intermediate pressure.~ The degree to which intercooling reduces the power requirement of a refrigeration cycle depends on the refrigerant which is being used as well as the temperature lift between the evaporator and the condenser. @@ -1334,7 +1334,7 @@ \subsubsection{Two-Stage Compression Systems}\label{two-stage-compression-system The low-stage compressors operate between the evaporator pressure and the intercooler pressure while the high-stage compressors operate between the intercooler pressure and the condensing pressure.~ The performance of both the low-stage and high-stage compressors are modeled using the compressors' performance curves defined by ARI Standard 540 (ARI 2004), as discussed previously in the ``Compressor Energy Use'' section.~ In addition, capacity corrections are applied to the compressor performance curves to account for deviations between the actual operating conditions and the rated conditions. -Refering to Figure~\ref{fig:two-stage-compression-system-with-a-shell} for a two-stage system with a shell-and-coil intercooler, the performance of the intercooler is modeled with a ``Shell-and-Coil Intercooler Effectiveness'', defined as follows: +Referring to Figure~\ref{fig:two-stage-compression-system-with-a-shell} for a two-stage system with a shell-and-coil intercooler, the performance of the intercooler is modeled with a ``Shell-and-Coil Intercooler Effectiveness'', defined as follows: \begin{equation} \eta = \frac{{{T_4} - {T_{5a}}}}{{{T_4} - {T_3}}} @@ -1372,7 +1372,7 @@ \subsubsection{Condenser Performance}\label{condenser-performance} \(\sum {{{\dot Q}_{Reclaimed}}}\) is the sum of all the heat reclaimed by desuperheater coils and hot gas and hot brine defrost (W). -Depending upon the condenser type, the heat rejection environment is set to the ambient conditions, conditions corresponding to a defined ouside air node (sometimes used to represent condensers located above ground level) or zone node, to a temperature specified for a water-cooled condenser, or according to the evaporating temperature for a higher-temperature loop (used for cascade condensers). +Depending upon the condenser type, the heat rejection environment is set to the ambient conditions, conditions corresponding to a defined outside air node (sometimes used to represent condensers located above ground level) or zone node, to a temperature specified for a water-cooled condenser, or according to the evaporating temperature for a higher-temperature loop (used for cascade condensers). The enthalpy of the condensed refrigerant leaving the condenser is equal to: @@ -1451,7 +1451,7 @@ \subsubsection{Condenser Performance}\label{condenser-performance} For a fixed-speed fan, the air flow is reduced through either the use of dampers or by cycling the fan on and off. -For a cycling fan, the power variation with air flow volume is approximately linearabove the minimum air volume ratio as shown in the following equation for the option ``FixedLinear'': +For a cycling fan, the power variation with air flow volume is approximately linear above the minimum air volume ratio as shown in the following equation for the option ``FixedLinear'': \begin{equation} {P_{CondFan}} = ({\rm{Air~Volume~Ratio}}){P_{CondFan,design}} @@ -1617,7 +1617,7 @@ \subsubsection{Condenser Performance}\label{condenser-performance} \paragraph{Water-Cooled Condensers}\label{water-cooled-condensers} -If the condenser heat rejection is specified as water cooled (input object Refrigeration:Condenser:WaterCooled), the model uses the same algoithms described above for Refrigeration Compressor Racks. The condensing temperature is set equal to the inlet water temperature plus an approach temperature equal to the difference between the rated values for water inlet temperature and condensing temperature. +If the condenser heat rejection is specified as water cooled (input object Refrigeration:Condenser:WaterCooled), the model uses the same algorithms described above for Refrigeration Compressor Racks. The condensing temperature is set equal to the inlet water temperature plus an approach temperature equal to the difference between the rated values for water inlet temperature and condensing temperature. \paragraph{Cascade Condensers}\label{cascade-condensers} @@ -1761,7 +1761,7 @@ \subsection{Secondary Refrigeration Systems}\label{secondary-refrigeration-syste For a brine system, the secondary loop capacity is matched to the case and walk-in load by varying the brine flow rate. (\emph{Throughout this section, `brine' will be used when referring to the secondary loop heat transfer fluid for systems where the secondary circulating fluid remains in the liquid state.)} When selecting the brine loop design parameters, it is important to consider the performance trade-off between pumping energy and the temperature difference, or range, in the heat exchanger. The circulating fluid selection is also critical in determining the performance of brine loop, with large variations caused by differences in viscosity and density (which impact pumping power requirements) and specific heat (which determines the required fluid flow rate). ~(Kazachki, G. S., and Hinde, D. K., 2006, Faramarzi, R. T., and Walker, D. H. 2004, ASHRAE. 2006c) -For a secondary loop to accommodate a two-phase secondary coolant, additional hardware is required and the system control mode changes. A separator/receiver is required to separate the wet mixture of liquid and gas returning from the refrigeration load, as shown in Figure~\ref{fig:secondary-loop-with-liquid-overfeed}. ~(In the following discussion, we will refer to the secondary fluid in a liquid-overfeed system as CO\(_{2}\).) In Figure~\ref{fig:thermodynamic-cycle-for-a-liquid-overfeed}, which focuses in on the secondary loop alone, the gaseous CO\(_{2}\) moves via thermosiphon effect to the secondary evaporator, where heat is absorbed by the primary system to condense the CO\(_{2}\), which then returns via gravity flow to the separator/revceiver.~ The liquid CO\(_{2}\) is pulled from the bottom of the separator/receiver and pumped to the load. The term `liquid overfeed ratio' refers to the ratio of the total pumped mass flow rate (at the point labeled ``1'' on Figure~\ref{fig:thermodynamic-cycle-for-a-liquid-overfeed}) of CO\(_{2}\) to the mass rate of CO\(_{2}\) evaporated at the load (vapor portion of the flow at the point labled ``5'' on Figure~\ref{fig:thermodynamic-cycle-for-a-liquid-overfeed}). With a variable flow rate(obtained with either a variable-speed pump or multiple constant-speed pumps), the liquid overfeed ratio is maintained at or above the specified value. With a constant flow rate (obtained by specifying a single constant-speed pump), the liquid overfeed ratio will vary to match the capacity of the variable refrigeration load.(Hinde et al 2009) Even though a greater amount of CO\(_{2}\) is circulated than is evaporated, the pumping power requirements are still much less than those for a single-phase secondary coolant. +For a secondary loop to accommodate a two-phase secondary coolant, additional hardware is required and the system control mode changes. A separator/receiver is required to separate the wet mixture of liquid and gas returning from the refrigeration load, as shown in Figure~\ref{fig:secondary-loop-with-liquid-overfeed}. ~(In the following discussion, we will refer to the secondary fluid in a liquid-overfeed system as CO\(_{2}\).) In Figure~\ref{fig:thermodynamic-cycle-for-a-liquid-overfeed}, which focuses in on the secondary loop alone, the gaseous CO\(_{2}\) moves via thermosiphon effect to the secondary evaporator, where heat is absorbed by the primary system to condense the CO\(_{2}\), which then returns via gravity flow to the separator/receiver.~ The liquid CO\(_{2}\) is pulled from the bottom of the separator/receiver and pumped to the load. The term `liquid overfeed ratio' refers to the ratio of the total pumped mass flow rate (at the point labeled ``1'' on Figure~\ref{fig:thermodynamic-cycle-for-a-liquid-overfeed}) of CO\(_{2}\) to the mass rate of CO\(_{2}\) evaporated at the load (vapor portion of the flow at the point labeled ``5'' on Figure~\ref{fig:thermodynamic-cycle-for-a-liquid-overfeed}). With a variable flow rate(obtained with either a variable-speed pump or multiple constant-speed pumps), the liquid overfeed ratio is maintained at or above the specified value. With a constant flow rate (obtained by specifying a single constant-speed pump), the liquid overfeed ratio will vary to match the capacity of the variable refrigeration load.(Hinde et al 2009) Even though a greater amount of CO\(_{2}\) is circulated than is evaporated, the pumping power requirements are still much less than those for a single-phase secondary coolant. \begin{figure}[hbtp] % fig 288 \centering @@ -1843,7 +1843,7 @@ \subsubsection{Secondary Evaporator in a Single-Phase Secondary Loop (Brine or G \(\rho_{Brine}\) is the brine density (kg/m\(^{3}\)). -After the heat exchanger effectiveness has been calculated, the value for the heat exchanger design brine flow rate is compared to the design flow rate for the secondary loop pump(s).~ The maximum flow rate in the loop is limited to the smaller of these two values. The heat transfer capacity corresponding to this maximum flow rate is then calculated and compared to the rated heat exchanger capacity. The maximum load on the heat exchanger is limited to the lesser of these two values, the rated heat exchanger capacity or the capacity corresponding ot the maximum loop flow rate. +After the heat exchanger effectiveness has been calculated, the value for the heat exchanger design brine flow rate is compared to the design flow rate for the secondary loop pump(s).~ The maximum flow rate in the loop is limited to the smaller of these two values. The heat transfer capacity corresponding to this maximum flow rate is then calculated and compared to the rated heat exchanger capacity. The maximum load on the heat exchanger is limited to the lesser of these two values, the rated heat exchanger capacity or the capacity corresponding to the maximum loop flow rate. \begin{equation} Flow_{MaxVol} = Minimum(Flow_{RatedVol}, Flow_{RatedPumpVol}) @@ -1854,7 +1854,7 @@ \subsubsection{Secondary Evaporator in a Single-Phase Secondary Loop (Brine or G \end{equation} \begin{equation} -Capacity_{Max} = Minmum(Capacity_{Rated}, Capacity_{AtMaxVolFlow}) +Capacity_{Max} = Minimum(Capacity_{Rated}, Capacity_{AtMaxVolFlow}) \end{equation} where: @@ -1959,7 +1959,7 @@ \subsubsection{Secondary Loop Pumping Power and Secondary Loop Load}\label{secon \({\dot Q_{{\rm{TotalSecondary}}}}\) is the total load the secondary loop transfers to the primary system, output variable ``Refrigeration Secondary Loop Total Heat Transfer Rate'' (W) -\({\dot Q_{{\rm{Pump}}}}\) is hte pump power, function of Flow\(_{Needed}\), output variable ``Refrigeration Secondary Loop Pump Electric Power'' (W) +\({\dot Q_{{\rm{Pump}}}}\) is the pump power, function of Flow\(_{Needed}\), output variable ``Refrigeration Secondary Loop Pump Electric Power'' (W) \(Flow_{Needed}\) is the flow rate needed to meet the loop refrigeration load, , output variable ``Refrigeration Secondary Loop Volume Flow Rate'' (m\(^3\)/s). @@ -2147,7 +2147,7 @@ \subsection{References}\label{references-040} B.A.C. 2007. Baltimore AirCoil Company Product and Application Handbook, Volume II, Baltimore, MD -Baek, J.S., Groll, E.A., and Lawless, P.B. 2005. Theoretical Perfromance of Transcritical Carbon Dioxide Cycle with Two-Stage Compression and Intercooling. \emph{Proceedings of the Institution of Mechanical Engineers, Part E: Journal of Process Mechanical Engineering} 219, 187-195. +Baek, J.S., Groll, E.A., and Lawless, P.B. 2005. Theoretical Performance of Transcritical Carbon Dioxide Cycle with Two-Stage Compression and Intercooling. \emph{Proceedings of the Institution of Mechanical Engineers, Part E: Journal of Process Mechanical Engineering} 219, 187-195. Baxter, V. D., Mei, V.C. 2002.Warm Liquid Defrosting Technology For Supermarket Display Cases, P.S. Hrnjak, Ed., International Conference New Technologies in Commercial Refrigeration, University of Illinois at Urbana-Champaign, Urbana, IL, July 22-23, 2002 @@ -2179,7 +2179,7 @@ \subsection{References}\label{references-040} Kazachki, G. S., and Hinde, D. K. 2006, Secondary Cooplant Systems for Supermarkets, ASHRAE Journal, Atlanta: American Society of Heating, Refrigerating and Air-Conditioning Engineers, Inc., September 2006 -Lawrence Berkeley Laboratory and Resource Dynamics, Improving Fan Systrem Performance, A Sourcebook for Industry, DOE/GO-102003-1294, April 2003 +Lawrence Berkeley Laboratory and Resource Dynamics, Improving Fan System Performance, A Sourcebook for Industry, DOE/GO-102003-1294, April 2003 Lee, T-S., Liu, C-H., and Chen, T-W. 2006. Thermodynamic Analysis of Optimal Condensing Temperature of Cascade-Condenser in CO\(_{2}\)/NH\(_{3}\) Cascade Refrigeration Systems, International Journal of Refrigeration 29 (2006) 1100-1108, Elsevier Ltd. @@ -2191,7 +2191,7 @@ \subsection{References}\label{references-040} Mitchell, J.W., et al. 1992.Analysis of Supermarket Dehumidification Alternatives. Final Report to Electric Power Research Institute, Report TR-100352, November. -NASA. 1976. U. S. Standard Atmosphere, NASA-TM-74335, National Oceanic and Atmosperic Administration , National Aeronautics and Space Administration +NASA. 1976. U. S. Standard Atmosphere, NASA-TM-74335, National Oceanic and Atmospheric Administration , National Aeronautics and Space Administration Nelson, B. I., 2010, Refrigeration Air Cooler Rating Methods, ASHRAE Journal, American Society of Heating, Refrigeration and Air-Conditioning Engineers, Inc., August diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex index 9dfc6caa2a0..2165539f721 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/setpoint-managers.tex @@ -149,7 +149,7 @@ \subsection{Single Zone Cooling Only}\label{single-zone-cooling-only} \emph{SetPoint} is the setpoint temperature applied to the specified setpoint node(s) -\emph{ZoneTemp} is the current zone temeprature +\emph{ZoneTemp} is the current zone temperature \emph{ZoneLoadtoCoolSP} is the zone cooling load (Report Variable ``Zone Predicted Sensible Load to Cooling Setpoint Heat Transfer Rate {[}W{]}'') @@ -280,7 +280,7 @@ \subsection{Coldest Zone Supply Air Reset}\label{coldest-zone-supply-air-reset} \subsection{Return Air Bypass Flow}\label{return-air-bypass-flow} -The input object SetpointManager:ReturnAirBypassFlow provides a setpoint manager that sets the air flow rate in a bypass duct such that when the bypassed and non-bypassed air are mixed the resutant air stream will be at the user-specified setpoint temperature. +The input object SetpointManager:ReturnAirBypassFlow provides a setpoint manager that sets the air flow rate in a bypass duct such that when the bypassed and non-bypassed air are mixed the resultant air stream will be at the user-specified setpoint temperature. The user specifies the desired setpoint temperature \emph{T\(_{set}\)} through a input temperature schedule. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex index e9d6a5bcc8d..46e8e5e341d 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/solar-collectors.tex @@ -186,7 +186,7 @@ \subsubsection{References}\label{references-042} \subsection{Integral-collector-storage (ICS) Solar Collector}\label{integral-collector-storage-ics-solar-collector} -Solar collectors with integral storage unit models use SolarCollector:IntegralCollectorStorage object, and the characteristics parameter inputs of this collector are provided by the SolarCollectorPerformance:IntegralCollectorStorage object. This model is based on detailed Energy Balance equations of solar collectors that integrates storage in it. This model has two options to represent the collector bottom outside boundary conditions: AmbientAir, and OtherSideConditionsModel. AmbientAir simply applies outside air temperature using combined convection and radiation conductance, and the OtherSideConditionsModel applies combined radiation and convection models that exiats in a naturally ventilated cavity to represent the collector bottom outside boundary condition. The later boundary condition accounts for the shading of the collector on the underlying surface, hence, the ICS collector can be assumed as an integral part of the building envelope. Schematic diagram of a rectangular ICS solar collector is shown in Figure~\ref{fig:schematic-diagram-of-rectangular-integrated} below: +Solar collectors with integral storage unit models use SolarCollector:IntegralCollectorStorage object, and the characteristics parameter inputs of this collector are provided by the SolarCollectorPerformance:IntegralCollectorStorage object. This model is based on detailed Energy Balance equations of solar collectors that integrates storage in it. This model has two options to represent the collector bottom outside boundary conditions: AmbientAir, and OtherSideConditionsModel. AmbientAir simply applies outside air temperature using combined convection and radiation conductance, and the OtherSideConditionsModel applies combined radiation and convection models that exist in a naturally ventilated cavity to represent the collector bottom outside boundary condition. The later boundary condition accounts for the shading of the collector on the underlying surface, hence, the ICS collector can be assumed as an integral part of the building envelope. Schematic diagram of a rectangular ICS solar collector is shown in Figure~\ref{fig:schematic-diagram-of-rectangular-integrated} below: \begin{figure}[hbtp] % fig 295 \centering @@ -700,17 +700,17 @@ \subsection{References:}\label{references-1-016} Kumar, R. and M.A.~Rosen. Thermal performance of integrated collector storage solar water heater with corrugated absorber surface. Applied Thermal Engineering:~ 30 (2010) 1764--1768. -Fujii, T., and H. Imura. Natural convection heat transfer from aplate with arbitrary inclination. International Journal of Heat and Mass Transfer: 15(4), (1972), 755-764. +Fujii, T., and H. Imura. Natural convection heat transfer from a plate with arbitrary inclination. International Journal of Heat and Mass Transfer: 15(4), (1972), 755-764. \subsection{Photovoltaic Thermal Flat-Plate Solar Collectors}\label{photovoltaic-thermal-flat-plate-solar-collectors} -Photovoltaic-Thermal solar collectors (PVT) combine solar electric cells and thermal working fluid to collect both electricity and heat.~ Athough there are currently comparatively few commercial products, PVT research has been conducted for the past 30 years and many different types of collectors have been studied.~ Zondag (2008) and Charalambous et. al (2007) provide reviews of the PVT literature.~ Because PVT is much less commercially-mature, there are no standards or rating systems such as for thermal-only, hot-water collectors.~ EnergyPlus currently has one simple model based on user-defined efficiencies. +Photovoltaic-Thermal solar collectors (PVT) combine solar electric cells and thermal working fluid to collect both electricity and heat.~ Although there are currently comparatively few commercial products, PVT research has been conducted for the past 30 years and many different types of collectors have been studied.~ Zondag (2008) and Charalambous et. al (2007) provide reviews of the PVT literature.~ Because PVT is much less commercially-mature, there are no standards or rating systems such as for thermal-only, hot-water collectors.~ EnergyPlus currently has one simple model based on user-defined efficiencies. The PVT models reuse the PV models for electrical production. These are described elsewhere in this document in the section on Photovoltaic Arrays-Simple Model \subsubsection{Simple PVT Thermal Model}\label{simple-pvt-thermal-model} -The input object SolarCollector:FlatPlate:PhotovoltaicThermal provides a simple PVT model that is provided for quick use during design or policy studies.~ The user simply provides values for a thermal efficiency and the incident solar heats the working fuild.~ The model also includes a cooling mode for air-based systems where a user-provided surface emmittance is used to model cooling of the working fluid to the night sky (water-based cooling will be made available once a chilled water storage tank is available).~ No other details of the PVT collector's construction are required as input data. +The input object SolarCollector:FlatPlate:PhotovoltaicThermal provides a simple PVT model that is provided for quick use during design or policy studies.~ The user simply provides values for a thermal efficiency and the incident solar heats the working fluid.~ The model also includes a cooling mode for air-based systems where a user-provided surface emittance is used to model cooling of the working fluid to the night sky (water-based cooling will be made available once a chilled water storage tank is available).~ No other details of the PVT collector's construction are required as input data. The simple model can heat either air or liquid.~ If it heats air, then the PVT is part of HVAC air system loop with air nodes connected to an air system.~ If it heats liquid, then the PVT is part of plant loop with nodes connected to a plant loop and the plant operating scheme determines flows. @@ -718,7 +718,7 @@ \subsubsection{Simple PVT Thermal Model}\label{simple-pvt-thermal-model} Plant-based PVT do not include a bypass (although one could be used in the plant loop).~ The collector requests its design flow rate but it otherwise relies on the larger plant loop for control. -When the PVT themal collector is controlled to be ``on,'' in heating mode, and working fluid is flowing, the model calculates the outlet temperature based on the inlet temperature and the collected heat using the following equations. +When the PVT thermal collector is controlled to be ``on,'' in heating mode, and working fluid is flowing, the model calculates the outlet temperature based on the inlet temperature and the collected heat using the following equations. \begin{equation} {Q_{therm}} = {A_{surf}} \cdot {f_{activ}} \cdot {G_T} \cdot {\eta_{thermal}} @@ -730,7 +730,7 @@ \subsubsection{Simple PVT Thermal Model}\label{simple-pvt-thermal-model} \({A_{surf}}\) is the net area of the surface (m\(^{2}\)) -\({f_{activ}}\) is the fraction of surface aire with active PV/T collector +\({f_{activ}}\) is the fraction of surface area with active PV/T collector \({\eta_{thermal}}\) is the thermal conversion efficiency. @@ -754,7 +754,7 @@ \subsubsection{Simple PVT Thermal Model}\label{simple-pvt-thermal-model} {f_{bypass}} = \frac{{\left( {{T_{set,out}} - {T_{out}}} \right)}}{{\left( {{T_{in}} - {T_{out}}} \right)}} \end{equation} -When the PVT themal collector is controlled to be ``on,'' in cooling mode, and working fluid is flowing, the model calculates the outlet temperature based on the inlet temperature and the heat radiated and convected to the ambient using a heat balance on the outside face of the collector: +When the PVT thermal collector is controlled to be ``on,'' in cooling mode, and working fluid is flowing, the model calculates the outlet temperature based on the inlet temperature and the heat radiated and convected to the ambient using a heat balance on the outside face of the collector: \begin{equation} \dot m{c_p}\left( {{T_{in}} - {T_{out}}} \right) = {\dot Q_{LWR}} + {\dot Q_{conv}} @@ -935,7 +935,7 @@ \subsubsection{Collector Heat Balance}\label{collector-heat-balance} \(q''_{LWR,plen}\) is net long wavelength (thermal) radiation flux exchange with the outside face of the underlying surface(s). -\({q''_{source}}\) is a source/sink term that accounts for energy exported out of the control volume when the collecter's absorber plate is a hybrid device such as a photovoltaic panel. +\({q''_{source}}\) is a source/sink term that accounts for energy exported out of the control volume when the collector's absorber plate is a hybrid device such as a photovoltaic panel. While the heat balance on the passive collector surface control volume is: @@ -1155,7 +1155,7 @@ \subsubsection{Local Wind Speed Calculations}\label{local-wind-speed-calculation \(z\) is the height of the centroid of the UTSC -\(z_{met}\) is the height of the standard metereological wind speed measurement +\(z_{met}\) is the height of the standard meteorological wind speed measurement \(a\) and \({\delta}\) are terrain-dependent coefficients.~ \({\delta}\) is the boundary layer thickness for the given terrain type.~ The values of a and \({\delta}\) are shown in the Table~\ref{table:terrain-dependent-coefficients-ashrae-2001.-001}. @@ -1227,9 +1227,9 @@ \subsubsection{Radiation Coefficients}\label{radiation-coefficients-000} \({\sigma_{SB}}\) is the Stefan-Boltzmann constant -\({e_{coll}}\) is the longwave thermal emmittance of the collector +\({e_{coll}}\) is the longwave thermal emittance of the collector -\({e_{so}}\) is the longwave thermal emmittance of the underlying heat transfer surface. +\({e_{so}}\) is the longwave thermal emittance of the underlying heat transfer surface. The three other coefficients, \({h_{r,atm}}\), \({h_{r,sky}}\), and \({h_{r,gnd}}\) are used elsewhere in EnergyPlus for the outside face surface heat balance and are calculated in the same manner as equation for UTSC collectors.~ {[}This is accomplished by calling subroutine InitExteriorConvectionCoeffs in the file HeatBalanceConvectionCoeffs.f90.{]} @@ -1694,7 +1694,7 @@ \subsubsection{Solving energy balance equations for zero flow condition}\label{B \subsubsection{References}\label{BIPVT-references} -Candanedo, L.M., Athienitis, A., Park, K.W., 2011. Convective heat transfer coefficients in a building-integraged photovoltaic/thermal system. \emph{Journal of Solar Energy Engineering}. March 2011, Vol. 133 +Candanedo, L.M., Athienitis, A., Park, K.W., 2011. Convective heat transfer coefficients in a building-integrated photovoltaic/thermal system. \emph{Journal of Solar Energy Engineering}. March 2011, Vol. 133 Delisle, V., Kummert, M., 2014. A novel approach to compare building-integrated \mbox{photovoltaics/thermal} air collectors to side-by-side PV modules and solar thermal collectors. \emph{Solar Energy}. February 2014, Vol. 100, p.~50. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/system-availability-managers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/system-availability-managers.tex index 1d9ae0a6167..4c51da33fef 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/system-availability-managers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-004/system-availability-managers.tex @@ -406,4 +406,4 @@ \subsubsection{Adaptive ASHRAE Algorithm}\label{adaptive-ashrae-algorithm} \(q_{(i-1)}\) is the energy extracted or added during last time step -\(q_{max}\) is the maximum capacity of the equipments. +\(q_{max}\) is the maximum capacity of the equipment. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-systems.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-systems.tex index b6d06c8f926..8618831619e 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-systems.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-systems.tex @@ -115,7 +115,7 @@ \subsection{Unconnected Water Use Equipment}\label{unconnected-water-use-equipme Even though hot and cold flow rates are unlimited in ``unconnected'' mode, it is still possible to fail to meet the target conditions if \({T_{target}}\) ~\textgreater{} \({T_{hot}}\).~ In this case, the actual mixed water temperature at the tap, \({T_{mixed}}\), is set equal to \({T_{hot}}\).~ The target flow rate is always met. -Water equipment that omits schedules for the target temperature and/or hot water suppy temperature implies that no hot water is needed.~ The result is all cold water at the target flow rate. +Water equipment that omits schedules for the target temperature and/or hot water supply temperature implies that no hot water is needed.~ The result is all cold water at the target flow rate. For ``unconnected'' water equipment, the heating rate and energy that is required to supply the hot water is calculated by the following equations. @@ -387,7 +387,7 @@ \subsubsection{Calculate Connections Drain Temperature}\label{calculate-connecti {T_{drain}} = \frac{{\mathop \sum \limits_i {{\dot m}_{drain,i}}{t_{drain,i}}}}{{{{\dot M}_{drain}}}} \end{equation} -In the case of no drainwater heat recovery, the subsystem wastewater temperature, \({T_{waste}}\), is equal to the drainwater temperature, \({T_{drain}}\).~ (For drainwater heat recovery, see below.)~ The wastewater temperature and flow rate are propogated to the reclamation water storage tank, if specified. +In the case of no drainwater heat recovery, the subsystem wastewater temperature, \({T_{waste}}\), is equal to the drainwater temperature, \({T_{drain}}\).~ (For drainwater heat recovery, see below.)~ The wastewater temperature and flow rate are propagated to the reclamation water storage tank, if specified. \subsubsection{Update Connections Nodes}\label{update-connections-nodes} diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex index c26b6604cc4..2a56caf02c5 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/water-thermal-tanks-includes-water-heaters.tex @@ -179,7 +179,7 @@ \subsubsection{Water Heater Control Algorithm}\label{water-heater-control-algori An illustration of how the control algorithm cycles on and off is shown below.~ Ambient losses cool the tank temperature until the bottom of the deadband is reached (50\(^{\circ}\)C) at which point the heater cycles on and reheats the tank back to the setpoint (60\(^{\circ}\)C).~ A water draw causes hot water to be replaced with cold water from the water mains.~ The incoming cold water rapidly cools the tank.~ In this example the heater cannot keep up with the water draw and the tank temperature continues to drop until the water draw ends. -Although the instantaneous tank water temperature may vary considerably within a timestep (due to cycling, etc.), only the average temperature over the timestep is reported.~ The model calculates the average by piece-wise integration of the area under the instantaneous temperature curve for each unique set of conditions.~ The instantaneous temperature is preserved internally by the program and is propogated from the end of one timestep to the beginning of the next. +Although the instantaneous tank water temperature may vary considerably within a timestep (due to cycling, etc.), only the average temperature over the timestep is reported.~ The model calculates the average by piece-wise integration of the area under the instantaneous temperature curve for each unique set of conditions.~ The instantaneous temperature is preserved internally by the program and is propagated from the end of one timestep to the beginning of the next. \begin{figure}[hbtp] % fig 311 \centering @@ -189,7 +189,7 @@ \subsubsection{Water Heater Control Algorithm}\label{water-heater-control-algori \subsubsection{Chilled Water Tank Control Algorithm}\label{chilled-water-tank-control-algorithm} -The input objects ThermalStorage:ChilledWater:Mixed and ThermalStorage:ChilledWater:Stratified provide chilled water tank models that do not include active cooling elements, there is only indirect cooling by remote devices such as a chiller.~ The tank's setpoint controls are used to determine if flow is to be requested through the source side of the tank.~ The setpont and deadband control scheme is similar to the water heater but the logic is flipped around for cooling instead of heating.~ The setpoint temperatue is the ``cut-out'' temperature and the setpoint plus deadband is the ``cut-in'' temperature.~ If the tank temperature ( or tank sensing node for stratified tanks) is above the ``cut-in'' temperature, then flow is requested.~ If temperatures are below the ``cut-out'' temperature, then flow is not requested.~ The chilled water tanks also have separate availability schedules for the use side and source side for additional control options. +The input objects ThermalStorage:ChilledWater:Mixed and ThermalStorage:ChilledWater:Stratified provide chilled water tank models that do not include active cooling elements, there is only indirect cooling by remote devices such as a chiller.~ The tank's setpoint controls are used to determine if flow is to be requested through the source side of the tank.~ The setpoint and deadband control scheme is similar to the water heater but the logic is flipped around for cooling instead of heating.~ The setpoint temperature is the ``cut-out'' temperature and the setpoint plus deadband is the ``cut-in'' temperature.~ If the tank temperature ( or tank sensing node for stratified tanks) is above the ``cut-in'' temperature, then flow is requested.~ If temperatures are below the ``cut-out'' temperature, then flow is not requested.~ The chilled water tanks also have separate availability schedules for the use side and source side for additional control options. \subsubsection{Standard Ratings}\label{standard-ratings-000} @@ -817,7 +817,7 @@ \subsubsection{Autosizing Tank Volume}\label{autosizing-tank-volume} \begin{itemize} \item Peak Draw. The volume is determined from the loop design flow rate.~ The water heater is positioned on the supply side of a plant loop.~ After the plant sizing routines have run, the model~ obtains the design flow rate for all components on the demand side.~ The tank volume is then: \(V = {\dot V_{loop.des}}*{t_{draw}}\) - \item Residential HUD-FHA Minimum. The volume is determined from a set of rules defined in Table~\ref{table:residential-hud-fha-minimum}.~ This is from Chapter 48 of 1999 ASHRAE Handbook HVAC Applications, Americal Society of Heating Refrigeration and Air-conditioning Engineeers, Atlanta GA.~ (also used in the Building America Benchmark). + \item Residential HUD-FHA Minimum. The volume is determined from a set of rules defined in Table~\ref{table:residential-hud-fha-minimum}.~ This is from Chapter 48 of 1999 ASHRAE Handbook HVAC Applications, American Society of Heating Refrigeration and Air-conditioning Engineers, Atlanta GA.~ (also used in the Building America Benchmark). \end{itemize} % table 85 @@ -879,7 +879,7 @@ \subsubsection{Autosizing Heater Capacity}\label{autosizing-heater-capacity} \end{equation} \begin{itemize} -\item Residential HUD-FHA Minimum.~ The heater capacity is determined from a set of rules defined by the table above.~ This is from 1999 ASHRAE Handbook HVAC Applications, Americal Society of Heating Refrigeration and Air-conditioning Engineeers, Atlanta GA.~ (also used the Building America Benchmark). +\item Residential HUD-FHA Minimum.~ The heater capacity is determined from a set of rules defined by the table above.~ This is from 1999 ASHRAE Handbook HVAC Applications, American Society of Heating Refrigeration and Air-conditioning Engineers, Atlanta GA.~ (also used the Building America Benchmark). \item Per Person.~ The heater capacity is determined by summing the design level of people in the model and using a user-entered factor for recovery capacity per person.~ The heater capacity is then: \end{itemize} @@ -917,7 +917,7 @@ \subsubsection{Autosizing Tank Height}\label{autosizing-tank-height} \subsubsection{Autosizing Plant Connection Flow Rates}\label{autosizing-plant-connection-flow-rates} -When the water thermal tank is connected to a plant loop, it is convient to autosize the design volume flow rates through the plant connections.~ When the water thermal tank is connected to the supply side of plant loop and flow rates are autosized, the flow rate is the sum of the flow requests of all the various components on the demand side of that plant loop.~ When the water thermal tank is connected on the demand side of a plant loop (e.g.~as for indirect water heating with a boiler) and flow rates are autosized, the design flow rates are calculated with the following equation: +When the water thermal tank is connected to a plant loop, it is convenient to autosize the design volume flow rates through the plant connections.~ When the water thermal tank is connected to the supply side of plant loop and flow rates are autosized, the flow rate is the sum of the flow requests of all the various components on the demand side of that plant loop.~ When the water thermal tank is connected on the demand side of a plant loop (e.g.~as for indirect water heating with a boiler) and flow rates are autosized, the design flow rates are calculated with the following equation: \begin{equation} \dot V = - \left( \frac{V}{t_{Recover} * 3600 * \varepsilon } \right) * Ln\left( \frac{T_{PlantDesign} - T_{Setpoint}}{T_{PlantDesign} - T_{start}} \right) diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-controls.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-controls.tex index 5bdcee5a0cb..e32fcd06111 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-controls.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-controls.tex @@ -324,7 +324,7 @@ \subsection{Humidistat}\label{humidistat} The input object ZoneControl:Humidistat provides a way for the zone to be controlled to a single relative humidity setpoint schedule, or dual humidity schedules (humidifying and dehumidifying with deadband). The schedules consist of relative humidities, expressed as a percentage (0-100), to be used for the zone moisture prediction calculation. Only one control statement can be specified for each zone.~ Individual relative humidity values can be defined for every time step, thus giving the user a full range of flexibility. For a single setpoint humidistat, if the control relative humidity is below the calculated load and the equipment specified can humidify then that equipment will try and meet the requirement.~ The opposite is true if the calculated value is above the setpoint and the equipment can dehumidify. For a dual setpoint humidistat, if the zone relative humidity is below the \textbf{humidifying} relative humidity setpoint and the equipment specified can humidify then that equipment will try and meet the zone's humidification load. The opposite is true if the zone relative humidity is above the \textbf{dehumidifying} relative humidity setpoint and the equipment can dehumidify. -If the ZoneControl:Humidistat is used by a furnace or unitary system then no other objects are required. The signal from the humidistat is used directly by that component. If the Zone Control:Humidistat is used to control a Humidifier or used in conjunction with the Controller:Simple object with control variable ``TemperatureAndHumidityRatio'', then either the ``SetpointManager:SingleZone:Humidity:Minimum'', ``SetpointManager:MultiZone:Humidity:Minimum'',~ ``SetpointManager:SingleZone:Humidity:Maximum'' or ``SetpointManager:MultiZone:Humidity:Maximum'' objects are required to determine a setpoint for those components to meet for the single setpoint humidistat. For a dual setpoint humidistat, a minimum humidity setpoint manager object~ (``SetpointManager:SingleZone:Humidity:Minimum'' or ``SetpointManager:MultiZone:Humidity:Minimum'') and a maximum humidity setpoint manager object (``SetpointManager:SingleZone:Humidity:Maximum'' or ``SetpointManager:MultiZone:Hu-midity:Maximum'') are required to determine the setpoints for the corresponding humidification and dehumidification components. Note that the ``SetpointManager:Scheduled'' object can also be used to directly set humidity ratio setpoints on the exit node of the humidifier component. +If the ZoneControl:Humidistat is used by a furnace or unitary system then no other objects are required. The signal from the humidistat is used directly by that component. If the Zone Control:Humidistat is used to control a Humidifier or used in conjunction with the Controller:Simple object with control variable ``TemperatureAndHumidityRatio'', then either the ``SetpointManager:SingleZone:Humidity:Minimum'', ``SetpointManager:MultiZone:Humidity:Minimum'',~ ``SetpointManager:SingleZone:Humidity:Maximum'' or ``SetpointManager:MultiZone:Humidity:Maximum'' objects are required to determine a setpoint for those components to meet for the single setpoint humidistat. For a dual setpoint humidistat, a minimum humidity setpoint manager object~ (``SetpointManager:SingleZone:Humidity:Minimum'' or ``SetpointManager:MultiZone:Humidity:Minimum'') and a maximum humidity setpoint manager object (``SetpointManager:SingleZone:Humidity:Maximum'' or ``SetpointManager:MultiZone:Humidity:Maximum'') are required to determine the setpoints for the corresponding humidification and dehumidification components. Note that the ``SetpointManager:Scheduled'' object can also be used to directly set humidity ratio setpoints on the exit node of the humidifier component. For the single setpoint humidistat case, the model takes into account all of the moisture gains and/or losses from sources except the HVAC system contribution, and then calculates a moisture removal or addition rate based on the provided setpoint value, like the temperature predictor. The algorithm uses a 3rd Order derivative to predict zone moisture addition or removal to smooth the changes using the zone air capacitance. Positive values of moisture load mean that this amount of moisture must be added to the zone to reach the setpoint. Negative values represent the amount of moisture that must be removed by the system. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex index bd33aa362e4..5c6a1ac8b9d 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference-005/zone-equipment-and-zone-forced-air-units.tex @@ -412,7 +412,7 @@ \subsubsection{Overview}\label{overview-5-002} \subsubsection{Model}\label{model-4} -The window air conditioner is modeled as a compound component consisting of 3 sub-components: an outdoor air mixer, a fan, and a DX coil. In terms of EnergyPlus objects these are OutdoorAir:Mixer, Fan:ConstantVolume or Fan:OnOff, and Coil:Coolilng:DX:SingleSpeed or CoilSystem:Cooling:DX:HeatExchangerAssisted. The unit is a forward model: its inputs are defined by the state of its inlets: namely its 2 air streams -- recirculated and outdoor air. The outputs of the model are the conditions of the outlet air stream: flow rate, temperature and humidity ratio. The model is also an averaged model: the performance of the unit is averaged over the time step. That is, the unit is assumed to cycle on/off during the time step and this on/off cycling is averaged over the simulation time step. The unit data and simulation are encapsulated in the module WindowAC. +The window air conditioner is modeled as a compound component consisting of 3 sub-components: an outdoor air mixer, a fan, and a DX coil. In terms of EnergyPlus objects these are OutdoorAir:Mixer, Fan:ConstantVolume or Fan:OnOff, and Coil:Cooling:DX:SingleSpeed or CoilSystem:Cooling:DX:HeatExchangerAssisted. The unit is a forward model: its inputs are defined by the state of its inlets: namely its 2 air streams -- recirculated and outdoor air. The outputs of the model are the conditions of the outlet air stream: flow rate, temperature and humidity ratio. The model is also an averaged model: the performance of the unit is averaged over the time step. That is, the unit is assumed to cycle on/off during the time step and this on/off cycling is averaged over the simulation time step. The unit data and simulation are encapsulated in the module WindowAC. \subsubsection{Inputs and Data}\label{inputs-and-data-5} @@ -1432,7 +1432,7 @@ \subsubsection{Controls}\label{controls-000} There are three choices for control methods. -\textbf{ZoneTemperatureDeadbandOnOffCycling}. This control method operates the cooler unit in a manner similar to how a normal, real-world themostat operates.~ The control uses input for throttling temperature range, \(\Delta {T_{throttle}}\), the most recent result for zone air node temperature, \({T_{zone}}\), and the current cooling setpoint temperature, \({T_{set}}\).~ The controller also stores the history of whether or not the unit was operating during the previous timestep to model hysteresis control where the unit retains its mode when it passes through the throttling range (to avoid short cycling). +\textbf{ZoneTemperatureDeadbandOnOffCycling}. This control method operates the cooler unit in a manner similar to how a normal, real-world thermostat operates.~ The control uses input for throttling temperature range, \(\Delta {T_{throttle}}\), the most recent result for zone air node temperature, \({T_{zone}}\), and the current cooling setpoint temperature, \({T_{set}}\).~ The controller also stores the history of whether or not the unit was operating during the previous timestep to model hysteresis control where the unit retains its mode when it passes through the throttling range (to avoid short cycling). The following algorithm is used to determine if the unit will operate. @@ -1470,7 +1470,7 @@ \subsubsection{Overview} \subsubsection{Model} ZoneHVAC:HybridUnitaryHVAC will operate to provide cooling, heating, ventilation, humidification, or dehumidification for a zone. A ZoneHVAC:HybridUnitaryHVAC object is assigned to a zone using ZoneHVAC:EquipmentList and ZoneHVAC:EquipmentConnections. The object must be assigned a supply air node (which must be a zone inlet node), a return air node (which must be a zone outlet node), and an outdoor air node. In the case when the hybrid system modeled does not utilize either return air or outdoor air, a return air node and an outdoor air node must still be assigned. The resulting mass flow rate on those nodes will be zero. -The zone sensible cooling or heating load is determined in each time step according to temperature set points specified in a ZoneControl:Thermostat object. The zone humidification or dehumidifaction load is determined in each time step according to relative humidity set points specified in a ZoneControl:Humidistat object (Ref: Zone Controls). The intended zone ventilation rate is specified in a DesignSpecification:OutdoorAir object (Ref: Design Outdoor Air Calculation). +The zone sensible cooling or heating load is determined in each time step according to temperature set points specified in a ZoneControl:Thermostat object. The zone humidification or dehumidification load is determined in each time step according to relative humidity set points specified in a ZoneControl:Humidistat object (Ref: Zone Controls). The intended zone ventilation rate is specified in a DesignSpecification:OutdoorAir object (Ref: Design Outdoor Air Calculation). The performance of a hybrid system is not directly given as a result of the loads and the environmental conditions. A hybrid system may have numerous discrete operating modes, within which other variables may be adjusted in fine intervals. There may be many settings in which a hybrid system could feasibly operate at a given time. Therefore, ZoneHVAC:HybridUnitaryHVAC is structured as a constrained optimization problem that is solved in each time step. The feasible settings are the unique combinations of operating mode, outdoor air fraction, and supply air mass flow rate that satisfy constraints. In each time step the hybrid model will choose to operate at one or more settings so as to best satisfy the sensible load, latent load, and scheduled ventilation rate while minimizing resource consumption. @@ -2003,18 +2003,19 @@ \subsubsection{Simulation and Control}\label{simulation-and-control-5-000} \subsection{Earthtube}\label{earthtube} -The earth tube model (input object ZoneEarthtube) provides a simple earth tube model that uses a complex ground heat transfer model to establish the temperature of the soil at the depth of the earth tube.~ The following information defines the basis for the model including the assumptions and mathematical equations.~ It supplements the information for the ZoneEarthtube input object given in the Input/Output Reference for EnergyPlus. +The earth tube model (input object ZoneEarthtube) provides the choice of either a simple earth tube model (Basic model) that uses a complex ground heat transfer model to establish the temperature of the soil at the depth of the earth tube and an enhanced model which applies a finite difference scheme to simulate vertical temperature variations (Vertical model). The following information defines the basis for the model including the assumptions and mathematical equations. It supplements the information for the ZoneEarthtube input object given in the Input/Output Reference for EnergyPlus. \emph{\textbf{Input Requirements}} \begin{itemize} \tightlist -\item Pipe : Pipe radius(m), Pipe thickness(m), Pipe length(m) +\item Pipe : Pipe radius (m), Pipe thickness (m), Pipe length (m) \item Distance between the pipe outer surface and undisturbed soil (m), \item Pipe thermal conductivity (W/m-\(^{\circ}\)C), \item Air velocity inside pipe(m/s), Depth of the radial center of pipe below ground (m) -\item Soil : Soil density(kg/m\(^{3}\)), Soil specific heat(J/kg-\(^{\circ}\)C), -\item Soil thermal Conductivity(W/m-\(^{\circ}\)C), Absorption coefficient, Fraction of evaporation rate +\item Soil : Soil density (kg/m\(^{3}\)), Soil specific heat (J/kg-\(^{\circ}\)C), +\item Soil thermal Conductivity (W/m-\(^{\circ}\)C), Absorption coefficient, Fraction of evaporation rate +\item Width of soil domain in the horizontal direction (m), only applies to the Vertical model \end{itemize} \emph{\textbf{Assumption(s)}} @@ -2023,15 +2024,17 @@ \subsection{Earthtube}\label{earthtube} \item Convection flow inside the pipe is hydrodynamically and thermally developed. \item - Soil temperature in the pipe vicinity is uniform after the particular distance from the center of the pipe(thickness of the annulus), so that pipe surface temperature is uniform after the distance `r' from the center of the pipe, where `r'is the pipe radius. + For the Basic model, the soil temperature in the pipe vicinity is uniform after the particular distance from the center of the pipe(thickness of the annulus), so that pipe surface temperature is uniform after the distance `r' from the center of the pipe, where `r'is the pipe radius. In addition, the temperature profile in the pipe vicinity is not affected by the presence of the pipe, so that pipe surface temperature is uniform at axial direction. \item - The temperature profile in the pipe vicinity is not affected by the presence of the pipe, so that pipe surface temperature is uniform at axial direction. + For the Vertical model, the soil temperature varies in the vertical direction only (not horizontally or axially). The solution domain is bounded at the top and bottom by temperature boundary conditions for soil at those depths for undisturbed conditions. A finite difference modeling technique is used to track horizontal temperature variation as a result of both the boundary conditions at the top and bottom of the solution space as well as the impact of air flowing through the earth tube at the depth of the earth tube. No heat transfer is modeled either horizontally or axially (adiabatic in those directions). More information about the Vertical model is provided below. \item The soil surrounding the pipe has homogeneous thermal conductivity. \item - Pipe has uniform cross section area at axial direction. + Pipe has a uniform cross section area in the axial direction. \end{itemize} +\emph{\textbf{Ground Temperature Modeling and Generation of EnergyPlus Ground Inputs}} + Wind velocity (m/s), u, is the annual average value. This is calculated from EnergyPlus weather data by averaging individual wind velocity values of the whole year. The convective heat transfer coefficient at the soil surface (W/m\(^{2}\)-\(^{\circ}\)C), \(h_{s}\), is function of wind speed u. According to McAdams(1954), \(h_{s}\) can be approximated by the following correlation (Krarti, 1995): \begin{equation} @@ -2160,6 +2163,8 @@ \subsection{Earthtube}\label{earthtube} \end{array} \end{equation} +\emph{\textbf{Basic Model--Direct Use of Undisturbed Ground Temperature}} + Assuming a homogeneous soil of constant thermal diffusivity, the temperature at any depth z and time t can be estimated by the following expression: \begin{equation} @@ -2168,24 +2173,9 @@ \subsection{Earthtube}\label{earthtube} In this expression, the unit of time, \emph{t}, and phase constant of the soil surface, \(t_{0}\), should be converted into days. Similarly, the unit of soil thermal diffusivity, \({\alpha_{s}}\), should also be converted into m\(^{2}\)/days. -By integrating the expression with respect to depth, the average temperature of a vertical soil profile ranging between depth \(z_{1}\) and \(z_{2}\) (\(^{\circ}\)C) can be determined as follows: - -{\scriptsize -\begin{equation} -{T_{{z_1},{z_2},t}} = {T_m} + \frac{{{A_s}}}{{\left( {{z_2} - {z_1}} \right)\gamma \sqrt 2 }}\left\{ {{e^{ - \gamma {z_1}}}\cos \left[ {\frac{{2\pi }}{{{\rm{365}}}}\left( {t - {t_0} - {z_1}L - 45.6} \right)} \right] - {e^{ - \gamma {z_2}}}\cos \left[ {\frac{{2\pi }}{{{\rm{365}}}}\left( {t - {t_0} - {z_2}L - 45.6} \right)} \right]} \right\} -\end{equation}} +In the Basic model for earth tubes, the above equation is used to calculate the temperature of the ground at the depth of the earth tube and this value is used to evaluate the heat transfer between the soil around the earth tube and the air passing through the earth tube. This heat exchange involves determining convective heat transfer coefficient between the air passing through the earth tube and the surface of the tube itself, converting this to a thermal resistance value, and then adding on the thermal resistance for the earth tube pipe itself and the surrounding soil to the user defined distance to the "undisturbed" region. The equations used to model the thermal resistances are shown in the following paragraphes. -where: - -\begin{equation} -\gamma = {\left( {\pi /{\rm{365}}{\alpha_s}} \right)^{1/2}} -\end{equation} - -\begin{equation} -L = \frac{1}{2}{\left( {{\rm{365}}/\pi {\alpha_s}} \right)^{1/2}} -\end{equation} - -As the final step with regard to the heat transfer between soil and earth tube system, thermal conductivity of air (W/m-\(^{\circ}\)C), \(k_{air}\), and kinetic viscosity of air (m\(^{2}\)/s), \({\upsilon}\), should calculated first: +With regard to the heat transfer between soil and earth tube system, thermal conductivity of air (W/m-\(^{\circ}\)C), \(k_{air}\), and kinetic viscosity of air (m\(^{2}\)/s), \({\upsilon}\), should calculated first: \begin{equation} {k_{air}} = 0.02442 + ({10^{ - 4}}(0.6992{T_a})) @@ -2255,6 +2245,256 @@ \subsection{Earthtube}\label{earthtube} Initial condition of inlet air temperature is equal to the ambient air temperature. Outlet air temperature is finally evaluated by solving the heat transfer equation above. +\emph{\textbf{Vertical Model--1-D Solution of Temperature Variation in the Vertical Direction}} +In EnergyPlus, the Basic model simply calculates the ground temperature at the depth of the earth tube and assumes that the impact of the earth tube is minimal. The Vertical model acknowledges that the soil temperature will be impacted by the presence of the heat transfer associated with the earth tube and looks to evaluate the impact that the earth tube air flow has on soil temperature in the vertical direction. While there is also an impact on the soil temperatures horizontally and axially along the earth tube, the vertical model focuses on the potential temperature variation in the vertical direction as a result of heat exchange between the ground around the earth tube and the air passing through it. + +The mathematical approach used to model vertical temperature variation due to the presence and heat transfer impact of the earth tube is a finite difference scheme. This finite difference modeling technique looks at various nodes in the vertical direction and uses the following assumptions: + +\begin{itemize} +\item +The finite difference grid of nodes contains a single row of nodes in the vertical direction only. +\item +The finite difference grid is bound at the top and the bottom with a temperature boundary condition. The temperature at the top and the bottom is variable and based on the undisturbed ground temperature equation used in the Basic model for the depth at the top and bottom of the domain. +\item +There is no heat transfer horizontally or axially for the nodes (adiabatic in all directions except vertically). +\item +Heat transfer via conduction is modeled between adjacent nodes in the vertical direction. +\item +The impact of the air passing through the earth tube is felt at a single node, the earth tube node. +\item +The width of the solution horizontally is set by user input. +\item +The number of nodes above and below the earth tube node as well as how tall the solution space is above and below the earth tube is controlled by user input. These parameters will set the thickness of nodes above and below the earth tube node. The total height of the earth tube node will be set to twice the diameter of the earth tube itself. +\item +An implicit finite difference solution scheme is used to promote solution stability. Nodal equations are based on this implicit scheme. +\item +The nodal equations will be arranged as a matrix-based system of equations that will be solved using the description given below. +\end{itemize} + +The solution of the finite difference scheme used for the Vertical model starts with the development of nodal equations throughout the solution space. The figure below shows a representative nodal diagram for the Vertical earth tube model. Note that the number of nodes above and below the earth tube are determined by the user and set in the input file. The minimum number of nodes allowed either above or below the earth tube is 3 while the maximum is 10. The example shown below has five nodes above the earth tube and four below. + +\begin{figure}[hbtp] +\centering +\includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/earth_tube_solution_space_diagram.png} +\caption{Earth Tube Vertical Model Solution Space \protect \label{fig:earth-tube-solution-space-diagram}} +\end{figure} + +As can be seen in the node diagram, there are seven types of nodes. One is a node at the top of the solution space that is in contact with the upper temperature boundary and the next node down. Similarly, there is another node that is at the bottom of the solution space that is contact with the lower temperature boundary and the next node up. Two of the node types are simply generic "interior" nodes in the upper and lower areas of the solution space. The equations for these generic nodes are very similar with the only difference being the height of the node (which is based on user input). Two other nodes types are those adjacent to the earth tube node (one above the earth tube and one below). Again, these equations will be very similar since they only differ in the size of the node height and the nodes to which they are connected in the grid. Finally, the earth tube itself is an additional node type that is different than the other nodes due to the fact that it also has a connection with conduction and convection to the air in the earth tube. The equation for each node type is shown below. Each node equation will be rearranged so as to fit with the matrix form: Ax = b where x is a vector of node temperatures. + +\emph{\textit{Node Type 1: First Node (Below Upper Temperature Boundary)}} + +The first node includes conduction between the upper boundary and the node as well as the second node and the first node. The equation for this node is: + +\begin{equation} +\rho x_t w L c_p \frac{T_{1,new} - T_{1,old}}{\Delta t} = k w L \frac{T_{u,t}-T_{1,new}}{x_t / 2} + k w L \frac{T_{2,new}-T_{1,new}}{x_t} +\end{equation} + +This can be rearranged to: + +\begin{equation} +(1 + \frac{3 k \Delta t}{\rho c_p {x_t}^2}) T_{1,new} + (\frac{-k \Delta t}{\rho c_p {x_t}^2}) T_{2,new} = \frac{2 k \Delta t}{\rho c_p {x_t}^2} T_{u,t} + T_{1,old} +\end{equation} + +or: + +\begin{equation} +(1 + \frac{3 \alpha_s \Delta t}{{x_t}^2}) T_{1,new} + (\frac{-\alpha_s \Delta t}{{x_t}^2}) T_{2,new} = \frac{2 \alpha_s \Delta t}{{x_t}^2} T_{u,t} + T_{1,old} +\end{equation} + + +\emph{\textit{Node Type 2: Generic Node Upper Region}} + +The second through fourth nodes in the above diagram are all "generic" nodes in the upper region. They all have the same basic equation. Using "i" as the number for such a generic node, the equation for these nodes can be written as: + +\begin{equation} +\rho x_t w L c_p \frac{T_{i,new} - T_{i,old}}{\Delta t} = k w L \frac{T_{i+1,new}-T_{i,new}}{x_t} + k w L \frac{T_{i-1,new}-T_{i,new}}{x_t} +\end{equation} + +This can be rearranged to: + +\begin{equation} +(\frac{-k \Delta t}{\rho c_p {x_t}^2}) T_{i+1,new} + (1 + \frac{2 k \Delta t}{\rho c_p {x_t}^2}) T_{i,new} + (\frac{-k \Delta t}{\rho c_p {x_t}^2}) T_{i+1,new} = T_{i,old} +\end{equation} + +or: + +\begin{equation} +(\frac{-\alpha_s \Delta t}{{x_t}^2}) T_{i+1,new} + (1 + \frac{2 \alpha_s \Delta t}{{x_t}^2}) T_{i,new} + (\frac{-\alpha_s \Delta t}{{x_t}^2}) T_{i+1,new} = T_{i,old} +\end{equation} + + +\emph{\textit{Node Type 3: Last Node in Upper Region}} +The last node in the upper region connects to both the node above this one as well as the node at the earth tube ("et"). Since the thickness of the earth tube node and the nodes in the upper region are not the same, this requires a slight adjustment in the equations for a different thickness in the vertical direction. Here is the equation for this node: + +\begin{equation} +\rho x_t w L c_p \frac{T_{et-1,new} - T_{et-1,old}}{\Delta t} = k w L \frac{T_{et,new}-T_{et-1,new}}{(x_t + x_{et})/2} + k w L \frac{T_{et-2,new}-T_{et-1,new}}{x_t} +\end{equation} + +This can be rearranged to: + +\begin{equation} +(\frac{-k \Delta t}{\rho c_p {x_t}^2}) T_{et-2,new} + [1 + \frac{k \Delta t}{\rho c_p {x_t}^2} + \frac{k \Delta t}{\rho c_p x_t (x_t+x_{et})/2}] T_{et-1,new} + [\frac{-k \Delta t}{\rho c_p x_t (x_t+x_{et})/2}] T_{et,new} = T_{et-1,old} +\end{equation} + +or: + +\begin{equation} +(\frac{-\alpha_s \Delta t}{{x_t}^2}) T_{et-2,new} + [1 + \frac{\alpha_s \Delta t}{{x_t}^2} + \frac{\alpha_s \Delta t}{x_t (x_t+x_{et})/2}] T_{et-1,new} + [\frac{-\alpha_s \Delta t}{x_t (x_t+x_{et})/2}] T_{et,new} = T_{et-1,old} +\end{equation} + + +\emph{\textit{Node Type 4: Earth Tube Node}} + +The earth tube node is connected to nodes above and below it via conduction and also accounts for the convection between the air flowing through the tube and the conduction through the earth tube pipe material. The equation for this node, assuming an effectiveness-NTU model for heat exchange between the air and ground (see below), is: + +\begin{equation} +\rho x_{et} w L c_p \frac{T_{et,new} - T_{et,old}}{\Delta t} = k w L \frac{T_{et+1,new}-T_{et,new}}{(x_b + x_{et})/2} + k w L \frac{T_{et-1,new}-T_{et,new}}{(x_t + x_{et})/2} + {\dot m_a}{C_a} \eta (T_{air} - T_{et,new}) +\end{equation} + +This can be rearranged to: + +\begin{equation} +\begin{split} +[ \frac{-2k \Delta t}{\rho c_p x_{et} (x_t + x_{et})} ] T_{et-1,new} \\ + + [ 1 + \frac{2 k \Delta t}{\rho c_p x_{et} (x_t + x_{et})} + \frac{2 k \Delta t}{\rho c_p x_{et} (x_b+x_{et})} + \frac{\dot m_a {C_a} \eta \Delta t}{\rho c_p x_{et} w L} ] T_{et,new} \\ + + [ \frac{-2k \Delta t}{\rho c_p x_{et} (x_b + x_{et})} ] T_{et+1,new} \\ + = T_{et,old} + \frac{\dot m_a {C_a} \eta \Delta t}{\rho c_p x_{et} w L} T_{air,in} +\end{split} +\end{equation} + +or: + +\begin{equation} +\begin{split} +[ \frac{-2 \alpha_s \Delta t}{x_{et} (x_t + x_{et})} ] T_{et-1,new} \\ + + [ 1 + \frac{2 \alpha_s \Delta t}{x_{et} (x_t + x_{et})} + \frac{2 \alpha_s \Delta t}{x_{et} (x_b+x_{et})} + \frac{\dot m_a {C_a} \eta \Delta t}{\rho c_p x_{et} w L} ] T_{et,new} \\ + + [ \frac{-2 \alpha_s \Delta t}{x_{et} (x_b + x_{et})} ] T_{et+1,new} \\ + = T_{et,old} + \frac{\dot m_a {C_a} \eta \Delta t}{\rho c_p x_{et} w L} T_{air,in} +\end{split} +\end{equation} + +\emph{\textit{Node Type 5: First Node in Lower Region}} + +The region below the earth tube node is physically very similar to the region above the earth tube (reflected in a sense at the earth tube itself). The main difference is the number of nodes and the overall thickness of the region can lead to a node height that is different than for the upper region. Above this first node in the lower region, there is the earth tube node. Below it is one or more generic lower region nodes (Type 6 below). The equation for this node is: + +\begin{equation} +\rho x_b w L c_p \frac{T_{et+1,new} - T_{et+1,old}}{\Delta t} = k w L \frac{T_{et,new}-T_{et+1,new}}{(x_b + x_{et})/2} + k w L \frac{T_{et+2,new}-T_{et+1,new}}{x_b} +\end{equation} + +This can be rearranged to: + +\begin{equation} +[\frac{-k \Delta t}{\rho c_p x_b (x_b + x_{et})/2}] T_{et,new} + [1 + \frac{k \Delta t}{\rho c_p {x_b}^2} + \frac{k \Delta t}{\rho c_p x_b (x_b+x_{et})/2}] T_{et+1,new} + [\frac{-k \Delta t}{\rho c_p {x_b}^2}] T_{et+2,new} = T_{et+1,old} +\end{equation} + +or: + +\begin{equation} +[\frac{-\alpha_s \Delta t}{x_b (x_b + x_{et})/2}] T_{et,new} + [1 + \frac{\alpha_s \Delta t}{{x_b}^2} + \frac{\alpha_s \Delta t}{x_b (x_b+x_{et})/2}] T_{et+1,new} + [\frac{-\alpha_s \Delta t}{{x_b}^2}] T_{et+2,new} = T_{et+1,old} +\end{equation} + +\emph{\textit{Node Type 6: Generic Node in Lower Region}} + +The generic node equation in the lower region is nearly identical to generic node equation for the upper region except that the lower region node height replaces the upper region node height. The equation is therefore: + +\begin{equation} +\rho x_b w L c_p \frac{T_{i,new} - T_{i,old}}{\Delta t} = k w L \frac{T_{i+1,new}-T_{i,new}}{x_b} + k w L \frac{T_{i-1,new}-T_{i,new}}{x_b} +\end{equation} + +This can be rearranged to: + +\begin{equation} +(\frac{-k \Delta t}{\rho c_p {x_b}^2}) T_{i+1,new} + (1 + \frac{2 k \Delta t}{\rho c_p {x_b}^2}) T_{i,new} + (\frac{-k \Delta t}{\rho c_p {x_b}^2}) T_{i+1,new} = T_{i,old} +\end{equation} + +or: + +\begin{equation} +(\frac{-\alpha_s \Delta t}{{x_b}^2}) T_{i+1,new} + (1 + \frac{2 \alpha_s \Delta t}{{x_b}^2}) T_{i,new} + (\frac{-\alpha_s \Delta t}{{x_b}^2}) T_{i+1,new} = T_{i,old} +\end{equation} + +\emph{\textit{Node Type 7: Last Node (Above Lower Temperature Boundary)}} + +Finally, the last node temperature is in contact with the node above it as well as the temperature at the lower boundary condition. The actual temperature of the lower boundary condition is set by the undisturbed ground temperature equation used in the basic model for the depth of the lower boundary condition. The equation is similar to the first node: + +\begin{equation} +\rho x_b w L c_p \frac{T_{n,new} - T_{n,old}}{\Delta t} = k w L \frac{T_{l,t} - T_{n,new}}{x_b / 2} + k w L \frac{T_{n-1,new} - T_{n,new}}{x_t} +\end{equation} + +This can be rearranged to: + +\begin{equation} +(\frac{-k \Delta t}{\rho c_p {x_b}^2}) T_{n-1,new} + (1 + \frac{3 k \Delta t}{\rho c_p {x_b}^2}) T_{n,new} = \frac{2 k \Delta t}{\rho c_p {x_b}^2} T_{l,t} + T_{n,old} +\end{equation} + +or: + +\begin{equation} +(\frac{-\alpha_s \Delta t}{{x_b}^2}) T_{n-1,new} + (1 + \frac{3 \alpha_s \Delta t}{{x_b}^2}) T_{n,new} = \frac{2 \alpha_s \Delta t}{{x_b}^2} T_{l,t} + T_{n,old} +\end{equation} + +\emph{\textit{Calculation of Effectiveness for Heat Transfer Between the Air and Ground}} + +Similar to the low temperature radiant system where a fluid of variable temperature is passing through a solid that is assumed to be at a single temperature, the relationship between effectiveness and heat transfer between the air and the ground can be summarized using the following relationship: + +\begin{equation} +q = \dot m_a * C_{p,a} * (T_{air,in} - T_{air,out}) +\end{equation} + +where \(T_{air,in}\) is the outside air temperatre and \(T_{air,out}\) is the temperature of the air leaving the earth tube and entering the zone. + +\begin{equation} +q_{max} = \dot m_a * C_{p,a} * (T_{air,in} - T_{et}) +\end{equation} + +where \(T_{et}\) is the temperature of the ground at the depth of the earth tube (i.e., at the earth tube node). + +The effectiveness (\(\eta\)) is the ratio of these two terms or: + +\begin{equation} +\eta = \frac{q}{q_{max}} +\end{equation} + +For the situation where a fluid of varying temperature flows through a solid of constant temperature, the effectiveness can be related to the number of transfer units (NTU) by: + +\begin{equation} +\eta = 1 - e^{-NTU} +\end{equation} + +NTU is calculated using the following equation: + +\begin{equation} +NTU = U A / (\dot m C_p)_{min} +\end{equation} + +Since the solid is not moving, \((\dot m C_p)_{min}\) is evaluated for the air side. The U-value for this situation includes the heat conduction through the pipe wall and the convection between the inside surface of the earth tube and the air passing through it. The relations for both the conduction and convection terms rely on the relationships developed for the Basic model. With the effectiveness determined for a particular flow rate, the overall matrix equation is set and can be solved for the new node temperatures. + +\emph{\textit{Solution Strtegy}} + +The node equations above result in a system of equations that can be arranged as a matrix in the form of [A][x] = [b], where the number of node (n) is the index of the matrices. The A matrix (n by n square matrix) consists primarily of constant terms that relate to the thermo-physical properties of the solution space. The vector x consists of the new temperatures of the nodes (again, using the implicit formulation for stability) and the algorithm needs to solve for these. The vector b includes terms such as the old temperatures at the nodes, the impact of boundary conditions at the top and bottom of the solution space, and the impact of the earth tube on the earth tube node. The values of the vector b will vary with every time step since the temperatures of the nodes, ground, and air will vary with time. The seven equation types that were rearranged above were done so to fit with the [A][x] = [b] format. + +Upon inspection of the terms that make up the A matrix, it is clear that A will be a tridiagonal matrix. Tridiagonal matrices can be solved more efficiently using what is known as the Thomas algorithm which require operations on the order of the index (n) whereas solution strategies such as matrix inversion require operations on the order of the index (n) cubed. In addition, there is only one term in the A matrix that might potentially vary--the term associated with the air flow rate and efficiency of heat exchange between the earth tube and the air flow through it at the earth tube node. Since it is not known ahead of time what this flow rate or efficiency will be, the matrix system will have to go through a full solution at any time step. The only exception to this when there is no air flow through the earth tube. Since there will be significant time when the earth tube is dormant (no flow through it), the first step of the Thomas algorithm will be done for the zero flow situation and the values stored to reduce the number of calculations required by the solution. Note that while in many cases when the earth tube is running that the effectiveness (\(\eta\)) will be unity, the flow rate may still vary based on the user input flow coefficients. As a result, it does not make sense to store an intermediate step in the solution for when effectiveness is unity. + +In general, many of the related calculations (such as air flow rate, thermal properties of air, etc.) are identical to the Basic earth tube model. The main difference is the calculation of the temperature at the earth tube location--the Basic model uses the undisturbed ground temperature relationship while the Vertical solution uses the implicit finite difference scheme and the Thomas algorithm. + +Once the node (ground) temperatures have been determined, the calculation of the air temperature leaving the earth tube can be calculated using the effectiveness-NTU formulation above. Cancelling out the common flow rate and air specific heat, the equation for effectiveness simplifies to: + +\begin{equation} +\eta = \frac{T_{air,in} - T_{air,out}}{T_{air,in} - T_{et}} +\end{equation} + +Rearranging this equation to find the temperature of the air leaving the earth tube (inlet to the zone): + +\begin{equation} +T_{air,in} - T_{air,out} = \eta * (T_{air,in} - T_{et}) +\end{equation} + +or: + +\begin{equation} +T_{air,out} = T_{air,in} - \eta * (T_{air,in} - T_{et}) +\end{equation} + % table 87 \begin{longtable}[c]{p{1.5in}p{3.0in}p{1.5in}} \caption{Nomenclature for Earthtube Model \label{table:nomenclature-for-earthtube-model}} \tabularnewline @@ -2271,13 +2511,14 @@ \subsection{Earthtube}\label{earthtube} A\(_{s}\) & amplitude of the soil surface temperature variation & \(^{\circ}\)C \tabularnewline C\(_{a}\) & specific heat of air & J/kg-\(^{\circ}\)C \tabularnewline +c\(_{p}\) & specific heat of soil & J/kg-\(^{\circ}\)C \tabularnewline h\(_{c}\) & convective heat transfer coefficient at the inner pipe surface & W/m\(^{2}\)-\(^{\circ}\)C \tabularnewline h\(_{s}\) & convective heat transfer coefficient at the soil surface & W/m\(^{2}\)-\(^{\circ}\)C \tabularnewline k\(_{air}\) & thermal conductivity of the air & W/m-\(^{\circ}\)C \tabularnewline k\(_{p}\) & pipe thermal conductivity & W/m-\(^{\circ}\)C \tabularnewline -k\(_{s}\) & soil thermal conductivity & W/m-\(^{\circ}\)C \tabularnewline +k\(_{s}\) or k & soil thermal conductivity & W/m-\(^{\circ}\)C \tabularnewline L & pipe length & m \tabularnewline -m\(_{a}\) & mass flow rate of ambient air through pipe & kg/s \tabularnewline +\(\dot m_a\) & mass flow rate of ambient air through pipe & kg/s \tabularnewline r\(_{a}\) & relative humidity & ~ \tabularnewline R\(_{c}\) & thermal resistance due to convection heat transfer between the air in the pipe and the pipe inner surface & m-\(^{\circ}\)C/W \tabularnewline R\(_{p}\) & thermal resistance due to conduction heat transfer between the pipe inner and outer surface & m-\(^{\circ}\)C/W \tabularnewline @@ -2291,6 +2532,10 @@ \subsection{Earthtube}\label{earthtube} S\(_{v}\) & amplitude of the solar radiation & W/m\(^{2}\) \tabularnewline t & time elapsed from beginning of calendar year & days \tabularnewline T\(_{a}\)(y) & air temperature of the pipe at the distance y from the pipe inlet & \(^{\circ}\)C \tabularnewline +T\(_{et,new}\)(y) & earth tube node temperature (current) & \(^{\circ}\)C \tabularnewline +T\(_{et,old}\)(y) & earth tube node temperature (previous) & \(^{\circ}\)C \tabularnewline +T\(_{i,new}\)(y) & node temperature for node "i" (current) & \(^{\circ}\)C \tabularnewline +T\(_{i,old}\)(y) & node temperature for node "i" (previous) & \(^{\circ}\)C \tabularnewline T\(_{m}\) & average soil surface temperature & \(^{\circ}\)C \tabularnewline T\(_{ma}\) & average air temperature & \(^{\circ}\)C \tabularnewline t\(_{o}\) & phase constant of the soil surface & sec, days \tabularnewline @@ -2301,14 +2546,20 @@ \subsection{Earthtube}\label{earthtube} u & ~wind velocity above the ground surface & m/s \tabularnewline U\(_{t}\) & overall heat transfer coefficient of the whole earth tube system & W/m-\(^{\circ}\)C \tabularnewline V\(_{a}\) & average pipe air velocity & m/s \tabularnewline +w & node width (user input) in the vertical solution & m \tabularnewline +x\(_{t}\) & node thickness in the upper (top) region in the vertical solution & m \tabularnewline +x\(_{et}\) & node thickness for the earth tube node in the vertical solution & m \tabularnewline +x\(_{b}\) & node thickness in the lower (bottom) region in the vertical solution & m \tabularnewline z & depth of the radial center of pipe below soil surface & m \tabularnewline z\(_{1}\) & upper bounds of some vertical profile in soil & m \tabularnewline z\(_{2}\) & lower bounds of some vertical profile in soil & m \tabularnewline -$\alpha$\(_{s}\) & soil thermal diffusivity & m\(^{2}\)/s; m\(^{2}\)/days \tabularnewline +$\alpha$\(_{s}\) & soil thermal diffusivity & m\(^{2}\)/s; m\(^{2}\)/days; m\(^{2}\)/hr \tabularnewline $\beta$ & soil absorption coefficient ( = 1 – soil albedo) & ~ \tabularnewline +$\Delta$t & time step & hr \tabularnewline $\varepsilon$ & hemispherical emittance of the ground surface & ~ \tabularnewline $\varphi$\(_{I}\) & phase angle between the insolation and the air temperature & rad \tabularnewline $\phi$\(_{s}\) & phase angle difference between the air and soil surface temperature & rad \tabularnewline +$\rho$ & soil density & kg/m\(^3\) \tabularnewline $\upsilon$ & kinetic viscosity of air & m\(^{2}\)/s \tabularnewline w & annual angular frequency ( = 1.992 x 10\(^{-7}\)rad/s) & rad/s \tabularnewline \bottomrule diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex index d497bf96fd1..e13d8ebfd4c 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/air-system-distribution-terminals.tex @@ -628,9 +628,9 @@ \subsubsection{Model Description}\label{model-description-1-000} \({\rho_{CW}}\) is the density of chilled water, in kg/m\(^{3}\) -\({T_{SA}}\) is the dryblub temperature of the (central) primary air entering the air terminal unit, in degrees C. +\({T_{SA}}\) is the drybulb temperature of the (central) primary air entering the air terminal unit, in degrees C. -\({T_{Z}}\) is the dryblub temperature of the zone air, in \(^{\circ}\)C. +\({T_{Z}}\) is the drybulb temperature of the zone air, in \(^{\circ}\)C. \({T_{CW,in}}\) is the temperature of chilled water entering the convector, in \(^{\circ}\)C. @@ -662,7 +662,7 @@ \subsubsection{Model Description}\label{model-description-1-000} {T_{CW,out}} = {T_{CW,in}} - \frac{{\dot Q_{Beam}}}{{\dot m_{CW}} \cdot {c_{p,CW}} } \end{equation} -However, to protect from a non-physical result the leaving chilled water temperature is constrained to be no warmer than a 1.0\(^{\circ}\)C approach temperature compared to the zone air or the primary supply air. If the above result is too warm the leaving temperature and beam cooling capacity are adjusted using the following equations, and a recurring warning is issued to alert the user that there may be a problem with the cooliong performance input data. +However, to protect from a non-physical result the leaving chilled water temperature is constrained to be no warmer than a 1.0\(^{\circ}\)C approach temperature compared to the zone air or the primary supply air. If the above result is too warm the leaving temperature and beam cooling capacity are adjusted using the following equations, and a recurring warning is issued to alert the user that there may be a problem with the cooling performance input data. \begin{equation} {T_{CW,out}} = { max( {T_{SA}} , {T_{Z}}) - 1.0 } @@ -1226,4 +1226,4 @@ \subsubsection{Model Description}\label{model-description-4-000} \subsubsection{References}\label{references-6} -Sekhar, S. C., K. W. Tham, et al. (2004). Development of energy-efficient single-coil twin-fan air-conditioning system with zonal ventilation control, Nashville, TX, United states, Amer. Soc. Heating, Ref. Air-Conditoning Eng. Inc. +Sekhar, S. C., K. W. Tham, et al. (2004). Development of energy-efficient single-coil twin-fan air-conditioning system with zonal ventilation control, Nashville, TX, United states, Amer. Soc. Heating, Ref. Air-Conditioning Eng. Inc. diff --git a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex index f029f60b981..dbef26c420b 100644 --- a/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex +++ b/doc/engineering-reference/src/simulation-models-encyclopedic-reference/chillers.tex @@ -4,7 +4,7 @@ \subsection{Absorption Chiller}\label{absorption-chiller} The input object Chiller:Absorption provides a model for absorption chillers that is an empirical model of a standard absorption refrigeration cycle.~ The condenser and evaporator are similar to that of a standard chiller, which are both water-to-water heat exchangers.~ The assembly of a generator and absorber provides the compression operation.~ Low-pressure vapor from the evaporator is absorbed by the liquid solution in the absorber.~ A pump receives low-pressure liquid from the absorber, elevates the pressure of the liquid, and delivers the liquid to the generator.~ In the generator, heat from a high temperature source (hot water or steam) drives off the vapor that has been absorbed by the solution.~ The liquid solution returns to the absorber through a throttling valve whose purpose is to provide a pressure drop to maintain the pressure difference between the generator and absorber.~ The heat supplied to the absorber can be waste heat from a diesel jacket, or the exhaust heat from diesel, gas, and steam turbines.~ For more information on absorption chillers, see the Input/Output Reference Document (Object: Chiller:Absorption). -The part-load ratio of the absoprtion chiller's evaporator is simply the actual cooling effect produced by the chiller divided by the maximum cooling effect available. +The part-load ratio of the absorption chiller's evaporator is simply the actual cooling effect produced by the chiller divided by the maximum cooling effect available. \begin{equation} PLR = \frac{\dot{Q}_{evap}}{\dot{Q}_{evap,rated}} @@ -54,7 +54,7 @@ \subsection{Absorption Chiller}\label{absorption-chiller} \({\dot Q_{generator}}\) is the generator input power (W) -\({\dot Q_{pump}}\) is the absorbtion chiller pumping power (W). +\({\dot Q_{pump}}\) is the absorption chiller pumping power (W). The evaporator water mass flow rate is calculated based on the Chiller Flow Mode as follows. @@ -218,7 +218,7 @@ \subsection{Indirect Absorption Chiller}\label{indirect-absorption-chiller} \(CAPF{T_{generator}}\) is the capacity correction (function of generator temperature) factor -\({T_{evaporator}}\) is the evaporator outet water temperature (\(^{\circ}\)C) +\({T_{evaporator}}\) is the evaporator outlet water temperature (\(^{\circ}\)C) \({T_{condenser}}\) is the condenser inlet water temperature (\(^{\circ}\)C) @@ -228,7 +228,7 @@ \subsection{Indirect Absorption Chiller}\label{indirect-absorption-chiller} \({\dot Q_{evap,rated}}\) is the rated chiller capacity (W). -The part-load ratio of the indirect absoprtion chiller's evaporator is simply the actual cooling effect required (load) divided by the maximum cooling effect available. +The part-load ratio of the indirect absorption chiller's evaporator is simply the actual cooling effect required (load) divided by the maximum cooling effect available. \begin{equation} PLR = \frac{\dot{Q}_{evap}}{\dot{Q}_{evap,max}} @@ -240,7 +240,7 @@ \subsection{Indirect Absorption Chiller}\label{indirect-absorption-chiller} \({\dot Q_{evap}}\) is the chiller evaporator operating capacity (W). -The generator's heat input is also a function of several parameters. The primary input for determining the heat input requirements is the Generator Heat Input function of Part-Load Ratio Curve. The curve is a quadratic or cubic equation that determines the ratio of the generator heat input to the chiller's maximum capacity (Q\(_{evap,\, max}\)) and is solely a function of part-load ratio. Typical generator heat input ratios at full load (i.e., PLR = 1) are between 1 and 2. Two additional curves are available to modifiy the heat input requirement based on the generator inlet water temperature and the evaporator outlet water temperature. +The generator's heat input is also a function of several parameters. The primary input for determining the heat input requirements is the Generator Heat Input function of Part-Load Ratio Curve. The curve is a quadratic or cubic equation that determines the ratio of the generator heat input to the chiller's maximum capacity (Q\(_{evap,\, max}\)) and is solely a function of part-load ratio. Typical generator heat input ratios at full load (i.e., PLR = 1) are between 1 and 2. Two additional curves are available to modify the heat input requirement based on the generator inlet water temperature and the evaporator outlet water temperature. \begin{equation} GeneratorHIR = a + b\left( {PLR} \right) + c{\left( {PLR} \right)^2} + d{\left( {PLR} \right)^3} @@ -366,7 +366,7 @@ \subsection{Indirect Absorption Chiller}\label{indirect-absorption-chiller} \subsubsection{Steam Loop Calculations}\label{steam-loop-calculations-1} -When a steam loop is used and the inlet and outlet node names are specified (i.e.~the nodes are connected to a steam loop), the generator outlet node steam mass flow rate and temperature are calculated based on the generator heat input, latent heat of steam, the specific heat of water, and the amount of subcooling in the steam generator. The model assumes dry saturated steam enters the generator and exits the generator as a subcooled liquid. The temperature leaving the generator is calculated based on the user entered amount of liquid subcooling in the generator. The effect of subcooling of the liquid (condensate) in the pipe returning to the boiler is also modeled using the user entered abount of steam condensate loop subcooling. +When a steam loop is used and the inlet and outlet node names are specified (i.e.~the nodes are connected to a steam loop), the generator outlet node steam mass flow rate and temperature are calculated based on the generator heat input, latent heat of steam, the specific heat of water, and the amount of subcooling in the steam generator. The model assumes dry saturated steam enters the generator and exits the generator as a subcooled liquid. The temperature leaving the generator is calculated based on the user entered amount of liquid subcooling in the generator. The effect of subcooling of the liquid (condensate) in the pipe returning to the boiler is also modeled using the user entered amount of steam condensate loop subcooling. \begin{equation} {\dot m_{steam}}\,\,\,\, = \,\,\,\,\,\frac{{{{\dot Q}_{generator}}}}{{{h_{fg}} + {c_{p,water}} \times \Delta {T_{sc}}}} @@ -1185,7 +1185,7 @@ \subsection{Hot Water Heat Recovery from Chillers}\label{hot-water-heat-recovery {T_{Cond,out,Avg}} = \frac{{\left( {{{\dot Q}_{HR}}{T_{HR,out}} + {{\dot Q}_{Cond}}{T_{Cond,out}}} \right)}}{{\left( {{{\dot Q}_{HR}} + {{\dot Q}_{Cond}}} \right)}} \end{equation} -Both of these are available as an output variable called Chiller Effective Heat Rejection Tempeature in \(^{\circ}\)C. +Both of these are available as an output variable called Chiller Effective Heat Rejection Temperature in \(^{\circ}\)C. \subsubsection{Chiller Basin Heater}\label{chiller-basin-heater-2} @@ -1905,7 +1905,7 @@ \subsubsection{Electric Reformulated EIR Chiller with Heat Recovery Option}\labe \subsubsection{Standard Rating (Integrated Part Load Value)}\label{standard-rating-integrated-part-load-value-1} -Integrated Part Laod Value (IPLV) calculations for Reformulated EIR chiller are similar to what are described above for EIR chillers. The only difference with Reformulated EIR chiller is that it calls an iterative subroutine (SolveRegulaFalsi) to obtain a condenser water outlet temperature which corresponds to condenser inlet temperature at reduced capacity conditions as outlined in Table~\ref{table:standard-rating-integrated-part-load-value} above. SolveRegulaFalsi is a general utility routine for finding the zero of a function. In this case it finds the condenser inlet temperature that will zero the residual function -- the difference between calculated condenser inlet temperature and desired condenser inlet temperature per ANSI/AHRI 550/590, 2011 (Table~\ref{table:standard-rating-integrated-part-load-value} above) divided by desired condenser inlet temperature. +Integrated Part Load Value (IPLV) calculations for Reformulated EIR chiller are similar to what are described above for EIR chillers. The only difference with Reformulated EIR chiller is that it calls an iterative subroutine (SolveRegulaFalsi) to obtain a condenser water outlet temperature which corresponds to condenser inlet temperature at reduced capacity conditions as outlined in Table~\ref{table:standard-rating-integrated-part-load-value} above. SolveRegulaFalsi is a general utility routine for finding the zero of a function. In this case it finds the condenser inlet temperature that will zero the residual function -- the difference between calculated condenser inlet temperature and desired condenser inlet temperature per ANSI/AHRI 550/590, 2011 (Table~\ref{table:standard-rating-integrated-part-load-value} above) divided by desired condenser inlet temperature. \subsubsection{References}\label{references-1-003} diff --git a/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex b/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex index 21f18104d17..ea519de6ca0 100644 --- a/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex +++ b/doc/engineering-reference/src/solar-radiation-reflected-from-exterior/diffuse-reflection-of-beam-solar-and-sky.tex @@ -1,6 +1,6 @@ \section{Diffuse Reflection of Beam Solar and Sky Solar Radiation}\label{diffuse-reflection-of-beam-solar-and-sky-solar-radiation} -A ray-tracing method is used to calculate beam solar and sky solar radiation that is diffusely reflected onto each of a building's exterior surfaces (walls, roofs, windows and doors), called here ``receiving surfaces.'' The calculation begins by generating a set of rays proceeding into the outward hemisphere at each receiving point on a receiving surface. Then it determinines whether each ray hits the sky, ground or an obstruction. The radiance at the hit point from reflection of incident beam or sky solar is determined and the contribution of this radiance to the receiving surface is calculated, added to the contribution from other hit points, and averaged over the receiving points. Separate calculations are done for beam-to-diffuse and sky solar reflection from all obstructions and beam-to-diffuse and sky solar reflection from the ground. (For beam-to-beam reflection see ``Beam Solar Radiation Specularly Reflected from Obstructions,'' below.) +A ray-tracing method is used to calculate beam solar and sky solar radiation that is diffusely reflected onto each of a building's exterior surfaces (walls, roofs, windows and doors), called here ``receiving surfaces.'' The calculation begins by generating a set of rays proceeding into the outward hemisphere at each receiving point on a receiving surface. Then it determines whether each ray hits the sky, ground or an obstruction. The radiance at the hit point from reflection of incident beam or sky solar is determined and the contribution of this radiance to the receiving surface is calculated, added to the contribution from other hit points, and averaged over the receiving points. Separate calculations are done for beam-to-diffuse and sky solar reflection from all obstructions and beam-to-diffuse and sky solar reflection from the ground. (For beam-to-beam reflection see ``Beam Solar Radiation Specularly Reflected from Obstructions,'' below.) \subsection{Receiving points}\label{receiving-points} @@ -139,7 +139,7 @@ \subsection{Sky Solar Radiation Diffusely Reflected from the Ground}\label{sky-s \end{array} \end{equation} -The view factor weighted average reflectance of multiple ground surfaces is calculated from the ground refelctances and view factors of the ground surfaces viewed by an exterior surface and is given by: +The view factor weighted average reflectance of multiple ground surfaces is calculated from the ground reflectances and view factors of the ground surfaces viewed by an exterior surface and is given by: \begin{equation} {\rho_{gnd,avg}} = \sum\limits_{j = 1}^{{N_{gnd}}} {\rho_{gnd,j}} * {F_{gnd,j}} / \sum\limits_{j = 1}^{{N_{gnd}}} {F_{gnd,j}} @@ -204,7 +204,7 @@ \subsection{Beam Solar Radiation Diffusely Reflected from the Ground}\label{beam \(Hi{t_{gnd,i}}\) = 1 if ray \emph{i} hits the ground, = 0 otherwise, -\(Hi{t_{gnd,i,sun}}\) = 1 if the line from ray \emph{i}'s hit point ot the sun is unobstructed, = 0 otherwise, +\(Hi{t_{gnd,i,sun}}\) = 1 if the line from ray \emph{i}'s hit point to the sun is unobstructed, = 0 otherwise, \({\alpha_{sun,gnd}}\) = angle of incidence of sun on ground ( = solar zenith angle). @@ -228,7 +228,7 @@ \subsection{Beam Solar Radiation Diffusely Reflected from the Ground}\label{beam \end{split} \end{equation} -The beam solar radiation is assumed to be reflected uniformaly to all directions. The view factor weighed ground solar reflectance of multiple ground surfaces viewed by an exterior surface is given by: +The beam solar radiation is assumed to be reflected uniformly to all directions. The view factor weighed ground solar reflectance of multiple ground surfaces viewed by an exterior surface is given by: \begin{equation} {\rho_{gnd,avg}} = \sum\limits_{j = 1}^{{N_{gnd}}} {\rho_{gnd,j}} * {F_{gnd,j}} / \sum\limits_{j = 1}^{{N_{gnd}}} {F_{gnd,j}} @@ -294,7 +294,7 @@ \subsection{Beam Solar Radiation Specularly Reflected from Obstructions}\label{b The program assumes that specular reflection from a surface is due to glazing. If the reflecting surface is a window belonging to the building itself (as in Figure~\ref{fig:solar-reflection-from-building-surfaces-onto}), then \({f_{C,glazed}}\) is the fraction of the window that is glazed (which is 1.0 unless the window has dividers). -If the surface is a shading surface (that represents, for example, the glazed façade of a neigboring building) the surface reflection information is entered with the Shading Surface Reflectance object. This object contains values for: +If the surface is a shading surface (that represents, for example, the glazed façade of a neighboring building) the surface reflection information is entered with the Shading Surface Reflectance object. This object contains values for: 1.~~~~Diffuse solar reflectance of the unglazed part of the shading surface diff --git a/doc/engineering-reference/src/special-modules-reporting/resilience-metrics.tex b/doc/engineering-reference/src/special-modules-reporting/resilience-metrics.tex index ed52c567af4..8f2b0d478dc 100644 --- a/doc/engineering-reference/src/special-modules-reporting/resilience-metrics.tex +++ b/doc/engineering-reference/src/special-modules-reporting/resilience-metrics.tex @@ -486,7 +486,7 @@ \subsection{References} 17–25. doi:10.1016/j.enbuild.2013.04.019. {[}8{]} L.G. Gagge, A. P., Fobelets, A. P. and Berglund, A standard predictive -Index of human reponse to thermal enviroment, Am. Soc. Heating, Refrig. +Index of human response to thermal environment, Am. Soc. Heating, Refrig. Air-Conditioning Eng. (1986) 709–731. {[}9{]} ASHRAE, ASHRAE STANDARD 55-2010: Thermal Environmental Conditions for diff --git a/doc/engineering-reference/src/special-modules-reporting/zone-component-loads-summary.tex b/doc/engineering-reference/src/special-modules-reporting/zone-component-loads-summary.tex index e60b87f5d61..61c97f41087 100644 --- a/doc/engineering-reference/src/special-modules-reporting/zone-component-loads-summary.tex +++ b/doc/engineering-reference/src/special-modules-reporting/zone-component-loads-summary.tex @@ -4,7 +4,7 @@ \section{Component Loads Summary}\label{component-loads-summary} The heat balance algorithms used by EnergyPlus result in a single combined design load for a given zone and some, but not all, of the zone instantaneous heat gains. This section describes the estimation procedure for the three Component Loads Summary reports that shows an estimated breakdown of load components from each type of of heat gain for each zone. The three different reports are the Zone Component Loads Summary, the AirLoop Component Loads Summary and the Facility Component Loads Summary. The procedure described below is used for each zone and then the AirLoop and Facility level reports are generated by aggregating the results for the appropriate zones. -If the time of the peak load for each Zone for cooling exactly matches the time of the peak load for the AirLoop or Facility than the Estimated Cooling Peak Load Components will represent a sum of the values from the corresponding zones. Likewise the Estimated Heating Peak Load Components will add up for the AirLoop or Facility if the times of the heating peaks exactly match. This is not necessarily the case for Peak Conditions or the Engineering Checks tables. Since the sizing of Airloops is based on the system sizing they usually will be different than the sum of the corresonding zones. +If the time of the peak load for each Zone for cooling exactly matches the time of the peak load for the AirLoop or Facility than the Estimated Cooling Peak Load Components will represent a sum of the values from the corresponding zones. Likewise the Estimated Heating Peak Load Components will add up for the AirLoop or Facility if the times of the heating peaks exactly match. This is not necessarily the case for Peak Conditions or the Engineering Checks tables. Since the sizing of Airloops is based on the system sizing they usually will be different than the sum of the corresponding zones. The Estimated Cooling Peak Load Components and Estimated Heating Peak Load Components subtables of the Zone Component Loads Summary report contain values that are estimated and are not part of the normal heat balance algorithms used in the rest of EnergyPlus.~ In particular, the column described as Sensible-Delayed represents an estimate of the sensible load contributed at the peak time based on radiant contributions from various load components that have radiant portions in previous timesteps. The focus of this section will be on the Sensible-Delayed column. @@ -23,7 +23,7 @@ \section{Component Loads Summary}\label{component-loads-summary} \item When zone sizing is performed for cooling or heating, the heat convected from each opaque surface for each timestep during sizing day is saved to an array. \item - For each type of internal gain, HVAC equipment gain, and solar energy entering the zone, the radiant and convective portions are saved for every timestep during sizing. In addition, for each type of radiant gain, the amount that lands on each surface in the zone is saved for evergy timestep during sizing. + For each type of internal gain, HVAC equipment gain, and solar energy entering the zone, the radiant and convective portions are saved for every timestep during sizing. In addition, for each type of radiant gain, the amount that lands on each surface in the zone is saved for every timestep during sizing. \item An additional ``pulse sizing'' run is performed for cooling and heating during zone sizing that includes an additional small, single timestep, pulse of radiant-only heat for each zone but is otherwise the same as a normal zone sizing simulation. This is equivalent to adding an ElectricEquipment object that is scheduled for a single timestep and is 100\% radiant heat. The heat convected from each opaque surface for each timestep during sizing is saved to an array. This run is not used for sizing, but just to gather the impact of the pulse of radiant heat. \item @@ -53,7 +53,7 @@ \section{Component Loads Summary}\label{component-loads-summary} \subsection{Estimated Component Load Details}\label{estimated-component-load-details} -In HeatBalanceInternalHeatGains, in the InitInternalHeatGains routine, the single timestep pulse is added to the thermal radiation absorbed on the inside surface. It is based on 0.01 W per square meter of the zone area. The time of the pulse and the amount received by each surface is also saved. A new routine GatherComponentLoadsIntGain was also added to that file that gathers the instantenous heat gains from people, lights, equipment, refrigeration equipment, water use, hvac losses, and power generation. Latent gains from people and refrigeration are also gathered along with the radiant portion of the gains from these same sources. EnergyPlus tracks internal gains by type, and these are grouped as follows for the rows of the report: +In HeatBalanceInternalHeatGains, in the InitInternalHeatGains routine, the single timestep pulse is added to the thermal radiation absorbed on the inside surface. It is based on 0.01 W per square meter of the zone area. The time of the pulse and the amount received by each surface is also saved. A new routine GatherComponentLoadsIntGain was also added to that file that gathers the instantaneous heat gains from people, lights, equipment, refrigeration equipment, water use, hvac losses, and power generation. Latent gains from people and refrigeration are also gathered along with the radiant portion of the gains from these same sources. EnergyPlus tracks internal gains by type, and these are grouped as follows for the rows of the report: The gains from ``People'' contain: diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex index 4fa93dd3cb9..9a2d19937ea 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex @@ -125,11 +125,11 @@ \subsubsection{Porosity P}\label{porosity-p} The porosity of a material (P) is an input variable and defined as the maximum fraction, by volume, of a material that can be taken up with moisture. It is used to calculate the maximum point on the sorption isotherm curve. ~The porosity is entered for each material via the MaterialProperty:HeatAndMoistureTransfer:Settings object, as described in the Input Output Reference document. -\subsubsection{Moisture Dependant Thermal Conductivity k\(^{w}\)}\label{moisture-dependant-thermal-conductivity-kw} +\subsubsection{Moisture Dependent Thermal Conductivity k\(^{w}\)}\label{moisture-dependent-thermal-conductivity-kw} The thermal conductivity (k\(^{w}\)) of the cell is determined by interpolating between data points of thermal conductivity versus the moisture content of the material, entered into EnergyPlus via the MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity object. The moisture content is determined via the sorption isotherm which gives the moisture content as a function of Relative Humidity. -\subsubsection{Moisture Dependant Moisture Diffusion Coefficient μ}\label{moisture-dependant-moisture-diffusion-coefficient-ux3bc} +\subsubsection{Moisture Dependent Moisture Diffusion Coefficient μ}\label{moisture-dependent-moisture-diffusion-coefficient-ux3bc} This is used in the third term of Equation~\ref{eq:HAMTHeatBalanceEquation} to describe the heat transfer due to vapor movement. It is determined by interpolating between data points of moisture diffusion coefficient versus the moisture content of the material, entered into EnergyPlus via the MaterialProperty:HeatAndMoistureTransfer:Diffusion object. A simple linear interpolation is used to obtain the conductivity between measured points. @@ -163,7 +163,7 @@ \subsubsection{Moisture Transfer}\label{moisture-transfer} \subsubsection{Liquid Transport Coefficient D\(^{w}\)}\label{liquid-transport-coefficient-dw} -The Moisture Dependant Liquid Transport Coefficient is entered as a series of moisture density and liquid transport coefficient data points. There are two different coefficients, one for suction, where the surface is wet due to rain, and one for redistribution where the surface is no longer wet. If the weather file has a rain flag it is used to switch between these two types of coefficient. HAMT-SUCTION and HAMT-REDISTRIBUTION. +The Moisture Dependent Liquid Transport Coefficient is entered as a series of moisture density and liquid transport coefficient data points. There are two different coefficients, one for suction, where the surface is wet due to rain, and one for redistribution where the surface is no longer wet. If the weather file has a rain flag it is used to switch between these two types of coefficient. HAMT-SUCTION and HAMT-REDISTRIBUTION. \subsubsection{Moisture Dependent Moisture Capacity \(\frac{\partial w}{\partial \phi}\)}\label{moisture-dependent-moisture-capacity-fracpartial-wpartial-phi} diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex index 8039711092e..7d2453ac846 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/conduction-finite-difference-solution.tex @@ -55,7 +55,7 @@ \subsection{Basic Finite Difference Solution Approach}\label{basic-finite-differ \item[\rho] density of material \end{wherelist} % -with superscipts and subscripts: +with superscripts and subscripts: % \begin{wherelist} \item[i] node being modeled diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/effective-moisture-penetration-depth-empd.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/effective-moisture-penetration-depth-empd.tex index dfedb961f81..891554fb435 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/effective-moisture-penetration-depth-empd.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/effective-moisture-penetration-depth-empd.tex @@ -43,7 +43,7 @@ \subsection{EMPD Model Description}\label{empd-model-description} \begin{figure}[hbtp] \centering \includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio=true]{media/EMPDschematic.png} -\caption{Nodal network for effective moisture pentration depth model \protect \label{fig:Nodal-network-for-effective-moisture-penetration-depth-model}} +\caption{Nodal network for effective moisture penetration depth model \protect \label{fig:Nodal-network-for-effective-moisture-penetration-depth-model}} \end{figure} The surface layer resistance is calculated with: @@ -82,7 +82,7 @@ \subsection{EMPD Model Description}\label{empd-model-description} R_{MT,BL} = \frac{\rho_{air} Cp_{air}}{h_{conv}} \end{equation} -Behind the surface layer is a deep layer (labeled with subscipt 2 below) of thickness \(d_{EMPD,2}\). The surface layer accounts for buffering of high-frequency changes in the zone air humidity, while the deep layer accounts for the material's response to longer term changes in the zone air humidity. The model calculates the moisture flux between the surface and deep layers with: +Behind the surface layer is a deep layer (labeled with subscript 2 below) of thickness \(d_{EMPD,2}\). The surface layer accounts for buffering of high-frequency changes in the zone air humidity, while the deep layer accounts for the material's response to longer term changes in the zone air humidity. The model calculates the moisture flux between the surface and deep layers with: \begin{equation} j_{2} = \frac {\rho_{v,1} - \rho_{v,2}} {R_{MT,2}} diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex index a2a8eb15dc4..22f145526a9 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/outside-surface-heat-balance.tex @@ -31,7 +31,7 @@ \subsection{External Shortwave Radiation}\label{external-shortwave-radiation} \subsection{External Longwave Radiation}\label{external-longwave-radiation} -\({q''_{LWR}}\) is a standard radiation exchange formulation between the surface, the sky, and the ground. The radiation heat flux is calculated from the surface absorptivity, surface temperature, sky and ground temperatures, and sky and ground view factors. +\({q''_{LWR}}\) is a standard radiation exchange formulation between the surface, the sky, the ground, and the surrounding surfaces. The radiation heat flux is calculated from the surface absorptivity, surface temperature, sky, ground and surrounding surfaces temperatures, and sky, ground and surrounding surfaces view factors. The longwave radiation heat exchange between surfaces is dependent on surface temperatures, spatial relationships between surfaces and surroundings, and material properties of the surfaces. The relevant material properties of the surface, emissivity e and absorptivity a, are complex functions of temperature, angle, and wavelength for each participating surface. However, it is generally agreed that reasonable assumptions for building loads calculations are (Chapman 1984; Lienhard 1981): @@ -43,7 +43,11 @@ \subsection{External Longwave Radiation}\label{external-longwave-radiation} \item energy flux leaving a surface is evenly distributed across the surface, \item - the medium within the enclosure is non-participating. + the medium within the enclosure is non-participating, +\item + the long-wave emissivity of the surrounding surfaces is assumed to be the same as that of the exterior surface viewing them, +\item + the sum of view factors from an exterior surface to the ground, the sky and the surrounding surfaces must be equal to 1. \end{itemize} These assumptions are frequently used in all but the most critical engineering applications. @@ -68,24 +72,26 @@ \subsection{External Longwave Radiation}\label{external-longwave-radiation} $T_{air}$ & Outside air temperature & $K$ & --- \tabularnewline $T_{gnd}$ & Environmental ground surface temperature & $K$ & --- \tabularnewline $T_{sky}$ & Sky Effective temperature & $K$ & --- \tabularnewline +$T_{srd}$ & Surrounding surfaces average temperature & $K$ & --- \tabularnewline $F_{gnd}$ & view factor of wall surface to ground surface & --- & 0--1 \tabularnewline $F_{sky}$ & View factor of wall surface to sky & --- & 0--1 \tabularnewline $F_{air}$ & View factor of wall surface to air & --- & 0--1 \tabularnewline +$F_{srd}$ & View factor of wall surface to surrounding surfaces & --- & 0--1 \tabularnewline $\varepsilon$ & Surface long-wave emissivity & --- & 0--1 \tabularnewline $\sigma$ & Stefan-Boltzmann constant & $W/m^2.K^4$ & $5.67 \times 10^{-8}$ \tabularnewline \bottomrule \end{longtable} -Consider an enclosure consisting of building exterior surface, surrounding ground surface, and sky.~ Using the assumptions above, we can determine the longwave radiative heat flux at the building exterior surface (Walton 1983; McClellan and Pedersen 1997).~ The total longwave radiative heat flux is the sum of components due to radiation exchange with the ground, sky, and air. +Consider an enclosure consisting of building exterior surface, surrounding ground surface, and sky.~ Using the assumptions above, we can determine the longwave radiative heat flux at the building exterior surface (Walton 1983; McClellan and Pedersen 1997).~ The total longwave radiative heat flux is the sum of components due to radiation exchange with the ground, sky, air, and surrounding surfaces. \begin{equation} -{q''_{LWR}} = {q''_{gnd}} + {q''_{sky}} + {q''_{air}} +{q''_{LWR}} = {q''_{gnd}} + {q''_{sky}} + {q''_{air}} + {q''_{srd}} \end{equation} Applying the Stefan-Boltzmann Law to each component yields: \begin{equation} -{q''_{LWR}} = \varepsilon \sigma {F_{gnd}}(T_{gnd}^4 - T_{surf}^4) + \varepsilon \sigma {F_{sky}}(T_{sky}^4 - T_{surf}^4) + \varepsilon \sigma {F_{air}}(T_{air}^4 - T_{surf}^4) +{q''_{LWR}} = \varepsilon \sigma {F_{gnd}}(T_{gnd}^4 - T_{surf}^4) + \varepsilon \sigma {F_{sky}}(T_{sky}^4 - T_{surf}^4) + \varepsilon \sigma {F_{air}}(T_{air}^4 - T_{surf}^4) + \varepsilon \sigma {F_{srd}}(T_{srd}^4 - T_{surf}^4) \end{equation} where @@ -100,6 +106,8 @@ \subsection{External Longwave Radiation}\label{external-longwave-radiation} F\(_{air}\) = view factor of wall surface to air temperature +F\(_{srd}\) = view factor of wall surface to surrounding surfaces + T\(_{surf}\) = outside surface temperature T\(_{gnd}\) = ground surface temperature @@ -108,10 +116,12 @@ \subsection{External Longwave Radiation}\label{external-longwave-radiation} T\(_{air}\) = air temperature +T\(_{srd}\) = average temperature of the surrounding surfaces + Linearized radiative heat transfer coefficients are introduced to render the above equation more compatible with the heat balance formulation, \begin{equation} -{q''_{LWR}} = {h_{r,gnd}}({T_{gnd}} - {T_{surf}}) + {h_{r,sky}}({T_{sky}} - {T_{surf}}) + {h_{r,air}}({T_{air}} - {T_{surf}}) +{q''_{LWR}} = {h_{r,gnd}}({T_{gnd}} - {T_{surf}}) + {h_{r,sky}}({T_{sky}} - {T_{surf}}) + {h_{r,air}}({T_{air}} - {T_{surf}}) + {h_{r,srd}}({T_{srd}} - {T_{surf}}) \end{equation} where @@ -128,6 +138,10 @@ \subsection{External Longwave Radiation}\label{external-longwave-radiation} {h_{r,air}} = \frac{{\varepsilon \sigma {F_{air}}(T_{surf}^4 - T_{air}^4)}}{{{T_{surf}} - {T_{air}}}} \end{equation} +\begin{equation} +{h_{r,srd}} = \frac{{\varepsilon \sigma {F_{srd}}(T_{surf}^4 - T_{srd}^4)}}{{{T_{surf}} - {T_{srd}}}} +\end{equation} + The longwave view factors to ground and sky are calculated with the following expressions (Walton 1983): \begin{equation} @@ -177,7 +191,7 @@ \subsubsection{External Longwave Radiation With Multiple Ground Surfaces}\label{ {q''_{gnd}} = \varepsilon \sigma \sum\limits_{j = 1}^{{N_{gnd}}} {F_{gnd,j}} \left(T_{gnd,j}^4 - T_{surf}^4 \right) \end{equation} -The above equation can be recast using average temperature of multiple ground surfaces viewed by an exterior surface as follows: +The above equation assumes that the building exterior surface and the ground surfaces it views have the same long-wave emissivity and can be recast using average temperature of multiple ground surfaces viewed by an exterior surface as follows: \begin{equation} {q''_{gnd}} = \varepsilon \sigma {F_{gnd,sum}} (T_{gnd,avg}^4 - T_{surf}^4) @@ -216,6 +230,53 @@ \subsubsection{External Longwave Radiation With Multiple Ground Surfaces}\label{ h\(_{r,gnd,avg}\) = linearized average radiative heat transfer coefficient between an exterior surface and multiple ground surfaces +\subsubsection{External Longwave Radiation With Multiple Surrounding Surfaces}\label{external-longwave-radiation-with-multiple-surrounding-surfaces} + +Long-wave radiation exchange of an exterior surface with multiple surrounding surfaces is given by: + +\begin{equation} +{q''_{srd}} = \varepsilon \sigma \sum\limits_{j = 1}^{{N_{srd}}} {F_{srd,j}} \left(T_{srd,j}^4 - T_{surf}^4 \right) +\end{equation} + +The above equation assumes that the building exterior surface and the surrounding surfaces it views have the same long-wave emissivity and can be recast using average temperature of multiple surrounding surfaces viewed by an exterior surface as follows: + +\begin{equation} +{q''_{srd}} = \varepsilon \sigma {F_{srd,sum}} (T_{srd,avg}^4 - T_{surf}^4) +\end{equation} + +\begin{equation} +{F_{srd,sum}} = \sum\limits_{j = 1}^{{N_{srd}}} {F_{srd,j}} +\end{equation} + +\begin{equation} +{T_{srd,avg}} = ((\sum\limits_{j = 1}^{{N_{srd}}} {F_{srd,j}} {T_{srd,j}^4}) / {F_{srd,sum}})^{1/4} +\end{equation} + +\begin{equation} +{h_{r,srd,avg}} = \frac{{\varepsilon \sigma {F_{srd, sum}}(T_{surf}^4 - T_{srd,avg}^4)}}{{{T_{surf}} - {T_{srd,avg}}}} +\end{equation} + +where + +$\varepsilon$ = long-wave emittance of an exterior surface + +$\sigma$ = Stefan-Boltzmann constant + +F\(_{srd,j}\) = view factor of an exterior surface to surrounding surface j + +T\(_{srd,j}\) = temperature of surrounding surface j + +T\(_{surf}\) = outside temperature of an exterior surface + +N\(_{srd}\) = number surrounding surfaces viewed by an exterior surface + +T\(_{srd,avg}\) = view factor weighted average surface temperature of multiple surrounding surfaces seen by an exterior surface + +F\(_{srd,sum}\) = sum of the view factors of an exterior surfaces to multiple surrounding surfaces + +h\(_{r,srd,avg}\) = linearized average radiative heat transfer coefficient between an exterior surface and multiple surrounding surfaces + + \subsection{References}\label{references-034} ASHRAE. 1993. 1993 ASHRAE Handbook -- Fundamentals. Atlanta: American Society of Heating, Refrigerating, and Air-Conditioning Engineers, Inc. @@ -592,7 +653,7 @@ \subsubsection{MoWiTT Algorithm}\label{mowitt-algorithm} {h_c} = \sqrt {{{\left[ {{C_t}{{\left( {\Delta T} \right)}^{\frac{1}{3}}}} \right]}^2} + {{\left[ {aV_z^b} \right]}^2}} \end{equation} -Constants a, b and turbulent natural convection constant C\(_{t}\) are given in Table~\ref{table:mowitt-coefficients-yazdanian-and-klems-1994}.~ The original MoWiTT model has been modified for use in EnergyPlus so that it is sensitive to the local suface's wind speed which varies with the height above ground.~ The original MoWiTT model was formulated for use with the air velocity at the location of the weather station.~ As of Version 7.2, EnergyPlus uses the ``a'' model coefficients derived by Booten et al. (2012) rather than the original values from Yazdanian and Klems (1994). +Constants a, b and turbulent natural convection constant C\(_{t}\) are given in Table~\ref{table:mowitt-coefficients-yazdanian-and-klems-1994}.~ The original MoWiTT model has been modified for use in EnergyPlus so that it is sensitive to the local surface's wind speed which varies with the height above ground.~ The original MoWiTT model was formulated for use with the air velocity at the location of the weather station.~ As of Version 7.2, EnergyPlus uses the ``a'' model coefficients derived by Booten et al. (2012) rather than the original values from Yazdanian and Klems (1994). NOTE:~ The MoWiTT algorithm may not be appropriate for rough surfaces, high-rise surfaces, or surfaces that employ movable insulation. diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex index 6da514bbe3f..7970399947e 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/surface-heat-balance-with-moveable-insulation.tex @@ -13,7 +13,7 @@ \subsection{Inside Heat Balance with Interior Moveable Insulation}\label{inside- One significant complication of the inside heat balance is the fact that surfaces within the same zone can interact with each other radiatively. This means that a solution for all surface temperatures must be done at the same time to maintain a radiation heat balance among the surfaces. This requires some iteration of the inside surface heat balance as will be seen in the equations that are shown later in this subsection. -Another complication of the inside heat balance relates to the presense of moveable insulation. When moveable insulation is present, a second heat balance equation is required to determine the temperature at both the air-moveable insulation interface as well as the moveable insulation-surface interface. This sets up a system of two equations with two unknowns: the temperatures at the air-moveable insulation interface and the moveable insulation-surface interface. +Another complication of the inside heat balance relates to the presence of moveable insulation. When moveable insulation is present, a second heat balance equation is required to determine the temperature at both the air-moveable insulation interface as well as the moveable insulation-surface interface. This sets up a system of two equations with two unknowns: the temperatures at the air-moveable insulation interface and the moveable insulation-surface interface. Applying the basic steady state heat balance equation at each of these interfaces results in the following two equations: diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-kusuda.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-kusuda.tex index 8a8e4c6f573..96b5fd7d6d4 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-kusuda.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-kusuda.tex @@ -18,7 +18,7 @@ \subsubsection{Approach}\label{approach-004} \(\theta\) is the phase shift, or day of minimum surface temperature -\(\alpha\) is the themal diffusivity of the ground +\(\alpha\) is the thermal diffusivity of the ground \(\tau\) is time constant, 365. diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-xing.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-xing.tex index b09571ac1f3..471f0ba2578 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-xing.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/undisturbed-ground-temperature-model-xing.tex @@ -16,7 +16,7 @@ \subsubsection{Approach}\label{approach-005} \(\theta_{n}\) is the n-th phase shift, or day of minimum surface temperature -\(\alpha\) is the themal diffusivity of the ground +\(\alpha\) is the thermal diffusivity of the ground \(\tau\) is time constant, 365. diff --git a/doc/input-output-reference/src/appendix-a-units-and-abbreviations/standard-energyplus-units.tex b/doc/input-output-reference/src/appendix-a-units-and-abbreviations/standard-energyplus-units.tex index 644a08c0fb5..58c9758b6b4 100644 --- a/doc/input-output-reference/src/appendix-a-units-and-abbreviations/standard-energyplus-units.tex +++ b/doc/input-output-reference/src/appendix-a-units-and-abbreviations/standard-energyplus-units.tex @@ -48,7 +48,7 @@ \section{Standard EnergyPlus Units}\label{standard-energyplus-units} heating or cooling capacity & Watts & W \tabularnewline electric potential & volts & V \tabularnewline electric current & Amperes & A \tabularnewline -illuminace & lux & lx \tabularnewline +illuminance & lux & lx \tabularnewline luminous flux & lumen & lm \tabularnewline luminous intensity & candelas & cd \tabularnewline luminance & candelas per square meter & cd/m2 \tabularnewline diff --git a/doc/input-output-reference/src/energyplus-economics/complex-tariff-modeling.tex b/doc/input-output-reference/src/energyplus-economics/complex-tariff-modeling.tex index b6cbe88fd89..c76dab3bb17 100644 --- a/doc/input-output-reference/src/energyplus-economics/complex-tariff-modeling.tex +++ b/doc/input-output-reference/src/energyplus-economics/complex-tariff-modeling.tex @@ -179,4 +179,4 @@ \subsubsection{Operator:~ NOT (2)}\label{operator-not-2} \subsubsection{Operator:~ FROM (Unlimited)}\label{operator-from-unlimited} -Indicates what variables a variable is dependant on (or derived from). No computation is performed. The algorithm that creates the automatic sequence of equations uses these to indicate when variables are dependant on other variables so that they can be sorted into the correct order. \ No newline at end of file +Indicates what variables a variable is dependent on (or derived from). No computation is performed. The algorithm that creates the automatic sequence of equations uses these to indicate when variables are dependent on other variables so that they can be sorted into the correct order. \ No newline at end of file diff --git a/doc/input-output-reference/src/energyplus-economics/life-cycle-costing.tex b/doc/input-output-reference/src/energyplus-economics/life-cycle-costing.tex index 882dd59eb46..0679c8953d5 100644 --- a/doc/input-output-reference/src/energyplus-economics/life-cycle-costing.tex +++ b/doc/input-output-reference/src/energyplus-economics/life-cycle-costing.tex @@ -1,6 +1,6 @@ \section{Life-Cycle Costing}\label{life-cycle-costing} -Life-cycle costing is used with building energy simulation in order to justify energy efficiency upgrades. Many alterative building technologies that result in energy savings cost more initially, or may cost more to maintain, than traditional solutions. In order to justify selecting these energy savings technologies, it is essential to combine both initial and future costs in the decision process. Using life-cycle costs provides a framework to combine initial costs and future costs into a single combined measure, called the ``present value.'' Present value is a metric that combines all costs and reduces (or discounts) those costs that occur in the future. Discounting future costs is based on the principal of the time value of money. +Life-cycle costing is used with building energy simulation in order to justify energy efficiency upgrades. Many alternative building technologies that result in energy savings cost more initially, or may cost more to maintain, than traditional solutions. In order to justify selecting these energy savings technologies, it is essential to combine both initial and future costs in the decision process. Using life-cycle costs provides a framework to combine initial costs and future costs into a single combined measure, called the ``present value.'' Present value is a metric that combines all costs and reduces (or discounts) those costs that occur in the future. Discounting future costs is based on the principal of the time value of money. The calculations are based on discounting the future values according to normal life-cycle costing techniques as described in NIST Handbook 135 ``Life-Cycle Costing Manual for the Federal Energy Management Program.'' diff --git a/doc/input-output-reference/src/energyplus-economics/utilitycost-ratchet.tex b/doc/input-output-reference/src/energyplus-economics/utilitycost-ratchet.tex index 82705433260..a31cdb65b73 100644 --- a/doc/input-output-reference/src/energyplus-economics/utilitycost-ratchet.tex +++ b/doc/input-output-reference/src/energyplus-economics/utilitycost-ratchet.tex @@ -44,7 +44,7 @@ \section{UtilityCost:Ratchet}\label{utilitycostratchet} If multiple ratchets occur in the same tariff, multiple UtilityCost:Ratchet commands should be ``chained'' together with the Baseline Source Variable subsequent ratchets referencing the Ratchet Variable Name of the previous UtilityCost:Ratchet. -Since the ratchet command can add together two variables, mutliply two variables, or take the maximum value between two variables, it may be used for other difficult to model tariffs without needing to use \hyperref[utilitycostcomputation]{UtilityCost:Computation}. Clever use of UtilityCost:Ratchet should be well documented with comments. +Since the ratchet command can add together two variables, multiply two variables, or take the maximum value between two variables, it may be used for other difficult to model tariffs without needing to use \hyperref[utilitycostcomputation]{UtilityCost:Computation}. Clever use of UtilityCost:Ratchet should be well documented with comments. \subsection{Inputs}\label{inputs-071} diff --git a/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex b/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex index 160dd7a9370..40478f5a655 100644 --- a/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex +++ b/doc/input-output-reference/src/hvac-template-objects/group-hvac-templates.tex @@ -679,7 +679,7 @@ \subsubsection{Inputs}\label{inputs-3-018} \end{itemize} The default is \emph{ChilledWater}. - + \paragraph{Field: Cooling Coil Availability Schedule Name}\label{field-cooling-coil-availability-schedule-name} Usually set to blank, which allows the cooling coil to be available anytime the system is operating. If a schedule name is specified, it defines when the coil is available. This is most often used when cooling is only available seasonally. A schedule value of one indicates that the cooling coil can be on during a given time period. A value of zero denotes that the cooling coil cannot be used during that time period. @@ -733,7 +733,7 @@ \subsubsection{Inputs}\label{inputs-3-018} This input denotes how the unit's output is controlled in order to meet zone heating or cooling requirement. The choices are: \begin{itemize} \item - \emph{ConstantFanVariableFlow}: The fan speed is held constant to produce a fixed air flow rate whenever the unit is scheduled on. The hot water or chilled flow rate is varied so that the unit output matches the zone heating or cooling requirement. + \emph{ConstantFanVariableFlow}: The fan speed is held constant to produce a fixed air flow rate whenever the unit is scheduled on. The hot water or chilled flow rate is varied so that the unit output matches the zone heating or cooling requirement. \item \emph{CyclingFan}: The fan speed is chosen so that the unit capacity is greater than or equal to the heating / cooling load and the fan is cycled to match unit output with the load. \item @@ -743,9 +743,9 @@ \subsubsection{Inputs}\label{inputs-3-018} \item \emph{MultiSpeedFan}: The water flow rate is at full flow when there is load or fully closed when there is no load and the supply air flow rate is varied by varying the fan speed in order to match the load. \item - \emph{ASHRAE90VariableFan}: The fan air flow rate is reduced according to the low speed supply air flow ratio when the zone sensible load is less than the zone sensible load multiplied by the low speed supply air flow ratio. + \emph{ASHRAE90VariableFan}: The fan air flow rate is reduced according to the low speed supply air flow ratio when the zone sensible load is less than the zone sensible load multiplied by the low speed supply air flow ratio. \end{itemize} - + The default is \emph{ConstantFanVariableFlow} except when a Dedicated Outdoor Air System is specified (see above) the default is \emph{CyclingFan}. \paragraph{Field: Low Speed Supply Air Flow Ratio}\label{field-low-speed-supply-air-flow-ratio} @@ -1184,7 +1184,7 @@ \subsubsection{Inputs}\label{inputs-5-014} \paragraph{Field: Heat Pump Heating Coil Gross Rated Capacity}\label{field-heat-pump-heating-coil-gross-rated-capacity} -Enter autosize to let the automatic sizing algorithm determine the heat pump heating coil gorss rated capacity based on the maximum heating loads during the heating design day. If a value is entered, it represents the full load gross heating capacity, in watts of the DX heat pump unit at rated conditions. Rated conditions are air entering the heat pump heating coil at the heating supply air flow rate at 21.11°C drybulb/15.55°C wetbulb with air entering the outdoor coil at 8.33°C drybulb/6.11C wetbulb. Capacity should be the ``gross'', i.e., the effect of supply air fan heat is not accounted for. The units are in W. The default is autosize. +Enter autosize to let the automatic sizing algorithm determine the heat pump heating coil gross rated capacity based on the maximum heating loads during the heating design day. If a value is entered, it represents the full load gross heating capacity, in watts of the DX heat pump unit at rated conditions. Rated conditions are air entering the heat pump heating coil at the heating supply air flow rate at 21.11°C drybulb/15.55°C wetbulb with air entering the outdoor coil at 8.33°C drybulb/6.11C wetbulb. Capacity should be the ``gross'', i.e., the effect of supply air fan heat is not accounted for. The units are in W. The default is autosize. \paragraph{Field: Heat Pump Heating Coil Gross Rated COP}\label{field-heat-pump-heating-coil-gross-rated-cop} @@ -1453,7 +1453,7 @@ \subsubsection{Inputs}\label{inputs-6-011} \paragraph{Field: Cooling Coil Gross Rated Sensible Heat Ratio}\label{field-cooling-coil-gross-rated-sensible-heat-ratio-2} -Enter Autosize to allow the sizing algorithm to determine the sensible heat ratio based on the rated capacity and air flow rate. Otherwise, enter the value of the ratio of the gross sensible capacity divided by gross total cooling capacity of the DX cooling coil at rated conditions (26.7C (80F) entering air dry-bulb temperature, 19.4C (67F) entering air wet-bulb temperature, and 29.4C (85F) entering water temperature). Both the sensible and total cooling capacities used to define the Rated Sensible Heat Ratio (SHR) should be ``gross'' , i.e., the effect of supply air fan heat is not accounted for. The default is autosize. If the Cooling Coil Rated Capacity is autosized, this field should also be autosized (any value specified for Cooling Coil Rate Sensibe Heat Ratio will be ignored). If the Cooling Coil Rated Capacity has a specified value, then this field should also have a specified value. This is because the \hyperref[coilcoolingwatertoairheatpumpequationfit]{Coil:Cooling:WaterToAirHeatPump:EquationFit} object has fields for Rated Total Cooling Capacity and Rated Sensible Cooling Capacity. If this field is autosized, a specified value for Cooling Coil Rated Capacity will not be used when the coil object sensible capacity is autosized. +Enter Autosize to allow the sizing algorithm to determine the sensible heat ratio based on the rated capacity and air flow rate. Otherwise, enter the value of the ratio of the gross sensible capacity divided by gross total cooling capacity of the DX cooling coil at rated conditions (26.7C (80F) entering air dry-bulb temperature, 19.4C (67F) entering air wet-bulb temperature, and 29.4C (85F) entering water temperature). Both the sensible and total cooling capacities used to define the Rated Sensible Heat Ratio (SHR) should be ``gross'' , i.e., the effect of supply air fan heat is not accounted for. The default is autosize. If the Cooling Coil Rated Capacity is autosized, this field should also be autosized (any value specified for Cooling Coil Rate Sensible Heat Ratio will be ignored). If the Cooling Coil Rated Capacity has a specified value, then this field should also have a specified value. This is because the \hyperref[coilcoolingwatertoairheatpumpequationfit]{Coil:Cooling:WaterToAirHeatPump:EquationFit} object has fields for Rated Total Cooling Capacity and Rated Sensible Cooling Capacity. If this field is autosized, a specified value for Cooling Coil Rated Capacity will not be used when the coil object sensible capacity is autosized. \paragraph{Field: Cooling Coil Gross Rated COP}\label{field-cooling-coil-gross-rated-cop-1} @@ -1489,7 +1489,7 @@ \subsubsection{Inputs}\label{inputs-6-011} \caption{} \end{figure} -\paragraph{Field: Heat Pump Time Constant}\label{field-heat-pump-time-constant} +\paragraph{Field: Latent Capacity Time Constant}\label{field-heat-pump-time-constant} This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown below (Henderson et al. 1999): @@ -1499,19 +1499,9 @@ \subsubsection{Inputs}\label{inputs-6-011} \caption{} \end{figure} -\paragraph{Field: Fraction of On-Cycle Power Use}\label{field-fraction-of-on-cycle-power-use} - -This numeric field contains the fraction of on-cycle power use to adjust the part load fraction based on the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. Suggested value values are below (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image607.png} -\caption{} -\end{figure} - \paragraph{Field: Heat Pump Fan Delay Time}\label{field-heat-pump-fan-delay-time} -This numeric field contains the time delay in seconds for the heat pump supply air fan to shut off after compressor cycle off. This value can be obtained from the manufacturer or the heat pump catalog. Suggested value is 60 seconds. This value is disregared at times when the WaterToAirHeatPump's fan operating mode schedule value is greater than 0 (i.e., continuous fan mode). +This numeric field contains the time delay in seconds for the heat pump supply air fan to shut off after compressor cycle off. This value can be obtained from the manufacturer or the heat pump catalog. Suggested value is 60 seconds. This value is disregarded at times when the WaterToAirHeatPump's fan operating mode schedule value is greater than 0 (i.e., continuous fan mode). \paragraph{Field: Dedicated Outdoor Air System Name}\label{field-dedicated-outdoor-air-system-name-4} @@ -1567,7 +1557,7 @@ \subsubsection{Inputs}\label{inputs-6-011} ConstantOnDemand \end{itemize} -\textbf{Cycling} varies water flow through the coil based on the heat pump Part Load Ratio. This control method is appropriate for modeling heat pumps that are outfitted with a soleniod valve which allows water to flow through the coil only when the compressor is active. This is the \textbf{default} for EnergyPlus V8 and later. +\textbf{Cycling} varies water flow through the coil based on the heat pump Part Load Ratio. This control method is appropriate for modeling heat pumps that are outfitted with a solenoid valve which allows water to flow through the coil only when the compressor is active. This is the \textbf{default} for EnergyPlus V8 and later. \textbf{Constant} provides a constant water flow regardless of heat pump operation. Remember that EnergyPlus has two coils (a heating coil and a cooling coil) to approximate the operation of one coil that can operate in either heating mode or cooling mode. Therefore, when the water flow mode is constant, there will be full flow through either the heating coil or the cooling coil, but not both at the same time. @@ -1636,8 +1626,7 @@ \subsubsection{Inputs}\label{inputs-6-011} , !- Supplemental Heating Coil Availability Schedule Name autosize, !- Supplemental Heating Coil Capacity {W} 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use + 60, !- Latent Capacity Time Constant {s} 60, !- Heat Pump Fan Delay Time {s} , !- Dedicated Outdoor Air System Name Electric, !- Supplemental Heating Coil Type @@ -1783,7 +1772,7 @@ \subsubsection{Inputs}\label{inputs-7-011} \paragraph{Field: Heat Pump Heating Coil Gross Rated Capacity}\label{field-heat-pump-heating-coil-gross-rated-capacity-2} -Enter autosize to let the automatic sizing algorithm determine the heat pump heating coil gorss rated capacity based on the maximum heating loads during the heating design day. If a value is entered, it represents the full load gross heating capacity, in watts of the DX heat pump unit at rated conditions. Rated conditions are air entering the heat pump heating coil at the heating supply air flow rate at 21.11°C drybulb/15.55°C wetbulb with air entering the outdoor coil at 8.33°C drybulb/6.11C wetbulb. Capacity should be the ``gross'', i.e., the effect of supply air fan heat is not accounted for. The units are in W. The default is autosize. +Enter autosize to let the automatic sizing algorithm determine the heat pump heating coil gross rated capacity based on the maximum heating loads during the heating design day. If a value is entered, it represents the full load gross heating capacity, in watts of the DX heat pump unit at rated conditions. Rated conditions are air entering the heat pump heating coil at the heating supply air flow rate at 21.11°C drybulb/15.55°C wetbulb with air entering the outdoor coil at 8.33°C drybulb/6.11C wetbulb. Capacity should be the ``gross'', i.e., the effect of supply air fan heat is not accounted for. The units are in W. The default is autosize. \paragraph{Field: Zone Terminal Unit On Parasitic Electricity Energy Use}\label{field-zone-terminal-unit-on-parasitic-electric-energy-use} @@ -2085,7 +2074,7 @@ \subsubsection{Inputs}\label{inputs-9-008} \paragraph{Field: Minimum Air Flow Fraction Schedule Name}\label{field-minimum-air-flow-fraction-schedule-name-000} -The name of a schedule that determines the value of the minimum air flow fraction. The schedule should contain fractions from 0.0 to 1.0. These values will define the minimum flow rate to the zone while the system is operating, specified as a fraction of the maximum air flow rate. The reheat coil operates only when the damper is at this minimum flow rate when Damper Heating Action is set to Normal (the default). This field is used if the previous field is set to Scheduled. If the previous field is left blank (and the field Maximum Hot Water or Steam Flow Rate is set to autosize), then the air flow rate usedfor sizing normal-action reheat coils is the average of the minimum and maximum values in this schedule. The air flow rate used for reheat coil sizing is reported with other component sizing information as ``Reheat Coil Sizing Air Volume Flow Rate.'' +The name of a schedule that determines the value of the minimum air flow fraction. The schedule should contain fractions from 0.0 to 1.0. These values will define the minimum flow rate to the zone while the system is operating, specified as a fraction of the maximum air flow rate. The reheat coil operates only when the damper is at this minimum flow rate when Damper Heating Action is set to Normal (the default). This field is used if the previous field is set to Scheduled. If the previous field is left blank (and the field Maximum Hot Water or Steam Flow Rate is set to autosize), then the air flow rate used for sizing normal-action reheat coils is the average of the minimum and maximum values in this schedule. The air flow rate used for reheat coil sizing is reported with other component sizing information as ``Reheat Coil Sizing Air Volume Flow Rate.'' \paragraph{Field: Outdoor Air Method}\label{field-outdoor-air-method-8} @@ -2338,7 +2327,7 @@ \subsubsection{Inputs}\label{inputs-2016-06-16-1620} ParallelFromPlenum -- Parallel configuration with recirculation from the return plenum \end{itemize} -See descriptions of these configurations in the general description for this object, above. For all types, the secondary fan will run according to the Zone PIU Fan Schedule (see below) and any Night Cycle Control specified in the system which serves this terminal unit (see Template VAV System Name above). For Parallel PIU, there is an additional secondary fan control based on the primary air flow fraction (see Parallel Fan On Flow Fraction below). For recirculation from plenum, a Return Plenum Name must be specificed in this object or in the system object (\hyperref[hvactemplatesystemvav]{HVACTemplate:System:VAV} or \hyperref[hvactemplatesystempackagedvav]{HVACTemplate:System:PackagedVAV}) which serves this terminal unit. The default is Parallel. +See descriptions of these configurations in the general description for this object, above. For all types, the secondary fan will run according to the Zone PIU Fan Schedule (see below) and any Night Cycle Control specified in the system which serves this terminal unit (see Template VAV System Name above). For Parallel PIU, there is an additional secondary fan control based on the primary air flow fraction (see Parallel Fan On Flow Fraction below). For recirculation from plenum, a Return Plenum Name must be specified in this object or in the system object (\hyperref[hvactemplatesystemvav]{HVACTemplate:System:VAV} or \hyperref[hvactemplatesystempackagedvav]{HVACTemplate:System:PackagedVAV}) which serves this terminal unit. The default is Parallel. \paragraph{Field: Parallel Fan On Flow Fraction}\label{field-parallel-fan-on-flow-fraction} @@ -3127,7 +3116,7 @@ \subsubsection{Inputs}\label{inputs-14-005} \paragraph{Field: Resistive Defrost Heater Capacity}\label{field-resistive-defrost-heater-capacity-000} -This numeric field defines the capacity of the resistive defrost heating element in Watts. This input field is used only when the selected defrost strategy is `resistive' (see input field ``Defrost Strategy'' above). The value for this input field must be greater than or equal to 0 and it is auotsizable. If this input field is left blank, the default is autosize. +This numeric field defines the capacity of the resistive defrost heating element in Watts. This input field is used only when the selected defrost strategy is `resistive' (see input field ``Defrost Strategy'' above). The value for this input field must be greater than or equal to 0 and it is autosizable. If this input field is left blank, the default is autosize. \paragraph{Field: Maximum Outdoor Dry-bulb Temperature for Defrost Operation}\label{field-maximum-outdoor-dry-bulb-temperature-for-defrost-operation-000} @@ -3248,7 +3237,7 @@ \subsubsection{Inputs}\label{inputs-14-005} \subsection{HVACTemplate:System:Unitary}\label{hvactemplatesystemunitary} -This object simulates the system portion of a constant volume air handler with electric, gas, or hot water heating and optional direct-expansion (DX) cooling. This system may serve one or more \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} objects. If this system serves more than one zone, only one zone is specified as the control zone. Common names for this sytem type include packaged rooftop systems commonly seen in commercial buildings and split systems (furnace with air conditioner) commonly seen in residential buildings. +This object simulates the system portion of a constant volume air handler with electric, gas, or hot water heating and optional direct-expansion (DX) cooling. This system may serve one or more \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} objects. If this system serves more than one zone, only one zone is specified as the control zone. Common names for this system type include packaged rooftop systems commonly seen in commercial buildings and split systems (furnace with air conditioner) commonly seen in residential buildings. \subsubsection{Inputs}\label{inputs-15-005} @@ -3611,7 +3600,7 @@ \subsubsection{Inputs}\label{inputs-15-005} \subsection{HVACTemplate:System:UnitaryHeatPump:AirToAir}\label{hvactemplatesystemunitaryheatpumpairtoair} -This object simulates the system portion of a constant volume air handler with a direct-expansion (DX) air-to-air heat pump and supplemental heating (electric, gas, or hot water). This system may serve one or more \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} objects. If this system serves more than one zone, only one zone is specified as the control zone. Common names for this sytem type include packaged rooftop heat pumps commonly seen in commercial buildings and split system heat pumps commonly seen in residential buildings. +This object simulates the system portion of a constant volume air handler with a direct-expansion (DX) air-to-air heat pump and supplemental heating (electric, gas, or hot water). This system may serve one or more \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} objects. If this system serves more than one zone, only one zone is specified as the control zone. Common names for this system type include packaged rooftop heat pumps commonly seen in commercial buildings and split system heat pumps commonly seen in residential buildings. \subsubsection{Inputs}\label{inputs-16-004} @@ -4004,7 +3993,7 @@ \subsubsection{Inputs}\label{inputs-16-004} \subsection{HVACTemplate:System:UnitarySystem}\label{hvactemplatesystemunitarysystem} -This object simulates a unitary system with option cooling coil (air-cooled DX, water-cooled DX, and chilled water), options heating coil (gas, electric, hot water, air-to-air heat pump, and water-to-air heat pump) with cycling or continous fan controls. Often a single \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} object will be used with a single \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary}System object to simulate single zone system. In addition, multiple \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} objects may reference the same \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary}System object in a multiple zone version. For a multiple zone system, only one zone is specified as the control zone. The model can simulate chilled water or heat pump systems seen in commercial buildings and split systems commonly seen in residential buildings. \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary}System is similar to \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary} and \hyperref[hvactemplatesystemunitaryheatpumpairtoair]{HVACTemplate:System:UnitaryHeatPump:AirToAir}, but it offers more flexilbility by using the more general \hyperref[airloophvacunitarysystem]{AirLoopHVAC:UnitarySystem} object instead of the more specific unitary furnace and heat pump objects. +This object simulates a unitary system with option cooling coil (air-cooled DX, water-cooled DX, and chilled water), options heating coil (gas, electric, hot water, air-to-air heat pump, and water-to-air heat pump) with cycling or continuous fan controls. Often a single \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} object will be used with a single \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary}System object to simulate single zone system. In addition, multiple \hyperref[hvactemplatezoneunitary]{HVACTemplate:Zone:Unitary} objects may reference the same \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary}System object in a multiple zone version. For a multiple zone system, only one zone is specified as the control zone. The model can simulate chilled water or heat pump systems seen in commercial buildings and split systems commonly seen in residential buildings. \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary}System is similar to \hyperref[hvactemplatesystemunitary]{HVACTemplate:System:Unitary} and \hyperref[hvactemplatesystemunitaryheatpumpairtoair]{HVACTemplate:System:UnitaryHeatPump:AirToAir}, but it offers more flexibility by using the more general \hyperref[airloophvacunitarysystem]{AirLoopHVAC:UnitarySystem} object instead of the more specific unitary furnace and heat pump objects. \subsubsection{Inputs}\label{inputs-2016-06-16-1621} @@ -4111,7 +4100,7 @@ \subsubsection{Inputs}\label{inputs-2016-06-16-1621} \paragraph{Field: Number of Speeds for Cooling}\label{field-number-of-speeds-for-cooling} -This field defines the number of cooling speeds is a multi-speed cooling coil is specifiedl. The default is 1, and the maximum allowed is 10. This field only applies if Cooling Coil Type is MultiSpeedDX. +This field defines the number of cooling speeds is a multi-speed cooling coil is specified. The default is 1, and the maximum allowed is 10. This field only applies if Cooling Coil Type is MultiSpeedDX. \paragraph{Field: Cooling Coil Availability Schedule Name}\label{field-cooling-coil-availability-schedule-name-6} @@ -4131,7 +4120,7 @@ \subsubsection{Inputs}\label{inputs-2016-06-16-1621} For air-cooled DX coils the rated conditions are air entering the cooling coil at the maximum supply air flow rate at 26.7°C drybulb/19.4°C wetbulb with air entering the outdoor air-cooled condenser coil at 35°C drybulb. -For water-cooled DX coilst the rated conditions are 26.7C (80F) entering air dry-bulb temperature, 19.4C (67F) entering air wet-bulb temperature, and 29.4C (85F) entering water temperature. +For water-cooled DX coils the rated conditions are 26.7C (80F) entering air dry-bulb temperature, 19.4C (67F) entering air wet-bulb temperature, and 29.4C (85F) entering water temperature. For two-speed DX coils, the low-speed SHR is assumed to be equal to this value. For two-stage DX coils, the stage 1 SHR is assumed to be equal to this value. For two-stage DX coil with humidity control, the humidity control mode SHR is assumed to be 0.9 times this value (for both stage 1 and stage 2). @@ -5326,7 +5315,7 @@ \subsubsection{Inputs}\label{inputs-19-002} \item Warmest -- reset the cooling supply air temperature to the highest supply air temperature that will meet the cooling requirements of all the zones at the maximum supply air flow rate. The minimum setpoint allowed is the Cooling Coil Design Setpoint. The maximum setpoint allowed is defaulted to the greater of 18C or the Heating Coil Design Setpoint plus 1.0C. (Reference \hyperref[setpointmanagerwarmest]{SetpointManager:Warmest}) \item - OutdoorAirTemperatureReset -- reset the cooling supply air temperature based on the following default rules. When the outdoor dry-bulb temperature (ODB) is at or below 15.6C the setpoint isthe Cooling Coil Design Setpoint plus 5.2C. When the ODB is at or above 26.7C the setpoint is the Cooling Coil Design Setpoint. In between, the setpoint is varied linearly. (Reference \hyperref[setpointmanageroutdoorairreset]{SetpointManager:OutdoorAirReset}) + OutdoorAirTemperatureReset -- reset the cooling supply air temperature based on the following default rules. When the outdoor dry-bulb temperature (ODB) is at or below 15.6C the setpoint is the Cooling Coil Design Setpoint plus 5.2C. When the ODB is at or above 26.7C the setpoint is the Cooling Coil Design Setpoint. In between, the setpoint is varied linearly. (Reference \hyperref[setpointmanageroutdoorairreset]{SetpointManager:OutdoorAirReset}) \item WarmestTemperatureFirst -- find the highest setpoint temperature that will satisfy all the zone cooling loads at minimum supply air flow rate. If this setpoint temperature is less than the Cooling Coil Design Setpoint, the setpoint temperature is set to the minimum, and the supply air flow rate is increased to meet the loads. This option is appropriate when modeling a single-zone VAV system. The maximum setpoint allowed is defaulted to the greater of 18C or the Heating Coil Design Setpoint plus 1.0C. (Reference \hyperref[setpointmanagerwarmesttemperatureflow]{SetpointManager:WarmestTemperatureFlow}) \end{itemize} @@ -5341,7 +5330,7 @@ \subsubsection{Inputs}\label{inputs-19-002} \item None -- no reset, use the Heating Coil Setpoint Schedule or Heating Coil Design Setpoint. \item - OutdoorAirTemperatureReset -- reset the heating supply air temperature based on the following default rules. When the outdoor dry-bulb temperature (ODB) is at or below --6.7C the setpoint is the Heating Coil Design Setpoint. When the ODB is at or above 10.0C the setpoint isthe Heating Coil Design Setpoint minus 5.2C. In between, the setpoint is varied linearly. (Reference \hyperref[setpointmanageroutdoorairreset]{SetpointManager:OutdoorAirReset}). + OutdoorAirTemperatureReset -- reset the heating supply air temperature based on the following default rules. When the outdoor dry-bulb temperature (ODB) is at or below --6.7C the setpoint is the Heating Coil Design Setpoint. When the ODB is at or above 10.0C the setpoint is the Heating Coil Design Setpoint minus 5.2C. In between, the setpoint is varied linearly. (Reference \hyperref[setpointmanageroutdoorairreset]{SetpointManager:OutdoorAirReset}). \end{itemize} The default is \emph{None}. @@ -5960,7 +5949,7 @@ \subsubsection{Inputs}\label{inputs-20-002} ChilledWater, !- Cooling Coil Type , !- Cooling Coil Availability Schedule Name ControlZone, !- Cooling Coil Setpoint Control Type - SPACE 1-1, !- Cooling Coil Conrol Zone + SPACE 1-1, !- Cooling Coil Control Zone 12.8, !- Cooling Coil Design Setpoint {C} , !- Cooling Coil Setpoint Schedule Name , !- Cooling Coil Setpoint at Outdoor Dry-Bulb Low {C} @@ -5974,7 +5963,7 @@ \subsubsection{Inputs}\label{inputs-20-002} 50, !- Heating Coil Design Setpoint {C} , !- Heating Coil Setpoint Schedule Name , !- Heating Coil Setpoint at Outdoor Dry-Bulb Low {C} - , !- Hedating Coil Reset Outdoor Dry-Bulb Low {C} + , !- Heating Coil Reset Outdoor Dry-Bulb Low {C} , !- Heating Coil Setpoint at Outdoor Dry-Bulb High {C} , !- Heating Coil Reset Outdoor Dry-Bulb High {C} Autosize, !- Heating Coil Capacity {W} @@ -6650,7 +6639,7 @@ \subsubsection{Inputs}\label{inputs-21-002} 50, !- Heating Coil Design Setpoint {C} , !- Heating Coil Setpoint Schedule Name , !- Heating Coil Setpoint at Outdoor Dry-Bulb Low {C} - , !- Hedating Coil Reset Outdoor Dry-Bulb Low {C} + , !- Heating Coil Reset Outdoor Dry-Bulb Low {C} , !- Heating Coil Setpoint at Outdoor Dry-Bulb High {C} , !- Heating Coil Reset Outdoor Dry-Bulb High {C} Autosize, !- Heating Coil Capacity {W} diff --git a/doc/input-output-reference/src/input-for-output.tex b/doc/input-output-reference/src/input-for-output.tex index 1b13eea4b66..3075c3b30ee 100644 --- a/doc/input-output-reference/src/input-for-output.tex +++ b/doc/input-output-reference/src/input-for-output.tex @@ -64,7 +64,7 @@ \subsubsection{Inputs}\label{inputs-040} Output:Surfaces:List, Lines; \end{lstlisting} -The above IDF line will produce a simple file of line segments that constitute the surfaces in the IDF file. This file is the~ ``lines'' report (\textbf{eplusout.sln}) and is decribed in more detail in the Output Details and Examples document. +The above IDF line will produce a simple file of line segments that constitute the surfaces in the IDF file. This file is the~ ``lines'' report (\textbf{eplusout.sln}) and is described in more detail in the Output Details and Examples document. \paragraph{Field: Report Specifications}\label{field-report-specifications} @@ -348,7 +348,7 @@ \subsubsection{Inputs}\label{inputs-7-021} \subsection{Output:Variable}\label{outputvariable} -This input object is used request results reporting.~ As shown above in the Variable Dictionary Report section, there are many different output variables available for reporting results from EnergyPlus.~ The Output:Variable object is primarily used for reporting time series data at various frequencys. +This input object is used request results reporting.~ As shown above in the Variable Dictionary Report section, there are many different output variables available for reporting results from EnergyPlus.~ The Output:Variable object is primarily used for reporting time series data at various frequencies. Each Output:Variable object causes a specific number assignment for outputs. For example, you could request separate reporting for the outside temperature: @@ -712,7 +712,7 @@ \subsubsection{Inputs}\label{inputs-10-017} \paragraph{Field: Total Carbon Equivalent Emission Factor From N2O}\label{field-total-carbon-equivalent-emission-factor-from-n2o} -The Intergovernmental Panel on Climate Change has studied the effects on the relative radiative forcing effects of various greenhouse gases. This effect, called Global Warming Potential (GWP), is described in terms of the Carbon Equivalent of a particular greenhouse gase. N\(_{2}\)O (nitrous oxide) can be produced by some Fuel Types and has a default of carbon equivalent emission factor of 80.7272 kg C/kg N\(_{2}\)O. +The Intergovernmental Panel on Climate Change has studied the effects on the relative radiative forcing effects of various greenhouse gases. This effect, called Global Warming Potential (GWP), is described in terms of the Carbon Equivalent of a particular greenhouse gas. N\(_{2}\)O (nitrous oxide) can be produced by some Fuel Types and has a default of carbon equivalent emission factor of 80.7272 kg C/kg N\(_{2}\)O. \paragraph{Field: Total Carbon Equivalent Emission Factor From CH4}\label{field-total-carbon-equivalent-emission-factor-from-ch4} @@ -806,7 +806,7 @@ \subsubsection{Inputs}\label{inputs-11-015} \paragraph{Field: CO Emission Factor}\label{field-co-emission-factor} -The environmental impact coefficient for the Fuel for calculating the mass of carbon monoxide (CO) released into the atmosphere. The units are grams per MegaJoule. Carbon monoxide is a colorless, odorless and poisonous gas produced by incomplete fossil fuel combustion. Carbon monoxide combines with the haemoglobin of human beings, reducing its oxygen carrying capacity, with effects harmful to human beings. +The environmental impact coefficient for the Fuel for calculating the mass of carbon monoxide (CO) released into the atmosphere. The units are grams per MegaJoule. Carbon monoxide is a colorless, odorless and poisonous gas produced by incomplete fossil fuel combustion. Carbon monoxide combines with the hemoglobin of human beings, reducing its oxygen carrying capacity, with effects harmful to human beings. \paragraph{Field: CO Emission Factor Schedule Name}\label{field-co-emission-factor-schedule-name} @@ -894,7 +894,7 @@ \subsubsection{Inputs}\label{inputs-11-015} \paragraph{Field: Pb Emission Factor}\label{field-pb-emission-factor} -The Environmental impact coefficient for the Fuel for calculating the masss of lead (Pb) released into the atmosphere. The units are grams per MegaJoule. A heavy metal that is hazardous to health if breathed or swallowed. Its use in gasoline, paints, and plumbing compounds has been sharply restricted or eliminated by federal laws and regulations. +The Environmental impact coefficient for the Fuel for calculating the mass of lead (Pb) released into the atmosphere. The units are grams per MegaJoule. A heavy metal that is hazardous to health if breathed or swallowed. Its use in gasoline, paints, and plumbing compounds has been sharply restricted or eliminated by federal laws and regulations. \paragraph{Field: Pb Emission Factor Schedule Name}\label{field-pb-emission-factor-schedule-name} @@ -1369,7 +1369,7 @@ \subsubsection{Outputs}\label{outputs-029} \paragraph{Environmental Impact OtherFuel2 CO2 Emissions Mass {[}kg{]}}\label{environmental-impact-otherfuel2-co2-emissions-mass-kg} -These outputs provide results for the carbon dioxide reelases associated with consumption of each type of fuel that might be used at the site.~ The units are kg. +These outputs provide results for the carbon dioxide releases associated with consumption of each type of fuel that might be used at the site.~ The units are kg. \paragraph{Environmental Impact Electricity CO Emissions Mass {[}kg{]}}\label{environmental-impact-electricity-co-emissions-mass-kg} @@ -1479,7 +1479,7 @@ \subsubsection{Outputs}\label{outputs-029} \paragraph{Environmental Impact OtherFuel2 SO2 Emissions Mass {[}kg{]}}\label{environmental-impact-otherfuel2-so2-emissions-mass-kg} -These outputs provide results for the sulphur dioxide releases associated with consumption of each type of fuel that might be used at the site.~ The units are kg. +These outputs provide results for the sulfur dioxide releases associated with consumption of each type of fuel that might be used at the site.~ The units are kg. \paragraph{Environmental Impact Electricity PM Emissions Mass {[}kg{]}}\label{environmental-impact-electricity-pm-emissions-mass-kg} diff --git a/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex b/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex index c129227bab0..250aa6c2f6c 100644 --- a/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex +++ b/doc/input-output-reference/src/overview/group-advanced-surface-concepts.tex @@ -217,7 +217,7 @@ \subsection{SurfaceControl:MovableInsulation}\label{surfacecontrolmovableinsulat TIM exterior layers can be used with the ConductionFiniteDifference (CondFD) solution algorithm. With this addition, TIM layers can be used in conjunction with wall layers that have phase change materials (PCM) included, or any other advanced capability of the CondFD algorithm such as variable conductivity. The input requirements are exactly the same as when used with the CTF algorithm. The Solution Algorithm needs to be changed to CondFD, and as with CTF, the ``SurfaceControl:MovableInsulation'' object must be completed to specify the insulated surface and the ``\hyperref[windowmaterialglazing]{WindowMaterial:Glazing}'' or ``\hyperref[windowmaterialglazingequivalentlayer]{WindowMaterial:Glazing:EquivalentLayer}'' object is needed to provide the TIM layer properties. -Basically, the addition of movable insulation allows the user to schedule an extra amount of insulation on either the inside or outside surface of a wall (or both). The insulation must be a simple, homogenous material layer (linked to a material definition within the input data file). Note that EnergyPlus allows the exterior movable insulation layer to be transparent to short wavelength radiation (solar). In this case, incident solar is split between the plane between the movable insulation and the surface and the plane between the movable insulation and the surrounding air. This calculation is fairly basic and based on the solar transmittance of the insulation layer (material properties). Using transparent layers for exterior movable insulation allows solar energy to penetrate deeper into a construction where it can be stored for later use in the building (similar in concept to a Trombe Wall). +Basically, the addition of movable insulation allows the user to schedule an extra amount of insulation on either the inside or outside surface of a wall (or both). The insulation must be a simple, homogeneous material layer (linked to a material definition within the input data file). Note that EnergyPlus allows the exterior movable insulation layer to be transparent to short wavelength radiation (solar). In this case, incident solar is split between the plane between the movable insulation and the surface and the plane between the movable insulation and the surrounding air. This calculation is fairly basic and based on the solar transmittance of the insulation layer (material properties). Using transparent layers for exterior movable insulation allows solar energy to penetrate deeper into a construction where it can be stored for later use in the building (similar in concept to a Trombe Wall). \subsubsection{Field: Insulation Type}\label{field-insulation-type} @@ -1485,11 +1485,11 @@ \subsubsection{Inputs}\label{inputs-6} The SurfaceConvectionAlgorithm:UserCurve named in this field is used when the previous field is set to UserCurve. -\paragraph{Field: Mixed Regime Buoyancy Opposing Flow on Walls Equation Source}\label{field-mixed-regime-buoyancy-oppossing-flow-on-walls-equation-source} +\paragraph{Field: Mixed Regime Buoyancy Opposing Flow on Walls Equation Source}\label{field-mixed-regime-buoyancy-opposing-flow-on-walls-equation-source} The key choice options include: BeausoleilMorrisonMixedOpposingWall, AlamdariHammondVerticalWall, FohannoPolidoriVerticalWall, ASHRAEVerticalWall, FisherPedersenCeilingDiffuserWalls, GoldsteinNovoselacCeilingDiffuserWalls, or UserCurve -\paragraph{Field: Mixed Regime Buoyancy Opposing Flow on Walls Equation User Curve Name}\label{field-mixed-regime-buoyancy-oppossing-flow-on-walls-equation-user-curve-name} +\paragraph{Field: Mixed Regime Buoyancy Opposing Flow on Walls Equation User Curve Name}\label{field-mixed-regime-buoyancy-opposing-flow-on-walls-equation-user-curve-name} The SurfaceConvectionAlgorithm:UserCurve named in this field is used when the previous field is set to UserCurve @@ -2058,7 +2058,7 @@ \subsubsection{Surface Inside Face Convection Classification Index}\label{surfac \subsubsection{Surface Inside Face Convection Model Equation Index}\label{surface-inside-face-convection-model-equation-index} -This variable reports the specific model equation used to calculate the inside face convection coefficient.~ This can vary when using the adaptive convection algorithm and so the result of that selection algorithm is reported here.~ The following table lists the models associated with specific interger codes reported here.~ The models correspond to key words used in input objects. +This variable reports the specific model equation used to calculate the inside face convection coefficient.~ This can vary when using the adaptive convection algorithm and so the result of that selection algorithm is reported here.~ The following table lists the models associated with specific integer codes reported here.~ The models correspond to key words used in input objects. \begin{longtable}[c]{@{}ll@{}} \toprule @@ -2091,7 +2091,7 @@ \subsubsection{Surface Inside Face Convection Model Equation Index}\label{surfac 217 & AwbiHattonHeatedFloor~~~~~~~~~~~~~~~~~~ \tabularnewline 218 & AwbiHattonHeatedWall~~~~~~~~~~~~~~~~~~~ \tabularnewline 219 & BeausoleilMorrisonMixedAssistingWall~~~ \tabularnewline -220 & BeausoleilMorrisonMixedOppossingWall~~~ \tabularnewline +220 & BeausoleilMorrisonMixedopposingWall~~~ \tabularnewline 221 & BeausoleilMorrisonMixedStableCeiling~~~ \tabularnewline 222 & BeausoleilMorrisonMixedUnstableCeiling~ \tabularnewline 223 & BeausoleilMorrisonMixedStableFloor~~~~~ \tabularnewline @@ -2432,7 +2432,7 @@ \subsection{SurfaceProperty:IncidentSolarMultiplier} \paragraph{Field: Incident Solar Multiplier}\label{field-shading-multiplier-IncidentSolarMultiplier} A constant multiplier for the incident solar radiation. The value should be -between 0 and 1 (both inclussive). If not specified, the default 1.0 will be +between 0 and 1 (both inclusive). If not specified, the default 1.0 will be used. If the Incident Solar Multiplier Schedule Name is defined, the product of these two will be the final Incident Solar Multiplier. Otherwise, this constant multiplier will be applied throughout the simulation. @@ -2565,7 +2565,7 @@ \subsection{SurfaceProperty:SurroundingSurfaces}\label{surfacePropertySurroundin The object also defines the sky and ground temperature and view factors to the external surface. The sum of all defined view factors should not exceed 1.0. If only sky view is defined in this object, the ground view factor to this surface will be 1.0 subtracted with the ground view factor and all other defined surface view factors. If only ground view is defined in this object, the sky view factor to this surface will be 1.0 subtracted with the sky view factor and all other defined surface view factors. If neither of the sky and ground view factors are explicitly declared here, the sum of the sky and ground view factor would be 1.0 subtracted with all other defined surface view factors and the proportion will be set as the same with the global setting. -If ground surfaces view factors are defined in \textit{SurfaceProperty:GroundSurfaces} object, then this ground view factors overrides the gorund view factors specified in \textit{SurfaceProperty:SurroundingSurfaces} object. The sum of the sky view factors and the surrounding surfaces view factors defined in \textit{SurfaceProperty:SurroundingSurfaces} and the ground surfaces view factors defined in \textit{SurfaceProperty:GroundSurfaces} object should not exceed 1.0. The \textit{SurfaceProperty:GroundSurfaces} object allows specifying multiple ground surfaces viewed by an exterior surfaces. +If ground surfaces view factors are defined in \textit{SurfaceProperty:GroundSurfaces} object, then this ground view factors overrides the ground view factors specified in \textit{SurfaceProperty:SurroundingSurfaces} object. The sum of the sky view factors and the surrounding surfaces view factors defined in \textit{SurfaceProperty:SurroundingSurfaces} and the ground surfaces view factors defined in \textit{SurfaceProperty:GroundSurfaces} object should not exceed 1.0. The \textit{SurfaceProperty:GroundSurfaces} object allows specifying multiple ground surfaces viewed by an exterior surfaces. \subsubsection{Field: Name}\label{field-srd-surfs-name} @@ -2624,9 +2624,9 @@ \subsubsection{Field: Surrounding Surface 1 Temperature Schedule Name}\label{fie \subsection{SurfaceProperty:GroundSurfaces}\label{surfacePropertyGroundSurfaces} -This object is used for calculating building exterior surfaces long-wave radation exchange with the ground and the calculation of solar radiation reflection from ground surfaces to a building exterior surface. A given exterior surface can view multiple ground surfaces with different surface properties and view factors. Thus, this object allows specifying multiple ground view factors, ground surfaces temperature, and ground surfaces refelectance properties viewed by a given exterior surface. View factors are assumed to be constant values. The ground surface temperature and ground surface reflectance are specified using schedule object. Ground surface view factors and ground surface temperature defined in this object overrides the ground surface view factor and ground temperature specified in \textit{SurfaceProperty:SurroundingSurfaces} object. +This object is used for calculating building exterior surfaces long-wave radiation exchange with the ground and the calculation of solar radiation reflection from ground surfaces to a building exterior surface. A given exterior surface can view multiple ground surfaces with different surface properties and view factors. Thus, this object allows specifying multiple ground view factors, ground surfaces temperature, and ground surfaces reflectance properties viewed by a given exterior surface. View factors are assumed to be constant values. The ground surface temperature and ground surface reflectance are specified using schedule object. Ground surface view factors and ground surface temperature defined in this object overrides the ground surface view factor and ground temperature specified in \textit{SurfaceProperty:SurroundingSurfaces} object. -The sum of all defined view factors that include the sky virew factor, the ground surfaces view factors and surrounding surfaces view factors seen by a given building exterior surface should be 1.0, or the sum of the ground view factors for a given exterior surface should not exceed 1 subtracted the sky view factor and the sum of view factors of all surrounding surfaces defined in \textit{SurfaceProperty:SurroundingSurfaces} object. If the ground view factor input field is blank in \textbf{SurfaceProperty:GroundSurfaces} object, the ground view factor to this surface will be 1.0 subtracted the sky view factor and all other defined surrounding surface view factors defined in \textit{SurfaceProperty:SurroundingSurfaces} object. If neither \textbf{SurfaceProperty:GroundSurfaces} object nor the \textbf{SurfaceProperty:SurroundingSurfaces} object is specified for an exterior surface, the default view factor specified in \textbf{BuildingSurface:Detailed} or \textbf{FenestrationSurface:Detailed} object is used. +The sum of all defined view factors that include the sky view factor, the ground surfaces view factors and surrounding surfaces view factors seen by a given building exterior surface should be 1.0, or the sum of the ground view factors for a given exterior surface should not exceed 1 subtracted the sky view factor and the sum of view factors of all surrounding surfaces defined in \textit{SurfaceProperty:SurroundingSurfaces} object. If the ground view factor input field is blank in \textbf{SurfaceProperty:GroundSurfaces} object, the ground view factor to this surface will be 1.0 subtracted the sky view factor and all other defined surrounding surface view factors defined in \textit{SurfaceProperty:SurroundingSurfaces} object. If neither \textbf{SurfaceProperty:GroundSurfaces} object nor the \textbf{SurfaceProperty:SurroundingSurfaces} object is specified for an exterior surface, the default view factor specified in \textbf{BuildingSurface:Detailed} or \textbf{FenestrationSurface:Detailed} object is used. \subsubsection{Field: Name}\label{field-gnd-surfs-name} @@ -2646,11 +2646,11 @@ \subsubsection{Field: Ground Surface 1 Temperature Schedule Name}\label{field-gr \subsubsection{Field: Ground Surface 1 Reflectance Schedule Name}\label{field-ground-surface-1-reflectance-schedule-name} -This field is used to provide a schedule name of a ground surface reflectance. The ground surface reflectance is used to calculate ground surface reflected solar radition to a building exterior surface. If the field is left blank, the global reflectance object defined else where or default values will be used. +This field is used to provide a schedule name of a ground surface reflectance. The ground surface reflectance is used to calculate ground surface reflected solar radiation to a building exterior surface. If the field is left blank, the global reflectance object defined else where or default values will be used. -This object is extensible, so the last four fields can be repeated to define ground surface name, ground surface view factor, ground surface temperature, and ground surface reflectace sets. +This object is extensible, so the last four fields can be repeated to define ground surface name, ground surface view factor, ground surface temperature, and ground surface reflectance sets. -Ground surfaces solar reflectance values derived from satelite data for common ground surfaces obtained from Ground Albedo Measurements and Modeling (Bill Marion, 2018) are summerized in table below. +Ground surfaces solar reflectance values derived from satellite data for common ground surfaces obtained from Ground Albedo Measurements and Modeling (Bill Marion, 2018) are summarized in table below. \begin{longtable}[c]{p{1.0in}p{2.5in}p{2.5in}} \toprule @@ -2726,7 +2726,7 @@ \subsection{References}\label{references-gnd-srfs} \subsection{SurfaceProperty:LocalEnvironment}\label{surfacePropertylocalEnvironment} -The object links to an exterior surface object \textbf{BuildingSurface:Detailed} or an exterior fenestration object \textbf{FenestrationSurface:Detailed} and is used when there is a need to calculate surface level environmental data externally and import them into the simulation to override existing environmental data, including external solar shading fractions, local air velocity, temperature and humidity, and surrounding surface temperatures, sky view factor, ground surfaces view factors, ground surfaces temperature and ground surfaces refelectance. The object links to four optional objects including a schedule object declared by \textbf{Field: External Shading Fraction Schedule Name}, a \textbf{\hyperref[surfacePropertySurroundingSurfaces]{SurfaceProperty:SurroundingSurfaces}} object declared by \textbf{Field: Surrounding Surfaces Object Name}, an \textbf{\hyperref[outdoorairnode]{OutdoorAir:Node}} object declared by \textbf{Field: Outdoor Air Node Name}, and a \textbf{\hyperref[surfacePropertyGroundSurfaces]{SurfaceProperty:GroundSurfaces}} object declared by +The object links to an exterior surface object \textbf{BuildingSurface:Detailed} or an exterior fenestration object \textbf{FenestrationSurface:Detailed} and is used when there is a need to calculate surface level environmental data externally and import them into the simulation to override existing environmental data, including external solar shading fractions, local air velocity, temperature and humidity, and surrounding surface temperatures, sky view factor, ground surfaces view factors, ground surfaces temperature and ground surfaces reflectance. The object links to four optional objects including a schedule object declared by \textbf{Field: External Shading Fraction Schedule Name}, a \textbf{\hyperref[surfacePropertySurroundingSurfaces]{SurfaceProperty:SurroundingSurfaces}} object declared by \textbf{Field: Surrounding Surfaces Object Name}, an \textbf{\hyperref[outdoorairnode]{OutdoorAir:Node}} object declared by \textbf{Field: Outdoor Air Node Name}, and a \textbf{\hyperref[surfacePropertyGroundSurfaces]{SurfaceProperty:GroundSurfaces}} object declared by \textbf{Field: Ground Surfaces Object Name}. The object provides inputs to calculate shading, solar radiation, zone air balance, and surface exterior heat balance. \subsubsection{Field: Name}\label{field-surf-localenv-name} diff --git a/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex b/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex index e1316969d68..819b98dd60f 100644 --- a/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex +++ b/doc/input-output-reference/src/overview/group-air-distribution-equipment.tex @@ -270,7 +270,7 @@ \subsubsection{Inputs}\label{inputs-2-001} \paragraph{Field: Maximum Flow Fraction During Reheat}\label{field-maximum-flow-fraction-during-reheat} -This fraction is multiplied by the Maximum Air Flow Rate to determine the maximum volume flow rate (m\(^{3}\)/s) allowed during reheat operation (see detailed explanation above). This field is autosizeable and is defaulted to autosize. If autosizeable is selected or the field is blank, the value is set to 0.002032 m\(^{3}\)/s-m\(^{2}\) (0.4 cfm/ft\(^{2}\)) multiplied by the zone floor area divided by the Maximum Air Flow Rate. If this field and the previous field are entered, the greater of the two inputs is used. This field and the following field are only used if Damper Heating Action = ReverseWithLimits. +This fraction is multiplied by the Maximum Air Flow Rate to determine the maximum volume flow rate (m\(^{3}\)/s) allowed during reheat operation (see detailed explanation above). This field is autosizable and is defaulted to autosize. If autosizable is selected or the field is blank, the value is set to 0.002032 m\(^{3}\)/s-m\(^{2}\) (0.4 cfm/ft\(^{2}\)) multiplied by the zone floor area divided by the Maximum Air Flow Rate. If this field and the previous field are entered, the greater of the two inputs is used. This field and the following field are only used if Damper Heating Action = ReverseWithLimits. \paragraph{Field: Maximum Reheat Air Temperature}\label{field-maximum-reheat-air-temperature-1} @@ -1306,7 +1306,7 @@ \subsubsection{Inputs}\label{inputs-9-000} \paragraph{Field: Zone Mixer Name}\label{field-zone-mixer-name-2} -The name of an zone mixer component (object: \hyperref[airloophvaczonemixer]{AirLoopHVAC:ZoneMixer}) which composes part of the terminal unit. Note that some of the zone mixer's inputs will duplicate some of the terminal units's inputs. One of the zone mixer inlet nodes should be the same as the supply air inlet node of the terminal unit; the other inlet node of the zone mixer should be the same as the cooling coil air outlet node. The outlet node of the zone mixer should be the same as the outlet node of the terminal unit. +The name of an zone mixer component (object: \hyperref[airloophvaczonemixer]{AirLoopHVAC:ZoneMixer}) which composes part of the terminal unit. Note that some of the zone mixer's inputs will duplicate some of the terminal unit's inputs. One of the zone mixer inlet nodes should be the same as the supply air inlet node of the terminal unit; the other inlet node of the zone mixer should be the same as the cooling coil air outlet node. The outlet node of the zone mixer should be the same as the outlet node of the terminal unit. An IDF example: @@ -1640,7 +1640,7 @@ \subsubsection{Inputs}\label{inputs-11-000} \paragraph{Field: Model Parameter a (a)}\label{field-model-parameter-a-a} -This is ain the above equations. The default is 15.3 +This is in the above equations. The default is 15.3 \paragraph{Field: Model Parameter n1}\label{field-model-parameter-n1} 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 4a4b45a4276..03109516dfd 100644 --- a/doc/input-output-reference/src/overview/group-air-distribution.tex +++ b/doc/input-output-reference/src/overview/group-air-distribution.tex @@ -417,7 +417,7 @@ \subsection{Systems Level Reporting}\label{systems-level-reporting} \subsection{System Loads Outputs}\label{system-loads-outputs} -In this category, the total system load is reported. Two aspects are reported here: Heating and Cooling. The following two variables report the heat energy that system components (including packaged equipment, fans, main coils, reheat coils, humidifiers, desiccant dehumidifiers, evaporative coolers and heat exchangers) add or remove from the air loop. Each variable within these grouping wil +In this category, the total system load is reported. Two aspects are reported here: Heating and Cooling. The following two variables report the heat energy that system components (including packaged equipment, fans, main coils, reheat coils, humidifiers, desiccant dehumidifiers, evaporative coolers and heat exchangers) add or remove from the air loop. \subsubsection{Air System Total Heating Energy}\label{air-system-total-heating-energy} @@ -692,7 +692,7 @@ \subsubsection{Inputs}\label{inputs-2-002} \paragraph{Field Set (Availability Manager Object Type, Name)}\label{field-set-availability-manager-object-type-name} -Managers are listed by pairs of data items:~ \emph{Availability Manager Object Type} and \emph{Availability Manager Name}. The managers are simulated down the list and calculate a control status for use by the \hyperref[airloophvac]{AirLoopHVAC} or \hyperref[plantloop]{PlantLoop}. The priority of each manager used for a specific loop is based on the rules described above. Availability managers are not currently used for condenser loops. The availability managers, along with the \hyperref[airloophvac]{AirLoopHVAC} and \hyperref[plantloop]{PlantLoop} object, report the control status calculated each simulation timestep. These output variables can be used to prioritize the managers according to the required control strategy. Six managers are accomodated in the list by default. This object is extensible, so additional pairs of the next two fields may be added. +Managers are listed by pairs of data items:~ \emph{Availability Manager Object Type} and \emph{Availability Manager Name}. The managers are simulated down the list and calculate a control status for use by the \hyperref[airloophvac]{AirLoopHVAC} or \hyperref[plantloop]{PlantLoop}. The priority of each manager used for a specific loop is based on the rules described above. Availability managers are not currently used for condenser loops. The availability managers, along with the \hyperref[airloophvac]{AirLoopHVAC} and \hyperref[plantloop]{PlantLoop} object, report the control status calculated each simulation timestep. These output variables can be used to prioritize the managers according to the required control strategy. Six managers are accommodated in the list by default. This object is extensible, so additional pairs of the next two fields may be added. \paragraph{Field: Availability Manager \textless{}x\textgreater{} Object Type}\label{field-availability-manager-x-object-type} diff --git a/doc/input-output-reference/src/overview/group-air-path.tex b/doc/input-output-reference/src/overview/group-air-path.tex index 72baebedbd9..a72bc44f8db 100644 --- a/doc/input-output-reference/src/overview/group-air-path.tex +++ b/doc/input-output-reference/src/overview/group-air-path.tex @@ -421,9 +421,9 @@ \subsubsection{Inputs} \subsection{AirLoopHVAC:DedicatedOutdoorAirSystem}\label{airloophvacdedicatedoutdoorairsystem} -The AirLoopHVAC:DedicatedOutdoorAirSystem is a central dedicated outdoor air system (DOAS) and deliveres outdoor air to multiple \hyperref[airloophvac]{AirLoopHVAC} systems. The amount of delivered outdoor air is based on a sum of outdoor air flow rates from outdoor air stream nodes defined in the \hyperref[outdoorairmixer]{OutdoorAir:Mixer}. These OutdoorAir:Mixer objects are a component of served multiple AirLoopHVAC systems. The central DOAS system also pretreates outdoor air before outdoor air distribution into multiple AirLoopHVAC, with given precool and preheat air conditions. +The AirLoopHVAC:DedicatedOutdoorAirSystem is a central dedicated outdoor air system (DOAS) and delivers outdoor air to multiple \hyperref[airloophvac]{AirLoopHVAC} systems. The amount of delivered outdoor air is based on a sum of outdoor air flow rates from outdoor air stream nodes defined in the \hyperref[outdoorairmixer]{OutdoorAir:Mixer}. These OutdoorAir:Mixer objects are a component of served multiple AirLoopHVAC systems. The central DOAS system also pretreats outdoor air before outdoor air distribution into multiple AirLoopHVAC, with given precool and preheat air conditions. -After the object name, the object has four fields to provide the name of AirLoopHVAC:OutdoorAirSystem, system availability, and names of AirLoopHVAC:Mixer and AirLoopHVAC:Splitter. The AirLoopHVAC:OutdoorAirSystem lists a controller to perform controls, and coils and fans to pretreat outdoor air before delivery to served AirLoopHVAC. The Availability Schedule determines times when a system is operationa or shutdownl. The AirLoopHVAC:Mixer and AirLoopHVAC:Splitter provide connection into distribution and relief nodes, respectively. +After the object name, the object has four fields to provide the name of AirLoopHVAC:OutdoorAirSystem, system availability, and names of AirLoopHVAC:Mixer and AirLoopHVAC:Splitter. The AirLoopHVAC:OutdoorAirSystem lists a controller to perform controls, and coils and fans to pretreat outdoor air before delivery to served AirLoopHVAC. The Availability Schedule determines times when a system is operational or shutdown. The AirLoopHVAC:Mixer and AirLoopHVAC:Splitter provide connection into distribution and relief nodes, respectively. The next four fields requires inputs for pretreat air conditions, including precooling and preheating. 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 84c01428de8..488041495a6 100644 --- a/doc/input-output-reference/src/overview/group-airflow-network.tex +++ b/doc/input-output-reference/src/overview/group-airflow-network.tex @@ -479,7 +479,7 @@ \subsubsection{Field: Indoor and Outdoor Temperature Difference Lower Limit For See Figure~\ref{fig:modulation-of-venting-area-according-to}. This field applies only if Ventilation Control Mode = Temperature. This value may be from zero to less than \SI{100}{\celsius}, with the default being \SI{0}{\celsius}. The value for this field must be less than the value specified for the following field. -\subsubsection{Field: Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor}\label{field-indoor-and-outdoor-temperature-difference-upper-limit-for-minimun-venting-open-factor} +\subsubsection{Field: Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor}\label{field-indoor-and-outdoor-temperature-difference-upper-limit-for-minimum-venting-open-factor} See Figure~\ref{fig:modulation-of-venting-area-according-to}. This field applies only if Ventilation Control Mode = Temperature. This value must be greater than \SI{0}{\celsius}, with the default being \SI{100}{\celsius}. The value for this field must be greater than the value specified for the previous field.. @@ -487,7 +487,7 @@ \subsubsection{Field: Indoor and Outdoor Enthalpy Difference Lower Limit For Max See Figure~\ref{fig:modulation-of-venting-area-according-to-001}. This field applies only if Ventilation Control Mode = Enthalpy. This value may be from zero to less than 300,000 J/kg, with the default being 0 J/kg. The value for this field must be less than the value specified for the following field. -\subsubsection{Field: Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor}\label{field-indoor-and-outdoor-enthalpy-difference-upper-limit-for-minimun-venting-open-factor} +\subsubsection{Field: Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor}\label{field-indoor-and-outdoor-enthalpy-difference-upper-limit-for-minimum-venting-open-factor} See Figure~\ref{fig:modulation-of-venting-area-according-to-001}. This field applies only if Ventilation Control Mode = Enthalpy. This value must be greater than zero, with the default being 300,000 J/kg. The value for this field must be greater than the value specified for the previous field. @@ -648,7 +648,7 @@ \subsubsection{Field: External Node Name}\label{field-external-node-name} object, this field is not used and a blank may be entered. If the surface is an interior (i.e., interzone) surface, leave this field blank. -When there is an input object of either \hyperref[ZonePropertylocalEnvironment]{ZoneProperty:LocalEnvironment} or \hyperref[surfacePropertylocalEnvironment]{SurfaceProperty:LocalEnvironment}, LocalEnvironment is enable, so that entered names of \hyperref[outdoorairnode]{OutdoorAir:Node} can be used as inputs for this field. More descrption of use can be found in OutdoorAir:Node. +When there is an input object of either \hyperref[ZonePropertylocalEnvironment]{ZoneProperty:LocalEnvironment} or \hyperref[surfacePropertylocalEnvironment]{SurfaceProperty:LocalEnvironment}, LocalEnvironment is enable, so that entered names of \hyperref[outdoorairnode]{OutdoorAir:Node} can be used as inputs for this field. More description of use can be found in OutdoorAir:Node. \subsubsection{Field: Window/Door Opening Factor, or Crack Factor}\label{field-windowdoor-opening-factor-or-crack-factor} @@ -752,7 +752,7 @@ \subsubsection{Field: Indoor and Outdoor Temperature Difference Lower Limit For See Figure~\ref{fig:modulation-of-venting-area-according-to}. This field applies only if Ventilation Control Mode = Temperature. This value may be from zero to less than 100°C, with the default being 0°C. The value for this field must be less than the value specified for the following field. -\subsubsection{Field: Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor}\label{field-indoor-and-outdoor-temperature-difference-upper-limit-for-minimun-venting-open-factor-1} +\subsubsection{Field: Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor}\label{field-indoor-and-outdoor-temperature-difference-upper-limit-for-minimum-venting-open-factor-1} See Figure~\ref{fig:modulation-of-venting-area-according-to}. This field applies only if Ventilation Control Mode = Temperature. This value must be greater than 0°C, with the default being 100°C. The value for this field must be greater than the value specified for the previous field. @@ -760,7 +760,7 @@ \subsubsection{Field: Indoor and Outdoor Enthalpy Difference Lower Limit For Max See Figure~\ref{fig:modulation-of-venting-area-according-to-001}. This field applies only if Ventilation Control Mode = Enthalpy. This value may be from zero to less than 300,000 J/kg, with the default being 0 J/kg. The value for this field must be less than the value specified for the following field. -\subsubsection{Field: Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor}\label{field-indoor-and-outdoor-enthalpy-difference-upper-limit-for-minimun-venting-open-factor-1} +\subsubsection{Field: Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor}\label{field-indoor-and-outdoor-enthalpy-difference-upper-limit-for-minimum-venting-open-factor-1} See Figure~\ref{fig:modulation-of-venting-area-according-to-001}. This field applies only if Ventilation Control Mode = Enthalpy. This value must be greater than zero, with the default being 300,000 J/kg. The value for this field must be greater than the value specified for the previous field. @@ -856,7 +856,7 @@ \subsubsection{Inputs}\label{inputs-1-004} \paragraph{Field: Name}\label{field-name-1-003} -The name of this Reference Crack Conditons object. This name is referenced by an \hyperref[airflownetworkmultizonesurfacecrack]{AirflowNetwork:MultiZone:Surface:Crack} object. +The name of this Reference Crack Conditions object. This name is referenced by an \hyperref[airflownetworkmultizonesurfacecrack]{AirflowNetwork:MultiZone:Surface:Crack} object. \paragraph{Field: Reference Temperature}\label{field-reference-temperature} @@ -1078,7 +1078,7 @@ \subsubsection{Inputs}\label{inputs-4-003} Crack flow is assumed when the window or door is closed. In this case, the value of this field is the exponent, \emph{n}, in the crack air flow equation. The valid range for this exponent is 0.5 to 1.0, with the default value being 0.65. Mass Flow Rate = Air Mass Flow Coefficient (deltaP) Air Mass Flow Exponent. -\paragraph{Field: Type of Rectanguler Large Vertical Opening (LVO)}\label{field-type-of-rectanguler-large-vertical-opening-lvo} +\paragraph{Field: Type of Rectangular Large Vertical Opening (LVO)}\label{field-type-of-rectangular-large-vertical-opening-lvo} This alpha field specifies the type of rectangular window or door. (Open windows or doors are also called Large Vertical Openings (LVOs). The choices for the opening type are \textbf{NonPivoted} (LVO Type 1) and \textbf{HorizontallyPivoted} (LVO Type 2) with the default being \textbf{NonPivoted}. The NonPivoted type represents a regular window or door. The HorizontallyPivoted type represents a window with a horizontal axis (i.e., a horizontally-pivoting window) and cannot be used for a door. @@ -1733,7 +1733,7 @@ \subsection{AirflowNetwork:Distribution:DuctViewFactors}\label{airflownetworkdis \paragraph{Field: Surface Emittance}\label{field-surface-emittance} The air duct surface emittance factor in the range 0 to 1 based on the material properties (dimensionless). -\paragraph{Field: Surface \textless{}\#\textgreater{} Name}\label{field-suface-1-name} +\paragraph{Field: Surface \textless{}\#\textgreater{} Name}\label{field-surface-1-name} This field specifies the name of the surface seen by the duct. \paragraph{Field: View Factor \textless{}\#\textgreater{}}\label{field-surface-1-view-factor} @@ -2069,7 +2069,7 @@ \subsubsection{Inputs}\label{inputs-15-001} \paragraph{Field: Heat Transmittance Coefficient (U-Factor) for Duct Wall Construction}\label{field-heat-transmittance-coefficient-u-factor-from-duct-construction} -This numeric field is defines the heat transmittance coefficient (U value, W/m\(^{2}\)-K) for the duct wall construction. Film coefficents are calculated automatically, unless directly specified below. +This numeric field is defines the heat transmittance coefficient (U value, W/m\(^{2}\)-K) for the duct wall construction. Film coefficients are calculated automatically, unless directly specified below. \paragraph{Field: Overall Moisture Transmittance Coefficient from Air to Air}\label{field-overall-moisture-transmittance-coefficient-from-air-to-air} @@ -2077,11 +2077,11 @@ \subsubsection{Inputs}\label{inputs-15-001} \paragraph{Field: Outside Convection Coefficient}\label{field-outside-convection-coefficent} -This numeric field defines the outside convection coefficient (W/m\(^{2}\)-K). If the field is omitted, the film coeffient is calculated automatically as described in ASTM C1340. +This numeric field defines the outside convection coefficient (W/m\(^{2}\)-K). If the field is omitted, the film coefficient is calculated automatically as described in ASTM C1340. \paragraph{Field: Inside Convection Coefficient}\label{field-inside-convection-coefficent} -This numeric field defines the inside convection coefficient (W/m\(^{2}\)-K). If the field is omitted, the film coeffient is calculated automatically as described in ASTM C1340. +This numeric field defines the inside convection coefficient (W/m\(^{2}\)-K). If the field is omitted, the film coefficient is calculated automatically as described in ASTM C1340. An IDF example is provided below: @@ -2545,7 +2545,7 @@ \subsubsection{Inputs}\label{inputs-AFN-DuctSizing} \paragraph{Field: Maximum Airflow Velocity}\label{maximum-airflow-velocity} -This is an optional field to represent the maximum velopcity in trunk ducts with units m/s. The default value is 5 m/s. The value is used when the choice of Duct Sizing Method is either MaximumVelocity or PressureLossWithMaximumVelocity. The duct diameter is calculated at D = flow rate / Cross section area. +This is an optional field to represent the maximum velocity in trunk ducts with units m/s. The default value is 5 m/s. The value is used when the choice of Duct Sizing Method is either MaximumVelocity or PressureLossWithMaximumVelocity. The duct diameter is calculated at D = flow rate / Cross section area. \paragraph{Field: Total Pressure Loss Across Supply Truck}\label{total-pressure-loss-across-supply-truck} diff --git a/doc/input-output-reference/src/overview/group-airflow.tex b/doc/input-output-reference/src/overview/group-airflow.tex index c369fac0153..4ab70c6c1fb 100644 --- a/doc/input-output-reference/src/overview/group-airflow.tex +++ b/doc/input-output-reference/src/overview/group-airflow.tex @@ -1504,7 +1504,7 @@ \subsubsection{Outputs}\label{outputs-4-000} \paragraph{Zone Mixing Latent Heat Gain Energy {[}J{]}}\label{zone-mixing-latent-heat-gain-energy-j-1} -The latent heat transfer due tothe sum of mixing, cross-mixing, and refrigeration-door mixing in the host (receiving) zone is the sum of all the incoming air mass flow rates multiplied by the elapsed time, the heat of vaporization (calculated for the average conditions (temperature and humidity) between the ``source'' and ``receiving'' zones)and the humidity ratio differences between the host zone and corresponding source zones. If the heat transfer is negative, the heat transfer is considered to be a zone mixing latent heat loss. If the heat transfer is positive, the heat transfer is considered to be a zone mixing latent heat gain. +The latent heat transfer due to the sum of mixing, cross-mixing, and refrigeration-door mixing in the host (receiving) zone is the sum of all the incoming air mass flow rates multiplied by the elapsed time, the heat of vaporization (calculated for the average conditions (temperature and humidity) between the ``source'' and ``receiving'' zones)and the humidity ratio differences between the host zone and corresponding source zones. If the heat transfer is negative, the heat transfer is considered to be a zone mixing latent heat loss. If the heat transfer is positive, the heat transfer is considered to be a zone mixing latent heat gain. \paragraph{Zone Mixing Total Heat Loss Energy {[}J{]}}\label{zone-mixing-total-heat-loss-energy-j-1} @@ -1752,11 +1752,40 @@ \subsubsection{Inputs} This number is the ``D'' parameter in the above earth tube equation. It is part of the user specified modifying parameters that are a function of environmental factors. This parameter is modified by square of the speed of wind being experienced outside the building. The units for this parameter are s\(^{2}\)/m\(^{2}\). +\paragraph{Field: Earth Tube Model Type}\label{field-earth-tube-model-type} + +This field determines which modeling technique will be used to assess the performance of the earth tube. The options are: Simple and Vertical. In the Simple modeling approach, the temperature of the soil at the earth tube is approximated by the undisturbed ground conditions. In the Vertical modeling approach, the temperature of the soil around the earth tube is modeled using a finite difference scheme to account for the impact of the earth tube on the surrounding soil conditions in a single direction (1-D). For more information on the model type, reference the Earth Tube section of the EnergyPlus Engineering Reference. This input is optional, and the default value is Simple. + +\paragraph{Field: Earth Tube Model Parameters}\label{field-earth-tube-model-parameters} + +This field refers to separate input syntax (see below) that is used for controlling parameters for the 1-D (Vertical) solution technique. This input field is ignored for the Simple model. If the user selects the Vertical solution and leaves this field blank, the default values for all of the parameters will be assumed. + +\paragraph{ZoneEarthtube:Parameters}\label{field-earth-tube-parameters} +For the 1-D (Vertical) model, some additional optional parameters are available for the user to potentially control the solution space (number of nodes, distances) for the finite difference solution. These are described below. + +\paragraph{Field: Earth Tube Parameters Name}\label{field-earth-tube-parameters-name} +This name is used as a reference in the main EarthTube input syntax. It is used to identify the parameters that the user desires to use to control what is being modeled and how detailed the model is. + +\paragraph{Field: Earth Tube Nodes Above}\label{field-earth-tube-nodes-above} +This parameter sets the number of nodes above the earth tube, between the earth tube and the ground surface. It has a minimum of three nodes and a maximum of ten nodes. These limits were chosen to avoid the extremes of excessive execution times and overly simplified results. The default value for this parameter is 5 (nodes). + +\paragraph{Field: Earth Tube Nodes Below}\label{field-earth-tube-nodes-below} +This parameter sets the number of nodes below the earth tube, between the earth tube and the deep ground boundary. It has a minimum of three nodes and a maximum of ten nodes. These limits were chosen to avoid the extremes of excessive execution times and overly simplified results. The default value for this parameter is 3 (nodes) or the minimum. + +\paragraph{Field: Earth Tube Dimensionless Boundary Above}\label{field-earth-tube-dimensionless-boundary-above} +This parameter sets the dimensionless distance above the earth tube for the solution space. The maximum value is 1.0, and the minimum value is 0.25. When this parameter is set to 1.0, the upper boundary is set to be half of the diameter below the ground surface and the solution space thickness above the earth tube is the depth of the earth tube minus the earth tube diameter. This maximum distance (earth tube depth minus diameter) is multiplied by this parameter to constrain the solution space to less than the maximum (when the parameter is less than 1.0). The default value for this parameter is 1.0 (the maximum value). + +\paragraph{Field: Earth Tube Dimensionless Boundary Below}\label{field-earth-tube-dimensionless-boundary-below} +This parameter sets the dimensionless distance below the earth tube for the solution space. The maximum value is 1.0, and the minimum value is 0.25. This parameter is interpretted in a similar fashion as the previous parameter where the depth of the solution space below the earth tube is determined by the maximum distance above the earth tube (earth tube depth minus radius). This allows the user to have different thickness for the modeled portion of the ground above and below the earth tube. The default value for this parameter is 0.25 (the minimum value). + +\paragraph{Field: Earth Tube Dimensionless Solution Space Width}\label{field-earth-tube-dimensionless-solution-space-width} +This parameter sets the dimensionless width of the solution space horizontally as a function of the earth tube radius as defined in the main earth tube input syntax. The maximum value is 20.0, and the minimum value is 3.0. The default value for this parameter is 4.0 which means that the width of the solution space is four times the radius. In other words, this would include soil one radius length beyond the edges of the tube on either side of the earth tube. + An IDF example: \begin{lstlisting} -EARTHTUBE, +ZoneEarthtube, Zone 2, !- Zone Name Simple EarthTube, !- Schedule Name 3.425198, !- Design Volume Flow Rate @@ -1775,10 +1804,20 @@ \subsubsection{Inputs} 15.0, !- Average Soil Surface Temperature 5.6, !- Amplitude of Soil Surface Temperature 0.0, !- Phase Constant of Soil Surface Temperature - 0.6060000 , !- Constant Term Flow Coef + 0.6060000, !- Constant Term Flow Coef 2.0199999E-02, !- Temp Term Flow Coef 5.9800001E-04, !- Velocity Term Flow Coef - 0.0000000E+00; !- Velocity**2 Term Flow Coef + 0.0000000E+00, !- Velocity**2 Term Flow Coef + Vertical, !- Earth Tube Model Type + EarthTubeParams; !- Earth Tube Model Parameters + +ZoneEarthtube:Parameters, + EarthTubeParams, !- Earth Tube Model Parameters (Name) + 5, !- Nodes Above Earth Tube + 3, !- Nodes Below Earth Tube + 1.0, !- Earth Tube Dimensionless Boundary Above + 0.5, !- Earth Tube Dimensionless Boundary Below + 4.0; !- Earth Tube Dimensionless Solution Space Width \end{lstlisting} \subsubsection{Outputs}\label{zoneearthtube-outputs} @@ -1820,6 +1859,14 @@ \subsubsection{Outputs}\label{zoneearthtube-outputs} HVAC,Average,Earth Tube Inlet Wet Bulb Temperature {[}C{]} \item HVAC,Average,Earth Tube Inlet Humidity Ratio {[}kgWater/kgDryAir{]} +\item + Zone,Average,Earth Tube Node Temperature {[}C{]} +\item + Zone,Average,Earth Tube Undisturbed Ground Temperature {[}C{]} +\item + Zone,Average,Earth Tube Upper Boundary Ground Temperature {[}C{]} +\item + Zone,Average,Earth Tube Lower Boundary Ground Temperature {[}C{]} \end{itemize} \paragraph{Earth Tube Zone Sensible Cooling Energy {[}J{]}}\label{earth-tube-zone-sensible-cooling-energy-j} @@ -1884,6 +1931,22 @@ \subsubsection{Outputs}\label{zoneearthtube-outputs} This is the humidity ratio of the air entering the zone after passing through the earth tube {[}kgWater/kgDryAir{]}. +\paragraph{Earth Tube Node Temperature {[}C{]}}\label{earth-tube-node-temperatures-c} + +This will generate the internal node temperatures {[}C{]} for the earth tube as a result of the 1-D finite difference model. This is only valid for the 1-D (Vertical) model. + +\paragraph{Earth Tube Undisturbed Ground Temperature {[}C{]}}\label{earth-tube-undisturbed-node-temperatures-c} + +This will report the theoretical undisturbed ground temperature at the location of the internal node temperatures {[}C{]} as well as the average for the location of the earth tube for the 1-D finite difference model. This is only valid for the 1-D (Vertical) model and provides a comparison of conditions for the simple model and the 1-D (Vertical) model. + +\paragraph{Earth Tube Upper Boundary Ground Temperature {[}C{]}}\label{earth-tube-upper-boundary-temperature-c} + +This will report the theoretical undisturbed ground temperature at the upper boundary for the 1-D finite difference model. This is only valid for the 1-D (Vertical) model. + +\paragraph{Earth Tube Lower Boundary Ground Temperature {[}C{]}}\label{earth-tube-lower-boundary-temperature-c} + +This will report the theoretical undisturbed ground temperature at the lower boundary for the 1-D finite difference model. This is only valid for the 1-D (Vertical) model. + \subsection{ZoneCoolTower:Shower}\label{zonecooltowershower} A cooltower (which is sometimes referred to as a wind tower or a shower cooling tower) is a component that is intended to model a passive downdraught evaporative cooling (PDEC) that is designed to capture the wind at the top of a tower and cool the outside air using water evaporation before delivering it to a space.~ The air flow in these systems is natural as the evaporation process increases the density of the air causing it to fall through the tower and into the space without the aid of a fan. ~A cooltower typically consists of a water spray or an evaporative pad, a shaft, and a water tank or reservoir. ~Wind catchers to improve the wind-driven performance at the top of the tower are optional. ~Water is pumped over an evaporative device by water pump which is the only component consumed power for this system.~ This water cools and humidifies incoming air and then the cool, dense air naturally falls down through shaft and leaves through large openings at the bottom of cooltowers. @@ -2052,7 +2115,7 @@ \subsubsection{Outputs}\label{outputs-6-000} \paragraph{Zone Cooltower Air Inlet Humidity Ratio {[}kgWater/kgDryAir{]}}\label{zone-cooltower-air-inlet-humidity-ratio-kgwaterkgdryair} -~The humidity ratio of the outdoorair at the inlet of the cooltower +~The humidity ratio of the outdoor air at the inlet of the cooltower \paragraph{Zone Cooltower Air Outlet Temperature {[}C{]}}\label{zone-cooltower-air-outlet-temperature-c} @@ -2220,7 +2283,7 @@ \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, 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 adjustment 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 zone mixing objects and return air flows in the zone air flow mass balance calculation. In addition to the zone mixing 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 zone mixing 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. -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. +The zone mixing object and return flows adjusting options to enforce zone air mass flow conservation 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. diff --git a/doc/input-output-reference/src/overview/group-coil-cooling-dx.tex b/doc/input-output-reference/src/overview/group-coil-cooling-dx.tex index 5b819eb1ae9..203b5be4df0 100644 --- a/doc/input-output-reference/src/overview/group-coil-cooling-dx.tex +++ b/doc/input-output-reference/src/overview/group-coil-cooling-dx.tex @@ -12,7 +12,7 @@ \subsection{Coil:Cooling:DX}\label{coilcoolingdx} \item Coil:Cooling:DX:CurveFit:Speed - Defines DX cooling coil performance for a specific speed within a single operating mode. \end{enumerate} -Note: The Coil:Cooling:DX:CurveFit:Performance object also allows users to input 3 operating modes: Base Operating Mode, Alternative Operating Mode 1, and Alternative Operating Mode 2. When the Base Operating Mode is an only mode input, the coil performs like a regular cooling DX coil and no specific dehumidication capability. The alternative operating mode 1 is used for enhanced dehumidification. When all 3 modes are inputs, the coil performs as a subcool rehat coil. When load sensible heat ratio (SHR), defined as sensible cooling load / (sensible cooling load + latent cooling load), is greater than the SHR in the Base Operating Mode at given inlet air conditions, the coil performs in Base Operating Mode only. When the load SHR is less than the SHR in the Base Operating Mode and greater than the SHR in the Alternative Operating Mode 1 at the same given inlet air conditions, the coil performs combination of both Base Operating Mode, and Alternative Operating Mode 1. Mode ratio determines a fraction of time Alternative Operating Mode 1 operates and the rest (1 - Mode ratio) of time Base Operating Mode operates in a single time step. When the load SHR is less than the SHR in the Alternative Operating Mode 1 and greater than the SHR in the Alternative Operating Mode 2 at the same given inlet air conditions, the coil performs combination of both Base Operating Mode, and Alternative Operating Mode 2. Mode ratio determines a fraction of time Alternative Operating Mode 2 operates and (1 - Mode ratio) of time Base Operating Mode operates in a single time step. When the load SHR is greater than the SHR in the Alternative Operating Mode 2, the coil performs as Alternative Operating Mode 2 alone. +Note: The Coil:Cooling:DX:CurveFit:Performance object also allows users to input 3 operating modes: Base Operating Mode, Alternative Operating Mode 1, and Alternative Operating Mode 2. When the Base Operating Mode is an only mode input, the coil performs like a regular cooling DX coil and no specific dehumidification capability. The alternative operating mode 1 is used for enhanced dehumidification. When all 3 modes are inputs, the coil performs as a subcool reheat coil. When load sensible heat ratio (SHR), defined as sensible cooling load / (sensible cooling load + latent cooling load), is greater than the SHR in the Base Operating Mode at given inlet air conditions, the coil performs in Base Operating Mode only. When the load SHR is less than the SHR in the Base Operating Mode and greater than the SHR in the Alternative Operating Mode 1 at the same given inlet air conditions, the coil performs combination of both Base Operating Mode, and Alternative Operating Mode 1. Mode ratio determines a fraction of time Alternative Operating Mode 1 operates and the rest (1 - Mode ratio) of time Base Operating Mode operates in a single time step. When the load SHR is less than the SHR in the Alternative Operating Mode 1 and greater than the SHR in the Alternative Operating Mode 2 at the same given inlet air conditions, the coil performs combination of both Base Operating Mode, and Alternative Operating Mode 2. Mode ratio determines a fraction of time Alternative Operating Mode 2 operates and (1 - Mode ratio) of time Base Operating Mode operates in a single time step. When the load SHR is greater than the SHR in the Alternative Operating Mode 2, the coil performs as Alternative Operating Mode 2 alone. Figure~\ref{fig:diagram-of-coil-object-references} below represents the hierarchy how these four input objects reference each other. Arrows pointing from one object to another represents where one object has an input field that references the name of a different object. For example, an input field of the Coil:Cooling:DX object references the name of a Coil:Cooling:DX:CurveFit:Performance object. For this coil input structure, one Coil:Cooling:DX object can only reference one Coil:Cooling:DX:CurveFit:Performance object. However, one Coil:Cooling:DX:CurveFit:Performance object can reference multiple Coil:Cooling:DX:CurveFit:OperatingMode objects, and each Coil:Cooling:DX:CurveFit:OperatingMode object can reference multiple Coil:Cooling:DX:CurveFit:Speed objects. In the image below, the cooling coil has one single-speed operating mode and a second two-speed operating mode. @@ -42,7 +42,7 @@ \subsubsection{Inputs}\label{inputs-01} \paragraph{Field: Condenser Zone Name}\label{field-condenser-zone-name-6-001} -The name of a conditioned or unconditioned zone where the secondary coil (condenser) of DX system or a heat pump is to be placed. This is an optional input field specified only when user desires to reject the condenser heat into a zone. The heat rejected is modelled as internal sensible heat gain of the zone. +The name of a conditioned or unconditioned zone where the secondary coil (condenser) of DX system or a heat pump is to be placed. This is an optional input field specified only when user desires to reject the condenser heat into a zone. The heat rejected is modeled as internal sensible heat gain of the zone. \paragraph{Field: Condenser Inlet Node Name}\label{field-condenser-inlet-node-name-6-001} @@ -119,13 +119,13 @@ \subsubsection{Inputs}\label{inputs-02} \paragraph{Field: Alternate Operating Mode 1}\label{field-alternate-operating-mode-1} -The name corresponding to a Coil:Cooling:DX:CurveFit:OperatingMode object. Operating Mode is used as the alternate operating mode operating mode to be used for enhanced deumidification when needed. If field is blank, the base operating mode will be used. This field is optional. +The name corresponding to a Coil:Cooling:DX:CurveFit:OperatingMode object. Operating Mode is used as the alternate operating mode operating mode to be used for enhanced dehumidification when needed. If field is blank, the base operating mode will be used. This field is optional. \paragraph{Field: Alternate Operating Mode 1}\label{field-alternate-operating-mode-2} The name corresponding to a Coil:Cooling:DX:CurveFit:OperatingMode object. Operating Mode is used as to represent a reheat mode as a subcool reheat coil. If field is blank, the base operating mode will be used. This field is optional. -If there are 3 operating modes, it represents a subcool-reheat mode coil. The Operating Mode 1 represents a base operating mode coil. The Operating Mode 2 represents a subcool mode coil with lower SHR than the Operating Mode 1. The Operating Mode 3 represents a rehaet mode coil with lower SHR than the Operating Mode 2. All 3 operation modes work together to represent a subcool reheat coil model. The operation procedure is described in \ref{coilcoolingdx} +If there are 3 operating modes, it represents a subcool-reheat mode coil. The Operating Mode 1 represents a base operating mode coil. The Operating Mode 2 represents a subcool mode coil with lower SHR than the Operating Mode 1. The Operating Mode 3 represents a reheat mode coil with lower SHR than the Operating Mode 2. All 3 operation modes work together to represent a subcool reheat coil model. The operation procedure is described in \ref{coilcoolingdx} \subsection{Coil:Cooling:DX:CurveFit:OperatingMode}\label{coilcoolingdxcurvefitoperatingmode} @@ -841,7 +841,7 @@ \subsubsection{Outputs}\label{outputs-01} \paragraph{SubcoolReheat Cooling Coil Operation Mode Ratio {[]}}\label{subcoolreheat-cooling-coil-operation-mode-ratio} -This output variable reports the ratio of time in a system timestep between normal mode and subcool mode when the operation mode = 2. The mode ratio represents how long the subcool mode runs as a fraction of the system timestep, and the normal mode runs in the rest of the system timestep. The output variable also reports the ratio of time in a system tiemstep between normal mode and reheat mode when the operation mode = 3. The value is 0.0 when the operation mode = 1. +This output variable reports the ratio of time in a system timestep between normal mode and subcool mode when the operation mode = 2. The mode ratio represents how long the subcool mode runs as a fraction of the system timestep, and the normal mode runs in the rest of the system timestep. The output variable also reports the ratio of time in a system timestep between normal mode and reheat mode when the operation mode = 3. The value is 0.0 when the operation mode = 1. \paragraph{SubcoolReheat Cooling Coil Recovered Heat Energy Rate {[}W{]}}\label{subcoolreheat-cooling-coil-recovered-heat-energy-rate-w} @@ -849,5 +849,5 @@ \subsubsection{Outputs}\label{outputs-01} \paragraph{SubcoolReheat Cooling Coil Recovered Heat Energy {[}J{]}}\label{subcoolreheat-cooling-coil-recovered-heat-energy-j} -This output is the recovered heat energy rate output of the DX coil in Jouals. This is determined by energy use difference between normal mode and subcool or reheat mode, multiplied by the mode ratio. +This output is the recovered heat energy rate output of the DX coil in Joules. This is determined by energy use difference between normal mode and subcool or reheat mode, multiplied by the mode ratio. diff --git a/doc/input-output-reference/src/overview/group-condenser-equipment.tex b/doc/input-output-reference/src/overview/group-condenser-equipment.tex index 0bf4e70b13d..07457dadedc 100644 --- a/doc/input-output-reference/src/overview/group-condenser-equipment.tex +++ b/doc/input-output-reference/src/overview/group-condenser-equipment.tex @@ -107,7 +107,7 @@ \subsubsection{Inputs}\label{inputs-007} \paragraph{Field: Free Convection Capacity}\label{field-free-convection-capacity} -This numeric input field contains the ``nominal'' heat rejection capacity of the cooling tower in watts when the tower is in the ``free convection'' regime (water flow exists but tower fan is turned off), with entering water at 35C (95F), leaving water at 29.4C (85F), entering air at 25.6C (78F) wetbulb and 35C (95F) drybulb temperatures. The design water flow rate is assumed to be 5.382E-8 m\(^{3}\)/s per watt of nominal tower capacity (input field above). The heat rejection capacity and nominal capacity sizing ratio is applied tof this free convection tower capacity to give the actual tower heat rejection at these operating conditions (typical value is 1.25 based on historical assumption that the tower must dissipate 0.25W of compressor heat for every watt of heat removed by the evaporator). The value specified for this field must be less than the value specified for the field ``Tower Nominal Capacity''. If the user does not wish to model ``free convection'', then this field should be set to 0.0. If the user specifies a value greater than zero, then the ``Air Flow Rate in Free Convection Regime'' field must contain a value greater than zero. This field can be automatically calculated using the sizing factor in the following field. +This numeric input field contains the ``nominal'' heat rejection capacity of the cooling tower in watts when the tower is in the ``free convection'' regime (water flow exists but tower fan is turned off), with entering water at 35C (95F), leaving water at 29.4C (85F), entering air at 25.6C (78F) wetbulb and 35C (95F) drybulb temperatures. The design water flow rate is assumed to be 5.382E-8 m\(^{3}\)/s per watt of nominal tower capacity (input field above). The heat rejection capacity and nominal capacity sizing ratio is applied to this free convection tower capacity to give the actual tower heat rejection at these operating conditions (typical value is 1.25 based on historical assumption that the tower must dissipate 0.25W of compressor heat for every watt of heat removed by the evaporator). The value specified for this field must be less than the value specified for the field ``Tower Nominal Capacity''. If the user does not wish to model ``free convection'', then this field should be set to 0.0. If the user specifies a value greater than zero, then the ``Air Flow Rate in Free Convection Regime'' field must contain a value greater than zero. This field can be automatically calculated using the sizing factor in the following field. \paragraph{Field: Free Convection Nominal Capacity Sizing Factor}\label{field-free-convection-nominal-capacity-sizing-factor} @@ -488,7 +488,7 @@ \subsection{CoolingTower:TwoSpeed}\label{coolingtowertwospeed} The model assumes that part-load operation is represented by a simple linear interpolation between two steady-state regimes (i.e., tower fan at high speed for the entire simulation timestep and tower fan at low speed for the entire simulation timestep, or tower fan at low speed for the entire simulation timestep and tower fan off for the entire simulation timestep). Cyclic losses are not taken into account. -Cooling towers here are ``wet'' and consume water through evaporation, drift, and blowdown. The model can be used to predict water consumed by the towers. The last six input fields are optional and provide methods of controlling details of the water consumption calculations. The user can specifiy connections to the rest of the buildings water system by providing the name of a \hyperref[waterusestorage]{WaterUse:Storage} object. +Cooling towers here are ``wet'' and consume water through evaporation, drift, and blowdown. The model can be used to predict water consumed by the towers. The last six input fields are optional and provide methods of controlling details of the water consumption calculations. The user can specify connections to the rest of the buildings water system by providing the name of a \hyperref[waterusestorage]{WaterUse:Storage} object. For the operation of multi-cell towers, the first step is to determine the number of cells to operate based on the cell control method -- between the minimum number of cells subject to the maximum water flow rate fraction per cell, and maximum number of cells subject to the minimum water flow rate fraction per cell. If the calculated cells do not meet the loads, additional cells will be operating to help meet the loads. Inside each cell, the existing capacity controls still apply. @@ -1131,7 +1131,7 @@ \subsubsection{Inputs}\label{inputs-2-006} \paragraph{Field: U-Factor Times Area Modifier Function of Wetbulb Temperature Difference Curve Name}\label{field-u-factor-times-area-modifier-function-of-wetbulb-temperature-difference-curve-name} -This alpha field contains the name of a curve or table object that describes how the UA value varies as a function of the current wetbulb temperature.~ The result of this curve is multiplied by the design UA value to adjust for wetbulb temperatures that differ from design conditions at 25.56°C (78°F), along with the two other modifiers discussed in the previous and following fields.~ The independe variable is the design wetbulb minus the current outdoor air wetbulb, in units of degrees Celsius.~ The curve or table object must be for one independent variable and should be normalized to 1.0 at a wetbulb temperature difference of 0.0.~ This field is required. +This alpha field contains the name of a curve or table object that describes how the UA value varies as a function of the current wetbulb temperature.~ The result of this curve is multiplied by the design UA value to adjust for wetbulb temperatures that differ from design conditions at 25.56°C (78°F), along with the two other modifiers discussed in the previous and following fields.~ The independent variable is the design wetbulb minus the current outdoor air wetbulb, in units of degrees Celsius.~ The curve or table object must be for one independent variable and should be normalized to 1.0 at a wetbulb temperature difference of 0.0.~ This field is required. \paragraph{Field: U-Factor Times Area Modifier Function of Water Flow Ratio Curve Name}\label{field-u-factor-times-area-modifier-function-of-water-flow-ratio-curve-name} @@ -1482,7 +1482,7 @@ \subsection{CoolingTower:VariableSpeed}\label{coolingtowervariablespeed} The cooling tower seeks to maintain the temperature of the water exiting the cooling tower at (or below) a set point. The set point schedule is defined by the field ``Condenser Loop Temperature Setpoint Node Name or Reference'' for the \hyperref[condenserloop]{CondenserLoop} object. The model first checks to determine the impact of ``free convection'' on the tower exiting water temperature. If the exiting water temperature based on ``free convection'' is at or below the set point, then the variable-speed tower fan is not turned on. If the exiting water temperature is above the set point after ``free convection'' is modeled, then the variable-speed tower fan is turned on to reduce the exiting water temperature. Tower fan power is calculated based on the tower air flow rate required to achieve the exiting water set point temperature. -Cooling towers here are ``wet'' and consume water through evaporation, drift, and blowdown. The model can be used to predict water consumed by the towers. The last six input fields are optional and provide methods of controlling details of the water consumption calculations. The user can specifiy connections to the rest of the buildings water system by providing the name of a \hyperref[waterusestorage]{WaterUse:Storage} object. +Cooling towers here are ``wet'' and consume water through evaporation, drift, and blowdown. The model can be used to predict water consumed by the towers. The last six input fields are optional and provide methods of controlling details of the water consumption calculations. The user can specify connections to the rest of the buildings water system by providing the name of a \hyperref[waterusestorage]{WaterUse:Storage} object. For the operation of multi-cell towers, the first step is to determine the number of cells to operate based on the cell control method -- between the minimum number of cells subject to the maximum water flow rate fraction per cell, and maximum number of cells subject to the minimum water flow rate fraction per cell. If the calculated cells do not meet the loads, additional cells will be operating to help meet the loads. Inside each cell, the existing capacity controls still apply. @@ -2891,7 +2891,7 @@ \subsubsection{Inputs}\label{inputs-9-003} \paragraph{Field: Low Fan Speed Fan Power Sizing Factor}\label{field-low-fan-speed-fan-power-sizing-factor-2} -This numeric field contains the sizing factor to use whe calculating the Low Fan Speed Fan Power.~ The default is 0.16. +This numeric field contains the sizing factor to use when calculating the Low Fan Speed Fan Power.~ The default is 0.16. \paragraph{Field: Outdoor Air Inlet Node Name}\label{field-outdoor-air-inlet-node-name-7} @@ -2912,9 +2912,9 @@ \subsubsection{Inputs}\label{inputs-9-003} 58601., !- High Speed Nominal Capacity {W} 28601., !- Low Speed Nominal Capacity {W} . 0.6, !- Low Speed Nominal Capacity Sizing Factor - 51.67, !- Design Entering Water tempereture {C} - 35, !- Design Entering Air tempereture {C} - 25.6, !- Design Entering Air Wet-bulb tempereture {C} + 51.67, !- Design Entering Water temperature {C} + 35, !- Design Entering Air temperature {C} + 25.6, !- Design Entering Air Wet-bulb temperature {C} 0.001388, !- Design Water Flow Rate {m3/s} 9.911, !- High Fan Speed Air Flow Rate {m3/s} autosize, !- High Fan Speed Fan Power {W} @@ -3044,7 +3044,7 @@ \subsubsection{Inputs}\label{inputs-10-002} \paragraph{Field: GHE:Vertical:Single names} -The unique names of all single, vertical GLHE objects which are used to define and arbitrarily shaped GHE array. This field is exensible. +The unique names of all single, vertical GLHE objects which are used to define and arbitrarily shaped GHE array. This field is extensible. The following is are example inputs corresponding to the input variations allowed which were described previously. The first example uses the \hyperref[groundheatexchangerverticalarray]{GroundHeatExchanger:Vertical:Array} object. The g-functions will be generated automatically by EnergyPlus and cached for later use. @@ -4113,8 +4113,8 @@ \subsubsection{Inputs}\label{inputs-15-002} \begin{description} \item [CrossFlowBothUnMixed] Specifies a single-pass, cross-flow heat exchanger. The effectiveness will be calculated using a cross-flow heat exchanger correlation for both streams unmixed. \item [CrossFlowBothMixed] Specifies a single-pass, cross-flow heat exchanger. The effectiveness will be calculated using a cross-flow heat exchanger correlation for both streams mixed. -\item [CrossFlowSupplyMixedDemandUnMixed] Specifes a single-pass, cross-flow heat exchanger. The effectiveness will be calculated using a cross-flow heat exchanger correlation for flow mixed on the Loop Supply side and flow unmixed on the Loop Demand Side. -\item [CrossFlowSupplyUnMixedDemandMixed] Specifes a single-pass, cross-flow heat exchanger. The effectiveness will be calculated using a cross-flow heat exchanger correlation for flow unmixed on the Loop Supply side and flow mixed on the Loop Demand Side. +\item [CrossFlowSupplyMixedDemandUnMixed] Specifies a single-pass, cross-flow heat exchanger. The effectiveness will be calculated using a cross-flow heat exchanger correlation for flow mixed on the Loop Supply side and flow unmixed on the Loop Demand Side. +\item [CrossFlowSupplyUnMixedDemandMixed] Specifies a single-pass, cross-flow heat exchanger. The effectiveness will be calculated using a cross-flow heat exchanger correlation for flow unmixed on the Loop Supply side and flow mixed on the Loop Demand Side. \item [CounterFlow] Specifies a counter-flow shell and tube heat exchanger (one fluid has the opposite direction to the other fluid). The effectiveness will be calculated using a counter-flow shell and tube heat exchanger correlation. \item [ParallelFlow] Specifies a parallel-flow shell and tube heat exchanger (both fluids have the same direction). The effectiveness will be calculated using a parallel-flow shell and tube heat exchanger correlation. \item [Ideal] Specifies an ideal heat exchanger. The effectiveness will be set to `1.0' and the specified UA will be ignored. The heat transfer rate will be calculated as the maximum possible heat transfer rate. @@ -4152,7 +4152,7 @@ \subsubsection{Inputs}\label{inputs-15-002} \item \textbf{CoolingDifferentialOnOff}.~ This control mode is applicable to situations where the Loop Demand Side can provide useful cooling to the Loop Supply Side.~ This mode is similar to CoolingSetpointOnOff except that it ignores any cooling setpoint and its control is based only on the temperature difference between Loop Demand Side and the Loop Supply Side.~ The inlet temperatures must differ by more than the value set in the field called Minimum Temperature Difference to Activate Heat Exchanger for the heat exchanger to operate.~ ~This control mode corresponds to that available in the HeatExchanger:WatersideEconomizer object prior to version 8.0. \item - \textbf{CoolingSetpointOnOffWithComponentOverride}. This control mode is applicable to situations where the heat exchanger operation is integrated with the operation of a specific chiller. Typically the heat exchanger and chiller are in parallel on separate branches. When conditions are favorable for the heat exchanger to provide cooling to the Loop Supply Side, the heat exchanger is run and the integrated chiller is turned off. When conditions are not favorable, the heat exchanger is competely off and the chiller is allowed to run as usual. A cooling setpoint is obtained from a node named in the following field. If it runs it will run at full capacity and may undershoot the setpoint. The chiller that is integrated with the heat exchanger is identified by entering the names of the chiller's inlet nodes in the input fields below.~ The control decision can be based on one of three different temperature signals selected in the field below called Component Override Cooling Control Temperature Mode.~ The setpoint and control signal temperatures must differ by more than the value set in the field called Minimum Temperature Difference to Activate Heat Exchanger for the heat exchanger to operate. This control mode corresponds to that available in the HeatExchanger:Hydronic object prior to version 8.0. + \textbf{CoolingSetpointOnOffWithComponentOverride}. This control mode is applicable to situations where the heat exchanger operation is integrated with the operation of a specific chiller. Typically the heat exchanger and chiller are in parallel on separate branches. When conditions are favorable for the heat exchanger to provide cooling to the Loop Supply Side, the heat exchanger is run and the integrated chiller is turned off. When conditions are not favorable, the heat exchanger is completely off and the chiller is allowed to run as usual. A cooling setpoint is obtained from a node named in the following field. If it runs it will run at full capacity and may undershoot the setpoint. The chiller that is integrated with the heat exchanger is identified by entering the names of the chiller's inlet nodes in the input fields below.~ The control decision can be based on one of three different temperature signals selected in the field below called Component Override Cooling Control Temperature Mode.~ The setpoint and control signal temperatures must differ by more than the value set in the field called Minimum Temperature Difference to Activate Heat Exchanger for the heat exchanger to operate. This control mode corresponds to that available in the HeatExchanger:Hydronic object prior to version 8.0. \end{itemize} \paragraph{Field: Heat Exchanger Setpoint Node Name}\label{field-heat-exchanger-setpoint-node-name} diff --git a/doc/input-output-reference/src/overview/group-controllers.tex b/doc/input-output-reference/src/overview/group-controllers.tex index adcc7babe95..a3bebb76e9a 100644 --- a/doc/input-output-reference/src/overview/group-controllers.tex +++ b/doc/input-output-reference/src/overview/group-controllers.tex @@ -57,7 +57,7 @@ \subsubsection{Inputs}\label{inputs-008} \begin{lstlisting} Controller:WaterCoil, - Central Cooling Coil Contoller 1, !- Name + Central Cooling Coil Controller 1, !- Name TemperatureAndHumidityRatio, !- Control Variable Reverse, !- Action Flow, !- Actuator Variable @@ -226,7 +226,7 @@ \subsubsection{Inputs}\label{inputs-1-007} \paragraph{Field: Lockout Type}\label{field-lockout-type} -Choices for this field are NoLockout, LockoutWithHeating, and LockoutWithCompressor. This field is used for packaged systems with DX coils. LockoutWithHeating means that if the packaged unit is in heating mode, the economizer is locked out i.e., the economizer dampers are closed and there is minimum outdoor air flow. LockoutWithCompressor means that in addition to locking out the economizer when the unit is in heating mode the economizer is locked out when the DX unit compressor is operating to provide cooling. In other words, the economizer must meet the entire cooling load; it is not allowed to operate in conjunction with the DX cooling coil. This option (LockoutWithCompressor) is sometimes called a nonintegrated economizer. +Choices for this field are NoLockout, LockoutWithHeating, and LockoutWithCompressor. This field is used for packaged systems with DX coils. LockoutWithHeating means that if the packaged unit is in heating mode, the economizer is locked out i.e., the economizer dampers are closed and there is minimum outdoor air flow. LockoutWithCompressor means that in addition to locking out the economizer when the unit is in heating mode the economizer is locked out when the DX unit compressor is operating to provide cooling. In other words, the economizer must meet the entire cooling load; it is not allowed to operate in conjunction with the DX cooling coil. This option (LockoutWithCompressor) is sometimes called a non-integrated economizer. When LockoutWithHeating or LockoutWithCompressor is selected, the lockout may also be applied to non-packaged systems for heating. If any air loop heating coil is operating, the lockout control compares the mixed air temperature at minimum outdoor air flow without heat recovery (if any) to the mixed air temperature set point. If the mixed air temperature at minimum outdoor air flow is less than the mixed air temperature set point, then the economizer is locked out and the outdoor air flow rate is set to the minimum. When the economizer is locked out, the heat recovery bypass control will be set to activate heat recovery (no bypass), if present. This action is meant to minimize heating energy (this action may also disable the heating coil on subsequent iterations, see output variable Air System Outdoor Air Heat Recovery Bypass Heating Coil Activity Status). @@ -275,7 +275,7 @@ \subsubsection{Inputs}\label{inputs-1-007} \paragraph{Field: High Humidity Control}\label{field-high-humidity-control} -This choice field establishes whether or not the outdoor air flow rate is modified in response to high indoor relative humidity. Valid choices are Yes and No. If Yes is selected, the outdoor air flow rate may be modified when the indoor relative humidity is above the humidstat setpoint. If No is selected, this option is disabled and the following three fields are not used. +This choice field establishes whether or not the outdoor air flow rate is modified in response to high indoor relative humidity. Valid choices are Yes and No. If Yes is selected, the outdoor air flow rate may be modified when the indoor relative humidity is above the humidistat setpoint. If No is selected, this option is disabled and the following three fields are not used. \paragraph{Field: Humidistat Control Zone Name}\label{field-humidistat-control-zone-name} @@ -287,7 +287,7 @@ \subsubsection{Inputs}\label{inputs-1-007} \paragraph{Field: Control High Indoor Humidity Based on Outdoor Humidity Ratio}\label{field-control-high-indoor-humidity-based-on-outdoor-humidity-ratio} -This choice field determines if high humidity control is activated based on high indoor relative humidity alone or is activated only when the indoor relative humidity is above the humidstat setpoint \emph{and} the indoor humidity ratio is greater than the outdoor humidity ratio. Valid choices are \textbf{Yes} and \textbf{No}. If No is selected, high humidity control is active any time the zone humidistat senses a moisture load. If Yes is selected, the model also verifies that the outdoor humidity ratio is less than the humidistat's zone air humidity ratio. This field is used only when the input field High Humidity Control is specified as Yes. The default value is \textbf{Yes}. +This choice field determines if high humidity control is activated based on high indoor relative humidity alone or is activated only when the indoor relative humidity is above the humidistat setpoint \emph{and} the indoor humidity ratio is greater than the outdoor humidity ratio. Valid choices are \textbf{Yes} and \textbf{No}. If No is selected, high humidity control is active any time the zone humidistat senses a moisture load. If Yes is selected, the model also verifies that the outdoor humidity ratio is less than the humidistat's zone air humidity ratio. This field is used only when the input field High Humidity Control is specified as Yes. The default value is \textbf{Yes}. \paragraph{Field: Heat Recovery Bypass Control Type}\label{field-heat-recovery-bypass-control-type} @@ -386,7 +386,7 @@ \subsubsection{Outputs}\label{outputs-005} \paragraph{Air System Outdoor Air Heat Recovery Bypass Minimum Outdoor Air Mixed Air Temperature {[}C{]}}\label{air-system-outdoor-air-heat-recovery-bypass-minimum-outdoor-air-mixed-air-temperature-c} -Reports the outdoor air mixer's mixed air node temperature at minimum outdoor air flow rate when the heat exchanger is disabled (off). This temperature is calculated as the return air temperature multiplied by the return air mass flow rate plus the mixer's inlet node temperature multipled by the minimum outdoor air flow rate. This quantity is then divided by the mixed air mass flow rate. If this temperature is less than the outdoor air mixer's mixed air node set point temperature, and the Heat Recovery Bypass Control Type = BypassWhenOAFlowGreaterThanMinimum, the outdoor air flow rate is set to the minimum. This output variable is only available when using Heat Recovery Bypass Control Type = BypassWhenOAFlowGreaterThanMinimum. +Reports the outdoor air mixer's mixed air node temperature at minimum outdoor air flow rate when the heat exchanger is disabled (off). This temperature is calculated as the return air temperature multiplied by the return air mass flow rate plus the mixer's inlet node temperature multiplied by the minimum outdoor air flow rate. This quantity is then divided by the mixed air mass flow rate. If this temperature is less than the outdoor air mixer's mixed air node set point temperature, and the Heat Recovery Bypass Control Type = BypassWhenOAFlowGreaterThanMinimum, the outdoor air flow rate is set to the minimum. This output variable is only available when using Heat Recovery Bypass Control Type = BypassWhenOAFlowGreaterThanMinimum. \paragraph{Air System Outdoor Air High Humidity Control Status {[]}}\label{air-system-outdoor-air-high-humidity-control-status} @@ -435,7 +435,7 @@ \subsubsection{Outputs}\label{outputs-005} \paragraph{Air System Outdoor Air Maximum Flow Fraction {[]}}\label{air-system-outdoor-air-maximum-flow-fraction} -Reports the average maximum limit of the outdoor air fraction for the outdoor air controller over the reporting interval. The maximum flow fraction is used to prevent DX cooling coils from freezing, specified by ASHRAE Stadard 90.1. This output variable is available when a corresponding SetpointManager:MixedAir object specifies optional inputs of Cooling Coil Inlet Node Name, Cooling coil Outlet Node Name, and Minimum Temperature at Cooling Coil Outlet Node. +Reports the average maximum limit of the outdoor air fraction for the outdoor air controller over the reporting interval. The maximum flow fraction is used to prevent DX cooling coils from freezing, specified by ASHRAE Standard 90.1. This output variable is available when a corresponding SetpointManager:MixedAir object specifies optional inputs of Cooling Coil Inlet Node Name, Cooling coil Outlet Node Name, and Minimum Temperature at Cooling Coil Outlet Node. \paragraph{Air System Outdoor Air Mechanical Ventilation Requested Mass Flow Rate {[}kg/s{]}}\label{air-system-mechvent-air-mass-flow-rate-kgs} @@ -592,7 +592,7 @@ \subsubsection{Inputs}\label{inputs-3-006} \paragraph{Field: High Humidity Control Flag}\label{field-high-humidity-control-flag} -This optional choice field establishes whether or not the supply and exhaust air flow rates are modified in response to high indoor relative humidity. Valid choices are Yes and No. If Yes is selected, the supply and exhaust air flow rates may be modified when the indoor relative humidity is above the humidstat set point. If No is selected, this option is disabled and the following three fields are not used. Note that heat exchange between the air streams is suspended during times when high humidity control is active. The default value is No. +This optional choice field establishes whether or not the supply and exhaust air flow rates are modified in response to high indoor relative humidity. Valid choices are Yes and No. If Yes is selected, the supply and exhaust air flow rates may be modified when the indoor relative humidity is above the humidistat set point. If No is selected, this option is disabled and the following three fields are not used. Note that heat exchange between the air streams is suspended during times when high humidity control is active. The default value is No. \paragraph{Field: Humidistat Control Zone Name}\label{field-humidistat-control-zone-name-1} @@ -604,7 +604,7 @@ \subsubsection{Inputs}\label{inputs-3-006} \paragraph{Field: Control High Indoor Humidity based on Outdoor Humidity Ratio}\label{field-control-high-indoor-humidity-based-on-outdoor-humidity-ratio-1} -This optional choice field determines if high humidity control is activated based on high indoor relative humidity alone or is activated only when the indoor relative humidity is above the humidstat set point \emph{and} the outdoor humidity ratio is less than the indoor humidity ratio. Valid choices are Yes and No. If No is selected, high humidity control is active any time the zone humidistat senses a moisture load. If yes is selected, the model also verifies that the outdoor humidity ratio is less than the humidistat's zone air humidity ratio. This field is used only when the High Humidity Control Flag is specified as Yes. The default value is Yes. +This optional choice field determines if high humidity control is activated based on high indoor relative humidity alone or is activated only when the indoor relative humidity is above the humidistat set point \emph{and} the outdoor humidity ratio is less than the indoor humidity ratio. Valid choices are Yes and No. If No is selected, high humidity control is active any time the zone humidistat senses a moisture load. If yes is selected, the model also verifies that the outdoor humidity ratio is less than the humidistat's zone air humidity ratio. This field is used only when the High Humidity Control Flag is specified as Yes. The default value is Yes. Following is an example input for this stand alone ERV controller object: diff --git a/doc/input-output-reference/src/overview/group-daylighting.tex b/doc/input-output-reference/src/overview/group-daylighting.tex index 43c25641a0e..340e6df8e8d 100644 --- a/doc/input-output-reference/src/overview/group-daylighting.tex +++ b/doc/input-output-reference/src/overview/group-daylighting.tex @@ -8,7 +8,7 @@ \section{Group -- Daylighting}\label{group-daylighting} \subsection{Daylighting:Controls}\label{daylightingcontrols-000} -When this object is used, daylighting illuminance levels are calculated and then used to determine how much the electric lighting can be reduced. The daylight illuminance level in a zone depends on many factors, including sky condition; sun position; calculation point; location, size, and glass transmittance of windows; window shading devices; and reflectance of interior surfaces. Reduction of electric lighting depends on daylight illuminance level, illuminance set point, fraction of zone controlled and type of lighting control. Two different methods of computing the daylighitng illuminance and subsequent lighting reduction called SplitFlux and DElight. After the object description below is are sections that describe the two methodologies in more detail. +When this object is used, daylighting illuminance levels are calculated and then used to determine how much the electric lighting can be reduced. The daylight illuminance level in a zone depends on many factors, including sky condition; sun position; calculation point; location, size, and glass transmittance of windows; window shading devices; and reflectance of interior surfaces. Reduction of electric lighting depends on daylight illuminance level, illuminance set point, fraction of zone controlled and type of lighting control. Two different methods of computing the daylighting illuminance and subsequent lighting reduction called SplitFlux and DElight. After the object description below is are sections that describe the two methodologies in more detail. \subsubsection{Inputs}\label{inputs-009} 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 d53e6a6a489..745b1b1333e 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 @@ -1,6 +1,6 @@ \section{Group -- Electric Load Center-Generator Specifications}\label{group-electric-load-center-generator-specifications} -This group of input objects is related to electric power serving the facility. EnergyPlus has models for various types of electric generators and power conditioning devices that might be part of the electric power system serving the building being modeled. Buildings with simple utility electric power service will not necesarily need any of the models in this group. All EnergyPlus models that have any electric power consumption are assumed to have a straightforward connection to utility grid service and no extra input is needed. The models in this group of inputs are useful for facilities that more complex electric power service such as: +This group of input objects is related to electric power serving the facility. EnergyPlus has models for various types of electric generators and power conditioning devices that might be part of the electric power system serving the building being modeled. Buildings with simple utility electric power service will not necessarily need any of the models in this group. All EnergyPlus models that have any electric power consumption are assumed to have a straightforward connection to utility grid service and no extra input is needed. The models in this group of inputs are useful for facilities that more complex electric power service such as: \begin{itemize} \tightlist @@ -228,7 +228,7 @@ \subsubsection{Inputs}\label{inputs-1-012} \paragraph{Field: Generator List Name}\label{field-generator-list-name} -This alpha field contains the identifying name for the list of generators in the set defined in an \hyperref[electricloadcentergenerators]{ElectricLoadCenter:Generators} object. All the generators connected to this load center need to be of the same type in terms of all AC or all DC. Currently the only DC generators are photovoltaic panels, the others are all AC. A facility with both AC and DC generators will need to use seperate ElectricLoadCenter:Distribution objects. The generator list named here can only be associated with one load center. This field can be left blank if there are no generators. +This alpha field contains the identifying name for the list of generators in the set defined in an \hyperref[electricloadcentergenerators]{ElectricLoadCenter:Generators} object. All the generators connected to this load center need to be of the same type in terms of all AC or all DC. Currently the only DC generators are photovoltaic panels, the others are all AC. A facility with both AC and DC generators will need to use separate ElectricLoadCenter:Distribution objects. The generator list named here can only be associated with one load center. This field can be left blank if there are no generators. \paragraph{Field: Generator Operation Scheme Type}\label{field-generator-operation-scheme-type} diff --git a/doc/input-output-reference/src/overview/group-energy-management-system-ems.tex b/doc/input-output-reference/src/overview/group-energy-management-system-ems.tex index 2abe6501c73..5032c5146a8 100644 --- a/doc/input-output-reference/src/overview/group-energy-management-system-ems.tex +++ b/doc/input-output-reference/src/overview/group-energy-management-system-ems.tex @@ -114,7 +114,7 @@ \subsubsection{Inputs}\label{inputs-2-012} \item BeginNewEnvironment. This calling point occurs near the beginning of each environment period. Environment periods include sizing periods such as design days and run periods. This calling point will not be useful for control actions but is useful for initialization of Erl program variables and other one-time set up actions for EMS. \item - BeginZoneTimestepBeforeSetCurrentWeather. This calling point occurs near the beginning of each timestep during weather data setup. It is called from ``ManageWeather'' before ``SetCurrentWeather'' which sets the environment variables for a given timstep. ``SetCurrentWeather'' is where the Weather Data actuators may override certain environment variables. Note that this calling point is not active during sizing. + BeginZoneTimestepBeforeSetCurrentWeather. This calling point occurs near the beginning of each timestep during weather data setup. It is called from ``ManageWeather'' before ``SetCurrentWeather'' which sets the environment variables for a given timestep. ``SetCurrentWeather'' is where the Weather Data actuators may override certain environment variables. Note that this calling point is not active during sizing. \item AfterNewEnvironmentWarmUpIsComplete. This calling point occurs at the beginning of each environment period but after warm up days are complete. Warm up days are used to condition the transient aspects of the model with the first day before proceeding. This calling point will not be useful for control actions but is useful for re-initializing Erl programs with fresh values after warm up is complete. Programs called from this point might be used to reset counters or summed variables that would change during warmup. \item @@ -130,7 +130,7 @@ \subsubsection{Inputs}\label{inputs-2-012} \item AfterPredictorAfterHVACManagers. This calling point happens each timestep after predictor executes and after the SetpointManager and AvailabilityManager models are called. This calling point is useful for a variety of control actions. However, if there are conflicts, SetpointManager or AvailabilityManager actions may be overwritten by EMS control actions. \item - InsideHVACSystemIterationLoop. This calling point happens each HVAC iteration. The HVAC systems solvers iterate to convergence within each timestep and this calling point is inside this iteration loop. This calling point is useful for a variety of control actions. Being inside the interation loop, this calling point has the advantage that input data need not necessarily be lagged from prior timestep results and can, in some cases, improve the accuracy of controls. The disadvantage is that programs may run an excessive number of times slowing down the execution of the program. + InsideHVACSystemIterationLoop. This calling point happens each HVAC iteration. The HVAC systems solvers iterate to convergence within each timestep and this calling point is inside this iteration loop. This calling point is useful for a variety of control actions. Being inside the iteration loop, this calling point has the advantage that input data need not necessarily be lagged from prior timestep results and can, in some cases, improve the accuracy of controls. The disadvantage is that programs may run an excessive number of times slowing down the execution of the program. \item EndOfZoneTimestepBeforeZoneReporting. This calling point happens each zone timestep just before the output reports are updated for zone-timestep variables and meters. This calling point is useful for custom output variables with Zone frequency because they will be in sync with the rest of the zone output variables. \item @@ -142,7 +142,7 @@ \subsubsection{Inputs}\label{inputs-2-012} \item EndOfZoneSizing. This calling point happens once during each simulation and only if the run is set to do zone sizing. The calling point occurs just after the native zone sizing calculations are completed but before the sizing results are finalized. This calling point is useful for taking the intermediate results of zone sizing calculations and modifying them based on custom calculations. \item - EndOfSystemSizing. This calling pont happens once during each simulation and only if the run is set to do system sizing. The calling point occurs just after the native air system sizing calculations are completed but before the sizing results are finalized. This calling point is useful for taking the intermediate results of zone and system sizing calculations and modifying them based on custom calculations. + EndOfSystemSizing. This calling point happens once during each simulation and only if the run is set to do system sizing. The calling point occurs just after the native air system sizing calculations are completed but before the sizing results are finalized. This calling point is useful for taking the intermediate results of zone and system sizing calculations and modifying them based on custom calculations. \item AfterComponentInputReadIn. This calling point occurs early in the simulation when HVAC component s input data has been processed but before any component-level calculations for automatic sizing. This calling point occurs once for each of the types of HVAC components that have EMS actuators for autosize overrides. This calling point is not directly useful for control actions but is useful for overriding the results of sizing at the component level. \item @@ -367,7 +367,7 @@ \subsubsection{Inputs}\label{inputs-6-008} CWcoil1_tot_cool_Power, !- EMS Variable Name Averaged, !- Type of Data in Variable SystemTimestep, !- Update Frequency - MainCWCoil1_ModelOuput, !- EMS Program or Subroutine Name + MainCWCoil1_Modeloutput, !- EMS Program or Subroutine Name W; !- Units \end{lstlisting} @@ -504,7 +504,7 @@ \subsubsection{Field: Units}\label{field-units-1} Zone 1 WinAC Electricity Consumption, !- Name Zone1WinAC_ElectEnergy, !- EMS Variable Name SystemTimestep, !- Update Frequency - Zone1_WinAC_ModelOuput, !- EMS Program or Subroutine Name + Zone1_WinAC_Modeloutput, !- EMS Program or Subroutine Name Electricity, !- Resource Type HVAC, !- Group Type Cooling, !- End-Use Category @@ -562,7 +562,7 @@ \subsubsection{Inputs}\label{inputs-8-006} \paragraph{Field: Internal Data Type}\label{field-internal-data-type} -This field defines the type of internal data source that is to be mapped to the EMS variable. The types of internal source data that can be used as internal variables are listed in the EIO output file whan an input file has any EMS-related objects. +This field defines the type of internal data source that is to be mapped to the EMS variable. The types of internal source data that can be used as internal variables are listed in the EIO output file when an input file has any EMS-related objects. An example of this object follows. diff --git a/doc/input-output-reference/src/overview/group-evaporative-coolers.tex b/doc/input-output-reference/src/overview/group-evaporative-coolers.tex index 4d08872cc71..f2c497b7372 100644 --- a/doc/input-output-reference/src/overview/group-evaporative-coolers.tex +++ b/doc/input-output-reference/src/overview/group-evaporative-coolers.tex @@ -103,7 +103,7 @@ \subsubsection{Outputs} \paragraph{Evaporative Cooler Wet Bulb Effectiveness}\label{evaporative-cooler-wet-bulb-effectiveness} -The effectivenss, or saturation efficiency, is the temperature change of the supply air divided by the difference between the inlet air dry-bulb and wet-bulb temperatures. In other words, it is a measure of the approach to the inlet air wet-bulb temperature. +The effectiveness, or saturation efficiency, is the temperature change of the supply air divided by the difference between the inlet air dry-bulb and wet-bulb temperatures. In other words, it is a measure of the approach to the inlet air wet-bulb temperature. \paragraph{Evaporative Cooler Electricity Rate {[}W{]}}\label{evaporative-cooler-electric-powerw} @@ -125,11 +125,11 @@ \subsubsection{Outputs} \paragraph{Evaporative Cooler Starved Water Volume {[}m3{]}}\label{evaporative-cooler-starved-water-volume-m3} -This is the water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \paragraph{Evaporative Cooler Starved Mains Water Volume {[}m3{]}}\label{evaporative-cooler-starved-mains-water-volume-m3} -This is the source (mains) of water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the source (mains) of water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \subsection{EvaporativeCooler:Direct:ResearchSpecial}\label{evaporativecoolerdirectresearchspecial} @@ -282,11 +282,11 @@ \subsubsection{Outputs}\label{outputs-1-009} \paragraph{Evaporative Cooler Starved Water Volume {[}m3{]}}\label{evaporative-cooler-starved-water-volume-m3-1} -This is the water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \paragraph{Evaporative Cooler Starved Mains Water Volume {[}m3{]}}\label{evaporative-cooler-starved-mains-water-volume-m3-1} -This is the source (mains) of water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the source (mains) of water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \subsection{EvaporativeCooler:Indirect:CelDekPad}\label{evaporativecoolerindirectceldekpad} @@ -440,11 +440,11 @@ \subsubsection{Outputs}\label{outputs-2-008} \paragraph{Evaporative Cooler Starved Water Volume {[}m3{]}}\label{evaporative-cooler-starved-water-volume-m3-2} -This is the water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \paragraph{Evaporative Cooler Starved Mains Water Volume {[}m3{]}}\label{evaporative-cooler-starved-mains-water-volume-m3-2} -This is the source (mains) of water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the source (mains) of water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \subsection{EvaporativeCooler:Indirect:WetCoil}\label{evaporativecoolerindirectwetcoil} @@ -587,11 +587,11 @@ \subsubsection{Outputs}\label{outputs-3-006} \paragraph{Evaporative Cooler Starved Water Volume {[}m3{]}}\label{evaporative-cooler-starved-water-volume-m3-3} -This is the water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \paragraph{Evaporative Cooler Starved Mains Water Volume {[}m3{]}}\label{evaporative-cooler-starved-mains-water-volume-m3-3} -This is the source (mains) of water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the source (mains) of water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \subsection{EvaporativeCooler:Indirect:ResearchSpecial}\label{evaporativecoolerindirectresearchspecial} @@ -619,7 +619,7 @@ \subsubsection{Inputs}\label{inputs-4-011} \paragraph{Field: Cooler Drybulb Design Effectiveness}\label{field-cooler-drybulb-design-effectiveness} -This numeric field is the dry bulb design effectiveness of the evaporative cooler. This is the nominal design dry blub effectiveness with respect to the dry bulb temperature difference, i.e., dry operation at design air flow rates, and no water evaporation or spraying on the secondary side. +This numeric field is the dry bulb design effectiveness of the evaporative cooler. This is the nominal design dry bulb effectiveness with respect to the dry bulb temperature difference, i.e., dry operation at design air flow rates, and no water evaporation or spraying on the secondary side. \paragraph{Field Drybulb Effectiveness Flow Ratio Modifier Curve Name}\label{field-drybulb-effectiveness-flow-ratio-modifier-curve-name} @@ -756,7 +756,7 @@ \subsubsection{Outputs}\label{outputs-4-004} \item HVAC,Average,Evaporative Cooler Dewpoint Bound Status \item - HVAC,Average,Evaporative Cooler Operating Mode Satus {[]} + HVAC,Average,Evaporative Cooler Operating Mode Status {[]} \item HVAC,Sum,Evaporative Cooler Electricity Energy {[}J{]} \item @@ -771,7 +771,7 @@ \subsubsection{Outputs}\label{outputs-4-004} \paragraph{Evaporative Cooler Total Stage Effectiveness {[]}}\label{evaporative-cooler-total-stage-effectiveness-2} -The Total Stage Efficiency is defined as the temperature change of the supply air divided by the difference between the primary air entering dry-bulb temperature and the secondary air enterig wet-bulb temperature for wet operating mode or the the difference between the primary air entering dry-bulb temperature and the secondary air enterig dry-bulb temperature for dry operating mode, including the effect of the reduction in flow because of the secondary air stream. In other words, it is a measure of the approach to the secondary air wet-bulb temperature for wet operating mode, or it is a measure of the approach to the secondary air entering dry-bulb temperature for dry operating mode. +The Total Stage Efficiency is defined as the temperature change of the supply air divided by the difference between the primary air entering dry-bulb temperature and the secondary air entering wet-bulb temperature for wet operating mode or the the difference between the primary air entering dry-bulb temperature and the secondary air entering dry-bulb temperature for dry operating mode, including the effect of the reduction in flow because of the secondary air stream. In other words, it is a measure of the approach to the secondary air wet-bulb temperature for wet operating mode, or it is a measure of the approach to the secondary air entering dry-bulb temperature for dry operating mode. \paragraph{Evaporative Cooler Operating Mode Status {[]}}\label{evaporative-cooler-operating-mode-status} @@ -783,7 +783,7 @@ \subsubsection{Outputs}\label{outputs-4-004} \paragraph{Evaporative Cooler Dewpoint Bound Status {[]}}\label{evaporative-cooler-dewpoint-bound-status} -This output variable is a flag that indicates if the modeling was based on dewpoint effectivenss rather than wetbulb effectiveness The ResearchSpecial model is usually based on wet-bulb approach, but since values in excess of 1.0 are allowed, there is a secondary constraint imposed by dewpoint. If the dewpoint effectiveness was applied, then this flag variable will have the value 1.0, otherwise it is 0.0. +This output variable is a flag that indicates if the modeling was based on dewpoint effectiveness rather than wetbulb effectiveness The ResearchSpecial model is usually based on wet-bulb approach, but since values in excess of 1.0 are allowed, there is a secondary constraint imposed by dewpoint. If the dewpoint effectiveness was applied, then this flag variable will have the value 1.0, otherwise it is 0.0. \paragraph{Evaporative Cooler Electricity Rate {[}W{]}}\label{evaporative-cooler-electric-power-w-1} @@ -805,8 +805,8 @@ \subsubsection{Outputs}\label{outputs-4-004} \paragraph{Evaporative Cooler Starved Water Volume {[}m3{]}}\label{evaporative-cooler-starved-water-volume-m3-4} -This is the water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. \paragraph{Evaporative Cooler Starved Mains Water Volume {[}m3{]}}\label{evaporative-cooler-starved-mains-water-volume-m3-4} -This is the source (mains) of water consumed by the evaporative cooler that could not accually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. +This is the source (mains) of water consumed by the evaporative cooler that could not actually be met by the storage tank. This output variable appears when storage tank water is supplied to the cooler. diff --git a/doc/input-output-reference/src/overview/group-fans.tex b/doc/input-output-reference/src/overview/group-fans.tex index 408c609e190..0403256412a 100644 --- a/doc/input-output-reference/src/overview/group-fans.tex +++ b/doc/input-output-reference/src/overview/group-fans.tex @@ -1,6 +1,6 @@ \section{Group -- Fans}\label{group-fans} -As of version 8.7, a new simple "\hyperref[fansystemmodel]{Fan:SystemModel}" input object was added that can be substitued for \hyperref[fanconstantvolume]{Fan:ConstantVolume}, \hyperref[fanonoff]{Fan:OnOff}, \hyperref[fanvariablevolume]{Fan:VariableVolume}, and \hyperref[fanperformancenightventilation]{FanPerformance:NightVentilation}. Users are encouraged to migrate their models to use this new Fan in the air loop or zone equipment because the original fan objects may be deprecated and eventually removed in the future. +As of version 8.7, a new simple "\hyperref[fansystemmodel]{Fan:SystemModel}" input object was added that can be substituted for \hyperref[fanconstantvolume]{Fan:ConstantVolume}, \hyperref[fanonoff]{Fan:OnOff}, \hyperref[fanvariablevolume]{Fan:VariableVolume}, and \hyperref[fanperformancenightventilation]{FanPerformance:NightVentilation}. Users are encouraged to migrate their models to use this new Fan in the air loop or zone equipment because the original fan objects may be deprecated and eventually removed in the future. The following fans may be defined either in the air loop or as a zone equipment component: \hyperref[fanconstantvolume]{Fan:ConstantVolume}, \hyperref[fanonoff]{Fan:OnOff}, \hyperref[fanvariablevolume]{Fan:VariableVolume}, \hyperref[fanzoneexhaust]{Fan:ZoneExhaust}, and \hyperref[fanperformancenightventilation]{FanPerformance:NightVentilation}. The data that are common to these fan types include an identifying name, an availability schedule name, a total efficiency rating, a rated pressure rise, and inlet and outlet air node names. In the case of a variable volume fan, additional input includes parameters for modeling fan performance over a range of fan speeds. See the engineering documentation for the variable speed fan for a further description of what these coefficients represent. Commonly-used values for different variable volume systems are shown in the following table. @@ -80,7 +80,7 @@ \subsubsection{Inputs}\label{inputs-fansysmodel} When PowerPerFlow is selected, the value entered in the input field called Electric Power Per Unit Flow Rate is used to size the Design Electric Power Consumption. This method is useful during early-phase design modeling when little information is available for determining the Design Pressure Rise. Although the pressure rise is not used to size the Design Electric Power Consumption it is still used to determine the heat added to the air stream as a result of the work done by the fan. When PowerPerFlowPerPressure is selected, the value entered in the input field called Electric Power Per Unit Flow Rate Per Unit Pressure is used to size the power. This method takes into account the Design Pressure Rise when sizing the Design Electric Power Consumption. -When TotalEfficiencyAndPressure is selected, the values entered in the input fields called Fan Total Efficiency and Design Pressure Rise are used to size the power. This is the legacy method used by the older fan objects prior to verson 8.6. +When TotalEfficiencyAndPressure is selected, the values entered in the input fields called Fan Total Efficiency and Design Pressure Rise are used to size the power. This is the legacy method used by the older fan objects prior to version 8.6. \paragraph{Field: Electric Power Per Unit Flow Rate}\label{field-power-per-unit-flow-fansysmodel} diff --git a/doc/input-output-reference/src/overview/group-heat-recovery.tex b/doc/input-output-reference/src/overview/group-heat-recovery.tex index 448b0bff94a..e260ced39fa 100644 --- a/doc/input-output-reference/src/overview/group-heat-recovery.tex +++ b/doc/input-output-reference/src/overview/group-heat-recovery.tex @@ -177,7 +177,7 @@ \subsubsection{Outputs}\label{outputs-014} \paragraph{Heat Exchanger Electricity Energy {[}J{]}}\label{heat-exchanger-electric-energy-j} -This output is the electric consumption of the unit in Joules for the timestep being reported. This ouput is also added to a meter with ResourceType = Electricity, EndUseKey = HeatRecovery, GroupKey = System (ref. Output:Meter objects). +This output is the electric consumption of the unit in Joules for the timestep being reported. This output is also added to a meter with ResourceType = Electricity, EndUseKey = HeatRecovery, GroupKey = System (ref. Output:Meter objects). \subsection{HeatExchanger:AirToAir:SensibleAndLatent}\label{heatexchangerairtoairsensibleandlatent} @@ -513,7 +513,7 @@ \subsubsection{Outputs}\label{outputs-1-012} \paragraph{Heat Exchanger Electricity Energy {[}J{]}}\label{heat-exchanger-electric-energy-j-1} -This output is the electric consumption of the unit in Joules for the timestep being reported. This ouput is also added to a meter with ResourceType = Electricity, EndUseKey = HeatRecovery, GroupKey = System (ref. Output:Meter objects). +This output is the electric consumption of the unit in Joules for the timestep being reported. This output is also added to a meter with ResourceType = Electricity, EndUseKey = HeatRecovery, GroupKey = System (ref. Output:Meter objects). \paragraph{Heat Exchanger Sensible Effectiveness {[]}}\label{heat-exchanger-sensible-effectiveness} @@ -691,7 +691,7 @@ \subsubsection{Outputs}\label{outputs-2-010} \paragraph{Heat Exchanger Electricity Energy {[}J{]}}\label{heat-exchanger-electric-energy-j-2} -This output is the electric consumption of the unit in Joules for the timestep being reported. This ouput is also added to a meter with ResourceType = Electricity, EndUseKey = HeatRecovery, GroupKey = System (ref. Output:Meter objects). +This output is the electric consumption of the unit in Joules for the timestep being reported. This output is also added to a meter with ResourceType = Electricity, EndUseKey = HeatRecovery, GroupKey = System (ref. Output:Meter objects). \subsection{HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1}\label{heatexchangerdesiccantbalancedflowperformancedatatype1} diff --git a/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex b/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex index 2633c4b35da..118f4eac117 100644 --- a/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex +++ b/doc/input-output-reference/src/overview/group-heating-and-cooling-coils.tex @@ -10,7 +10,7 @@ \section{Group Heating and Cooling Coils}\label{group-heating-and-cooling-coils} \subsection{Coil:Cooling:Water}\label{coilcoolingwater} -The water cooling coil (Coil:Cooling:Water) has the ability to give detailed output with simplified inputs, inputting complicated coil geometry is not required by the user for this model instead the coil is sized in terms of auto-sizeable thermodynamic inputs. The coil requires thermodynamic inputs such as temperatures, mass flow rates and humidity ratios. +The water cooling coil (Coil:Cooling:Water) has the ability to give detailed output with simplified inputs, inputting complicated coil geometry is not required by the user for this model instead the coil is sized in terms of auto-sizable thermodynamic inputs. The coil requires thermodynamic inputs such as temperatures, mass flow rates and humidity ratios. The coil is sized using auto-sized/user design input conditions and the UA values are calculated from the design conditions. A rough estimate of the coil area is provided along with percentage of surface wet and/or dry. This model uses the NTU-effectiveness approach to model heat transfer and has two types of flow arrangements cross-flow or counter-flow. @@ -531,11 +531,11 @@ \subsubsection{Water Side Economizer Mode}\label{water-side-economizer-mode} \subsubsection{Wrap Around Water Coil Heat Recovery Mode}\label{wrap-around-water-coil-heat-recovery-mode} -This coil system may also be used to model a wrap-around water coil heat recovery system where a water coil system object is in one air stream (e.g., the outdoor air stream) while another cooling coil object is in a seperate air stream (e.g., exhaust air stream). The two water coils are connected in series on the demand side of a plant loop where the CoilSystem:Cooling:Water object is upstream of the Coil:Cooling:Water object. For wrap-around heat recovery coils, the supply side of the plant will typically have only a pump to circulate the water.\par +This coil system may also be used to model a wrap-around water coil heat recovery system where a water coil system object is in one air stream (e.g., the outdoor air stream) while another cooling coil object is in a separate air stream (e.g., exhaust air stream). The two water coils are connected in series on the demand side of a plant loop where the CoilSystem:Cooling:Water object is upstream of the Coil:Cooling:Water object. For wrap-around heat recovery coils, the supply side of the plant will typically have only a pump to circulate the water.\par The CoilSystemCooling:Water object is the main controller for the heat recovery loop. Neither this object or other coils in the heat recovery loop require an external controller (Ref: \hyperref[controllerwatercoil]{Controller:WaterCoil}). Do not specify a controller for this object or the associated water coil elsewhere in the input. This object checks that the water coil entering water (fluid) temperature to coil entering air temperature absolute difference is greater than the user specified temperature offset, otherwise the system is disabled. The water loop temperature entering the coil system's coil will be maintained between the entering air temperatures of the water coils (e.g., midway between the outdoor air temperature and exhaust air temperature if the coils are used in the outdoor air system). The coil system will be disabled if the plant loop water temperature falls below the minimum allowed heat recovery loop water temperature (Ref. field \hyperref[field-minimum-water-loop-temperature-for-heat-recovery]{Minimum Water Loop Temperature For Heat Recover}). Figure~\ref{fig:wrap-around-water-coil-heat-recovery-system-in-outdoor-air-system} shows a wrap-around heat recovery coil system in the outdoor air and relief air streams of the outdoor air system. -\textbf{Note - although a \hyperref[plantloop]{PlantLoop} temperature setpoint node name and associated set point manager is required, that set point will not be used.} +\textbf{Note - although a \hyperref[plantloop]{PlantLoop} temperature setpoint node name and associated set point manager is required, that set point will not be used.} \begin{figure}[hbtp] % fig 143 \centering @@ -639,7 +639,7 @@ \subsubsection{Inputs}\label{inputs} Yes, !- Run on Sensible Load Yes, !- Run on Latent Load 3.0; !- Minimum Air To Water Temperature Offset - + \end{lstlisting} @@ -2048,13 +2048,13 @@ \subsection{Coil:Cooling:DX:SingleSpeed}\label{coilcoolingdxsinglespeed} \item The total cooling capacity modifier curve (function of temperature) is a curve with two independent variables: wet-bulb temperature of the air entering the cooling coil, and dry-bulb temperature of the air entering the air-cooled condenser coil (wet-bulb temperature if modeling an evaporative-cooled condenser). The curve is normalized to 1 at 19.44$^\circ$C indoor wet-bulb temperature and 35$^\circ$C outdoor dry-bulb temperature. The output of this curve is multiplied by the gross rated total cooling capacity to give the gross total cooling capacity at specific temperature operating conditions (i.e., at temperatures different from the rating point temperatures). This curve is typically a biquadratic but any curve or table with two independent variables can be used. \item - The total cooling capacity modifier curve (function of flow fraction) is a curve or lookup table with the independent variable being the ratio of the actual air flow rate across the cooling coil to the rated air flow rate (i.e., fraction of full load flow). The curve is normalized to have the value of 1.0 when the actual air flow rate equals the rated air flow rate. The output of this curve is multiplied by the gross rated total cooling capacity and the total cooling capacity modifier curve (function of temperature) to give the gross total cooling capacity at the specific temperature and air flow conditions at which the coil is operating. This curve is typically a quadratic or cubic but any curve or table with one independent variablecan be used. + The total cooling capacity modifier curve (function of flow fraction) is a curve or lookup table with the independent variable being the ratio of the actual air flow rate across the cooling coil to the rated air flow rate (i.e., fraction of full load flow). The curve is normalized to have the value of 1.0 when the actual air flow rate equals the rated air flow rate. The output of this curve is multiplied by the gross rated total cooling capacity and the total cooling capacity modifier curve (function of temperature) to give the gross total cooling capacity at the specific temperature and air flow conditions at which the coil is operating. This curve is typically a quadratic or cubic but any curve or table with one independent variable can be used. \item The energy input ratio (EIR) modifier curve (function of temperature) is a curve with two independent variables: wet-bulb temperature of the air entering the cooling coil, and dry-bulb temperature of the air entering the air-cooled condenser coil (wet-bulb temperature if modeling an evaporative-cooled condenser). The curve is normalized to 1 at 19.44$^\circ$C indoor wet-bulb temperature and 35$^\circ$C outdoor dry-bulb temperature. The output of this curve is multiplied by the rated EIR (inverse of the rated COP) to give the EIR at specific temperature operating conditions (i.e., at temperatures different from the rating point temperatures). This curve is typically a biquadratic but any curve or table with two independent variables can be used. \item - The energy input ratio (EIR) modifier curve (function of flow fraction) is a curve or lookup table with the independent variable being the ratio of the actual air flow rate across the cooling coil to the rated air flow rate (i.e., fraction of full load flow). The curve is normalized to have the value of 1.0 when the actual air flow rate equals the rated air flow rate. The output of this curve is multiplied by the rated EIR (inverse of the rated COP) and the EIR modifier curve (function of temperature) to give the EIR at the specific temperature and air flow conditions at which the coil is operating. This curve is typically a quadratic or cubic but any curve or table with one independent variablecan be used. + The energy input ratio (EIR) modifier curve (function of flow fraction) is a curve or lookup table with the independent variable being the ratio of the actual air flow rate across the cooling coil to the rated air flow rate (i.e., fraction of full load flow). The curve is normalized to have the value of 1.0 when the actual air flow rate equals the rated air flow rate. The output of this curve is multiplied by the rated EIR (inverse of the rated COP) and the EIR modifier curve (function of temperature) to give the EIR at the specific temperature and air flow conditions at which the coil is operating. This curve is typically a quadratic or cubic but any curve or table with one independent variable can be used. \item - The part load fraction correlation (function of part load ratio) is a curve or a lookup table with the independent variable being part load ratio (sensible cooling load / steady-state sensible cooling capacity). The output of this curve is used in combination with the rated EIR and EIR modifier curves to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The curve should be normalized to a value of 1.0 when the part-load ratio equals 1.0 (i.e., the compressor(s) run continuously for the simulation timestep). This curve is typically a quadratic or cubic but any curve or table with one independent variablecan be used. + The part load fraction correlation (function of part load ratio) is a curve or a lookup table with the independent variable being part load ratio (sensible cooling load / steady-state sensible cooling capacity). The output of this curve is used in combination with the rated EIR and EIR modifier curves to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The curve should be normalized to a value of 1.0 when the part-load ratio equals 1.0 (i.e., the compressor(s) run continuously for the simulation timestep). This curve is typically a quadratic or cubic but any curve or table with one independent variable can be used. \end{enumerate} The curves are simply specified by name. Curve inputs are described in the curve manager section of this document (see Performance Curves in this document). @@ -2095,7 +2095,7 @@ \subsubsection{Inputs}\label{inputs-13-004} \paragraph{Field: 2017 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2017 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER: 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation; 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. Note 3: SEER User, SEER Standard, EER, and IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 210-240 (2017). @@ -2103,7 +2103,7 @@ \subsubsection{Inputs}\label{inputs-13-004} \paragraph{Field: 2023 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2023 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER2. 'SEER2 User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER2 Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. Note 3: SEER2 User, SEER2 Standard, EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr - will be calculated according to ANSI/AHRI standard 210-240 (2023). @@ -2135,7 +2135,7 @@ \subsubsection{Inputs}\label{inputs-13-004} \paragraph{Field: Part Load Fraction Correlation Curve Name}\label{field-part-load-fraction-correlation-curve-name-2} -This alpha field defines the name of a performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the DX unit as a function of the part load ratio (PLR, sensible cooling load/steady-state sensible cooling capacity). The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. This curve is typically a quadratic or cubic but any curve or table with one independent variablecan be used. +This alpha field defines the name of a performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the DX unit as a function of the part load ratio (PLR, sensible cooling load/steady-state sensible cooling capacity). The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. This curve is typically a quadratic or cubic but any curve or table with one independent variable can be used. The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor(s) run continuously for the simulation timestep). For PLR values between 0 and 1 (0 \textless{}= PLR \textless{} 1), the following rules apply: @@ -2326,7 +2326,7 @@ \subsubsection{Inputs}\label{inputs-14-004} \paragraph{Field: High Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2017 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER: 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation; 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. Note 3: SEER User, SEER Standard, EER, and IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 210-240 (2017). @@ -2334,7 +2334,7 @@ \subsubsection{Inputs}\label{inputs-14-004} \paragraph{Field: High Speed 2023 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2023 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER2. 'SEER2 User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER2 Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. Note 3: SEER2 User, SEER2 Standard, EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr - will be calculated according to ANSI/AHRI standard 210-240 (2023). @@ -2411,7 +2411,7 @@ \subsubsection{Inputs}\label{inputs-14-004} \paragraph{Field: Low Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Single Speed DX Cooling Coil, Standard Ratings) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER and Standard Rating Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Single Speed DX Cooling Coil, Standard Ratings) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER and Standard Rating Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: two values are calculated for SEER. 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. Note 2: SEER2 and Standard Rating (Net) Cooling Capacity -- will only be reported for coils with cooling capacity less than 65,000 Btu/hr - according to ANSI/AHRI standard 210-240 (2013). Note 3: EER and IEER with cooling capacities less than 65,000 Btu/hr will be calculated according to ANSI/AHRI standard 210-240 (2017). @@ -2419,7 +2419,7 @@ \subsubsection{Inputs}\label{inputs-14-004} \paragraph{Field: Low Speed 2023 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Single Speed DX Cooling Coil, Standard Ratings) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER and Standard Rating Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Single Speed DX Cooling Coil, Standard Ratings) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER and Standard Rating Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: two values are calculated for SEER. 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. Note 2: SEER2 and Standard Rating (Net) Cooling Capacity -- will only be reported for coils with cooling capacity less than 65,000 Btu/hr - according to ANSI/AHRI standard 210-240 (2023). Note 3: EER and IEER with cooling capacities less than 65,000 Btu/hr will be calculated according to ANSI/AHRI standard 210-240 (2023). @@ -2858,7 +2858,7 @@ \subsubsection{Inputs}\label{inputs-16-003} \paragraph{Field: Speed \textless{}X\textgreater{} 2017 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2017 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER: 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation; 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. Note 3: SEER User, SEER Standard, EER, and IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 210-240 (2017). @@ -2866,7 +2866,7 @@ \subsubsection{Inputs}\label{inputs-16-003} \paragraph{Field: Speed \textless{}X\textgreater{} 2023 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2023 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER2. 'SEER2 User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER2 Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. Note 3: SEER2 User, SEER2 Standard, EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr - will be calculated according to ANSI/AHRI standard 210-240 (2023). @@ -3065,7 +3065,7 @@ \subsubsection{Inputs}\label{inputs-16-003} HPACCOOLEIRFT Speed 4, !- Speed 4 Energy Input Ratio Modifier Curve (temperature) HPACCOOLEIRFF Speed 4, !- Speed 4 Energy Input Ratio Modifier Curve (flow fraction) HPACCOOLPLFFPLR Speed 1, !- Speed 4 Part Load Fraction Correlation (part load ratio) - 1000.0, !- Speed 4 ominal Time for Condensate Removal to Begin {s} + 1000.0, !- Speed 4 Nominal Time for Condensate Removal to Begin {s} 1.5, !- Speed 4 Ratio of Initial Moisture Evaporation Rate and Steady-state Capacity {dimensionless} 3.0, !- Speed 4 Maximum ON/OFF Cycling Rate {cycles/hr} 45.0, !- Speed 4 Latent Capacity Time Constant {s} @@ -3329,6 +3329,30 @@ \subsubsection{Inputs}\label{inputs-17-001} This numeric field defines ratio of the initial moisture evaporation rate from the cooling coil (when the compressor first turns off, in Watts) and the coil's steady-state latent capacity (Watts) at rated airflow and temperature conditions. Suggested value is 1.5; zero value means the latent degradation model is disabled. The default value for this field is zero. +\paragraph{Field: Maximum Cycling Rate}\label{field-maximum-cycling-rate-vs} + +This numeric field contains the maximum on-off cycling rate for the compressor, which occurs at 50\% run time fraction. Suggested values are shown in Figure~\ref{fig:suggested-values-for-maximum-cycling-rate-vs}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image295.png} +\caption{Suggested values for maximum cycling rate \protect \label{fig:suggested-values-for-maximum-cycling-rate-vs}} +\end{figure} + +\paragraph{Field: Latent Capacity Time Constant}\label{field-heat-pump-time-constant-vs} + +This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown in Figure~\ref{fig:suggested-values-for-heat-pump-time-constant-vs}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image296.png} +\caption{Suggested values for latent capacity time constant \protect \label{fig:suggested-values-for-heat-pump-time-constant-vs}} +\end{figure} + +\paragraph{Field: Fan Delay Time}\label{field-heat-pump-fan-delay-time-vs} + +This numeric field contains the time delay for the heat pump supply air fan to shut off after the compressor cycles off in seconds. This value can be obtained from the manufacturer or the heat pump catalog. Enter a value of zero when the heat pump's fan operating mode is continuous. Suggested value is 60 seconds. + \paragraph{Field: Part Load Fraction Correlation Curve Name}\label{field-part-load-fraction-correlation-curve-name-4} This alpha field defines the name of a quadratic or cubic performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the unit as a function of the part load ratio (PLR, sensible or latent load/steady-state sensible or latent cooling capacity for Speed 1), in the case that the unit operates under the lowest speed, i.e.~on/off. The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep for Speed 1. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor(s) run continuously for the simulation timestep). @@ -3401,7 +3425,7 @@ \subsubsection{Inputs}\label{inputs-17-001} \paragraph{Field: Speed \textless{}X\textgreater{} 2017 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2017 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER: 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation; 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. Note 3: SEER User, SEER Standard, EER, and IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 210-240 (2017). @@ -3409,7 +3433,7 @@ \subsubsection{Inputs}\label{inputs-17-001} \paragraph{Field: Speed \textless{}X\textgreater{} 2023 Rated Evaporator Fan Power Per Volume Flow Rate} -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. +This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. Note 1: Standard Ratings using this field will be reported in the "2023 Standard Ratings for DX Coils" table Note 2: two values are calculated for SEER2. 'SEER2 User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER2 Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. Note 3: SEER2 User, SEER2 Standard, EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr - will be calculated according to ANSI/AHRI standard 210-240 (2023). @@ -3453,6 +3477,9 @@ \subsubsection{Inputs}\label{inputs-17-001} 1.7, !- Rated Air Flow Rate {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate {cylcles/hr} + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name , ! - Condenser Air Inlet Node Name AirCooled, ! - Condenser Type @@ -4645,11 +4672,11 @@ \subsubsection{Outputs}\label{outputs-16} \paragraph{Heating Coil Crankcase Heater Electricity Rate {[}W{]}}\label{heating-coil-crankcase-heater-electric-power-w-1} -This is the average electricity consumption rate of the DX coil compressor's crankcase heater in Watts for the timestep being reported. When a companion cooling coil exits, the crankcase heater power of the companion cool coil is alos reported in this variable. +This is the average electricity consumption rate of the DX coil compressor's crankcase heater in Watts for the timestep being reported. When a companion cooling coil exits, the crankcase heater power of the companion cool coil is also reported in this variable. \paragraph{Heating Coil Crankcase Heater Electricity Energy {[}J{]}}\label{heating-coil-crankcase-heater-electric-energy-j-1} -This is the electricity consumption of the DX coil compressor's crankcase heater in Joules for the timestep being reported. This output is also added to a meter with Resource Type = Electricity, End Use Key = Heating, Group Key = System (ref. Output:Meter objects). When a companion cooling coil exits, the crankcase heater power of the companion cool coil is alos reported in this variable. +This is the electricity consumption of the DX coil compressor's crankcase heater in Joules for the timestep being reported. This output is also added to a meter with Resource Type = Electricity, End Use Key = Heating, Group Key = System (ref. Output:Meter objects). When a companion cooling coil exits, the crankcase heater power of the companion cool coil is also reported in this variable. \paragraph{Heating Coil Runtime Fraction {[]}} @@ -4782,7 +4809,7 @@ \subsubsection{Inputs}\label{inputs-21-001} \paragraph{Field: Speed \textless{}x\textgreater{} Reference Unit Gross Rated Heating COP}\label{field-speed-x-reference-unit-gross-rated-heating-cop} -This numeric field defines the coefficient of performance (COP = gross heating capacityin watts divided by electrical power input in watts) of the heating coil unit at rated conditions for Speed \textless{}x\textgreater{} operation. The value entered here must be greater than 0. The input power includes power for the compressor(s), the outdoor coil fan and accessories, but does not include the power consumption of the indoor supply air fan. The gross COP should NOT account for the supply air fan. +This numeric field defines the coefficient of performance (COP = gross heating capacity in watts divided by electrical power input in watts) of the heating coil unit at rated conditions for Speed \textless{}x\textgreater{} operation. The value entered here must be greater than 0. The input power includes power for the compressor(s), the outdoor coil fan and accessories, but does not include the power consumption of the indoor supply air fan. The gross COP should NOT account for the supply air fan. \paragraph{Field: Speed \textless{}x\textgreater{} Reference Unit Rated Air Flow Rate}\label{field-speed-x-reference-unit-rated-air-flow-rate-1} @@ -5256,7 +5283,7 @@ \subsection{CoilSystem:Cooling:DX}\label{coilsystemcoolingdx} The CoilSystem:Cooling:DX object is a virtual container component that consists of a DX cooling coil component and its associated controls, as shown in the Figure below. This control object supports several different types of DX cooling coils (see field Cooling Coil Object Type). -This component may be used as a cooling coil in constant volume or variable volume systems, as blow through or draw through, with or without humidity controls. Unlike AirLoopHVAC:Unitary system types, this component controls only the DX coil, not the supply fan. CoilSystem:Cooling:DX is added to a system by placing it in an air loop branch (see Branch object) or in an \hyperref[airloophvacoutdoorairsystemequipmentlist]{AirLoopHVAC:OutdoorAirSystem:EquipmentList} or in a \hyperref[zonehvacoutdoorairunitequipmentlist]{ZoneHVAC:OutdoorAirUnit:EquipmentList} . It requires one or more setpoint manager (see SetpointManager:*) objects to specify temperature and/or humidity setpoints (unless it is used in a \hyperref[zonehvacoutdoorairunit]{ZoneHVAC:OutdoorAirUnit} which has its own temperature setpoints). This object is the one that is listed in the Branch or equipment list object rather than the coil itself. A constant volume or variable volume fan is modeled separately from this cooling system. These are the only fan types allowed for this system type (ref. \hyperref[fanconstantvolume]{Fan:ConstantVolume} and \hyperref[fanvariablevolume]{Fan:VariableVolume}). Cycling fan operation is not available with this model. The CoilSystem:Cooling:DX object can also be placed on dedicated outdoor air system (DOAS) airloop branches or in arloop branches where the air flow to capacity ratio range is between 100 300 cfm/ton. 100\% DOAS DX cooling coils operate in lower flow to capacity ratio range compared to regular DX cooling coils. The CoilSystem:Cooling:DX is selected to operate in DOAS application or in low flow to capacity ratio range by specifying YES to the input field Use Outdoor Air DX Cooling Coil . If this optional input field is left blank or specified as NO , then the coil is modeled as regular DX cooling coil. If the CoilSystem:Cooling:DX object is in an \hyperref[airloophvacoutdoorairsystemequipmentlist]{AirLoopHVAC:OutdoorAirSystem:EquipmentList} or in a \hyperref[zonehvacoutdoorairunitequipmentlist]{ZoneHVAC:OutdoorAirUnit:EquipmentList} then it is treated as 100\% DOAS DX cooling coil only if the choice input field Use Outdoor Air DX Cooling Coil is set too YES . All the control options of the regular DX cooling coils are available to DOAS DX coils as well. Heating DX coils in DOAS airloop operate at the same flow to capacity ratio limits as the DOAS DX cooling coils. +This component may be used as a cooling coil in constant volume or variable volume systems, as blow through or draw through, with or without humidity controls. Unlike AirLoopHVAC:Unitary system types, this component controls only the DX coil, not the supply fan. CoilSystem:Cooling:DX is added to a system by placing it in an air loop branch (see Branch object) or in an \hyperref[airloophvacoutdoorairsystemequipmentlist]{AirLoopHVAC:OutdoorAirSystem:EquipmentList} or in a \hyperref[zonehvacoutdoorairunitequipmentlist]{ZoneHVAC:OutdoorAirUnit:EquipmentList} . It requires one or more setpoint manager (see SetpointManager:*) objects to specify temperature and/or humidity setpoints (unless it is used in a \hyperref[zonehvacoutdoorairunit]{ZoneHVAC:OutdoorAirUnit} which has its own temperature setpoints). This object is the one that is listed in the Branch or equipment list object rather than the coil itself. A constant volume or variable volume fan is modeled separately from this cooling system. These are the only fan types allowed for this system type (ref. \hyperref[fanconstantvolume]{Fan:ConstantVolume} and \hyperref[fanvariablevolume]{Fan:VariableVolume}). Cycling fan operation is not available with this model. The CoilSystem:Cooling:DX object can also be placed on dedicated outdoor air system (DOAS) airloop branches or in airloop branches where the air flow to capacity ratio range is between 100 300 cfm/ton. 100\% DOAS DX cooling coils operate in lower flow to capacity ratio range compared to regular DX cooling coils. The CoilSystem:Cooling:DX is selected to operate in DOAS application or in low flow to capacity ratio range by specifying YES to the input field Use Outdoor Air DX Cooling Coil . If this optional input field is left blank or specified as NO , then the coil is modeled as regular DX cooling coil. If the CoilSystem:Cooling:DX object is in an \hyperref[airloophvacoutdoorairsystemequipmentlist]{AirLoopHVAC:OutdoorAirSystem:EquipmentList} or in a \hyperref[zonehvacoutdoorairunitequipmentlist]{ZoneHVAC:OutdoorAirUnit:EquipmentList} then it is treated as 100\% DOAS DX cooling coil only if the choice input field Use Outdoor Air DX Cooling Coil is set too YES . All the control options of the regular DX cooling coils are available to DOAS DX coils as well. Heating DX coils in DOAS airloop operate at the same flow to capacity ratio limits as the DOAS DX cooling coils. \begin{figure}[hbtp] % fig 138 \centering @@ -5687,7 +5714,7 @@ \subsubsection{Inputs}\label{inputs-ASIHP} This alpha field defines the water heating operation in the combined space heating and water heating with desuperheating (SCDWH) mode in an ASIHP, which must be given. The power values and curves in the Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed are not used. That means the power consumption at each speed level of the SHDWH mode is accounted for by the heating coil part. -\paragraph{Field: SCWH Mode Minimum Indoor Temperature to Allow Overcooling}\label{Field-SCWH-Minimum-In-Overcooling-ASIHP} +\paragraph{Field: SCWH Mode Minimum Indoor Temperature to Allow Overcooling}\label{Field-SCWH-Minimum-In-Overcooling-ASIHP} This numeric field defines an indoor air temperature [C] above which indoor overcooling is allowed in the cooling operation, i.e., allowing running the SCWH mode to cool down the indoor air below the thermostat setting temperature, and iterate the compressor speed to match the water heating load. It has to be noted that both the indoor temperature and ambient temperature lower bound settings have to be satisfied when allowing indoor overcooling by running the SCWH mode. @@ -6852,7 +6879,7 @@ \subsubsection{Outputs}\label{vshpwhheating-outputs} This output variable is the ratio of the part-load capacity to the steady state capacity of the DX coil. \paragraph{HVAC,Average,Cooling Coil Air Mass Flow Rate {[}kg/s{]}}\label{vshpwhheating-output-cooling-coil-air-mass-flow-rate} -The output variable is the average air mass flow rate going through the evporator over the timestep being reported. +The output variable is the average air mass flow rate going through the evaporator over the timestep being reported. \paragraph{HVAC,Average,Cooling Coil Air Inlet Temperature {[}C{]}}\label{vshpwhheating-output-cooling-coil-air-inlet-temperature} The output variable is the average entering air dry-bulb temperature over the timestep being reported. @@ -6976,7 +7003,7 @@ \subsubsection{Inputs}\label{inputs-29} This numeric field defines the estimated parameter of the \textbf{compressor's efficiency}. The compressor efficiency is formulated as the equation below: \begin{equation} -\eta = \frac{{{{\dot W}_{Theoritical}}}}{{{{\dot W}_{CompInput}} - {{\dot W}_{Loss}}}} +\eta = \frac{{{{\dot W}_{Theoretical}}}}{{{{\dot W}_{CompInput}} - {{\dot W}_{Loss}}}} \end{equation} This field was previously know as Parameter 5. @@ -7017,6 +7044,34 @@ \subsubsection{Inputs}\label{inputs-29} This numeric field defines the estimated parameter \textbf{source side heat transfer resistance} 2. Unit is W/K. This field was previously known as Parameter 10. It should only be used when the Source Side Fluid Name is an antifreeze. +\paragraph{Field: Part Load Fraction Correlation Curve Name}\label{field-part-load-fraction-correlation-curve-name-pe} + +This alpha field defines the name of a quadratic or cubic performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the unit as a function of the part load ratio (PLR). The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor(s) run continuously for the simulation timestep). + +\paragraph{Field: Maximum Cycling Rate}\label{field-maximum-cycling-rate-pe} + +This numeric field contains the maximum on-off cycling rate for the compressor, which occurs at 50\% run time fraction. Suggested values are shown in Figure~\ref{fig:suggested-values-for-maximum-cycling-rate-pe}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image295.png} +\caption{Suggested values for maximum cycling rate \protect \label{fig:suggested-values-for-maximum-cycling-rate-pe}} +\end{figure} + +\paragraph{Field: Latent Capacity Time Constant}\label{field-heat-pump-time-constant-pe} + +This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown in Figure~\ref{fig:suggested-values-for-heat-pump-time-constant-pe}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image296.png} +\caption{Suggested values for latent capacity time constant \protect \label{fig:suggested-values-for-heat-pump-time-constant-pe}} +\end{figure} + +\paragraph{Field: Fan Delay Time}\label{field-heat-pump-fan-delay-time-pe} + +This numeric field contains the time delay for the heat pump supply air fan to shut off after the compressor cycles off in seconds. This value can be obtained from the manufacturer or the heat pump catalog. Enter a value of zero when the heat pump's fan operating mode is continuous. Suggested value is 60 seconds. + Following is an example for COIL:WaterToAirHP:ParameterEstimation:Cooling coil input \begin{lstlisting} @@ -7048,7 +7103,9 @@ \subsubsection{Inputs}\label{inputs-29} 2.06530E-02, !-Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR; !- Part Load Fraction Correlation Curve Name + \end{lstlisting} \subsection{Coil:Cooling:WaterToAirHeatPump:EquationFit}\label{coilcoolingwatertoairheatpumpequationfit} @@ -7083,22 +7140,6 @@ \subsubsection{Inputs}\label{inputs-30} This numeric field contains the rated volumetric air flow rate on the load side of the heat pump in m3/s. This field is autosizable. -\paragraph{Field: 2017 Rated Evaporator Fan Power Per Volume Flow Rate} - -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. -Note 1: Standard Ratings using this field will be reported in the "2017 Standard Ratings for DX Coils" table -Note 2: two values are calculated for SEER: 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation; 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. -Note 3: SEER User, SEER Standard, EER, and IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 210-240 (2017). -Note 4: EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity between 65,000 and 135,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 340-360 (2013). - -\paragraph{Field: 2023 Rated Evaporator Fan Power Per Volume Flow Rate} - -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. -Note 1: Standard Ratings using this field will be reported in the "2023 Standard Ratings for DX Coils" table -Note 2: two values are calculated for SEER2. 'SEER2 User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER2 Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. -Note 3: SEER2 User, SEER2 Standard, EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr - will be calculated according to ANSI/AHRI standard 210-240 (2023). -Note 4: EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacities between 65,000 and 135,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 340-360 (2022). - \paragraph{Field: Rated Water Flow Rate}\label{field-rated-water-flow-rate} This numeric field contains the rated volumetric water flow rate on the source side of the heat pump in m3/s. This field is autosizable. @@ -7109,7 +7150,7 @@ \subsubsection{Inputs}\label{inputs-30} \paragraph{Field: Gross Rated Sensible Cooling Capacity}\label{field-gross-rated-sensible-cooling-capacity} -This numeric field contains the gross rated sensible capacity of the heat pump in W. This field is autosizable. The gross rated sensible cooling capacity shouldnot account for the effect of supply air fan heat. +This numeric field contains the gross rated sensible capacity of the heat pump in W. This field is autosizable. The gross rated sensible cooling capacity should not account for the effect of supply air fan heat. \paragraph{Field: Rated Cooling Coefficient of Performance}\label{field-rated-cooling-coefficient-of-performance} @@ -7139,6 +7180,10 @@ \subsubsection{Inputs}\label{inputs-30} This alpha field specifies the name of a \textbf{quadlinear} performance curve object (ref: Performance Curves) for the heat pump power consumption. The Single Speed Equation-Fit Model for Unitary Water-To-Air Heat Pump under the Air System Compound Component Groups in the Engineering Reference document contains more explanation regarding this. +\paragraph{Field: Part Load Fraction Correlation Curve Name}\label{field-part-load-fraction-correlation-curve-name-efc} + +This alpha field defines the name of a quadratic or cubic performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the unit as a function of the part load ratio (PLR). The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor(s) run continuously for the simulation timestep). + \paragraph{Field: Nominal Time for Condensate Removal to Begin}\label{field-nominal-time-for-condensate-removal-to-begin-4} This numeric field defines the nominal time (in seconds) after startup for condensate to begin leaving the coil's condensate drain line at the coil's rated airflow and temperature conditions, starting with a dry coil. Nominal time is equal to the ratio of the energy of the coil's maximum condensate holding capacity (J) to the coil's steady-state latent capacity (W). Suggested value is 1000; zero value means the latent degradation model is disabled. The default value for this field is zero. @@ -7147,6 +7192,30 @@ \subsubsection{Inputs}\label{inputs-30} This numeric field defines ratio of the initial moisture evaporation rate from the cooling coil (when the compressor first turns off, in Watts) and the coil's steady-state latent capacity (Watts) at rated airflow and temperature conditions. Suggested value is 1.5; zero value means the latent degradation model is disabled. The default value for this field is zero. +\paragraph{Field: Maximum Cycling Rate}\label{field-maximum-cycling-rate-efc} + +This numeric field contains the maximum on-off cycling rate for the compressor, which occurs at 50\% run time fraction. Suggested values are shown in Figure~\ref{fig:suggested-values-for-maximum-cycling-rate-efc}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image295.png} +\caption{Suggested values for maximum cycling rate \protect \label{fig:suggested-values-for-maximum-cycling-rate-efc}} +\end{figure} + +\paragraph{Field: Latent Capacity Time Constant}\label{field-heat-pump-time-constant-efc} + +This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown in Figure~\ref{fig:suggested-values-for-heat-pump-time-constant-efc}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image296.png} +\caption{Suggested values for latent capacity time constant \protect \label{fig:suggested-values-for-heat-pump-time-constant-efc}} +\end{figure} + +\paragraph{Field: Fan Delay Time}\label{field-heat-pump-fan-delay-time-efc} + +This numeric field contains the time delay for the heat pump supply air fan to shut off after the compressor cycles off in seconds. This value can be obtained from the manufacturer or the heat pump catalog. Enter a value of zero when the heat pump's fan operating mode is continuous. Suggested value is 60 seconds. + Following is an example of the input for Coil:WaterToAirHP:EquationFit:Cooling coil \begin{lstlisting} @@ -7165,9 +7234,10 @@ \subsubsection{Inputs}\label{inputs-30} TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin 0; !- Ratio of Initial Moisture Evaporation Rate and Steady-state Latent Capacity - + Curve:QuadLinear, TotCoolCapCurve, ! Curve Name -0.68126221, ! CoefficientC1 @@ -7463,6 +7533,30 @@ \subsubsection{Inputs}\label{inputs-31} This numeric field defines ratio of the initial moisture evaporation rate from the cooling coil (when the compressor first turns off, in Watts) and the coil's steady-state latent capacity (Watts) at rated airflow and temperature conditions. Suggested value is 1.5; zero value means the latent degradation model is disabled. The default value for this field is zero. +\paragraph{Field: Maximum Cycling Rate}\label{field-maximum-cycling-rate-vsefc} + +This numeric field contains the maximum on-off cycling rate for the compressor, which occurs at 50\% run time fraction. Suggested values are shown in Figure~\ref{fig:suggested-values-for-maximum-cycling-rate-vsefc}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image295.png} +\caption{Suggested values for maximum cycling rate \protect \label{fig:suggested-values-for-maximum-cycling-rate-vsefc}} +\end{figure} + +\paragraph{Field: Latent Capacity Time Constant}\label{field-heat-pump-time-constant-vsefc} + +This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown in Figure~\ref{fig:suggested-values-for-heat-pump-time-constant-vsefc}. (Henderson et al. 1999): + +\begin{figure}[htbp] +\centering +\includegraphics{media/image296.png} +\caption{Suggested values for latent capacity time constant \protect \label{fig:suggested-values-for-heat-pump-time-constant-vsefc}} +\end{figure} + +\paragraph{Field: Fan Delay Time}\label{field-heat-pump-fan-delay-time-vsefc} + +This numeric field contains the time delay for the heat pump supply air fan to shut off after the compressor cycles off in seconds. This value can be obtained from the manufacturer or the heat pump catalog. Enter a value of zero when the heat pump's fan operating mode is continuous. Suggested value is 60 seconds. + \paragraph{Field: Flag for Using Hot Gas Reheat, 0 or 1}\label{field-flag-for-using-hot-gas-reheat-0-or-1} This numeric field dictates whether to use the recoverable waste heat for reheating the supply air, downstream of the coil. The value 1 means using the hot gas reheating, and 0 means not using. If the hot gas reheating is turned on, the recoverable waste heat is subtracted from both the total cooling capacity and the sensible cooling capacity. The default value for this field is zero. @@ -7505,22 +7599,6 @@ \subsubsection{Inputs}\label{inputs-31} This numeric field defines the volumetric air flow rate, in \si{\volumeFlowRate}, across the cooling coil at rated conditions for Speed \textless{}x\textgreater{} operation. The value entered here should be directly from the Reference Unit data, corresponding to the given gross rated total cooling capacity and gross rated cooling COP at the speed, as above. -\paragraph{Field: Speed \textless{}X\textgreater{} 2017 Rated Evaporator Fan Power Per Volume Flow Rate} - -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 773.3 W/(m\(^{3}\)/s) (365 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1250 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2017 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, 15.2 Coils) and also in the predefined tabular output reports (Output:Table:SummaryReports object, Equipment Summary). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. -Note 1: Standard Ratings using this field will be reported in the "2017 Standard Ratings for DX Coils" table -Note 2: two values are calculated for SEER: 'SEER User' is calculated using user-input PLF curve and cooling coefficient of degradation; 'SEER Standard' is calculated using AHRI Std 210/240-2017 default PLF curve and cooling coefficient of degradation. -Note 3: SEER User, SEER Standard, EER, and IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 210-240 (2017). -Note 4: EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity between 65,000 and 135,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 340-360 (2013). - -\paragraph{Field: Speed \textless{}X\textgreater{} 2023 Rated Evaporator Fan Power Per Volume Flow Rate} - -This field is the electric power for the evaporator (cooling coil) fan per air volume flow rate through the coil at the rated conditions for Speed in W/(m\(^{3}\)/s). The default value is 934.4 W/(m3/s) (441 W/1000 cfm) if this field is left blank. If a value is entered, it must be \textgreater{}= 0.0 and \textless{}= 1505 W/(m\(^{3}\)/s). This value is only used to calculate the following metrics according to the 2023 version of the ANSI/AHRI 210-240 standard: Seasonal Energy Efficiency Ratio (SEER2), Energy Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER) and the Standard Rating (Net) Cooling Capacity. These metrics will be outputs in the EnergyPlus eio file (ref. EnergyPlus Engineering Reference, Section 15.2 Coils). This value is not used for modeling the evaporator (cooling coil) fan during simulations; instead, it is used for calculating SEER2, EER, IEER, and Standard Rating (Net) Cooling Capacity to assist the user in verifying their inputs for modeling this type of equipment. -Note 1: Standard Ratings using this field will be reported in the "2023 Standard Ratings for DX Coils" table -Note 2: two values are calculated for SEER2. 'SEER2 User' is calculated using user-input PLF curve and cooling coefficient of degradation. 'SEER2 Standard' is calculated using AHRI Std 210/240-2023 default PLF curve and cooling coefficient of degradation. -Note 3: SEER2 User, SEER2 Standard, EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacity less than 65,000 Btu/hr - will be calculated according to ANSI/AHRI standard 210-240 (2023). -Note 4: EER, IEER, and Standard Rating (Net) Cooling Capacity -- with cooling capacities between 65,000 and 135,000 Btu/hr -- will be calculated according to ANSI/AHRI standard 340-360 (2022). - \paragraph{Field: Speed \textless{}x\textgreater{} Reference Unit Rated Water Flow Rate}\label{field-speed-x-reference-unit-rated-water-flow-rate} This numeric field defines the volumetric water flow rate, in \si{\volumeFlowRate}, flowing at the source side of the cooling coil at rated conditions for Speed \textless{}x\textgreater{} operation. The value entered here should be directly from the Reference Unit data, corresponding to the given gross rated total cooling capacity and gross rated cooling COP at the speed, as above. @@ -7615,6 +7693,9 @@ \subsubsection{Inputs}\label{inputs-31} Autosize, !- Rated Water Flow Rate {m3/s} 0.0, !- Nominal time for Condensate to Begin Leaving the Coil 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity + , !- Maximum Cycling Rate {cylcles/hr} + , !- Latent Capacity Time Constant + , !- Fan Delay Time 1, !- Flag for Using Hot Gas Reheat or Not, 0 = false; 1 = true VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity @@ -7961,7 +8042,7 @@ \subsubsection{Inputs}\label{inputs-32} This numeric field defines the estimated parameter of the \textbf{compressor's efficiency}. The compressor efficiency is formulated as the equation below: \begin{equation} -\eta = \frac{{{{\dot W}_{Theoritical}}}}{{{{\dot W}_{CompInput}} - {{\dot W}_{Loss}}}} +\eta = \frac{{{{\dot W}_{Theoretical}}}}{{{{\dot W}_{CompInput}} - {{\dot W}_{Loss}}}} \end{equation} This field was previously know as Parameter 4. @@ -8002,6 +8083,10 @@ \subsubsection{Inputs}\label{inputs-32} This numeric field defines the estimated \textbf{parameter source side heat transfer resistance 2}. Unit is W/K. This field was previously known as Parameter 9. It should only be used when the Source Side Fluid Name is an antifreeze. +\paragraph{Field: Part Load Fraction Correlation Curve Name}\label{field-part-load-fraction-correlation-curve-name-peh} + +This alpha field defines the name of a quadratic or cubic performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the unit as a function of the part load ratio (PLR). The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor(s) run continuously for the simulation timestep). + Following is an example input for Coil:WatertoAirHP:ParameterEstimation:Heating \begin{lstlisting} @@ -8031,6 +8116,7 @@ \subsubsection{Inputs}\label{inputs-32} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} ; !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name \end{lstlisting} \subsection{Coil:Heating:WaterToAirHeatPump:EquationFit}\label{coilheatingwatertoairheatpumpequationfit} @@ -8095,6 +8181,10 @@ \subsubsection{Inputs}\label{inputs-33} This alpha field specifies the name of a \textbf{quadlinear} performance curve object (ref: Performance Curves) for the heat pump power consumption. The Single Speed Equation-Fit Model for Unitary Water-To-Air Heat Pump under the Air System Compound Component Groups in the Engineering Reference document contains more explanation regarding this. +\paragraph{Field: Part Load Fraction Correlation Curve Name}\label{field-part-load-fraction-correlation-curve-name-efh} + +This alpha field defines the name of a quadratic or cubic performance curve (Ref: Performance Curves) that parameterizes the variation of electrical power input to the unit as a function of the part load ratio (PLR). The product of the rated EIR and EIR modifier curves is divided by the output of this curve to give the effective EIR for a given simulation timestep. The part load fraction (PLF) correlation accounts for efficiency losses due to compressor cycling. The part load fraction correlation should be normalized to a value of 1.0 when the part load ratio equals 1.0 (i.e., no efficiency losses when the compressor(s) run continuously for the simulation timestep). + \subsubsection{Outputs}\label{outputs-27} Coil:Heating:WaterToAirHeatPump:ParameterEstimation and Coil:Heating:WaterToAirHeatPump:EquationFit have the same output variables listed as follows; @@ -9103,7 +9193,7 @@ \subsubsection{Inputs}\label{inputs-35} This field is the rate of air flow through the condenser section, in m\(^{3}\)/s. The model assumes constant, single-speed condenser fans. The flow rate is not used to determine coil operation but is used to determine the conditions leaving the condenser section. This field is required, for both air-cooled and evaporatively-cooled condenser types. -This field is autocalulatable. When autocalculated, the design flow rate is determined using the sizing factor in the following input field. +This field is autocalculatable. When autocalculated, the design flow rate is determined using the sizing factor in the following input field. \paragraph{Field: Condenser Air Flow Sizing Factor}\label{field-condenser-air-flow-sizing-factor} diff --git a/doc/input-output-reference/src/overview/group-humidifiers-and-dehumidifiers.tex b/doc/input-output-reference/src/overview/group-humidifiers-and-dehumidifiers.tex index 2f7d6dc2d12..512b5c8e245 100644 --- a/doc/input-output-reference/src/overview/group-humidifiers-and-dehumidifiers.tex +++ b/doc/input-output-reference/src/overview/group-humidifiers-and-dehumidifiers.tex @@ -94,7 +94,7 @@ \subsubsection{Outputs}\label{outputs-016} \paragraph{Humidifier Water Volume{[}m3{]}}\label{humidifier-water-volumem3} -This ouput is the cubic meters of water consumed by the steam humidifier over the timestep being reported. +This output is the cubic meters of water consumed by the steam humidifier over the timestep being reported. \paragraph{Humidifier Electricity Rate {[}W{]}}\label{humidifier-electric-powerw} @@ -130,7 +130,7 @@ \subsubsection{Outputs}\label{outputs-016} \subsection{Humidifier:Steam:Gas}\label{humidifiersteamgas} -The gas fired steam humidifier is a component that represents a gas fired self-contained steam humidifier. The component uses gas fired energy to convert ordinary tap water to steam which it then blows or injects into the supply air stream. Blower fan may not be required depending on how the dry steam is delivered into the supply air stream. The humidifier model includes local control of the humidifier unit to meet a humidity ratio setpoint on its air outlet node of the unit. A humidity set point manager is needed to put a setpoint on the outlet node but no other local controllers are needed. The humidifier either blows or injects dry steam to meet the humidity ratio setpoint requirement. If the Rated Gas Use Rate input field is not autosized, the thermal efficiency input specified will be ignored and ovverriden by a thermal efficiency value determined from user specified Rated Gas Use Rate, rated capacity (m3/s) and design conditions for sizing calculation. +The gas fired steam humidifier is a component that represents a gas fired self-contained steam humidifier. The component uses gas fired energy to convert ordinary tap water to steam which it then blows or injects into the supply air stream. Blower fan may not be required depending on how the dry steam is delivered into the supply air stream. The humidifier model includes local control of the humidifier unit to meet a humidity ratio setpoint on its air outlet node of the unit. A humidity set point manager is needed to put a setpoint on the outlet node but no other local controllers are needed. The humidifier either blows or injects dry steam to meet the humidity ratio setpoint requirement. If the Rated Gas Use Rate input field is not autosized, the thermal efficiency input specified will be ignored and overridden by a thermal efficiency value determined from user specified Rated Gas Use Rate, rated capacity (m3/s) and design conditions for sizing calculation. \subsubsection{Inputs}\label{inputs-1-021} @@ -338,7 +338,7 @@ \subsubsection{Inputs}\label{inputs-011} \hyperref[setpointmanagermultizonehumiditymaximum]{SetpointManager:MultiZone:Humidity:Maximum} \end{itemize} -This will also require the use of a \textbf{\hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat}} object. If the dehumidifer is located in the outdoor air stream, it may also be necessary to use \textbf{\hyperref[setpointmanageroutdoorairpretreat]{SetpointManager:OutdoorAirPretreat}}. +This will also require the use of a \textbf{\hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat}} object. If the dehumidifier is located in the outdoor air stream, it may also be necessary to use \textbf{\hyperref[setpointmanageroutdoorairpretreat]{SetpointManager:OutdoorAirPretreat}}. \paragraph{Field: Leaving Maximum Humidity Ratio Setpoint}\label{field-leaving-maximum-humidity-ratio-setpoint} diff --git a/doc/input-output-reference/src/overview/group-hybrid-model.tex b/doc/input-output-reference/src/overview/group-hybrid-model.tex index fb3d051cc82..c60768c32d6 100644 --- a/doc/input-output-reference/src/overview/group-hybrid-model.tex +++ b/doc/input-output-reference/src/overview/group-hybrid-model.tex @@ -14,7 +14,7 @@ \subsubsection{Inputs}\label{inputs-hybridzone} This field is the name of the thermal zone (ref: Zone) and attaches a particular hybrid model input to a thermal zone in the building. -\paragraph{Field: Calculate Zone Internal Thermal Mass}\label{field-calculate-zon-internal-thermal-mass-hm} +\paragraph{Field: Calculate Zone Internal Thermal Mass}\label{field-calculate-zone-internal-thermal-mass-hm} This field is used to provide an option to calculate the temperature capacity multiplier (Ref: ZoneCapacitanceMultiplier:ResearchSpecial). The temperature capacity multiplier is represented as internal thermal mass multiplier in the hybrid model. When YES is selected, the hybrid model calculates the multiplier based on the inverse heat balance algorithm using the measured zone air temperature. @@ -59,15 +59,15 @@ \subsubsection{Inputs}\label{inputs-hybridzone} \paragraph{Field: Zone Measured Air Temperature Schedule Name}\label{field-zone-measured-air-temperature-schedule-name-hm} -This field is the name of the schedule object which contains the zone air temperature measurement data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the zone air temperature measurement data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Zone Measured Air Humidity Ratio Schedule Name}\label{field-zone-measured-air-humidity-ratio-schedule-name-hm} -This field is the name of the schedule object which contains the zone air humidity ration measurement data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the zone air humidity ration measurement data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Zone Measured Air CO$_2$ concentration Schedule Name}\label{field-zone-measured-air-co2-concentration-schedule-name-hm} -This field is the name of the schedule object which contains the zone air CO$_2$ concentration measurement data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the zone air CO$_2$ concentration measurement data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Zone Input People Activity Level Schedule Name}\label{field-zone-input-people-activity-schedule-name-hm} @@ -87,19 +87,19 @@ \subsubsection{Inputs}\label{inputs-hybridzone} \paragraph{Field: Zone Input Supply Air Temperature Schedule Name}\label{field-zone-input-supply-air-temperature-schedule-name-hm} -This field is the name of the schedule object which contains the measured supply air temperature data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the measured supply air temperature data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Zone Input Supply Air Mass Flow Rate Schedule Name}\label{field-zone-input-supply-air-mass-flow-rate-schedule-name-hm} -This field is the name of the schedule object which contains the measured supply air mass flow rate data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the measured supply air mass flow rate data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Zone Input Supply Air Humidity Ratio Schedule Name}\label{field-zone-input-supply-air-humidity-ratio-schedule-name-hm} -This field is the name of the schedule object which contains the measured supply air humidity ratio data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the measured supply air humidity ratio data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Zone Input Supply Air CO$_2$ Concentration Schedule Name}\label{field-zone-input-supply-air-co2-concentration-schedule-name-hm} -This field is the name of the schedule object which contains the measured supply air CO$_2$ concentration data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputing the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. +This field is the name of the schedule object which contains the measured supply air CO$_2$ concentration data. The date range of the schedule should cover the start and end date of the HybridModel. A Schedule:File object is recommended for inputting the time-series measurements. When a schedule:file object is provided, all the rows for a whole year should be in the file, the rows outside of the start and end date range of the HybridModel should be zeros. \paragraph{Field: Begin Month}\label{field-begin-month-hm} diff --git a/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex b/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex index 53a5cfa9fe3..48b9407966a 100644 --- a/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex +++ b/doc/input-output-reference/src/overview/group-internal-gains-people-lights-other.tex @@ -689,7 +689,7 @@ \subsubsection{Outputs}\label{outputs-017} \paragraph{Zone Thermal Comfort ASHRAE 55 Ankle Draft PPD}\label{zone-thermal-comfort-ashrae55-ankle-draft-ppd} -This field is the ``ppredicted percentage of dissatisfied'' (PPD) on draft at ankle level. It is used as the metric to evaluate the ankle draft risk as a function of PMV and air speed at the ankle level (0.1 m). +This field is the ``predicted percentage of dissatisfied'' (PPD) on draft at ankle level. It is used as the metric to evaluate the ankle draft risk as a function of PMV and air speed at the ankle level (0.1 m). \subsubsection{Outputs}\label{outputs-1-014} @@ -1555,7 +1555,7 @@ \subsubsection{Inputs}\label{inputs-5-015} \paragraph{Field: End-Use Subcategory}\label{field-end-use-subcategory-3-000} -Allows you to specify a user-defined end-use subcategory, e.g., ``Cooking'', ``Clothes Drying'', etc. A new meter for reporting is created for each unique subcategory~ (ref: \hyperref[outputmeter-and-outputmetermeterfileonly]{Output:Meter} obejct). Subcategories are also reported in the ABUPS table. If this field is omitted or blank, the equipment will be assigned to the ``General'' end-use subcategory. Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table and the LEED Summary table EAp2-4/5 Performance Rating Method Compliance. +Allows you to specify a user-defined end-use subcategory, e.g., ``Cooking'', ``Clothes Drying'', etc. A new meter for reporting is created for each unique subcategory~ (ref: \hyperref[outputmeter-and-outputmetermeterfileonly]{Output:Meter} object). Subcategories are also reported in the ABUPS table. If this field is omitted or blank, the equipment will be assigned to the ``General'' end-use subcategory. Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table and the LEED Summary table EAp2-4/5 Performance Rating Method Compliance. IDF Examples: @@ -3775,7 +3775,7 @@ \subsubsection{Outputs}\label{outputs-10-003} \paragraph{Generic Air Contaminant Decay Model Generation Emission Start Elapsed Time {[}s{]}}\label{generic-air-contaminant-decay-model-generation-emission-start-elapsed-time-s} -This output is the decay time since the start of emission. The start time is either at the beginning of each run period, including design day simulations, or the time when the egenration schedule value is zero. +This output is the decay time since the start of emission. The start time is either at the beginning of each run period, including design day simulations, or the time when the generation schedule value is zero. \subsection{Surface\-Contaminant\-Source\-And\-Sink:\-Generic:\-Boundary\-Layer\-Diffusion}\label{surfacecontaminantsourceandsinkgenericboundarylayerdiffusion} diff --git a/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex b/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex index eccf3f834b8..644d019d65b 100644 --- a/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex +++ b/doc/input-output-reference/src/overview/group-location-climate-weather-file-access.tex @@ -53,7 +53,7 @@ \subsection{Site:VariableLocation}\label{sitevariablelocation} \begin{itemize} \item a vehicle driving along the road, \item a rotating building, such as for experimental testing at different orientations, or - \item if combind with a ``\hyperref[surfacepropertyunderwater]{SurfaceProperty:Underwater}'' boundary condition, it could apply to ships and vessels. + \item if combined with a ``\hyperref[surfacepropertyunderwater]{SurfaceProperty:Underwater}'' boundary condition, it could apply to ships and vessels. \end{itemize} The latitude, longitude, and orientation are all defined according to the same conventions as in the regular ``\hyperref[sitelocation]{Site:Location}'' object. @@ -315,7 +315,7 @@ \subsubsection{Inputs}\label{inputs-1-024} \paragraph{Field: Begin Environment Reset Mode}\label{field-beg-env-reset-mode} -Optional choice field to control if zone heat balance history terms should be reset when beginning to run this sizing period. This can reduce the number of warmup days needed to reach zone convergence. The options are \textbf{FullResetAtBeginEnvironment} or \textbf{SuppressThermalResetAtBeginEnvironment}. \textbf{FullResetAtBeginEnvironment} means that at the beginning of the design day warmup the building model's surfaces are set to 23 degrees C, which is the usual starting point for each environment. \textbf{SuppressThermalResetAtBeginEnvironment} means that at the beginning of the design day warmup the building model's surfaces are not reset and will just retain whatever thermal history results they had at the end of the previous design day. The warmup days still proceed as usual but because the initial condition is closer it needs fewer warmup days to reach convergence. This is available to reduce simulation run time when using many design days that are similiar to each other. +Optional choice field to control if zone heat balance history terms should be reset when beginning to run this sizing period. This can reduce the number of warmup days needed to reach zone convergence. The options are \textbf{FullResetAtBeginEnvironment} or \textbf{SuppressThermalResetAtBeginEnvironment}. \textbf{FullResetAtBeginEnvironment} means that at the beginning of the design day warmup the building model's surfaces are set to 23 degrees C, which is the usual starting point for each environment. \textbf{SuppressThermalResetAtBeginEnvironment} means that at the beginning of the design day warmup the building model's surfaces are not reset and will just retain whatever thermal history results they had at the end of the previous design day. The warmup days still proceed as usual but because the initial condition is closer it needs fewer warmup days to reach convergence. This is available to reduce simulation run time when using many design days that are similar to each other. IDF Examples: @@ -966,7 +966,7 @@ \subsection{Site:WeatherStation}\label{siteweatherstation} \caption[]{Wind Speed Profile Coefficients (ASHRAE Fundamentals 2005).} \tabularnewline \toprule -Terrain Description & Exponent & Bounhary Layer Thickness (m) \tabularnewline +Terrain Description & Exponent & Boundary Layer Thickness (m) \tabularnewline \midrule \endhead @@ -1263,7 +1263,7 @@ \subsubsection{Inputs}\label{inputs-15-007} 1.08, !- Soil Thermal Conductivity {W/m-K} 962, !- Soil Density {kg/m3} 2576, !- Soil Specific Heat {J/kg-K} - 11.1, !- Average Soil Surface Tempeature {C} + 11.1, !- Average Soil Surface Temperature {C} 13.4, !- Soil Surface Temperature Amplitude 1 {deltaC} 0.7, !- Soil Surface Temperature Amplitude 2 {deltaC} 25, !- Phase Shift of Temperature Amplitude 1 {days} @@ -1737,7 +1737,7 @@ \subsection{Site:WaterMainsTemperature}\label{sitewatermainstemperature} maximum difference in monthly average outdoor air temperatures \end{itemize} -These values can be calculated from annual weather data using the auxillary program CalcSoilSurfTemp preprocessor. For more information on the water mains temperatures correlation, see the \emph{EnergyPlus Engineering Document}. +These values can be calculated from annual weather data using the auxiliary program CalcSoilSurfTemp preprocessor. For more information on the water mains temperatures correlation, see the \emph{EnergyPlus Engineering Document}. Alternatively, the Site:WaterMainsTemperature object can read values from a schedule. This is useful for measured data or when water comes from a source other than buried pipes, e.g., a river or lake. diff --git a/doc/input-output-reference/src/overview/group-node-branch-management.tex b/doc/input-output-reference/src/overview/group-node-branch-management.tex index e16a3e983a4..3f6d6caf8fe 100644 --- a/doc/input-output-reference/src/overview/group-node-branch-management.tex +++ b/doc/input-output-reference/src/overview/group-node-branch-management.tex @@ -114,7 +114,7 @@ \subsubsection{Outputs}\label{outputs-019} \item HVAC,Average,System Node Maximum Available Mass Flow Rate {[}kg/s{]} \item - HVAC,Averge,System Node Requested Mass Flow Rate {[}kg/s{]} + HVAC,Average,System Node Requested Mass Flow Rate {[}kg/s{]} \item HVAC,Average,System Node Setpoint Mass Flow Rate {[}kg/s{]} \end{itemize} diff --git a/doc/input-output-reference/src/overview/group-non-zone-equipment.tex b/doc/input-output-reference/src/overview/group-non-zone-equipment.tex index 64ffe68d32e..5d35dff1057 100644 --- a/doc/input-output-reference/src/overview/group-non-zone-equipment.tex +++ b/doc/input-output-reference/src/overview/group-non-zone-equipment.tex @@ -28,7 +28,7 @@ \subsubsection{Inputs}\label{inputs-028} \paragraph{Field: Load Schedule Name}\label{field-load-schedule-name} -Reference to the schedule object specifying the load profile {[}W{]}. The value of load can be positive or negative. Negative values here are for imposing a cooling load on the loop (with a chiller on the supply side, e.g.), while psoitive values are impose a heating load (with a boiler on the supply side). +Reference to the schedule object specifying the load profile {[}W{]}. The value of load can be positive or negative. Negative values here are for imposing a cooling load on the loop (with a chiller on the supply side, e.g.), while positive values are impose a heating load (with a boiler on the supply side). \paragraph{Field: Peak Flow Rate}\label{field-peak-flow-rate} diff --git a/doc/input-output-reference/src/overview/group-operational-faults.tex b/doc/input-output-reference/src/overview/group-operational-faults.tex index 94297b312d9..dc4abfd446b 100644 --- a/doc/input-output-reference/src/overview/group-operational-faults.tex +++ b/doc/input-output-reference/src/overview/group-operational-faults.tex @@ -429,7 +429,7 @@ \subsubsection{Inputs}\label{inputs-8-013} \paragraph{Field: Fan Curve Name}\label{field-fan-curve-name} -This field provides the name of a fan curve for the fan associated with the fault. The curve describes the relationship between the fan pressure rise and air flow rate. This is used to estimate the variations of the fan air flow rate in the faulty cases, given the Pressure Rise Variation Schedule. For variable speed fans, the curve should be the one corresponding to the maximum fan speed. The fan curve should cover the design operational point specified in the corresponding fan object. It is also required that the faulty fan operatinal state point falls within the fan selection range that is monotonically decreasing. +This field provides the name of a fan curve for the fan associated with the fault. The curve describes the relationship between the fan pressure rise and air flow rate. This is used to estimate the variations of the fan air flow rate in the faulty cases, given the Pressure Rise Variation Schedule. For variable speed fans, the curve should be the one corresponding to the maximum fan speed. The fan curve should cover the design operational point specified in the corresponding fan object. It is also required that the faulty fan operational state point falls within the fan selection range that is monotonically decreasing. \paragraph{IDF Examples}\label{an-example-of-idf-codes-for-the-fouling-air-filter-fault-models} diff --git a/doc/input-output-reference/src/overview/group-performance-curves.tex b/doc/input-output-reference/src/overview/group-performance-curves.tex index d93add8b1f4..0675def13f5 100644 --- a/doc/input-output-reference/src/overview/group-performance-curves.tex +++ b/doc/input-output-reference/src/overview/group-performance-curves.tex @@ -1,6 +1,6 @@ \section{Group - Performance Curves}\label{group---performance-curves} -This group of objects primarily consists of polynomial curves that are used to characterize the performance of HVAC equipment. Several other non-polynomial curves are also included to characterize the performance of pumps and fans. All of the curves are input, stored, and evaluated entirely within the Curve module. The curves are usually derived from fits or regressions to data covering a limited range. Results for independent variable values outside this range are likely to be invalid, so curve input always contains a range of validity (maximum and minimum permitted values) for each independent variable and can optionally have limits on the curve ouput. No error or warning message is issued if an independent variable is outside the range. Instead, the curve manager uses the minimum value if an independent variable is less than the minimum, and the maximum if a variable exceeds the maximum. Similarly, no error or warning message is issued if the curve output is outside the range of the optional minimum and maximum curve output limits. Instead, the curve manager uses the minimum and maximum curve limits to cap the output of the performance curve. +This group of objects primarily consists of polynomial curves that are used to characterize the performance of HVAC equipment. Several other non-polynomial curves are also included to characterize the performance of pumps and fans. All of the curves are input, stored, and evaluated entirely within the Curve module. The curves are usually derived from fits or regressions to data covering a limited range. Results for independent variable values outside this range are likely to be invalid, so curve input always contains a range of validity (maximum and minimum permitted values) for each independent variable and can optionally have limits on the curve output. No error or warning message is issued if an independent variable is outside the range. Instead, the curve manager uses the minimum value if an independent variable is less than the minimum, and the maximum if a variable exceeds the maximum. Similarly, no error or warning message is issued if the curve output is outside the range of the optional minimum and maximum curve output limits. Instead, the curve manager uses the minimum and maximum curve limits to cap the output of the performance curve. Curve names must be unique across all curve types. @@ -93,7 +93,7 @@ \subsubsection{Inputs}\label{inputs-031} Curve:Linear, DiagnosticSPR, ! Curve Name f = C1 + C2\*x 248.84, ! Coefficient1 Constant [Pa] - 0., ! Coefficent 2 Press/Flow [Pa-s/m3] + 0., ! Coefficient 2 Press/Flow [Pa-s/m3] 0., ! Minimum Value of x (Qfan) [m3/s] 100., ! Maximum Value of x (Qfan) [m3/s] 62.5, ! Minimum Curve Output [Pa] @@ -2374,7 +2374,7 @@ \subsubsection{Inputs}\label{inputs-18-005} \paragraph{Field: Output Unit Type}\label{field-output-unit-type-16} -The optional field is provided for future purposes so that the IDF Editor could display the appropriate SI or IP units for the Minimum and Maximum Curve Ouput. Currently, only Dimensionless option is provided so that no unit conversion is used for this curve. +The optional field is provided for future purposes so that the IDF Editor could display the appropriate SI or IP units for the Minimum and Maximum Curve output. Currently, only Dimensionless option is provided so that no unit conversion is used for this curve. An example input of the Curve:DoubleExponentialDecay input is: @@ -2395,7 +2395,7 @@ \subsubsection{Outputs}\label{outputs-021} \paragraph{Performance Curve Output Value}\label{performance-curve-output-value} -The current value of the performance curve. This value is averaged over the time step being reported. Inactive or unused performance curves will show a value of -999 (e.g., equipment is off, a specific performance curve is not required for this aspect of the equipment model at this time step, etc.). This value means that the performance curve was not called during the simulation and, therefore, not evaluated. This inactive state value is only set at the beginning of each environment. When averaging over long periods of time, this inactive state value may skew results. In this case, use a detaled reporting frequency (ref. Output:Variable object) to view results at each HVAC time step. +The current value of the performance curve. This value is averaged over the time step being reported. Inactive or unused performance curves will show a value of -999 (e.g., equipment is off, a specific performance curve is not required for this aspect of the equipment model at this time step, etc.). This value means that the performance curve was not called during the simulation and, therefore, not evaluated. This inactive state value is only set at the beginning of each environment. When averaging over long periods of time, this inactive state value may skew results. In this case, use a detailed reporting frequency (ref. Output:Variable object) to view results at each HVAC time step. \paragraph{Performance Curve Input Variable 1(-N) Value {[]}}\label{performance-curve-input-variable-1-n-value} diff --git a/doc/input-output-reference/src/overview/group-plant-condenser-control.tex b/doc/input-output-reference/src/overview/group-plant-condenser-control.tex index 042156a68e2..dd96c674806 100644 --- a/doc/input-output-reference/src/overview/group-plant-condenser-control.tex +++ b/doc/input-output-reference/src/overview/group-plant-condenser-control.tex @@ -261,7 +261,7 @@ \subsubsection{Inputs}\label{inputs-8-015} \paragraph{Field Set: (Lower limit, Upper Limit, Equip List name) up to 10}\label{field-set-lower-limit-upper-limit-equip-list-name-up-to-10-1} -\paragraph{Field: \textless{}specfic type\textgreater{} Range \textless{}\#\textgreater{} Lower Limit}\label{field-specfic-type-range-lower-limit} +\paragraph{Field: \textless{}specific type\textgreater{} Range \textless{}\#\textgreater{} Lower Limit}\label{field-specific-type-range-lower-limit} This numeric field contains the lower limit (C for temperature operations, Percent for relative humidity operations) for the equipment list. If specific value is below this value, then this equipment list will not turn on to meet the demand. @@ -297,11 +297,11 @@ \subsubsection{Inputs}\label{inputs-11-011} \paragraph{Field Set: (Lower limit, Upper limit, Equipment List)}\label{field-set-lower-limit-upper-limit-equipment-list} -\paragraph{Field: \textless{}specfic type\textgreater{} Range \textless{}\#\textgreater{} Lower Limit}\label{field-specfic-type-range-lower-limit-1} +\paragraph{Field: \textless{}specific type\textgreater{} Range \textless{}\#\textgreater{} Lower Limit}\label{field-specific-type-range-lower-limit-1} This numeric field specifies the minimum temperature difference required for the equipment specified in the equipment list to operate. -\paragraph{Field: \textless{}specfic type\textgreater{} Range \textless{}\#\textgreater{} Upper Limit}\label{field-specfic-type-range-upper-limit} +\paragraph{Field: \textless{}specific type\textgreater{} Range \textless{}\#\textgreater{} Upper Limit}\label{field-specific-type-range-upper-limit} This numeric field specifies the maximum temperature difference below which the equipment specified in the equipment list is available. diff --git a/doc/input-output-reference/src/overview/group-plant-equipment.tex b/doc/input-output-reference/src/overview/group-plant-equipment.tex index 3d051381fa2..4b141538e3d 100644 --- a/doc/input-output-reference/src/overview/group-plant-equipment.tex +++ b/doc/input-output-reference/src/overview/group-plant-equipment.tex @@ -193,7 +193,7 @@ \subsubsection{Chiller Electricity Rate {[}W{]}}\label{chiller-electric-power-w} \subsubsection{Chiller Electricity Energy {[}J{]}}\label{chiller-electric-energy-j} -These outputs are the electric power input to the chiller. In the case of steam or fuel-powered chillers, this repesents the internal chiller pumps and other electric power consumption. Consumption is metered on Cooling:Electricity, Electricity:Plant, and Electricity:Facility. +These outputs are the electric power input to the chiller. In the case of steam or fuel-powered chillers, this represents the internal chiller pumps and other electric power consumption. Consumption is metered on Cooling:Electricity, Electricity:Plant, and Electricity:Facility. \subsubsection{Chiller Evaporator Cooling Rate {[}W{]}}\label{chiller-evaporator-cooling-rate-w} @@ -605,11 +605,11 @@ \subsubsection{Inputs}\label{inputs-1-033} \paragraph{Field: Generator Heat Input Function of Part Load Ratio Curve Name}\label{field-generator-heat-input-function-of-part-load-ratio-curve-name} -This required alpha field specifies the name of the curve used to determine the heat input to the chiller. The curve is a quadratic or cubic curve which characterizes the heat input as a function of chiller part-load ratio. The curve output is multiplied by the chiller's nominal capacity and operating part-load ratio or minimum part-load ratio, whichever is greater, to determine the amount of heat input required for the given operating conditons. +This required alpha field specifies the name of the curve used to determine the heat input to the chiller. The curve is a quadratic or cubic curve which characterizes the heat input as a function of chiller part-load ratio. The curve output is multiplied by the chiller's nominal capacity and operating part-load ratio or minimum part-load ratio, whichever is greater, to determine the amount of heat input required for the given operating conditions. \paragraph{Field: Pump Electric Input Function of Part Load Ratio Curve Name}\label{field-pump-electric-input-function-of-part-load-ratio-curve-name} -This alpha field specifies the name of the curve used to determine the pump electrical input to the chiller. The curve is a quadratic or cubic curve which characterizes the pump electrical power as a function of chiller part-load ratio. The curve output is multiplied by the chiller's nominal pumping power and operating part-load ratio or minimum part-load ratio, whichever is greater, to determine the amount of pumping power required for the given operating conditons. +This alpha field specifies the name of the curve used to determine the pump electrical input to the chiller. The curve is a quadratic or cubic curve which characterizes the pump electrical power as a function of chiller part-load ratio. The curve output is multiplied by the chiller's nominal pumping power and operating part-load ratio or minimum part-load ratio, whichever is greater, to determine the amount of pumping power required for the given operating conditions. \paragraph{Field: Generator Inlet Node Name}\label{field-generator-inlet-node-name-1} @@ -649,7 +649,7 @@ \subsubsection{Inputs}\label{inputs-1-033} \paragraph{Field: Temperature Lower Limit Generator Inlet}\label{field-temperature-lower-limit-generator-inlet} -This numeric field specifies the lower limit of the generator's entering water temperature. This field is not used iif the Generator Fluid Type is specified as steam. +This numeric field specifies the lower limit of the generator's entering water temperature. This field is not used if the Generator Fluid Type is specified as steam. \paragraph{Field: Degree of Subcooling in Steam Generator}\label{field-degree-of-subcooling-in-steam-generator-1} @@ -1567,7 +1567,7 @@ \subsubsection{Outputs} \paragraph{Minimum Part Load Ratio {[]}}\label{chiller205-minimum-plr} -This is the raio of minimum capacity to maximum capacity, under which the chiller cycling (where the amount of power remains constant to produce smaller loads than this fraction) occurs. +This is the ratio of minimum capacity to maximum capacity, under which the chiller cycling (where the amount of power remains constant to produce smaller loads than this fraction) occurs. \paragraph{Chiller Condenser Inlet Temperature ~{[}C{]}}\label{chiller205-condenser-inlet-temperature-c} @@ -1685,7 +1685,7 @@ \subsubsection{Inputs}\label{inputs-4-023} \paragraph{Field: Condenser Fan Power Ratio}\label{field-condenser-fan-power-ratio} -This field is used to model condenser fan power associated with air-cooled or evaporatively-cooled condensers (for cooling towers, refer to Group - Condenser Equipment). Enter the ratio of the condenser fan power to the reference chiller cooling capacity in W/W. If this input is greater than 0, the condenser fan power is modeled seperatly from compressor power. In addition, if condenser fan power is modeled using this input, the reference COP and ``Electric Input to Cooling Output Ratio Function of'' performance curves should not include condenser fan power. +This field is used to model condenser fan power associated with air-cooled or evaporatively-cooled condensers (for cooling towers, refer to Group - Condenser Equipment). Enter the ratio of the condenser fan power to the reference chiller cooling capacity in W/W. If this input is greater than 0, the condenser fan power is modeled separately from compressor power. In addition, if condenser fan power is modeled using this input, the reference COP and ``Electric Input to Cooling Output Ratio Function of'' performance curves should not include condenser fan power. \paragraph{Field: Fraction of Compressor Electric Power Rejected by Condenser}\label{field-fraction-of-compressor-electric-power-rejected-by-condenser} @@ -1737,7 +1737,7 @@ \subsubsection{Inputs}\label{inputs-4-023} \paragraph{Field: Heat Recovery Leaving Temperature Setpoint Node Name}\label{field-heat-recovery-leaving-temperature-setpoint-node-name-1} -This field is optional.~ It can be used to refine the model and controls for heat recovery operation of the chiller.~ The node named here should have a setpoint placed on it by a setpoint manager.~ If the plant loop's demand calculation scheme is set to SingleSetpoint, then a single setpoint manager should be used.~ If the plant loop's demand calculation is set to DualSetpointDeadband then a dual setpoint manager should be used and the upper setpoint is used for control.~ When this field is used, a different model is used for determining the distribution of rejected heat between the two bundles that is more appropriate for series bundle arrangements and for chiller's that are able to produce relatively higher temperature heated fluilds. +This field is optional.~ It can be used to refine the model and controls for heat recovery operation of the chiller.~ The node named here should have a setpoint placed on it by a setpoint manager.~ If the plant loop's demand calculation scheme is set to SingleSetpoint, then a single setpoint manager should be used.~ If the plant loop's demand calculation is set to DualSetpointDeadband then a dual setpoint manager should be used and the upper setpoint is used for control.~ When this field is used, a different model is used for determining the distribution of rejected heat between the two bundles that is more appropriate for series bundle arrangements and for chiller's that are able to produce relatively higher temperature heated fluids. \paragraph{Field: End-Use Subcategory} @@ -2125,7 +2125,7 @@ \subsubsection{Inputs}\label{inputs-5-021} \paragraph{Field: Heat Recovery Leaving Temperature Setpoint Node Name}\label{field-heat-recovery-leaving-temperature-setpoint-node-name-2} -This field is optional.~ It can be used to refine the model and controls for heat recovery operation of the chiller.~ The node named here should have a setpoint placed on it by a setpoint manager.~ If the plant loop's demand calculation scheme is set to SingleSetpoint, then a single setpoint manager should be used.~ If the plant loop's demand calculation is set to DualSetpointDeadband then a dual setpoint manager should be used and the upper setpoint is used for control.~ When this field is used, a different model is used for determining the distribution of rejected heat between the two bundles that is more appropriate for series bundle arrangements and for chiller's that are able to produce relatively higher temperature heated fluilds. +This field is optional.~ It can be used to refine the model and controls for heat recovery operation of the chiller.~ The node named here should have a setpoint placed on it by a setpoint manager.~ If the plant loop's demand calculation scheme is set to SingleSetpoint, then a single setpoint manager should be used.~ If the plant loop's demand calculation is set to DualSetpointDeadband then a dual setpoint manager should be used and the upper setpoint is used for control.~ When this field is used, a different model is used for determining the distribution of rejected heat between the two bundles that is more appropriate for series bundle arrangements and for chiller's that are able to produce relatively higher temperature heated fluids. \paragraph{Field: End-Use Subcategory}\label{end-use-subcategory-12} @@ -3004,7 +3004,7 @@ \subsubsection{Inputs}\label{inputs-7-018} \paragraph{Field: Gas Turbine Engine Capacity}\label{field-gas-turbine-engine-capacity} -This numeric field contains the capacity of the gas turbine engine in watts. This field is autosizable. When autosized the field below called Turbine Engine Effciency can be used to scale the resulting size. +This numeric field contains the capacity of the gas turbine engine in watts. This field is autosizable. When autosized the field below called Turbine Engine Efficiency can be used to scale the resulting size. \paragraph{Field: Maximum Exhaust Flow per Unit of Power Output}\label{field-maximum-exhaust-flow-per-unit-of-power-output-1-000} @@ -3256,7 +3256,7 @@ \subsubsection{Inputs}\label{inputs-8-016} \paragraph{Field: Electric Input to Heating Output Ratio}\label{field-electric-input-to-heating-output-ratio} -A positive fraction that represents the ratio of the instantaneous electricity used divided by the nominal heating capacity. If the chiller is both heating and cooling, the greater of the cooling electricity and heating eletricity is used. The default is 0.0. +A positive fraction that represents the ratio of the instantaneous electricity used divided by the nominal heating capacity. If the chiller is both heating and cooling, the greater of the cooling electricity and heating electricity is used. The default is 0.0. \paragraph{Field: Chilled Water Inlet Node Name}\label{field-chilled-water-inlet-node-name-7} @@ -3354,7 +3354,7 @@ \subsubsection{Inputs}\label{inputs-8-016} \paragraph{Field: Heating Capacity Function of Cooling Capacity Curve Name}\label{field-heating-capacity-function-of-cooling-capacity-curve-name} -The HeatCapFCool curve represents how the heating capacity of the chiller varies with cooling capacity when the chiller is simultaeous heating and cooling. The curve is normalized so an input of 1.0 represents the nominal cooling capacity and an output of 1.0 represents the full heating capacity (see the Heating to Cooling Capacity Ratio input)~ The curve is usually linear or quadratic. The available heating capacity is computed as follows: +The HeatCapFCool curve represents how the heating capacity of the chiller varies with cooling capacity when the chiller is simultaneous heating and cooling. The curve is normalized so an input of 1.0 represents the nominal cooling capacity and an output of 1.0 represents the full heating capacity (see the Heating to Cooling Capacity Ratio input)~ The curve is usually linear or quadratic. The available heating capacity is computed as follows: \begin{equation} HeatFuelInput = AvailHeatCap \cdot HFIR \cdot HFIRfHPLR(HPLR) @@ -3655,7 +3655,7 @@ \subsubsection{Inputs}\label{inputs-9-014} \paragraph{Field: Electric Input to Heating Output Ratio}\label{field-electric-input-to-heating-output-ratio-1} -A positive fraction that represents the ratio of the instantaneous electricity used divided by the nominal heating capacity. If the chiller is both heating and cooling, the greater of the cooling electricity and heating eletricity is used. The default is 0.0. +A positive fraction that represents the ratio of the instantaneous electricity used divided by the nominal heating capacity. If the chiller is both heating and cooling, the greater of the cooling electricity and heating electricity is used. The default is 0.0. \paragraph{Field: Chilled Water Inlet Node Name}\label{field-chilled-water-inlet-node-name-8} @@ -4059,7 +4059,7 @@ \subsubsection{Outputs}\label{outputs-9-005} \subsection{Boiler:HotWater}\label{boilerhotwater} -The boiler model calculates the performance of fuel oil, gas and electric boilers. Boiler performance is based on nominal thermal efficiency. A normailized efficiency performance curve may be used to more accurately represent the performance of non-electric boilers but is not considered a required input. When using the normalized efficiency performance curve, if all coefficients are not required simply set the unused coefficients to 0. For example, an electric boiler could be modeled by setting the nominal thermal efficiency to a value in the range of 0.96 to 1.0. Coefficient A0 in the normalized efficiency performance curve would equal 1 and all other coefficients would be set to 0. Coefficients for other types of non-electric boilers would set a combination of the available coefficents to non-zero values. +The boiler model calculates the performance of fuel oil, gas and electric boilers. Boiler performance is based on nominal thermal efficiency. A normalized efficiency performance curve may be used to more accurately represent the performance of non-electric boilers but is not considered a required input. When using the normalized efficiency performance curve, if all coefficients are not required simply set the unused coefficients to 0. For example, an electric boiler could be modeled by setting the nominal thermal efficiency to a value in the range of 0.96 to 1.0. Coefficient A0 in the normalized efficiency performance curve would equal 1 and all other coefficients would be set to 0. Coefficients for other types of non-electric boilers would set a combination of the available coefficients to non-zero values. \subsubsection{Inputs}\label{inputs-10-013} @@ -4089,7 +4089,7 @@ \subsubsection{Inputs}\label{inputs-10-013} \paragraph{Field: Nominal Thermal Efficiency}\label{field-nominal-thermal-efficiency} -This required numeric field contains the heating efficiency (as a fraction between 0 and 1) of the boiler's burner.~ This is the efficiency relative to the higher heating value (HHV) of fuel at a part load ratio of 1.0. Manufacturers typically specify the efficiency of a boiler using the higher heating value of the fuel. For the rare occurences when a manufacturers (or particular data set) thermal efficiency is based on the lower heating value (LHV) of the fuel, multiply the thermal efficiency by the lower-to-higher heating value ratio. For example, assume a fuel's lower and higher heating values are approximately 45,450 and 50,000 kJ/kg, respectively. For a manuracturers thermal effiency rating of 0.90 (based on the LHV), the nominal thermal efficiency entered here is 0.82 (i.e.~0.9 multiplied by 45,450/50,000). +This required numeric field contains the heating efficiency (as a fraction between 0 and 1) of the boiler's burner.~ This is the efficiency relative to the higher heating value (HHV) of fuel at a part load ratio of 1.0. Manufacturers typically specify the efficiency of a boiler using the higher heating value of the fuel. For the rare occurrences when a manufacturers (or particular data set) thermal efficiency is based on the lower heating value (LHV) of the fuel, multiply the thermal efficiency by the lower-to-higher heating value ratio. For example, assume a fuel's lower and higher heating values are approximately 45,450 and 50,000 kJ/kg, respectively. For a manufacturers thermal efficiency rating of 0.90 (based on the LHV), the nominal thermal efficiency entered here is 0.82 (i.e.~0.9 multiplied by 45,450/50,000). \paragraph{Field: Efficiency Curve Temperature Evaluation Variable}\label{field-efficiency-curve-temperature-evaluation-variable} @@ -4710,7 +4710,7 @@ \subsubsection{Inputs}\label{inputs-12-012} \paragraph{Field: Reference Cooling Power Consumption}\label{field-rated-cooling-power-consumption} -This numeric field is the design electric power consumption for cooling, in W. This corresponds to the electic power use at the Reference Cooling Capacity. This field is autosizable. When autosized, the field called Reference Coefficient of Performance must be used. +This numeric field is the design electric power consumption for cooling, in W. This corresponds to the electric power use at the Reference Cooling Capacity. This field is autosizable. When autosized, the field called Reference Coefficient of Performance must be used. \paragraph{Fields: Cooling Capacity Curve Name}\label{fields-cooling-capacity-curve-name} @@ -4910,7 +4910,7 @@ \subsubsection{Inputs}\label{inputs-13-010} \paragraph{Field: Reference Heating Power Consumption}\label{field-rated-heating-power-consumption} -This numeric field contains the design electric power consumption for heating, in W. This corresponds to the electic power use at the Reference Heating Capacity. This field is autosizable. When autosized, the field called Reference Coefficient of Performance must be used. +This numeric field contains the design electric power consumption for heating, in W. This corresponds to the electric power use at the Reference Heating Capacity. This field is autosizable. When autosized, the field called Reference Coefficient of Performance must be used. \paragraph{Fields: Heating Capacity Curve Name}\label{fields-heating-capacity-curve-name} @@ -5230,7 +5230,7 @@ \subsubsection{Inputs}\label{inputs-15-010} 3998, !- Source Side Heat Transfer Coefficient {W/K} .012544, !- Piston Displacement {m3/s} .05469, !- Compressor Clearance Factor % - 92156.2, !- Compressor Suction And Dischrage Pressure Drop {Pa} + 92156.2, !- Compressor Suction And Discharge Pressure Drop {Pa} 4.8907, !- Superheating {C} 2803.9, !- Constant Part Of Electro Mechanical Power Losses {W} .699, !- Loss Factor @@ -5420,7 +5420,7 @@ \subsubsection{Inputs}\label{plhp_eir_inputs} EIRCurveFuncPLR2; !- Electric Input to Heating Output Ratio Modifier Function of Part Load Ratio Curve Name \end{lstlisting} -An idf example for an air-source applicaiton: +An idf example for an air-source application: \begin{lstlisting} HeatPump:PlantLoop:EIR:Heating, @@ -5581,9 +5581,9 @@ \subsubsection{Inputs} \paragraph{Field: Nominal COP} -The nominal COP (Coefficient of Performance) in [W/W], which is the fuel based COP of the heat pump in the rating conditions. This is a require-field. The default value is set to 1.0 in case the input filed is accidently left blank. +The nominal COP (Coefficient of Performance) in [W/W], which is the fuel based COP of the heat pump in the rating conditions. This is a require-field. The default value is set to 1.0 in case the input filed is accidentally left blank. -For the HeatPump:AirToWater:FuelFired:Heating object, this is the fuel based nominal heatinging COP; and for the HeatPump:AirToWater:FuelFired:Cooling object, this is the fuel based nominal cooling COP. +For the HeatPump:AirToWater:FuelFired:Heating object, this is the fuel based nominal heating COP; and for the HeatPump:AirToWater:FuelFired:Cooling object, this is the fuel based nominal cooling COP. \paragraph{Field: Design Flow Rate} @@ -5617,7 +5617,7 @@ \subsubsection{Inputs} \paragraph{Field: Normalized Capacity Function of Temperature Curve Name} -This field is the curve name of the normalized capacity function of the two independent temperature variables. The maximum capacity is adjusted from the rated conditions, and represents what the actual capacity the heat pump can achieve under the outdoor air temperature (either drybulb or wetbuld depending on the previous input field choice), and the water temperature (either leaving condenser/evaporator or entering condenser/evaporator depending on the previous input field choice). +This field is the curve name of the normalized capacity function of the two independent temperature variables. The maximum capacity is adjusted from the rated conditions, and represents what the actual capacity the heat pump can achieve under the outdoor air temperature (either drybulb or wetbulb depending on the previous input field choice), and the water temperature (either leaving condenser/evaporator or entering condenser/evaporator depending on the previous input field choice). \paragraph{Field: Fuel Energy Input Ratio Function of Temperature Curve name} @@ -5736,7 +5736,7 @@ \subsubsection{Outputs} This is the load side heat transfer rate for the fuel-fired absorption heat pump. The value will be positive for the heating mode, and negative for the cooling mode. \paragraph{Fuel-fired Absorption HeatPump Load Side Heating Transfer Energy [J]} -This is the accumulated value fo the load side heat transfer energy for the fuel-fired absorption heat pump. The value will be positive for the heating mode, and negative for the cooling mode. +This is the accumulated value of the load side heat transfer energy for the fuel-fired absorption heat pump. The value will be positive for the heating mode, and negative for the cooling mode. \paragraph{Fuel-fired Absorption HeatPump Fuel Rate [W]} This is the fuel consumption rate in [W] of the fuel-fired absorption heat pump. @@ -6353,7 +6353,7 @@ \subsubsection{Field: Reference Heating Mode Cooling Power Ratio}\label{field-re Ratio = \frac{{Powe{r_{@Tchw,l = 6.67C,Tcond,l = 51.67C}}}}{{Powe{r_{@Tchw,l = 6.67C,Tcond,l = 35.0C}}}} \end{equation} -The default value is 1.5. This field is used to determine full load compressor power at the simultaneous cooling-heating mode's reference chilled water leaving and condenser water leaving temperatures. Note: In heating-only mode, the chilled water leaving temperature floats so the EIRFT curve is used to modify the simultaneouos cooling-heating full load compressor power value. +The default value is 1.5. This field is used to determine full load compressor power at the simultaneous cooling-heating mode's reference chilled water leaving and condenser water leaving temperatures. Note: In heating-only mode, the chilled water leaving temperature floats so the EIRFT curve is used to modify the simultaneous cooling-heating full load compressor power value. \subsubsection{Field: Reference Heating Mode Leaving Chilled Water Temperature}\label{field-reference-heating-mode-leaving-chilled-water-temperature} diff --git a/doc/input-output-reference/src/overview/group-python-plugins.tex b/doc/input-output-reference/src/overview/group-python-plugins.tex index 2deddf79866..935ca3a2f78 100644 --- a/doc/input-output-reference/src/overview/group-python-plugins.tex +++ b/doc/input-output-reference/src/overview/group-python-plugins.tex @@ -98,7 +98,7 @@ \subsection{Python Plugin} Note: a single class can override multiple functions, so that the same class instance is called at multiple points in a simulation. Once this plugin is created, it can be placed in a number of locations on the filesystem, as described in the PythonPlugin:SearchPaths section~\ref{subsec:plugin-search-paths}. -The plugin instance, along with any other plugin related obejcts are declared in the input file, and then EnergyPlus is executed. +The plugin instance, along with any other plugin related objects are declared in the input file, and then EnergyPlus is executed. More data is provided in each of the specific object sections below. \subsection{PythonPlugin:SearchPaths}\label{subsec:plugin-search-paths} diff --git a/doc/input-output-reference/src/overview/group-radiative-convective-units.tex b/doc/input-output-reference/src/overview/group-radiative-convective-units.tex index 4a77cffbb89..d5e1bf9ea67 100644 --- a/doc/input-output-reference/src/overview/group-radiative-convective-units.tex +++ b/doc/input-output-reference/src/overview/group-radiative-convective-units.tex @@ -152,7 +152,7 @@ \subsubsection{ZoneHVAC:Baseboard:RadiantConvective:Water:Design}\label{ZoneHVAC \paragraph{Field: Fraction of Radiant Energy Incident on People}\label{field-fraction-of-radiant-energy-incident-on-people} -This field specifies the fraction of radiant portion of heat transfer to the zone from the baseboard heater that is incident directly on people within the space. This has an impact on the predicted thermal comfort of the zone occupants. Note that although this energy is ``radiant'' it is actually modeled in the zone heat balance as convective energy (like an internal gain). The basic assumption here is that most radiant energy falling on people will most likely be rereleased to the zone air by convection. This is a simplification of reality, but it maintains the overall energy balance. +This field specifies the fraction of radiant portion of heat transfer to the zone from the baseboard heater that is incident directly on people within the space. This has an impact on the predicted thermal comfort of the zone occupants. Note that although this energy is ``radiant'' it is actually modeled in the zone heat balance as convective energy (like an internal gain). The basic assumption here is that most radiant energy falling on people will most likely be re-released to the zone air by convection. This is a simplification of reality, but it maintains the overall energy balance. An example IDF for the water baseboard design object is shown below. @@ -356,7 +356,7 @@ \subsubsection{ZoneHVAC:Baseboard:RadiantConvective:Steam:Design}\label{ZoneHVAC \paragraph{Field: Fraction of Radiant Energy Incident on People}\label{field-fraction-of-radiant-energy-incident-on-people-1} -This field specifies the fraction of radiant portion of heat transfer to the zone from the baseboard heater that is incident directly on people within the space. This has an impact on the predicted thermal comfort of the zone occupants. Note that although this energy is ``radiant'' it is actually modeled in the zone heat balance as convective energy (like an internal gain). The basic assumption here is that most radiant energy falling on people will most likely be rereleased to the zone air by convection. This is a simplification of reality, but it maintains the overall energy balance. +This field specifies the fraction of radiant portion of heat transfer to the zone from the baseboard heater that is incident directly on people within the space. This has an impact on the predicted thermal comfort of the zone occupants. Note that although this energy is ``radiant'' it is actually modeled in the zone heat balance as convective energy (like an internal gain). The basic assumption here is that most radiant energy falling on people will most likely be re-released to the zone air by convection. This is a simplification of reality, but it maintains the overall energy balance. An example IDF for the steam baseboard design object is shown below. @@ -479,7 +479,7 @@ \subsubsection{Inputs}\label{inputs-2-032} \paragraph{Field: Fraction of Radiant Energy Incident on People}\label{field-fraction-of-radiant-energy-incident-on-people-2} -This field specifies the fraction of the radiant portion of heat transfer to the zone from the baseboard heater that is incident directly on people within the space. This has an impact on the predicted thermal comfort of the zone occupants. Note that although this energy is ``radiant'' it is actually modeled in the zone heat balance as a convective energy (like an internal gain). The basic assumption here is that radiant energy falling on people will most likely be rereleased to the zone air by convection. This is a simplification of reality, but it maintains the overall energy balance. +This field specifies the fraction of the radiant portion of heat transfer to the zone from the baseboard heater that is incident directly on people within the space. This has an impact on the predicted thermal comfort of the zone occupants. Note that although this energy is ``radiant'' it is actually modeled in the zone heat balance as a convective energy (like an internal gain). The basic assumption here is that radiant energy falling on people will most likely be re-released to the zone air by convection. This is a simplification of reality, but it maintains the overall energy balance. \paragraph{Field Set: Surface Name, Fraction of Radiant Energy to Surface}\label{field-set-surface-name-fraction-of-radiant-energy-to-surface-2} @@ -1289,7 +1289,7 @@ \subsubsection{Inputs} \paragraph{Field: Heating Control Throttling Range}\label{field-heating-control-throttling-range} -This field specifies the range of temperature in degrees Celsuis over which the radiant system throttles from zero flow rate up to the maximum defined by the maximum hot water flow rate field described above. The throttling range parameter is used in conjunction with the control temperature and the setpoint type to define the response of the system to various conditions. The Heating Control Temperature Schedule specifies the ``setpoint'' temperature that is to be met. This is used in conjunction with the Setpoint Type which defines whether the flow rate of the system is at zero flow or half flow when the parameter defined by the Temperature Control Type is equal to the setpoint temperature defined by the Heating Control Temperature Schedule. See these other input parameters of this radiant system for more information on these different parameters. Note that when the throttling range is set to zero that this approximates an on-off system that is either fully on or totally off. +This field specifies the range of temperature in degrees Celsius over which the radiant system throttles from zero flow rate up to the maximum defined by the maximum hot water flow rate field described above. The throttling range parameter is used in conjunction with the control temperature and the setpoint type to define the response of the system to various conditions. The Heating Control Temperature Schedule specifies the ``setpoint'' temperature that is to be met. This is used in conjunction with the Setpoint Type which defines whether the flow rate of the system is at zero flow or half flow when the parameter defined by the Temperature Control Type is equal to the setpoint temperature defined by the Heating Control Temperature Schedule. See these other input parameters of this radiant system for more information on these different parameters. Note that when the throttling range is set to zero that this approximates an on-off system that is either fully on or totally off. For clarity, here is an example of how the flow rate to the system will be set. In this example, it is assumed that heating control temperature setpoint is currently 15$^\circ$C, the heating throttling range is 2$^\circ$C, and that the setpoint type is HalfFlowPower. The water flow rate to the radiant system will be zero when the controlling temperature (MAT, MRT, Operative Temperature, etc.; see control type field above) is at or above 16$^\circ$C and the maximum flow rate when the controlling temperature is at or below 14$^\circ$C. This represents a throttling range of 2$^\circ$C around the setpoint of 15$^\circ$C. In between 14$^\circ$C and 16$^\circ$C, the flow rate to the radiant system is varied linearly from full flow at a control temperature of 14$^\circ$C to half flow at 15$^\circ$C to zero flow at 16$^\circ$C. If the throttling range is changed to 0$^\circ$C or on-off control, then the system will be off above 15$^\circ$C and on below 15$^\circ$C. However, if the throttling range is kept at 2$^\circ$C and the setpoint type is changed to ZeroFlowPower, then the system will vary the flow linearly between zero for when the control temperature is at 15$^\circ$C to full flow at 13$^\circ$C. @@ -1311,7 +1311,7 @@ \subsubsection{Inputs} \paragraph{Field: Cooling Control Throttling Range}\label{field-cooling-control-throttling-range} -This field specifies the range of temperature in degrees Celsuis over which the radiant system throttles from zero flow rate up to the maximum defined by the maximum cold water flow rate field described above. The throttling range parameter is used in conjunction with the control temperature and the setpoint type to define the response of the system to various conditions. The Cooling Control Temperature Schedule specifies the ``setpoint'' temperature that is to be met. This is used in conjunction with the Setpoint Type which defines whether the flow rate of the system is at zero flow or half flow when the parameter defined by the Temperature Control Type is equal to the setpoint temperature defined by the Cooling Control Temperature Schedule. See these other input parameters of this radiant system for more information on these different parameters. Note that when the throttling range is set to zero that this approximates an on-off system that is either fully on or totally off. +This field specifies the range of temperature in degrees Celsius over which the radiant system throttles from zero flow rate up to the maximum defined by the maximum cold water flow rate field described above. The throttling range parameter is used in conjunction with the control temperature and the setpoint type to define the response of the system to various conditions. The Cooling Control Temperature Schedule specifies the ``setpoint'' temperature that is to be met. This is used in conjunction with the Setpoint Type which defines whether the flow rate of the system is at zero flow or half flow when the parameter defined by the Temperature Control Type is equal to the setpoint temperature defined by the Cooling Control Temperature Schedule. See these other input parameters of this radiant system for more information on these different parameters. Note that when the throttling range is set to zero that this approximates an on-off system that is either fully on or totally off. For clarity, here is an example of how the flow rate to the system will be set. In this example, it is assumed that cooling control temperature setpoint is currently 25$^\circ$C, the cooling throttling range is 2$^\circ$C, and that the setpoint type is HalfFlowPower. The water flow rate to the radiant system will be zero when the controlling temperature (MAT, MRT, Operative Temperature, etc.; see control type field above) is at or below 24$^\circ$C and the maximum flow rate when the controlling temperature is at or above 26$^\circ$C. This represents a throttling range of 2$^\circ$C around the setpoint of 25$^\circ$C. In between 24$^\circ$C and 26$^\circ$C, the flow rate to the radiant system is varied linearly from zero flow at a control temperature of 24$^\circ$C to half flow at 15$^\circ$C to full flow at w6$^\circ$C. If the throttling range is changed to 0$^\circ$C or on-off control, then the system will be on above 25$^\circ$C and off below 25$^\circ$C. However, if the throttling range is kept at 2$^\circ$C and the setpoint type is changed to ZeroFlowPower, then the system will vary the flow linearly between zero for when the control temperature is at 25$^\circ$C to full flow at 27$^\circ$C. @@ -1846,7 +1846,7 @@ \subsubsection{Inputs}\label{inputs-7-019} \paragraph{Field: Heating Throttling Range}\label{field-heating-throttling-range} -This field specifies the range of temperature in degrees Celsuis over which the radiant system throttles from zero flow heat input via the electric resistance wires up to the maximum defined by the maximum electrical power field described above. The throttling range parameter is used in conjunction with the control temperature and the setpoint type to define the response of the system to various conditions. The Heating Setpoint Temperature Schedule specifies the ``setpoint'' temperature that is to be met. This is used in conjunction with the Setpoint Type which defines whether the flow rate of the system is at zero heat input or half heat input when the parameter defined by the Temperature Control Type is equal to the setpoint temperature defined by the Heating Control Temperature Schedule. See these other input parameters of this radiant system for more information on these different parameters. Note that when the throttling range is set to zero that this approximates an on-off system that is either fully on or totally off. +This field specifies the range of temperature in degrees Celsius over which the radiant system throttles from zero flow heat input via the electric resistance wires up to the maximum defined by the maximum electrical power field described above. The throttling range parameter is used in conjunction with the control temperature and the setpoint type to define the response of the system to various conditions. The Heating Setpoint Temperature Schedule specifies the ``setpoint'' temperature that is to be met. This is used in conjunction with the Setpoint Type which defines whether the flow rate of the system is at zero heat input or half heat input when the parameter defined by the Temperature Control Type is equal to the setpoint temperature defined by the Heating Control Temperature Schedule. See these other input parameters of this radiant system for more information on these different parameters. Note that when the throttling range is set to zero that this approximates an on-off system that is either fully on or totally off. For clarity, here is an example of how the heat input fraction (of the unit capacity) to the system will be set. In this example, it is assumed that heating control temperature setpoint is currently 15$^\circ$C, the heating throttling range is 2$^\circ$C, and that the setpoint type is HalfFlowPower. The heat input rate to the radiant system will be zero when the controlling temperature (MAT, MRT, Operative Temperature, etc.; see control type field above) is at or above 16$^\circ$C and the maximum heat input when the controlling temperature is at or below 14$^\circ$C. This represents a throttling range of 2$^\circ$C around the setpoint of 15$^\circ$C. In between 14$^\circ$C and 16$^\circ$C, the heat input rate to the radiant system is varied linearly from full heat input at a control temperature of 14$^\circ$C to half heat input at 15$^\circ$C to zero heat input at 16$^\circ$C. If the throttling range is changed to 0$^\circ$C or on-off control, then the system will be off above 15$^\circ$C and on below 15$^\circ$C. However, if the throttling range is kept at 2$^\circ$C and the setpoint type is changed to ZeroFlowPower, then the system will vary the heat input linearly between zero for when the control temperature is at 15$^\circ$C to full heat input at 13$^\circ$C. @@ -2013,7 +2013,7 @@ \subsubsection{Inputs}\label{inputs-9-015} \paragraph{Field: Heating Throttling Range}\label{field-heating-throttling-range-1} -This field specifies the range of temperature in degrees Celsuis over which the radiant system throttles from zero heat input via the electric resistance wires up to the maximum defined by the maximum electrical power field described above. The throttling range parameter is used in conjunction with the control temperature (see below) to define the response of the system to various zone conditions. The heating control temperature schedule specifies the ``setpoint'' temperature where the power input to the system is at half of the maximum power input. For example, if the heating control temperature setpoint is currently 15$^\circ$C and the heating throttling range is 2$^\circ$C, the electrical power supplied to the radiant system will be zero when the controlling temperature (Mean Air Temperature, Mean Radiant Temperature, and Operative Temperature; see control type field above) is at or above 16$^\circ$C and the maximum power input when the controlling temperature is at or below 14$^\circ$C. This represents a throttling range of 2$^\circ$C around the setpoint of 15$^\circ$C. In between 14$^\circ$C and 16$^\circ$C, the power input to the radiant system is varied linearly. +This field specifies the range of temperature in degrees Celsius over which the radiant system throttles from zero heat input via the electric resistance wires up to the maximum defined by the maximum electrical power field described above. The throttling range parameter is used in conjunction with the control temperature (see below) to define the response of the system to various zone conditions. The heating control temperature schedule specifies the ``setpoint'' temperature where the power input to the system is at half of the maximum power input. For example, if the heating control temperature setpoint is currently 15$^\circ$C and the heating throttling range is 2$^\circ$C, the electrical power supplied to the radiant system will be zero when the controlling temperature (Mean Air Temperature, Mean Radiant Temperature, and Operative Temperature; see control type field above) is at or above 16$^\circ$C and the maximum power input when the controlling temperature is at or below 14$^\circ$C. This represents a throttling range of 2$^\circ$C around the setpoint of 15$^\circ$C. In between 14$^\circ$C and 16$^\circ$C, the power input to the radiant system is varied linearly. \paragraph{Field: Heating Setpoint Temperature Schedule Name}\label{field-heating-setpoint-temperature-schedule-name-1} @@ -2154,7 +2154,7 @@ \subsubsection{Inputs}\label{inputs-10-014} \paragraph{Field: Maximum Outdoor Air Flow Rate}\label{field-maximum-outdoor-air-flow-rate-001} -This field allows the user to enter the maximum volumetric flow rate of outdoor air that can be brought into the ventilated slab in m\(^{3}\)/sec.~ This parameter should be some real number greater than zero.~ Note that the value for this parameter may be less than the maximum air flow rate of the ventilated slab and this may affect the maximum fraction of outdoor air within the control strategy defined above. This parameter is an absolute maximum and will supercede any scheduled fraction of the ventilated slab maximum airflow rate. If ``FixedAmount'' type is selected as the outdoor air control strategy, this field will be ignored and be automatically set to be equal to the minimum outdoor air flow rate specified in the field above. +This field allows the user to enter the maximum volumetric flow rate of outdoor air that can be brought into the ventilated slab in m\(^{3}\)/sec.~ This parameter should be some real number greater than zero.~ Note that the value for this parameter may be less than the maximum air flow rate of the ventilated slab and this may affect the maximum fraction of outdoor air within the control strategy defined above. This parameter is an absolute maximum and will supersede any scheduled fraction of the ventilated slab maximum airflow rate. If ``FixedAmount'' type is selected as the outdoor air control strategy, this field will be ignored and be automatically set to be equal to the minimum outdoor air flow rate specified in the field above. \paragraph{Field: Maximum Outdoor Air Fraction or Temperature Schedule Name}\label{field-maximum-outdoor-air-fraction-or-temperature-schedule-name} @@ -2321,7 +2321,7 @@ \subsubsection{Inputs}\label{inputs-10-014} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Ventilated Slab zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling and heating capacity of the coils. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Ventilated Slab zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling and heating capacity of the coils. An example IDF with a ventilated slab is shown below. @@ -2453,7 +2453,7 @@ \subsubsection{Outputs}\label{outputs-9-006} \paragraph{Zone Ventilated Slab Coil Sensible Cooling Energy {[}J{]}}\label{zone-ventilated-slab-coil-sensible-cooling-energy-j} -This field is the sensible cooling output of the cooling coli of the ventilated slab system to the zone it is serving in Joules over the timestep being reported.~ This is determined by outlet and zone air conditions, the mass flow rate through the ventilation slab system, and the timestep. +This field is the sensible cooling output of the cooling coil of the ventilated slab system to the zone it is serving in Joules over the timestep being reported.~ This is determined by outlet and zone air conditions, the mass flow rate through the ventilation slab system, and the timestep. \paragraph{Zone Ventilated Slab Coil Latent Cooling Rate {[}W{]}}\label{zone-ventilated-slab-coil-latent-cooling-rate-w} @@ -2461,7 +2461,7 @@ \subsubsection{Outputs}\label{outputs-9-006} \paragraph{Zone Ventilated Slab Coil Latent Cooling Energy {[}J{]}}\label{zone-ventilated-slab-coil-latent-cooling-energy-j} -This field is the latent cooling output of the cooling coli of the ventilated slab system to the zone it is serving in Joules over the timestep being reported.~ This is determined by outlet and zone air conditions, the mass flow rate through the ventilation slab system, and the timestep. +This field is the latent cooling output of the cooling coil of the ventilated slab system to the zone it is serving in Joules over the timestep being reported.~ This is determined by outlet and zone air conditions, the mass flow rate through the ventilation slab system, and the timestep. \paragraph{Zone Ventilated Slab Air Mass Flow Rate {[}kg/s{]}}\label{zone-ventilated-slab-air-mass-flow-rate-kgs} diff --git a/doc/input-output-reference/src/overview/group-refrigeration.tex b/doc/input-output-reference/src/overview/group-refrigeration.tex index 1ad530f9f93..9592a0ecfa8 100644 --- a/doc/input-output-reference/src/overview/group-refrigeration.tex +++ b/doc/input-output-reference/src/overview/group-refrigeration.tex @@ -548,7 +548,7 @@ \subsubsection{Inputs}\label{inputs-1-036} CaseTemperatureMethod \end{itemize} -This method defines the variation in latent case credits as a cubic function of Case Operating Temperature. The result from the cubic curve is multiplied by the difference between the rated ambient relative humidity and the actual zone relative humidity, and one minus this value is multiplied by the Rated LHR to give the operating LHR at the actual zone humidity condition. (Representative cooefficient values for single-shelf horizontal and multi-shelf vertical display cases are given in the EnergyPlus Engineering Reference.) +This method defines the variation in latent case credits as a cubic function of Case Operating Temperature. The result from the cubic curve is multiplied by the difference between the rated ambient relative humidity and the actual zone relative humidity, and one minus this value is multiplied by the Rated LHR to give the operating LHR at the actual zone humidity condition. (Representative coefficient values for single-shelf horizontal and multi-shelf vertical display cases are given in the EnergyPlus Engineering Reference.) \begin{itemize} \tightlist @@ -656,7 +656,7 @@ \subsubsection{Inputs}\label{inputs-1-036} CaseTemperatureMethod \end{itemize} -This method defines the variation in defrost energy as a cubic function of Case Operating Temperature. The result from the cubic curve is multiplied by the difference between the rated ambient relative humidity and the actual zone relative humidity, and one minus this value is multiplied by the Case Defrost Power to give the (average) operating defrost power at the actual zone humidity condition. (Representative cooefficient values for single-shelf horizontal and multi-shelf vertical display cases are given in the EnergyPlus Engineering Reference.) +This method defines the variation in defrost energy as a cubic function of Case Operating Temperature. The result from the cubic curve is multiplied by the difference between the rated ambient relative humidity and the actual zone relative humidity, and one minus this value is multiplied by the Case Defrost Power to give the (average) operating defrost power at the actual zone humidity condition. (Representative coefficient values for single-shelf horizontal and multi-shelf vertical display cases are given in the EnergyPlus Engineering Reference.) \begin{itemize} \tightlist @@ -935,7 +935,7 @@ \subsubsection{Outputs}\label{outputs-1-022} \subsection{Refrigeration:CaseAndWalkInList}\label{refrigerationcaseandwalkinlist} -This object provides a list of all the refrigerated cases and/or walk in coolers cooled by a single refrigeration system (ref: Refrigeraion:CompressorRack and \hyperref[refrigerationsystem]{Refrigeration:System}). This list is extensible. Note that the names of all cases, walk-ins,air chillers, and caseandwalkinlists must be unique.~ That is, you cannot give a list the same name as one of the cases.~ Similarly, a walkin cannot have the same name as a case.This list may contain a combination of case and walk-in names OR a list of air chiller names.~ Air chillers may not be included in any list that also includes cases or walk-ins. +This object provides a list of all the refrigerated cases and/or walk in coolers cooled by a single refrigeration system (ref: Refrigeration:CompressorRack and \hyperref[refrigerationsystem]{Refrigeration:System}). This list is extensible. Note that the names of all cases, walk-ins,air chillers, and caseandwalkinlists must be unique.~ That is, you cannot give a list the same name as one of the cases.~ Similarly, a walkin cannot have the same name as a case.This list may contain a combination of case and walk-in names OR a list of air chiller names.~ Air chillers may not be included in any list that also includes cases or walk-ins. \subsubsection{Inputs}\label{inputs-2-033} @@ -1053,7 +1053,7 @@ \subsubsection{Field: Insulated Floor Surface Area}\label{field-insulated-floor- \subsubsection{Field: Insulated Floor U-Value}\label{field-insulated-floor-u-value} -The floor themal transmittance (in W/m\(^{2}\)-K). This value has a default value of 0.3154. (This corresponds to R18 in Archaic American Insulation Units.~ To convert other R-values to thermal transmittance, divide 5.678 by the R-value.~ For example, R15 is 0.3785 W/m\(^{2}\)-K and R5 is 1.136 W/m\(^{2}\)-K.) +The floor thermal transmittance (in W/m\(^{2}\)-K). This value has a default value of 0.3154. (This corresponds to R18 in Archaic American Insulation Units.~ To convert other R-values to thermal transmittance, divide 5.678 by the R-value.~ For example, R15 is 0.3785 W/m\(^{2}\)-K and R5 is 1.136 W/m\(^{2}\)-K.) \textbf{\emph{THE REMAINING 12 FIELDS FOR THE WALK-IN COOLER MUST BE REPEATED FOR EACH ZONE WHICH IS IN CONTACT WITH A WALK-IN WALL, CEILING, OR DOOR. This object is extensible, so additional fields of this type can be added to the end of this object by repeating the last 12 fields in the object.}} @@ -1067,7 +1067,7 @@ \subsubsection{Field: Total Insulated Surface Area Facing~ Zone \textless{}x\tex \subsubsection{Field: Insulated Surface U-Value Facing Zone \textless{}x\textgreater{}}\label{field-insulated-surface-u-value-facing-zone-x} -The surface (walls and ceilings) themal transmittance (in W/m\(^{2}\)-K). This value has a default value of 0.3154. (This corresponds to R18 in Archaic American Insulation Units.~ To convert other R-values to thermal transmittance, divide 5.678 by the R-value.~ For example, R15 is 0.3785 W/m\(^{2}\)-K and R5 is 1.136 W/m\(^{2}\)-K.) +The surface (walls and ceilings) thermal transmittance (in W/m\(^{2}\)-K). This value has a default value of 0.3154. (This corresponds to R18 in Archaic American Insulation Units.~ To convert other R-values to thermal transmittance, divide 5.678 by the R-value.~ For example, R15 is 0.3785 W/m\(^{2}\)-K and R5 is 1.136 W/m\(^{2}\)-K.) \subsubsection{Field: Area of Glass Reach In Doors Facing Zone \textless{}x\textgreater{}}\label{field-area-of-glass-reach-in-doors-facing-zone-x} @@ -1079,7 +1079,7 @@ \subsubsection{Field: Height of Glass Reach In Doors Facing Zone \textless{}x\te \subsubsection{Field: Glass Reach In Door U-Value Facing Zone \textless{}x\textgreater{}}\label{field-glass-reach-in-door-u-value-facing-zone-x} -The glass door themal transmittance (in W/m\(^{2}\)-K). This field has a default value of 1.136. (This corresponds to R5 in Archaic American Insulation Units.) +The glass door thermal transmittance (in W/m\(^{2}\)-K). This field has a default value of 1.136. (This corresponds to R5 in Archaic American Insulation Units.) \subsubsection{Field: Glass Reach In Door Opening Schedule Name Facing Zone \textless{}x\textgreater{}}\label{field-glass-reach-in-door-opening-schedule-name-facing-zone-x} @@ -1095,7 +1095,7 @@ \subsubsection{Field: Height of Stocking Doors Facing Zone \textless{}x\textgrea \subsubsection{Field: Stocking Door U-Value Facing Zone \textless{}x\textgreater{}}\label{field-stocking-door-u-value-facing-zone-x} -The stocking door themal transmittance (in W/m\(^{2}\)-K). This value has a default value of 0.3785. (This corresponds to R15 in Archaic American Insulation Units.) +The stocking door thermal transmittance (in W/m\(^{2}\)-K). This value has a default value of 0.3785. (This corresponds to R15 in Archaic American Insulation Units.) \subsubsection{Field: Stocking Door Opening Schedule Name Facing Zone \textless{}x\textgreater{}}\label{field-stocking-door-opening-schedule-name-facing-zone-x} @@ -1390,7 +1390,7 @@ \subsubsection{Inputs}\label{inputs-3-029} , !- Refrigeration Transfer Load or TransferLoad List Name AirCooledCondenserA, !- Refrigeration Condenser Name MediumTempCompressorlist, !- Refrigeration Compressor or CompressorList Name - 25.0, !- Minimum Condensing Temperture {C} + 25.0, !- Minimum Condensing Temperature {C} R134a, !- Refrigeration System Working Fluid ConstantSuctionTemperature, !- Suction Temperature Control Type , !- Optional mechanical subcooler name @@ -1410,7 +1410,7 @@ \subsubsection{Inputs}\label{inputs-3-029} , !- Refrigeration Transfer Load or TransferLoad List Name AirCooledCondenserB, !- Refrigeration Condenser Name LowStageCompressorList, !- Refrigeration Compressor or CompressorList Name - 25.0, !- Minimum Condensing Temperture {C} + 25.0, !- Minimum Condensing Temperature {C} R404A, !- Refrigeration System Working Fluid ConstantSuctionTemperature, !- Suction Temperature Control , !- Optional mechanical subcooler name @@ -1634,7 +1634,7 @@ \subsubsection{Outputs}\label{outputs-2-018} \paragraph{Refrigeration System Total Cases and Walk Ins Heat Transfer Energy {[}J{]}}\label{refrigeration-system-total-cases-and-walk-ins-heat-transfer-energy-j} -This output is the total heat transfer energy from the refrigerated cases and walk-ins served directly by this system in Joules. It is the sum of all of the heat transfered for the refrigerated cases and walk-ins that are connected directly to this system. This value does not include compressor or condenser fan heat or the heat transfer for cases and walk-ins served by any connected secondary systems. +This output is the total heat transfer energy from the refrigerated cases and walk-ins served directly by this system in Joules. It is the sum of all of the heat transferred for the refrigerated cases and walk-ins that are connected directly to this system. This value does not include compressor or condenser fan heat or the heat transfer for cases and walk-ins served by any connected secondary systems. \paragraph{Refrigeration System Total Transferred Load Heat Transfer Rate {[}W{]}}\label{refrigeration-system-total-transferred-load-heat-transfer-rate-w} @@ -1642,7 +1642,7 @@ \subsubsection{Outputs}\label{outputs-2-018} \paragraph{Refrigeration System Total Transferred Load Heat Transfer Energy {[}J{]}}\label{refrigeration-system-total-transferred-load-heat-transfer-energy-j} -This output is the sum of the heat transfered for any secondary loops, cascade condensers, and mechanical subcoolers cooled by this system, minus the benefit of any mechanical subcooler providing cooling to this system in Joules. Therefore, if the only transfer load between two systems is a mechanical subcooler, the same amount will show as a negative value for the system receiving the cooling effect and as a positive number for the system serving that cooling load. It also includes the pump energy for any secondary loops and the compressor energy for any cascade condenser systems that are cooled by this system. (See the Engineering Reference for more details about the loads placed by secondary systems upon the primary system.) +This output is the sum of the heat transferred for any secondary loops, cascade condensers, and mechanical subcoolers cooled by this system, minus the benefit of any mechanical subcooler providing cooling to this system in Joules. Therefore, if the only transfer load between two systems is a mechanical subcooler, the same amount will show as a negative value for the system receiving the cooling effect and as a positive number for the system serving that cooling load. It also includes the pump energy for any secondary loops and the compressor energy for any cascade condenser systems that are cooled by this system. (See the Engineering Reference for more details about the loads placed by secondary systems upon the primary system.) \paragraph{Refrigeration System Total Suction Pipe Heat Gain Rate {[}W{]}}\label{refrigeration-system-total-suction-pipe-heat-gain-rate-w} @@ -1772,7 +1772,7 @@ \subsubsection{Outputs}\label{outputs-2-018} \paragraph{Refrigeration Air Chiller System Total Case and Walk In Heat Transfer Energy {[}J{]}}\label{refrigeration-air-chiller-system-total-case-and-walk-in-heat-transfer-energy-j} -This output is the total heat transfer energy from the refrigerated cases and walk-ins served directly by this system in Joules. It is the sum of all of the heat transfered for the refrigerated cases and walk-ins that are connected directly to this system. This value does not include compressor or condenser fan heat or the heat transfer for cases and walk-ins served by any connected secondary systems. +This output is the total heat transfer energy from the refrigerated cases and walk-ins served directly by this system in Joules. It is the sum of all of the heat transferred for the refrigerated cases and walk-ins that are connected directly to this system. This value does not include compressor or condenser fan heat or the heat transfer for cases and walk-ins served by any connected secondary systems. \paragraph{Refrigeration Air Chiller System Total Transferred Load Heat Transfer Rate {[}W{]}}\label{refrigeration-air-chiller-system-total-transferred-load-heat-transfer-rate-w} @@ -1780,7 +1780,7 @@ \subsubsection{Outputs}\label{outputs-2-018} \paragraph{Refrigeration Air Chiller System Total Transferred Load Heat Transfer Energy {[}J{]}}\label{refrigeration-air-chiller-system-total-transferred-load-heat-transfer-energy-j} -This output is the sum of the heat transfered for any secondary loops, cascade condensers, and mechanical subcoolers cooled by this system, minus the benefit of any mechanical subcooler providing cooling to this system in Joules. Therefore, if the only transfer load between two systems is a mechanical subcooler, the same amount will show as a negative value for the system receiving the cooling effect and as a positive number for the system serving that cooling load. It also includes the pump energy for any secondary loops and the compressor energy for any cascade condenser systems that are cooled by this system. (See the Engineering Reference for more details about the loads placed by secondary systems upon the primary system.) +This output is the sum of the heat transferred for any secondary loops, cascade condensers, and mechanical subcoolers cooled by this system, minus the benefit of any mechanical subcooler providing cooling to this system in Joules. Therefore, if the only transfer load between two systems is a mechanical subcooler, the same amount will show as a negative value for the system receiving the cooling effect and as a positive number for the system serving that cooling load. It also includes the pump energy for any secondary loops and the compressor energy for any cascade condenser systems that are cooled by this system. (See the Engineering Reference for more details about the loads placed by secondary systems upon the primary system.) \paragraph{Refrigeration Air Chiller System Total Suction Pipe Heat Gain Rate {[}W{]}}\label{refrigeration-air-chiller-system-total-suction-pipe-heat-gain-rate-w} @@ -2795,7 +2795,7 @@ \subsubsection{Inputs}\label{inputs-9-016} 746., !- Rated Condenser Fan Power 0.25, !- Minimum air flow fraction through condenser fan {dimensionless} 6.63 , !- Evaporative Condenser Approach Temp Const, {C} - 0.468 , !- Evaporative Condenser Approach Temp HRCF Cooefficient + 0.468 , !- Evaporative Condenser Approach Temp HRCF Coefficient 17.93 , !- Evaporative Condenser Approach Temp 1/hrcf coefficient -0.322, !- Evaporative Condenser Approach Temp Twb coefficient {1/C} 0.6 , !- Minimum Condenser Capacity Factor @@ -3524,7 +3524,7 @@ \subsubsection{Inputs}\label{inputs-14-011} For ``FluidAlwaysLiquid'', this name must correspond to either an ethylene or propylene glycol (ref: \hyperref[fluidpropertiesglycolconcentration]{FluidProperties:GlycolConcentration}) or to a user-defined glycol (ref: \hyperref[fluidpropertiesname]{FluidProperties:Name} and FluidProperties: GlycolConcentration) in the input file. Note that the corresponding property data, including \hyperref[fluidpropertiesconcentration]{FluidProperties:Concentration}, \hyperref[fluidpropertiestemperatures]{FluidProperties:Temperatures}, and \hyperref[fluidpropertiesglycolconcentration]{FluidProperties:GlycolConcentration} must also be included in the input file and are provided in GlycolPropertiesRefData.idf for typical ethylene and propylene glycols. -For ``FluidPhaseChange'', the refrigerant used by the secondary system must be listed in the \hyperref[fluidpropertiesname]{FluidProperties:Name} object.~ The corresponding property data must also be supplied in the input file. Property data for many refrigererants, including R11, R123, R134A, R12, R22, R404A, R507A, R410A, and R744, are available in FluidPropertiesRefData.idf. +For ``FluidPhaseChange'', the refrigerant used by the secondary system must be listed in the \hyperref[fluidpropertiesname]{FluidProperties:Name} object.~ The corresponding property data must also be supplied in the input file. Property data for many refrigerants, including R11, R123, R134A, R12, R22, R404A, R507A, R410A, and R744, are available in FluidPropertiesRefData.idf. \paragraph{Field: Evaporator Capacity}\label{field-evaporator-capacity} @@ -3536,7 +3536,7 @@ \subsubsection{Inputs}\label{inputs-14-011} For ``FluidAlwaysLiquid'' systems, this is the rated evaporator secondary fluid flow rate in m\(^{3}\)/s.~ If this variable is specified and the rated evaporator capacity in watts is not, then the rated capacity will be calculated. At least one of these two input variables is required. -For ``FluidPhaseChange'', this field is not used (see ``Phase Cange Circulating Rate''). +For ``FluidPhaseChange'', this field is not used (see ``Phase Change Circulating Rate''). \paragraph{Field:Evaporator Evaporating Temperature}\label{fieldevaporator-evaporating-temperature} @@ -3596,7 +3596,7 @@ \subsubsection{Inputs}\label{inputs-14-011} \paragraph{Field: Sum UA Receiver/Separator Shell}\label{field-sum-ua-receiverseparator-shell} -This optional field is typically used when trying to compare the impact of refrigeration component heat gains on system performance, particularly in comparing a conventional primary DX system to a secondary system. Enter the value for receiver/separator heat gain (in W/C).~ That is, sum up the product of the tank insulaton conductance times the outer tank insulation surface area. Please see the Engineering Reference for guidance in calculating this value. +This optional field is typically used when trying to compare the impact of refrigeration component heat gains on system performance, particularly in comparing a conventional primary DX system to a secondary system. Enter the value for receiver/separator heat gain (in W/C).~ That is, sum up the product of the tank insulation conductance times the outer tank insulation surface area. Please see the Engineering Reference for guidance in calculating this value. \paragraph{Field: Receiver/Separator Zone Name}\label{field-receiverseparator-zone-name} diff --git a/doc/input-output-reference/src/overview/group-room-air-models.tex b/doc/input-output-reference/src/overview/group-room-air-models.tex index 1db9af4809f..84071d2a658 100644 --- a/doc/input-output-reference/src/overview/group-room-air-models.tex +++ b/doc/input-output-reference/src/overview/group-room-air-models.tex @@ -790,7 +790,7 @@ \subsubsection{Inputs}\label{inputs-2016-06-17-0938} \paragraph{Field: Diffuser Type}\label{field-diffuser-type} -The choices for this alpha field are \textbf{Swirl} \textbar{} \textbf{VariableArea} \textbar{} \textbf{HorizontalSwirl \textbar{} LinearBarGrille \textbar{} Custom.} The swirl and displacement diffusers are fixed area diffusers. The variable area diffusers maintain an approximately constant exit velocity. Linear bar grilles are normally used in exterior zonesand are fixed area diffusers. Custom is used to signify that the user intends to input the coefficients A -- E (see below) rather than let the program set the coefficients based on diffuser type. The default is \emph{Swirl}. +The choices for this alpha field are \textbf{Swirl} \textbar{} \textbf{VariableArea} \textbar{} \textbf{HorizontalSwirl \textbar{} LinearBarGrille \textbar{} Custom.} The swirl and displacement diffusers are fixed area diffusers. The variable area diffusers maintain an approximately constant exit velocity. Linear bar grilles are normally used in exterior zones and are fixed area diffusers. Custom is used to signify that the user intends to input the coefficients A -- E (see below) rather than let the program set the coefficients based on diffuser type. The default is \emph{Swirl}. \paragraph{Field: Transition Height}\label{field-transition-height} @@ -966,7 +966,7 @@ \subsubsection{Inputs}\label{inputs-11-016} \paragraph{Field: Diffuser Type}\label{field-diffuser-type-1} -The choices for this alpha field are \textbf{Swirl} \textbar{} \textbf{VariableArea} \textbar{} \textbf{HorizontalSwirl \textbar{} LinearBarGrille \textbar{} Custom.} The swirl and displacement diffusers are fixed area diffusers. The variable area diffusers maintain an approximately constant exit velocity. Linear bar grilles are normally used in exterior zonesand are fixed area diffusers. Custom is used to signify that the user intends to input the coefficients A -- E (see below) rather than let the program set the coefficients based on diffuser type. The default is \emph{Swirl}. +The choices for this alpha field are \textbf{Swirl} \textbar{} \textbf{VariableArea} \textbar{} \textbf{HorizontalSwirl \textbar{} LinearBarGrille \textbar{} Custom.} The swirl and displacement diffusers are fixed area diffusers. The variable area diffusers maintain an approximately constant exit velocity. Linear bar grilles are normally used in exterior zones and are fixed area diffusers. Custom is used to signify that the user intends to input the coefficients A -- E (see below) rather than let the program set the coefficients based on diffuser type. The default is \emph{Swirl}. \paragraph{Field: Transition Height}\label{field-transition-height-1} diff --git a/doc/input-output-reference/src/overview/group-setpoint-managers.tex b/doc/input-output-reference/src/overview/group-setpoint-managers.tex index 15185582eb3..5f0ffdb8a6b 100644 --- a/doc/input-output-reference/src/overview/group-setpoint-managers.tex +++ b/doc/input-output-reference/src/overview/group-setpoint-managers.tex @@ -107,7 +107,7 @@ \subsubsection{Inputs}\label{inputs-043} \begin{itemize} \item - Temperature Temperture of fluid at node ( °C) + Temperature Temperature of fluid at node ( °C) \item MaximumTemperature Maximum temperature of fluid at node ( °C) \item @@ -329,7 +329,7 @@ \subsubsection{Inputs}\label{inputs-3-033} \subsection{SetpointManager:SingleZone:Heating}\label{setpointmanagersinglezoneheating} -The Single Zone Heating Setpoint Manager allows a component to be controlled based on the load required to meet the zone heating setpoint. Ths setpoint manager detects the control zone load to meet the current heating setpoint, zone inlet node flow rate, and zone node temperature, and calculates a setpoint temperature for the supply air that will satisfy the zone heating load for the control zone. This setpoint manager creates a variable temperature system. The input consists of the setpoint manager name, the controlled variable type, the minimum and maximum supply air temperatures, the name of the control zone, the name of the control zone node, the name of the control zone inlet node, and the name of a node or node list containing the nodes whose setpoint temperatures are to be set by this manager. +The Single Zone Heating Setpoint Manager allows a component to be controlled based on the load required to meet the zone heating setpoint. The setpoint manager detects the control zone load to meet the current heating setpoint, zone inlet node flow rate, and zone node temperature, and calculates a setpoint temperature for the supply air that will satisfy the zone heating load for the control zone. This setpoint manager creates a variable temperature system. The input consists of the setpoint manager name, the controlled variable type, the minimum and maximum supply air temperatures, the name of the control zone, the name of the control zone node, the name of the control zone inlet node, and the name of a node or node list containing the nodes whose setpoint temperatures are to be set by this manager. \subsubsection{Inputs}\label{inputs-4-030} @@ -515,7 +515,7 @@ \subsubsection{Inputs}\label{inputs-7-024} Controller:WaterCoil, - Central Cooling Coil Contoller 1, !- Name + Central Cooling Coil Controller 1, !- Name TEMPandHUMRAT, !- Control Variable Reverse, !- Action FLOW, !- Actuator Variable @@ -1535,7 +1535,7 @@ \subsubsection{Inputs}\label{inputs-25-002} \paragraph{Field: Setpoint Node or NodeList Name}\label{field-setpoint-node-or-nodelist-name-20} -This alpha field is the name of a \hyperref[nodelist]{NodeList} objet containing the names of the HVAC system nodes, or the name of a system node, for which temperature setpoints will be established by this setpoint manager. +This alpha field is the name of a \hyperref[nodelist]{NodeList} object containing the names of the HVAC system nodes, or the name of a system node, for which temperature setpoints will be established by this setpoint manager. An example input follows. @@ -1573,7 +1573,7 @@ \subsubsection{Field: Control Zone Name}\label{field-control-zone-name-4} \subsubsection{Field: Setpoint Node or NodeList Name}\label{field-setpoint-node-or-nodelist-name-21} -This alpha field is the name of a \hyperref[nodelist]{NodeList} objet containing the names of the HVAC system nodes, or the name of a system node, for which temperature setpoints will be established by this setpoint manager. +This alpha field is the name of a \hyperref[nodelist]{NodeList} object containing the names of the HVAC system nodes, or the name of a system node, for which temperature setpoints will be established by this setpoint manager. An example input follows. @@ -1849,7 +1849,7 @@ \subsubsection{Inputs} MaximumHumidityRatio, !- Control Variable 0.00924, !- Setpoint at Low Reference Humidity Ratio (kgWater/kgDryAir) 0.00600, !- Setpoint at High Reference Humidity Ratio (kgWater/kgDryAir) - 0.00850, !- Low Reference Humdity Ratio (kgWater/kgDryAir) + 0.00850, !- Low Reference Humidity Ratio (kgWater/kgDryAir) 0.01000, !- High Reference Humidity Ratio (kgWater/kgDryAir) Plenum-1 Out Node, !- Reference Node Name DOAS Cooling Coil Outlet; !- Setpoint Node or NodeList Name diff --git a/doc/input-output-reference/src/overview/group-simulation-parameters.tex b/doc/input-output-reference/src/overview/group-simulation-parameters.tex index 2143569dc80..52dd4670c0d 100644 --- a/doc/input-output-reference/src/overview/group-simulation-parameters.tex +++ b/doc/input-output-reference/src/overview/group-simulation-parameters.tex @@ -154,7 +154,7 @@ \subsubsection{Inputs}\label{inputs-3-034} \paragraph{Warmup Convergence}\label{warmup-convergence} -The following two fields along with the minimum and maximum number of warmup days (also in this object) define the user specified criteria for when EnergyPlus will ``converge'' at each environment (each sizing period or run period set as Yes in the \hyperref[simulationcontrol]{SimulationControl} object). At the beginning of a new enviroment the building model is reinitialized so that temperatures are initialized to 23C and zone humidity ratios are initialized to the outdoor humidity ratio (unless this initialization is suppressed using the input field called Begin Environment Reset Mode in the \hyperref[sizingperioddesignday]{SizingPerod:DesignDay} object). EnergyPlus repeatedly ``runs'' the first day of the environment or until it reaches ``maximum number of warmup days'' or the convergence criteria are met. Note that setting the convergence tolerance values too loose will cause the program to be satisfied too early and you may not get the results you expect from the actual simulation. However too tight of a value and the program will repeat the first day too many times leading to excessive simulation run time. +The following two fields along with the minimum and maximum number of warmup days (also in this object) define the user specified criteria for when EnergyPlus will ``converge'' at each environment (each sizing period or run period set as Yes in the \hyperref[simulationcontrol]{SimulationControl} object). At the beginning of a new environment the building model is reinitialized so that temperatures are initialized to 23C and zone humidity ratios are initialized to the outdoor humidity ratio (unless this initialization is suppressed using the input field called Begin Environment Reset Mode in the \hyperref[sizingperioddesignday]{SizingPerod:DesignDay} object). EnergyPlus repeatedly ``runs'' the first day of the environment or until it reaches ``maximum number of warmup days'' or the convergence criteria are met. Note that setting the convergence tolerance values too loose will cause the program to be satisfied too early and you may not get the results you expect from the actual simulation. However too tight of a value and the program will repeat the first day too many times leading to excessive simulation run time. \paragraph{Field: Loads Convergence Tolerance Value}\label{field-loads-convergence-tolerance-value} @@ -254,7 +254,7 @@ \subsubsection{Inputs}\label{inputs-3-034} You may be able to increase the Maximum Number of Warmup Days and get convergence, but some anomalous buildings may still not converge. Simulation proceeds for x warmup days until ``convergence'' is reached (see the discussion under the Temperature Convergence Tolerance Value field in this object, just above). -The value in this field is an overall parameter for all types of environments in the simulation. The maximum nmber of warmup days can also be controlled separately for individual designgdays using the input field Maximum Number Warmup Days in the \hyperref[sizingperioddesignday]{SizingPerod:DesignDay} object. +The value in this field is an overall parameter for all types of environments in the simulation. The maximum number of warmup days can also be controlled separately for individual design days using the input field Maximum Number Warmup Days in the \hyperref[sizingperioddesignday]{SizingPerod:DesignDay} object. \paragraph{Field: Minimum Number of Warmup Days}\label{field-minimum-number-of-warmup-days} diff --git a/doc/input-output-reference/src/overview/group-solar-collectors.tex b/doc/input-output-reference/src/overview/group-solar-collectors.tex index ecab2c63e9f..fe8fd6b1b72 100644 --- a/doc/input-output-reference/src/overview/group-solar-collectors.tex +++ b/doc/input-output-reference/src/overview/group-solar-collectors.tex @@ -4,7 +4,7 @@ \section{Group Solar Collectors}\label{group-solar-collectors} In EnergyPlus solar collectors are components that are connected to the plant loop. A solar heating system can be constructed with a combination of solar collectors, pumps, and hot water tanks. -Flate plate solar collectors are defined using two objects: \hyperref[solarcollectorflatplatewater]{SolarCollector:FlatPlate:Water} and \hyperref[solarcollectorperformanceflatplate]{SolarCollectorPerformance:FlatPlate}. Similarly, Integral-Collector-Storage (ICS) solar collectors are defined using two objects: \hyperref[solarcollectorintegralcollectorstorage]{SolarCollector:IntegralCollectorStorage}, and \hyperref[solarcollectorperformanceintegralcollectorstorage]{SolarCollectorPerformance:IntegralCollectorStorage}. The \hyperref[solarcollectorflatplatewater]{SolarCollector:FlatPlate:Water} and \hyperref[solarcollectorintegralcollectorstorage]{SolarCollector:IntegralCollectorStorage} objects describe the plant component connections. These object also reference \hyperref[solarcollectorperformanceflatplate]{SolarCollectorPerformance:FlatPlate} and \hyperref[solarcollectorperformanceintegralcollectorstorage]{SolarCollectorPerformance:IntegralCollectorStorage} performance objects which contains the thermal and optical performance test data for a specific make and model of collector. Parameters are defined separately so that these values can be organized into a reference data set and need only be entered once if for an array of the same type of collectors. +Flat plate solar collectors are defined using two objects: \hyperref[solarcollectorflatplatewater]{SolarCollector:FlatPlate:Water} and \hyperref[solarcollectorperformanceflatplate]{SolarCollectorPerformance:FlatPlate}. Similarly, Integral-Collector-Storage (ICS) solar collectors are defined using two objects: \hyperref[solarcollectorintegralcollectorstorage]{SolarCollector:IntegralCollectorStorage}, and \hyperref[solarcollectorperformanceintegralcollectorstorage]{SolarCollectorPerformance:IntegralCollectorStorage}. The \hyperref[solarcollectorflatplatewater]{SolarCollector:FlatPlate:Water} and \hyperref[solarcollectorintegralcollectorstorage]{SolarCollector:IntegralCollectorStorage} objects describe the plant component connections. These object also reference \hyperref[solarcollectorperformanceflatplate]{SolarCollectorPerformance:FlatPlate} and \hyperref[solarcollectorperformanceintegralcollectorstorage]{SolarCollectorPerformance:IntegralCollectorStorage} performance objects which contains the thermal and optical performance test data for a specific make and model of collector. Parameters are defined separately so that these values can be organized into a reference data set and need only be entered once if for an array of the same type of collectors. \subsection{SolarCollector:FlatPlate:Water}\label{solarcollectorflatplatewater} @@ -453,7 +453,7 @@ \subsubsection{Inputs}\label{inputs-4-032} \paragraph{Field: Water Outlet Node Name}\label{field-water-outlet-node-name-002} -This field is the name of a plant loop node that seves as the outlet from the PVT collector. This field is only used if the Thermal Working Fluid Type is set to Plant/Water. +This field is the name of a plant loop node that serves as the outlet from the PVT collector. This field is only used if the Thermal Working Fluid Type is set to Plant/Water. \paragraph{Field: Air Inlet Node Name}\label{field-air-inlet-node-name-006} diff --git a/doc/input-output-reference/src/overview/group-surface-construction-elements.tex b/doc/input-output-reference/src/overview/group-surface-construction-elements.tex index 2c95cba0363..6d45b41541f 100644 --- a/doc/input-output-reference/src/overview/group-surface-construction-elements.tex +++ b/doc/input-output-reference/src/overview/group-surface-construction-elements.tex @@ -301,7 +301,7 @@ \subsubsection{Inputs}\label{empd-inputs} \(\rho_{material}\) = dry density of material, kg/m$^3$; -\(\frac{du}{d\phi}\) = slope of moisture soprtion curve, \(a b \phi^{b-1} + c d \phi^{d-1}\). +\(\frac{du}{d\phi}\) = slope of moisture sorption curve, \(a b \phi^{b-1} + c d \phi^{d-1}\). If this field is left blank or set to \texttt{autocalculate}, the above equation will be used to calculate the surface layer penetration depth assuming a $\tau_{surf}$ of 24 hours. @@ -1917,7 +1917,7 @@ \subsubsection{Inputs}\label{inputs-16-011} \paragraph{Field: Specific Heat Ratio}\label{field-specific-heat-ratio-1} -The specific heat ratio for gas.~ The specific heat ratio of a gas is the ratio of the specific heat at contant pressure, to the specific heat at constant volume.~ Used only if Gas Type = Custom. +The specific heat ratio for gas.~ The specific heat ratio of a gas is the ratio of the specific heat at constant pressure, to the specific heat at constant volume.~ Used only if Gas Type = Custom. An IDF example: @@ -2919,17 +2919,17 @@ \subsubsection{Inputs}\label{inputs-25-003} \subsection{WindowMaterial:Shade:EquivalentLayer}\label{windowmaterialshadeequivalentlayer} -This object specifies the properties of Equivalent Layer window shade (roller blind) materials. Shades are considered to be thin, flat and perfect diffusers (all transmitted and reflected radiation is hemispherically-diffuse). However, shades can have beam-beam transmittance by virtue of their material openness.~ The beam-beam transmittence is assumed to be the same for both sides of the shade and is the same as the openness area fraction. Beam-diffuse transmittance and reflectance, and emissivity properties can be different for front and back side of the shade.Window shades can be placed on the inside of the window, on the outside of the window, or between glass layers. WindowMaterial:Shade:EquivalentLayer is used for roller blinds. The off-normal solar property calculation of shades (roller blind) is based on a set of correlations developed from measurement of samples of commercially produced roller blind material with openness fraction less than 0.14. The model is not intended for materials with unusually high values of openness and should be limited to a maximum openness fraction of 0.20. The visible spectrum solar properties input fields are not used currently hence can be left blank. The equivalent layer window shade model does not support \hyperref[windowpropertyshadingcontrol]{WindowShadingControl}. +This object specifies the properties of Equivalent Layer window shade (roller blind) materials. Shades are considered to be thin, flat and perfect diffusers (all transmitted and reflected radiation is hemispherically-diffuse). However, shades can have beam-beam transmittance by virtue of their material openness.~ The beam-beam transmittance is assumed to be the same for both sides of the shade and is the same as the openness area fraction. Beam-diffuse transmittance and reflectance, and emissivity properties can be different for front and back side of the shade.Window shades can be placed on the inside of the window, on the outside of the window, or between glass layers. WindowMaterial:Shade:EquivalentLayer is used for roller blinds. The off-normal solar property calculation of shades (roller blind) is based on a set of correlations developed from measurement of samples of commercially produced roller blind material with openness fraction less than 0.14. The model is not intended for materials with unusually high values of openness and should be limited to a maximum openness fraction of 0.20. The visible spectrum solar properties input fields are not used currently hence can be left blank. The equivalent layer window shade model does not support \hyperref[windowpropertyshadingcontrol]{WindowShadingControl}. \subsubsection{Inputs}\label{inputs-26-002} \paragraph{Field: Name}\label{field-name-20-003} -Name of the shade. It is referenced as an inside, inbetween or outside layer in an equivalent layer~ window construction. +Name of the shade. It is referenced as an inside, in-between or outside layer in an equivalent layer~ window construction. \paragraph{Field: Shade Beam-Beam Solar Transmittance}\label{field-shade-beam-beam-solar-transmittance} -This value is the beam-beam transmittance of the shade at normal incidence and it is the same as the openness area fraction of the shade material. Assumed to be the same for front and back sides of the roller blinds.~ The minimum value is 0.0 and maximum value is less than 1.0.~ The default value is 0.0. For most common shade materials (e.g.~Roller Blinds) the material oppeness fraction doesn't exceed 0.20. +This value is the beam-beam transmittance of the shade at normal incidence and it is the same as the openness area fraction of the shade material. Assumed to be the same for front and back sides of the roller blinds.~ The minimum value is 0.0 and maximum value is less than 1.0.~ The default value is 0.0. For most common shade materials (e.g.~Roller Blinds) the material openness fraction doesn't exceed 0.20. \paragraph{Field: Front Side Shade Beam-Diffuse Solar Transmittance}\label{field-front-side-shade-beam-diffuse-solar-transmittance} @@ -2994,7 +2994,7 @@ \subsection{WindowMaterial:Drape:EquivalentLayer}\label{windowmaterialdrapeequiv Specifies the optical and thermal properties of equivalent layer window drape fabric materials. -Drapery fabric shades are commonly placed on the the inside of the window. The long-wave (Thermal) properties for commonly used drapery fabrics are assumed to be the same on both sides but different values can be specified when required. Drape fabric shade layers are considered to be perfect diffusers (reflected radiation is hemispherically-diffuse independent of angle of incidence). Unpleated drape fabric is treated as thin and flat layer.The off-normal optical properties of drapery fabric is determined from user specified optical properties at normal incidence using empirical correlations. Pleated drape fabric requires entering the pleated section average width and length as shown in Figure~\ref{fig:geometry-used-for-pleated-drape-analysis}. For pleated drapes the effective beam-beam and beam-diffuse solar properties are determined by tracking both radiation components, for a given incident angle solar radiation, through various interactions with a fabric pleated in a rectangular geometry shown in Figure~\ref{fig:geometry-used-for-pleated-drape-analysis}.~ The solar properties of the two different pleat facets are evaluated on the basis of the local solar incidence angle.~ Therefore, the effective layer properties are influenced not just by horizontal solar profile angle, but also by incidence angle. The correlations used for drape fabrics optical property calculations reqiure that the solar absorptance of the fabric, at normal incidence, is not less than 1\%. The equivalent layer window drapery fabric shade model does not support \hyperref[windowpropertyshadingcontrol]{WindowShadingControl}. +Drapery fabric shades are commonly placed on the the inside of the window. The long-wave (Thermal) properties for commonly used drapery fabrics are assumed to be the same on both sides but different values can be specified when required. Drape fabric shade layers are considered to be perfect diffusers (reflected radiation is hemispherically-diffuse independent of angle of incidence). Unpleated drape fabric is treated as thin and flat layer.The off-normal optical properties of drapery fabric is determined from user specified optical properties at normal incidence using empirical correlations. Pleated drape fabric requires entering the pleated section average width and length as shown in Figure~\ref{fig:geometry-used-for-pleated-drape-analysis}. For pleated drapes the effective beam-beam and beam-diffuse solar properties are determined by tracking both radiation components, for a given incident angle solar radiation, through various interactions with a fabric pleated in a rectangular geometry shown in Figure~\ref{fig:geometry-used-for-pleated-drape-analysis}.~ The solar properties of the two different pleat facets are evaluated on the basis of the local solar incidence angle.~ Therefore, the effective layer properties are influenced not just by horizontal solar profile angle, but also by incidence angle. The correlations used for drape fabrics optical property calculations require that the solar absorptance of the fabric, at normal incidence, is not less than 1\%. The equivalent layer window drapery fabric shade model does not support \hyperref[windowpropertyshadingcontrol]{WindowShadingControl}. \begin{figure}[hbtp] % fig 21 \centering @@ -3189,7 +3189,7 @@ \subsubsection{Inputs}\label{inputs-28-001} \paragraph{Field: Slat Angle Control}\label{field-slat-angle-control} -This input field is used only if slat angle control is desired.~ The three key choice inputs allowed are ``FixedSlatAngle'', ``MaximizeSolar'', and ``BlockBeamSolar''.~ The default value is ``FixedSlatAngle''.If Type of Slat Angle Control for Blinds = MaximizeSolar the slat angle is adjusted to maximize solar gain.~If Type of Slat Angle Control for Blinds = BlockBeamSolar, the slat angle is adjusted to maximize visibiity while eliminating beam solar radiation.~If Type of Slat Angle Control for Blinds = FixedSlatAngle, then the model uses a fixed slat angle specified above. +This input field is used only if slat angle control is desired.~ The three key choice inputs allowed are ``FixedSlatAngle'', ``MaximizeSolar'', and ``BlockBeamSolar''.~ The default value is ``FixedSlatAngle''.If Type of Slat Angle Control for Blinds = MaximizeSolar the slat angle is adjusted to maximize solar gain.~If Type of Slat Angle Control for Blinds = BlockBeamSolar, the slat angle is adjusted to maximize visibility while eliminating beam solar radiation.~If Type of Slat Angle Control for Blinds = FixedSlatAngle, then the model uses a fixed slat angle specified above. An IDF example for this object, is shown below: @@ -4066,7 +4066,7 @@ \subsubsection{Inputs}\label{inputs-38} \paragraph{Field: Source Present After Layer Number}\label{field-source-present-after-layer-number} -This field is an integer that relates the location of the heat source or sink. The integer refers to the list of material layers that follow later in the syntax and determines the layer after which the source is present. If a source is embedded within a single homogenous layer (such as concrete), that layer should be split into two layers and the source added between them. For example, a value of ``2'' in this field tells EnergyPlus that the source is located between the second and third material layers listed later in the construction description (see layer fields below). This field must be between 1 and the number of material layers in the construction (maximum of 10 layers). +This field is an integer that relates the location of the heat source or sink. The integer refers to the list of material layers that follow later in the syntax and determines the layer after which the source is present. If a source is embedded within a single homogeneous layer (such as concrete), that layer should be split into two layers and the source added between them. For example, a value of ``2'' in this field tells EnergyPlus that the source is located between the second and third material layers listed later in the construction description (see layer fields below). This field must be between 1 and the number of material layers in the construction (maximum of 10 layers). \paragraph{Field: Temperature Calculation Requested After Layer Number}\label{field-temperature-calculation-requested-after-layer-number} diff --git a/doc/input-output-reference/src/overview/group-system-availability-managers.tex b/doc/input-output-reference/src/overview/group-system-availability-managers.tex index d7d9bf7ed2c..6213db169d9 100644 --- a/doc/input-output-reference/src/overview/group-system-availability-managers.tex +++ b/doc/input-output-reference/src/overview/group-system-availability-managers.tex @@ -24,7 +24,7 @@ \subsubsection{Inputs}\label{inputs-047} \paragraph{Field: Schedule Name}\label{field-schedule-name-006} -The name of a schedule defined elsewhere in the input. Schedule values greater than zero (usually 1 is used) indicate that the system is on. Schedule values less than or equal to zero (usually 0 is used) denote that the system is off. This schedule overides the central fan schedule for determining whether the fan is on. +The name of a schedule defined elsewhere in the input. Schedule values greater than zero (usually 1 is used) indicate that the system is on. Schedule values less than or equal to zero (usually 0 is used) denote that the system is off. This schedule overrides the central fan schedule for determining whether the fan is on. An example of this statement in an IDF is: @@ -61,7 +61,7 @@ \subsubsection{Inputs}\label{inputs-1-044} \paragraph{Field: Schedule Name}\label{field-schedule-name-1-003} -The name of a schedule defined elsewhere in the input. Schedule values greater than zero (usually 1 is used) indicate that the system is on. Schedule values less than or equal to zero (usually 0 is used) denote that \emph{NoAction} is desired. This schedule overides the central fan schedule for determining whether the fan is on. +The name of a schedule defined elsewhere in the input. Schedule values greater than zero (usually 1 is used) indicate that the system is on. Schedule values less than or equal to zero (usually 0 is used) denote that \emph{NoAction} is desired. This schedule overrides the central fan schedule for determining whether the fan is on. An example of this statement in an IDF is: @@ -88,7 +88,7 @@ \subsubsection{Outputs}\label{outputs-036} \subsection{AvailabilityManager:ScheduledOff}\label{availabilitymanagerscheduledoff} -The Schedule Off Availability Manager is used when equipment must be turned off during a given time period. This availability manager will not turn the equipment on, a separate availability manager must be used to enable the equipment as necessary. The scheduled off availability is determined by an off schedule. Schedule values equal to 0 set a \emph{ForceOff} availability status. Schedule values other than 0 (usually a 1 is used) set a \emph{NoAction} availability status. The syntax for mplementing such an availability manager is shown below. The identifying name refers back to the name recorded in the \hyperref[availabilitymanagerassignmentlist]{AvailabilityManagerAssignmentList} statement described in the \textbf{Group Air Distribution} section. The schedule must be the name of a schedule defined elsewhere in the input. +The Schedule Off Availability Manager is used when equipment must be turned off during a given time period. This availability manager will not turn the equipment on, a separate availability manager must be used to enable the equipment as necessary. The scheduled off availability is determined by an off schedule. Schedule values equal to 0 set a \emph{ForceOff} availability status. Schedule values other than 0 (usually a 1 is used) set a \emph{NoAction} availability status. The syntax for implementing such an availability manager is shown below. The identifying name refers back to the name recorded in the \hyperref[availabilitymanagerassignmentlist]{AvailabilityManagerAssignmentList} statement described in the \textbf{Group Air Distribution} section. The schedule must be the name of a schedule defined elsewhere in the input. \subsubsection{Inputs}\label{inputs-2-041} diff --git a/doc/input-output-reference/src/overview/group-thermal-zone-description-geometry.tex b/doc/input-output-reference/src/overview/group-thermal-zone-description-geometry.tex index 9dd0fac5a84..b97a989a838 100644 --- a/doc/input-output-reference/src/overview/group-thermal-zone-description-geometry.tex +++ b/doc/input-output-reference/src/overview/group-thermal-zone-description-geometry.tex @@ -13,7 +13,7 @@ \subsection{Space}\label{space} Input references to Space Names must have a matching Space object. Default space names may not be referenced in the input except for \hyperref[outputvariable]{Output:Variable} keys). -Space geometry is specified by attaching surfaces to a space using the ``Space Name'' field. If a Space has only floor surface(s) and internal mass assigned to it, the Space is assumed to share the same enclosure with other such Spaces in the same Zone (and with any surfaces that are not explicitly assinged to a space). If a Space also has other types of surfaces (e.g. wall, ceiling, or roof) then the Space forms its own enclosure unless it is connected to other spaces with air boundaries (see \hyperref[constructionairboundary]{Construction:AirBoundary}). +Space geometry is specified by attaching surfaces to a space using the ``Space Name'' field. If a Space has only floor surface(s) and internal mass assigned to it, the Space is assumed to share the same enclosure with other such Spaces in the same Zone (and with any surfaces that are not explicitly assigned to a space). If a Space also has other types of surfaces (e.g. wall, ceiling, or roof) then the Space forms its own enclosure unless it is connected to other spaces with air boundaries (see \hyperref[constructionairboundary]{Construction:AirBoundary}). \subsubsection{Inputs}\label{space-inputs-048} @@ -31,7 +31,7 @@ \subsubsection{Inputs}\label{space-inputs-048} Note that the Ceiling Height is the distance from the Floor to the Ceiling in the Space, not an absolute height from the ground. -NOTE: At the moment, the autocalcuted Space ceiling height is set to the Zone ceiling height. +NOTE: At the moment, the autocalculated Space ceiling height is set to the Zone ceiling height. \paragraph{Field: Volume}\label{field-space-volume} @@ -106,7 +106,7 @@ \subsubsection{Inputs}\label{inputs-048} \paragraph{Field(s): (X,Y,Z) Origin}\label{fields-xyz-origin} -The X,Y,Z coordinates of a zone origin can be specified, for convenience in vertice entry. Depending on the values in ``\hyperref[globalgeometryrules]{GlobalGeometryRules}'' (see description later in this section), these will be used to completely specify the building coordinates in ``world coordinate'' or not. Zone Origin coordinates are specified \textbf{relative to the Building Origin (which always 0,0,0)}. The following figure illustrates the use of Zone North Axis as well as Zone Origin values. +The X,Y,Z coordinates of a zone origin can be specified, for convenience in vertices entry. Depending on the values in ``\hyperref[globalgeometryrules]{GlobalGeometryRules}'' (see description later in this section), these will be used to completely specify the building coordinates in ``world coordinate'' or not. Zone Origin coordinates are specified \textbf{relative to the Building Origin (which always 0,0,0)}. The following figure illustrates the use of Zone North Axis as well as Zone Origin values. \begin{figure}[hbtp] % fig 27 \centering @@ -2826,12 +2826,14 @@ \subsection{Surface Output Variables/Reports}\label{surface-output-variablesrepo Zone,Average,Surface Outside Face Thermal Radiation to Air Heat Transfer Coefficient [W/m2-K] Zone,Average,Surface Outside Face Thermal Radiation to Sky Heat Transfer Coefficient [W/m2-K] Zone,Average,Surface Outside Face Thermal Radiation to Ground Heat Transfer Coefficient [W/m2-K] +Zone,Average,Surface Outside Face Thermal Radiation to Surrounding Surfaces Heat Transfer Coefficient [W/m2-K] +Zone,Average,Surface Outside Face Surrounding Surfaces Average Temperature [C] Zone,Average,Surface Inside Face Exterior Windows Incident Beam Solar Radiation Rate [W] Zone,Sum,Surface Inside Face Exterior Windows Incident Beam Solar Radiation Energy [J] Zone,Average,Surface Inside Face Exterior Windows Incident Beam Solar Radiation Rate per Area[W/m2] Zone,Average,Surface Inside Face Interior Windows Incident Beam Solar Radiation Rate [W] Zone,Average,Surface Inside Face Interior Windows Incident Beam Solar Radiation Rate per Area[W/m2] -Zone, Sum,Surface Inside Face Interior Windows Incident Beam Solar Radiation Energy [J] +Zone,Sum,Surface Inside Face Interior Windows Incident Beam Solar Radiation Energy [J] Zone,Average,Surface Inside Face Initial Transmitted Diffuse Absorbed Solar Radiation Rate [W] Zone,Average,Surface Inside Face Initial Transmitted Diffuse Transmitted Out Window Solar Radiation Rate [W] Zone,Average,Surface Inside Face Absorbed Shortwave Radiation Rate [W] @@ -3242,6 +3244,14 @@ \subsubsection{Surface Outside Face Heat Emission to Air Rate {[}W{]}}\label{sur This is total heat transfer rate between the outside face and the air mass surrounding the surface by convection and thermal radiation. +\subsubsection{Surface Outside Face Thermal Radiation to Surrounding Surfaces Heat Transfer Coefficient {[}W/m2-K{]}}\label{surface-outside-face-thermal-radiation-to-surrounding-surfaces-heat-transfer-coefficient-wm2-k} + +This is the coefficient that describes thermal radiation heat transfer between the outside face of an exterior surface and the surrounding surfaces it views. It is the value of ``Hr'' in the classic linearized model for thermal radiation exchange Q = Hr * A * (T\_surf -- T\_srdsurfs) when applied to the surrounding surfaces. Where T\_surf = Surface Outside Face Temperature, and T\_srdsurf = Average temperature of the surrounding surfaces viewed by an exterior surface. + +\subsubsection{Surface Outside Face Surrounding Surfaces Average Temperature {[}C{]}}\label{surface-outside-face-surrounding-surfaces-average-temperature-C} + +This is the average surface temperature of the surrounding surfaces viewed by an exterior surface, in degrees Celsius. The surrounding surfaces average temperature is a view factor weighed surface temperature of multiple surrounding surfaces seen by an exterior surface. If an exterior surface views a single surrounding surface then the average temperature is the same as the user specified surrounding surface temperature. + \subsubsection{Surface Outside Face Solar Radiation Heat Gain Rate {[}W{]}}\label{surface-outside-face-solar-radiation-heat-gain-rate-w} \subsubsection{Surface Outside Face Solar Radiation Heat Gain Rate per Area {[}W/m2{]}}\label{surface-outside-face-solar-radiation-heat-gain-rate-per-area-wm2} @@ -4479,7 +4489,7 @@ \subsection{WindowShadingControl}\label{windowpropertyshadingcontrol} With WindowShadingControl you specify the type, location, and timing of the shading device, what variable or combination of variables controls deployment of the shading device, and what the control setpoint is. If the shading device is a blind, you also specify how the slat angle is controlled. Each WindowShadingControl object is associated with a zone and has a list of one or more windows and glass doors to which the shading control is applied (ref: \hyperref[fenestrationsurfacedetailed]{FenestrationSurface:Detailed} with Type = Window or GlassDoor, Window, and \hyperref[glazeddoor]{GlazedDoor}). -NOTE: WindowShadingControl does not work with complex fenestration systems. Controlled complex fenestration systems can be made only with Energy Management Systems objects. Refrencing a \hyperref[fenestrationsurfacedetailed]{FenestrationSurface:Detailed} in a WindowShadingControl while using complex fenestration systems will be ignored by program. +NOTE: WindowShadingControl does not work with complex fenestration systems. Controlled complex fenestration systems can be made only with Energy Management Systems objects. Referencing a \hyperref[fenestrationsurfacedetailed]{FenestrationSurface:Detailed} in a WindowShadingControl while using complex fenestration systems will be ignored by program. As shown in Figure~\ref{fig:allowed-locations-of-a-window-shading-device.}, a shading device can be inside the window (Shading Type = InteriorShade or InteriorBlind), outside the window (Shading Type = ExteriorShade or ExteriorBlind), or between panes of glass (Shading Type = BetweenGlassShade or BetweenGlassBlind). The exception is window screens which can only be outside the window (Shading Type = ExteriorScreen). diff --git a/doc/input-output-reference/src/overview/group-unitary-equipment.tex b/doc/input-output-reference/src/overview/group-unitary-equipment.tex index a470115ce85..51af0aa3017 100644 --- a/doc/input-output-reference/src/overview/group-unitary-equipment.tex +++ b/doc/input-output-reference/src/overview/group-unitary-equipment.tex @@ -308,40 +308,6 @@ \subsubsection{Inputs}\label{inputs-049} This alpha field specifies the name of the outdoor node which controls the operation of the supplemental heating coil. If this field is left blank, the outdoor temperature is based solely on the weather data. If this field is not blank, the node name specified must also be listed in an \hyperref[outdoorairnode]{OutdoorAir:Node} object where the height of the node is taken into consideration when calculating outdoor temperature from the weather data. Alternately, the node name must be specified in an \hyperref[outdoorairnodelist]{OutdoorAir:NodeList} object where the outdoor temperature is taken directly from the weather data. -\paragraph{Field: Maximum Cycling Rate}\label{field-maximum-cycling-rate-001} - -This numeric field contains the maximum on-off cycling rate for the compressor, which occurs at 50\% run time fraction. Suggested values are shown in Figure~\ref{fig:suggested-values-for-maximum-cycling-rate}. (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image295.png} -\caption{Suggested values for maximum cycling rate \protect \label{fig:suggested-values-for-maximum-cycling-rate}} -\end{figure} - -\paragraph{Field: Heat Pump Time Constant}\label{field-heat-pump-time-constant-000} - -This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown in Figure~\ref{fig:suggested-values-for-heat-pump-time-constant}. (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image296.png} -\caption{Suggested values for heat pump time constant \protect \label{fig:suggested-values-for-heat-pump-time-constant}} -\end{figure} - -\paragraph{Field: Fraction of On-Cycle Power Use}\label{field-fraction-of-on-cycle-power-use-000} - -This numeric field contains the fraction of on-cycle power use to adjust the part load fraction based on the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. Suggested value values are shown in Figure~\ref{fig:suggested-values-for-fraction-of-on-cycle-power-use}. (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image297.png} -\caption{Suggested values for fraction of on cycle power use \protect \label{fig:suggested-values-for-fraction-of-on-cycle-power-use}} -\end{figure} - -\paragraph{Field: Heat Pump Fan Delay Time}\label{field-heat-pump-fan-delay-time-000} - -This numeric field contains the time delay for the heat pump supply air fan to shut off after the compressor cycles off in seconds. This value can be obtained from the manufacturer or the heat pump catalog. Enter a value of zero when the heat pump's fan operating mode is continuous. Suggested value is 60 seconds. - \paragraph{Field: Ancillary On-Cycle Electric Power}\label{field-ancillary-on-cycle-electric-power} This field defines ancillary electrical power (W) consumed during the on-cycle period (i.e., when the cooling or heating coil is operating). The model assumes that this ancillary power does not contribute to heating the supply air. The minimum value for this field is 0.0, and the default value is also 0.0 if the field is left blank. @@ -436,10 +402,6 @@ \subsubsection{Inputs}\label{inputs-049} 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -728,7 +690,7 @@ \subsubsection{Inputs}\label{inputs-1-046} \paragraph{Field: No Load Supply Air Flow Rate Ratio}\label{field-no-load-supply-air-flow-rate-ratio} -This field defines the no load operating air flow rate when the system fan is specified to operate continuously. The allowed fractions are between 0 and 1 with a default value of 1. This fraction is usually set to the mimumum of heating and cooling operation lowest speed supply air flow fraction. The no load air flow rate will be calculated as this fraction multiplied by the minimum of the cooling and heating high speed supply air flow rate. If the cooling or heating coil is not present, this fraction is multiplied by the operating supply air flow rate. +This field defines the no load operating air flow rate when the system fan is specified to operate continuously. The allowed fractions are between 0 and 1 with a default value of 1. This fraction is usually set to the minimum of heating and cooling operation lowest speed supply air flow fraction. The no load air flow rate will be calculated as this fraction multiplied by the minimum of the cooling and heating high speed supply air flow rate. If the cooling or heating coil is not present, this fraction is multiplied by the operating supply air flow rate. \paragraph{Field Group: Heating and Cooling Speeds 1 to 10}\label{field-group-heating-and-cooling-speeds-1-to-10} @@ -899,7 +861,7 @@ \subsubsection{Inputs}\label{inputs-2-043} terminal unit (\hyperref[airterminalsingleductconstantvolumenoreheat]{AirTerminal:SingleDuct:ConstantVolume:NoReheat}) for each zone served by the furnace \end{enumerate} -Note: the furnace's fan, cooling coil, heating coil and optional reheat coil must be connected in the air loop according to the configuration shown above (Figure~\ref{fig:schematic-of-energyplus-heatcool-furnace}) when CoolReheat is selected as the dehujmidificaiton control type. In addition, the volumetric air flow rate specified in the terminal air unit for the controlling zone should properly reflect the fractional volumetric air flow rate specified in the furnace object. +Note: the furnace's fan, cooling coil, heating coil and optional reheat coil must be connected in the air loop according to the configuration shown above (Figure~\ref{fig:schematic-of-energyplus-heatcool-furnace}) when CoolReheat is selected as the dehumidification control type. In addition, the volumetric air flow rate specified in the terminal air unit for the controlling zone should properly reflect the fractional volumetric air flow rate specified in the furnace object. \begin{lstlisting} @@ -921,7 +883,7 @@ \subsubsection{Inputs}\label{inputs-2-043} Furnace Heating Coil 1, !- Heating coil name Coil:Cooling:DX:SingleSpeed, !- Cooling coil type Furnace ACDXCoil 1, !- Cooling coil name - None; !- Dehumidificatioin Control Type + None; !- Dehumidification Control Type Coil:Heating:Fuel, @@ -1403,7 +1365,7 @@ \subsubsection{Inputs}\label{inputs-3-039} Air Loop Outlet Node, ! Heat Pump air outlet node 1.3, !- Cooling Supply Air Flow Rate {m3/s} 1.3, !- Heating Supply Air Flow Rate {m3/s} - 0.0, !- No Load Suuply Air Flow Rate {m3/s} + 0.0, !- No Load Supply Air Flow Rate {m3/s} East Zone, ! Controlling zone or thermostat location Fan:OnOff, ! Supply air fan type Supply Fan 1, ! Supply air fan name –- same name used in fan object @@ -2243,7 +2205,7 @@ \subsubsection{Outputs}\label{outputs-4-018} \subsection{AirLoopHVAC:UnitaryHeatOnly}\label{airloophvacunitaryheatonly} -The AirLoopHVAC:UnitaryHeatOnly is identical to the \hyperref[airloophvacunitaryfurnaceheatonly]{AirLoopHVAC:Unitary:Furnace:HeatOnly} model. The heat-only unitary system is a ``virtual'' component that consists of a fan component (OnOff or ConstantVolume) and a Gas or Electric heating coil component. The blow through unitary system configuraion is shown in the Figure below. +The AirLoopHVAC:UnitaryHeatOnly is identical to the \hyperref[airloophvacunitaryfurnaceheatonly]{AirLoopHVAC:Unitary:Furnace:HeatOnly} model. The heat-only unitary system is a ``virtual'' component that consists of a fan component (OnOff or ConstantVolume) and a Gas or Electric heating coil component. The blow through unitary system configuration is shown in the Figure below. \begin{figure}[hbtp] % fig 121 \centering @@ -2523,40 +2485,6 @@ \subsubsection{Inputs}\label{inputs-7-029} This numeric value allows the user to determine how close the air side has to be controlled. Lower the value of convergence better the control of air side conditions and less the zone temperature fluctuations. However in a poorly designed system, a lower convergence might result in warning errors which are caused due to the iteration limit for run time fraction calculation is limited to 20. -\paragraph{Field: Maximum Cycling Rate}\label{field-maximum-cycling-rate-1-000} - -This numeric field contains the maximum on-off cycling rate for the compressor, which occurs at 50\% run time fraction. Suggested values are shown below (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image305.png} -\caption{} -\end{figure} - -\paragraph{Field: Heat Pump Time Constant}\label{field-heat-pump-time-constant-1} - -This numeric field contains the time constant for the cooling coil's capacity to reach steady state after startup. Suggested values are shown below (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image306.png} -\caption{} -\end{figure} - -\paragraph{Field: Fraction of On-Cycle Power Use}\label{field-fraction-of-on-cycle-power-use-1} - -This numeric field contains the fraction of on-cycle power use to adjust the part load fraction based on the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. Suggested value values are below (Henderson et al. 1999): - -\begin{figure}[htbp] -\centering -\includegraphics{media/image307.png} -\caption{} -\end{figure} - -\paragraph{Field: Heat Pump Fan Delay Time}\label{field-heat-pump-fan-delay-time-1} - -This numeric field contains the time delay for the heat pump supply air fan to shut off after the compressor cycles off in seconds. This value can be obtained from the manufacturer or the heat pump catalog. Enter a value of zero when the heat pump's fan operating mode is continuous. Suggested value is 60 seconds. - \paragraph{Field: Supplemental Heating Coil Object Type}\label{field-supplemental-heating-coil-object-type-3} This is the object type of the supplemental heating coil. The hot water and steam heating coils require specifying plant loop, branches, and connectors objects to support the heating coils, and are placed on the demand side of the plantloop. The hot water flow modulation through the supplemental heating coil does not require additional controller or \hyperref[controllerwatercoil]{Controller:WaterCoil} object. The parent object (AirLoop Unitary Water to Air Heat Pump) itself provides the ``controller'' function of modulating water flow. The valid choices are: @@ -2623,7 +2551,7 @@ \subsubsection{Inputs}\label{inputs-7-029} \textbf{CoolReheat} - cool beyond the dry-bulb temperature set point as required to meet the high humidity setpoint. The excess cooling beyond the cooling set point temperature is offset by the supplemental heating coil. -The default is \textbf{None}. For \textbf{CoolReheat} dehumidification control modes, the maximum humidity setpoint is required. This must be set using a \textbf{\hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat}} object. When extra dehumidification is required, the system may not be able to meet the humidity setpoint if its full capacity is not adequate. Supplemental heating coil (supplemental heating coil type and name) is a required input in WaterToAir HeatPumps. When dehumidification control is active the heating and the reheat load due to extra dehumidification are met with supplemetal heating coil. The supplemental heating coil capacity must be adequate enough to meet the heating coil load and offset the excess cooling load due to~ extra dehumidification. The dehumidification control type CoolReheat works only with \hyperref[coilcoolingwatertoairheatpumpequationfit]{Coil:Cooling:WaterToAirHeatPump:EquationFit} cooling coil type. +The default is \textbf{None}. For \textbf{CoolReheat} dehumidification control modes, the maximum humidity setpoint is required. This must be set using a \textbf{\hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat}} object. When extra dehumidification is required, the system may not be able to meet the humidity setpoint if its full capacity is not adequate. Supplemental heating coil (supplemental heating coil type and name) is a required input in WaterToAir HeatPumps. When dehumidification control is active the heating and the reheat load due to extra dehumidification are met with supplemental heating coil. The supplemental heating coil capacity must be adequate enough to meet the heating coil load and offset the excess cooling load due to~ extra dehumidification. The dehumidification control type CoolReheat works only with \hyperref[coilcoolingwatertoairheatpumpequationfit]{Coil:Cooling:WaterToAirHeatPump:EquationFit} cooling coil type. \paragraph{Field: Heat Pump Coil Water Flow Mode}\label{field-heat-pump-coil-water-flow-mode-000} @@ -2638,7 +2566,7 @@ \subsubsection{Inputs}\label{inputs-7-029} CyclingOnDemand \end{itemize} -\textbf{Cycling} varies water flow through the coil based on the heat pump Part Load Ratio.~ This control method is appropriate for modeling heat pumps that are outfitted with a soleniod valve which allows water to flow through the coil only when the compressor is active. This is the default for EnergyPlus V8 and later. +\textbf{Cycling} varies water flow through the coil based on the heat pump Part Load Ratio.~ This control method is appropriate for modeling heat pumps that are outfitted with a solenoid valve which allows water to flow through the coil only when the compressor is active. This is the default for EnergyPlus V8 and later. \textbf{Constant} provides a constant water flow regardless of heat pump operation.~ Remember that EnergyPlus has two coils (a heating coil and a cooling coil) to approximate the operation of one coil that can operate in either heating mode or cooling mode.~ Therefore, when the water flow mode is constant, there will be full flow through either the heating coil or the cooling coil, but not both at the same time. @@ -2663,10 +2591,6 @@ \subsubsection{Inputs}\label{inputs-7-029} Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3030,7 +2954,7 @@ \subsubsection{Inputs}\label{inputs-8-027} LoadPriority \end{itemize} -If CoolingPriority is selected, the system operates to meet the cooling load if any zone served by this system (air loop) requires cooling. If no zones require cooling, then the system operates in heating mode if needed. If HeatingPriority is selected, the system operates to meet the heating load if any zone requires heating. If no zones require heating, then the system operates in cooling mode if needed. If ZonePriority is selected, the system operates based on the maximum number of zones requiring either heating or cooling. If the number of zones requiring cooling is greater than the number of zones requiring heating, then the system operates in cooling mode. If the number of zones requiring heating is greater than the number of zones requiring cooling, then the system operates in heating mode. If the number of zones requiring cooling equals the number of zones requiring heating, then the largest combined load (i.e., the sum of the cooling loads for zones requiring cooling compared to the sum of the heating loads for zones that require heating) sets the cooling or heating operating mode for the system during that simulation timestep. If LoadPriority is selected, the system operates based on the largest combined load (i.e., the sum of the cooling loads for zones requiring cooling compared to the sum of the heating loads for zones that require heating). If the toal load for zones requiring cooling is greater than the toal load for zones requiring heating, then the system operates in cooling mode. Similar logic is used for heating mode selection. If the toal cooling load equals the toal heating load, then cooling or heating operation reverts to the total number of zones requiring cooling or heating (and if equal reverts to cooling mode if the cooling load is non-zero, otherwise, heating mode. +If CoolingPriority is selected, the system operates to meet the cooling load if any zone served by this system (air loop) requires cooling. If no zones require cooling, then the system operates in heating mode if needed. If HeatingPriority is selected, the system operates to meet the heating load if any zone requires heating. If no zones require heating, then the system operates in cooling mode if needed. If ZonePriority is selected, the system operates based on the maximum number of zones requiring either heating or cooling. If the number of zones requiring cooling is greater than the number of zones requiring heating, then the system operates in cooling mode. If the number of zones requiring heating is greater than the number of zones requiring cooling, then the system operates in heating mode. If the number of zones requiring cooling equals the number of zones requiring heating, then the largest combined load (i.e., the sum of the cooling loads for zones requiring cooling compared to the sum of the heating loads for zones that require heating) sets the cooling or heating operating mode for the system during that simulation timestep. If LoadPriority is selected, the system operates based on the largest combined load (i.e., the sum of the cooling loads for zones requiring cooling compared to the sum of the heating loads for zones that require heating). If the total load for zones requiring cooling is greater than the total load for zones requiring heating, then the system operates in cooling mode. Similar logic is used for heating mode selection. If the total cooling load equals the total heating load, then cooling or heating operation reverts to the total number of zones requiring cooling or heating (and if equal reverts to cooling mode if the cooling load is non-zero, otherwise, heating mode. \paragraph{Field: Minimum Outlet Air Temperature During Cooling Operation}\label{field-minimum-outlet-air-temperature-during-cooling-operation} diff --git a/doc/input-output-reference/src/overview/group-user-defined-hvac-and-plant-component.tex b/doc/input-output-reference/src/overview/group-user-defined-hvac-and-plant-component.tex index bed10077dd1..7097806c0a0 100644 --- a/doc/input-output-reference/src/overview/group-user-defined-hvac-and-plant-component.tex +++ b/doc/input-output-reference/src/overview/group-user-defined-hvac-and-plant-component.tex @@ -178,7 +178,7 @@ \subsubsection{Field: Ambient Zone Name}\label{field-ambient-zone-name-1} \subsection{Coil:UserDefined}\label{coiluserdefined} -This object is used to define a generic coil for custom component modeling of a device that processes air as part of an air handeler. The Coil:UserDefined object appears directly on a \hyperref[branch]{Branch} object used to define the supply side of an air handler, or in the \hyperref[airloophvacoutdoorairsystemequipmentlist]{AirLoopHVAC:OutdoorAirSystem:EquipmentList} object used to define outdoor air systems. This object has one or two air connections and an optional plant connection. Water storage tanks can be connected for supply or collection. An ambient zone can be connected for skin losses to be treated as separate internal gains. +This object is used to define a generic coil for custom component modeling of a device that processes air as part of an air handler. The Coil:UserDefined object appears directly on a \hyperref[branch]{Branch} object used to define the supply side of an air handler, or in the \hyperref[airloophvacoutdoorairsystemequipmentlist]{AirLoopHVAC:OutdoorAirSystem:EquipmentList} object used to define outdoor air systems. This object has one or two air connections and an optional plant connection. Water storage tanks can be connected for supply or collection. An ambient zone can be connected for skin losses to be treated as separate internal gains. \subsubsection{Field: Name}\label{field-name-2-041} @@ -261,7 +261,7 @@ \subsubsection{Field: Ambient Zone Name}\label{field-ambient-zone-name-2} \begin{lstlisting} EnergyManagementSystem:Program, - MainHWCoil1_ModelOuput, !- Name + MainHWCoil1_Modeloutput, !- Name Set HWcoil1_Water_MdotRequest = Water_MdotRequest, !- Program Line 1 Set HWcoil1_Air_Tout = Air_Tout, !- Program Line 2 Set HWcoil1_Air_Wout = Air_Wout, !- @@ -274,7 +274,7 @@ \subsubsection{Field: Ambient Zone Name}\label{field-ambient-zone-name-2} HWcoil1 tot heat Energy, !- Name HWcoil1_tot_heat_Energy, !- EMS Variable Name SystemTimestep, !- Update Frequency - MainHWCoil1_ModelOuput, !- EMS Program or Subroutine Name + MainHWCoil1_Modeloutput, !- EMS Program or Subroutine Name ENERGYTRANSFER, !- Resource Type System, !- Group Type HEATINGCOILS, !- End-Use Category @@ -348,7 +348,7 @@ \subsubsection{Inputs}\label{plantcomponentuserdefined-inputs} \paragraph{Field: Plant Connection \textless{}\#\textgreater{} Initialization Program Calling Manager Name}\label{field-plant-connection-x-initialization-program-calling-manager-name} -This field specifies the Erl programs that are used to initialize and size the plant component with regard to this particular plant connection. This field should contain the name of an \hyperref[energymanagementsystemprogramcallingmanager]{EnergyManagementSystem:ProgramCallingManager} that is defined elsewhere and uses the calling point called UserDefinedComponentModel. The program manager referenced here should include all the Erl programs that are needed to do any initial setup that should occur before the main modeling programs are run. These include calculating and setting values for things that do not vary over time such as component sizes, control parameters, modeling constants etc. The user defined component will trigger this calling manager during the intitial setup routines for plant systems. +This field specifies the Erl programs that are used to initialize and size the plant component with regard to this particular plant connection. This field should contain the name of an \hyperref[energymanagementsystemprogramcallingmanager]{EnergyManagementSystem:ProgramCallingManager} that is defined elsewhere and uses the calling point called UserDefinedComponentModel. The program manager referenced here should include all the Erl programs that are needed to do any initial setup that should occur before the main modeling programs are run. These include calculating and setting values for things that do not vary over time such as component sizes, control parameters, modeling constants etc. The user defined component will trigger this calling manager during the initial setup routines for plant systems. \paragraph{Field: Plant Connection \textless{}\#\textgreater{} Simulation Program Calling Manager Name}\label{field-plant-connection-x-simulation-program-calling-manager-name} diff --git a/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex b/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex index 8c8ead67c18..a4ae6d7a9c4 100644 --- a/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex +++ b/doc/input-output-reference/src/overview/group-variable-refrigerant-flow-equipment.tex @@ -647,7 +647,7 @@ \subsubsection{Outputs}\label{outputs-039} \paragraph{\texorpdfstring{VRF Heat Pump COP{[]}}{VRF Heat Pump COP}}\label{vrf-heat-pump-cop} -This is the operating coefficient of performance (COP) for the heat pump. This value is calculated using the ratio of the total terminal unit coil capacity (cooling plus heating and accounts for piping losses) and total system electric consumption rate (compressor, crankcase heater, evaporative condenser water pump, defrost, and terminal unit parasitic electric consumption rate). This output variable does not include pump power for a water-cooled system. This value is specific to overall system performance, is calculated for each HVAC system time step being simulated, and the results are averaged for the time step being reported. +This is the operating coefficient of performance (COP) for the heat pump. This value is calculated using the ratio of the total terminal unit coil capacity (cooling plus heating and accounts for piping losses) and total system electric consumption rate (compressor, crankcase heater, evaporative condenser water pump, defrost, terminal unit fan power, and terminal unit parasitic electric consumption rate). This output variable does not include pump power for a water-cooled system. This value is specific to overall system performance, is calculated for each HVAC system time step being simulated, and the results are averaged for the time step being reported. \paragraph{VRF Heat Pump Defrost Electricity Rate {[}W{]}}\label{vrf-heat-pump-defrost-electric-power-w} @@ -927,11 +927,11 @@ \subsubsection{Inputs}\label{inputs-1-048} \paragraph{Field: Loading Index i Evaporative Capacity Multiplier Function of Temperature Curve Name}\label{field-loading-index-i-evaporative-capacity-multiplier-function-of-temperature-curve-name} -This alpha field defines the name of a BiQuadratic curve for the VRF operational mode corresponding to the i-th loading index. It parameterizes the variation of VRF evaporating capacity as a function of operating conditions, i.e., evaporating and condensing temperatures. The output of this curve is a dimensionless multiplier to be applied on the rated evaporative capacity to calculate the actual capacity. +This alpha field defines the name of a BiQuadratic curve for the VRF operational mode corresponding to the i-th loading index. It parameterizes the variation of VRF evaporating capacity as a function of operating conditions, i.e., condensing (variable x) and evaporating temperatures (variable y). The output of this curve is a dimensionless multiplier to be applied on the rated evaporative capacity to calculate the actual capacity. \paragraph{Field: Loading Index i Compressor Power Multiplier Function of Temperature Curve Name}\label{field-loading-index-i-compressor-power-multiplier-function-of-temperature-curve-name} -This alpha field defines the name of a BiQuadratic curve for the VRF operational mode corresponding to the i-th loading index. It parameterizes the variation of compressor power as a function of operating conditions, i.e., evaporating and condensing temperatures. The output of this curve is a dimensionless multiplier to be applied on the rated compressor power to calculate the actual compressor power. +This alpha field defines the name of a BiQuadratic curve for the VRF operational mode corresponding to the i-th loading index. It parameterizes the variation of compressor power as a function of operating conditions, i.e., condensing (variable x) and evaporating temperatures (variable y). The output of this curve is a dimensionless multiplier to be applied on the rated compressor power to calculate the actual compressor power. \begin{lstlisting} diff --git a/doc/input-output-reference/src/overview/group-water-heaters.tex b/doc/input-output-reference/src/overview/group-water-heaters.tex index 54f6bf5340b..01d16a04aac 100644 --- a/doc/input-output-reference/src/overview/group-water-heaters.tex +++ b/doc/input-output-reference/src/overview/group-water-heaters.tex @@ -56,7 +56,7 @@ \section{Group -- Water Heaters and Thermal Storage}\label{group-water-heaters} \item better modeling of electric water heaters with two heating elements \item - better modeling of thermal storage applications which rely on stratification to improve heat transfer peformance. + better modeling of thermal storage applications which rely on stratification to improve heat transfer performance. \end{itemize} \subsection{Standard Ratings}\label{standard-ratings} @@ -194,7 +194,7 @@ \subsubsection{Inputs}\label{inputs-052} \paragraph{Field: Use Flow Rate Fraction Schedule Name}\label{field-use-flow-rate-fraction-schedule-name} -The reference to the schedule object specifiying the current fraction of Peak Volumetric Use Flow Rate of domestic hot water usage for stand-alone operation. +The reference to the schedule object specifying the current fraction of Peak Volumetric Use Flow Rate of domestic hot water usage for stand-alone operation. \paragraph{Field: Cold Water Supply Temperature Schedule Name}\label{field-cold-water-supply-temperature-schedule-name} @@ -658,7 +658,7 @@ \subsection{WaterHeater:Stratified}\label{waterheaterstratified} For losses to the ambient environment, the ambient air temperature can be taken from a schedule, a zone, or the exterior. When used with a zone, a fraction of the skin losses can be added to the zone heat balance as internal heat gains. -The WaterHeater:Stratified object allows two heating elements to be simulated. The two elements can cycle on and off to maintain the node temperature within the deadband. The Heater Priority Control field determines how the heaters work together. There are two options:~ MasterSlave or Simultaneous. In the MasterSlave option, Heater 1 is the master and Heater 2 is the slave. That is, both heaters are not allowed to turn on at the same time. If the thermostats ask for heat at both Heater 1 and 2, only Heater 1 will turn on. Once Heater 1 has met the set point, it turns off and Heater 2 can turn on, if necessary. In the Simultaneousoption, Heater 1 and Heater 2 can turn on and off independently.~ Autosizing is available for only Heater 1. +The WaterHeater:Stratified object allows two heating elements to be simulated. The two elements can cycle on and off to maintain the node temperature within the deadband. The Heater Priority Control field determines how the heaters work together. There are two options:~ MasterSlave or Simultaneous. In the MasterSlave option, Heater 1 is the master and Heater 2 is the slave. That is, both heaters are not allowed to turn on at the same time. If the thermostats ask for heat at both Heater 1 and 2, only Heater 1 will turn on. Once Heater 1 has met the set point, it turns off and Heater 2 can turn on, if necessary. In the Simultaneous option, Heater 1 and Heater 2 can turn on and off independently.~ Autosizing is available for only Heater 1. \subsubsection{Inputs}\label{inputs-1-049} @@ -821,7 +821,7 @@ \subsubsection{Inputs}\label{inputs-1-049} \paragraph{Field: Use Flow Rate Fraction Schedule Name}\label{field-use-flow-rate-fraction-schedule-name-1} -The reference to the schedule object specifiying the current fraction of Peak Volumetric Use Flow Rate of domestic hot water usage for stand-alone operation. If blank, the fraction defaults to 1.0 at all times. +The reference to the schedule object specifying the current fraction of Peak Volumetric Use Flow Rate of domestic hot water usage for stand-alone operation. If blank, the fraction defaults to 1.0 at all times. \paragraph{Field: Cold Water Supply Temperature Schedule Name}\label{field-cold-water-supply-temperature-schedule-name-1} @@ -869,7 +869,7 @@ \subsubsection{Inputs}\label{inputs-1-049} \paragraph{Field: Inlet Mode}\label{field-inlet-mode-000} -The inlet mode of entering fluid from the use and source sides. There are two options:~ \textbf{Fixed} or \textbf{Seeking}. In Fixed mode, the fluid enters at the fixed heights specified above. In Seeking mode, the fluid ``seeks out'' the stratified node that is closest to the inlet temperature and adds all flow to that node. The Seekingbmode provides maximum stratification. The default is \textbf{Fixed}. +The inlet mode of entering fluid from the use and source sides. There are two options:~ \textbf{Fixed} or \textbf{Seeking}. In Fixed mode, the fluid enters at the fixed heights specified above. In Seeking mode, the fluid ``seeks out'' the stratified node that is closest to the inlet temperature and adds all flow to that node. The Seeking mode provides maximum stratification. The default is \textbf{Fixed}. \paragraph{Field: Use Side Design Flow Rate}\label{field-use-side-design-flow-rate-1-000} @@ -1102,7 +1102,7 @@ \subsubsection{Inputs}\label{inputs-2-045} \paragraph{Field: Number of Bedrooms}\label{field-number-of-bedrooms} -This field is used to enter the numer of bedrooms in the model.~ This field is only used if the Design Mode is ``\textbf{ResidentialHUD-FHAMinimum}.'' +This field is used to enter the number of bedrooms in the model.~ This field is only used if the Design Mode is ``\textbf{ResidentialHUD-FHAMinimum}.'' \paragraph{Field: Number of Bathrooms}\label{field-number-of-bathrooms} @@ -2512,7 +2512,7 @@ \subsubsection{Inputs}\label{inputs-23-003} \paragraph{Field: Temperature Sensor Height}\label{field-temperature-sensor-height} -This field is used to describe the location in the tank where the temperature is sensed for control descisions.~ The program will associate one of the nodes with this height and use that node's temperature for control decisions.~ The location is described in meters from the bottom of the tank. +This field is used to describe the location in the tank where the temperature is sensed for control decisions.~ The program will associate one of the nodes with this height and use that node's temperature for control decisions.~ The location is described in meters from the bottom of the tank. \paragraph{Field: Minimum Temperature Limit}\label{field-minimum-temperature-limit-1} diff --git a/doc/input-output-reference/src/overview/group-zone-controls-thermostats.tex b/doc/input-output-reference/src/overview/group-zone-controls-thermostats.tex index 8b9689d21f6..4db73f47718 100644 --- a/doc/input-output-reference/src/overview/group-zone-controls-thermostats.tex +++ b/doc/input-output-reference/src/overview/group-zone-controls-thermostats.tex @@ -354,7 +354,7 @@ \subsubsection{Outputs}\label{outputs-042} \paragraph{Zone Oscillating Temperatures During Occupancy Time{[}hr{]}}\label{zone-oscillating-temperatures-during-occupancy-timehr} -Like Zone Oscillating Temperatures Time but for oscillations that occur only when the zone has occupancy. For zones unoccupied during night or weekend hours, ocscillations during those times may not have much impact on the accuracy of the annual energy prediction. +Like Zone Oscillating Temperatures Time but for oscillations that occur only when the zone has occupancy. For zones unoccupied during night or weekend hours, oscillations during those times may not have much impact on the accuracy of the annual energy prediction. \paragraph{Zone Oscillating Temperatures in Deadband Time{[}hr{]}}\label{zone-oscillating-temperatures-in-deadband-timehr} @@ -603,7 +603,7 @@ \subsection{ZoneControl:Thermostat:TemperatureAndHumidity}\label{zonecontrolther This object is used to modify the behavior of \hyperref[zonecontrolthermostat]{ZoneControl:Thermostat} objects (control types \hyperref[thermostatsetpointsinglecooling]{ThermostatSetpoint:SingleCooling} and \hyperref[thermostatsetpointdualsetpoint]{ThermostatSetpoint:DualSetpoint} only) based on zone air humidity conditions. Specifically, this TemperatureAndHumidity zone control resets the \hyperref[zonecontrolthermostat]{ZoneControl:Thermostat}'s cooling setpoint temperature downward when the zone air relative humidity exceeds the Dehumidifying Relative Humidity Setpoint defined in this object. The reduced cooling setpoint temperature typically results in longer cooling coil runtimes and additional dehumidification. The rate at which the cooling setpoint temperature is reduced is dictated by the user-specified Overcool Control Ratio. The maximum reduction in cooling setpoint temperature is defined by the user-entered OverCool Range (user choice of a constant value for the entire simulation or a schedule that can define how the overcool range varies over time). For details regarding the calculations, see the EnergyPlus Engineering Reference. -Note: As described above, this ZoneControl:Thermostat:TemperatureAndHumidity control object modifies the cooling setpoint temperature of \hyperref[zonecontrolthermostat]{ZoneControl:Thermostat} objects. The ZoneControl:Thermostat:TemperatureAndHumidity object works independently of the \hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat} object; that is, it does not replace the need for, or coordinate its input fields with, \hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat} objects that are required for other types of high humidity control (e.g., ZoneControl:Humidstat objects are required for \hyperref[zonehvacdehumidifierdx]{ZoneHVAC:Dehumidifier:DX} objects, AirLoopHVAC:Unitary* objects with CoolReheat or MultiMode dehumidification control types, etc.) +Note: As described above, this ZoneControl:Thermostat:TemperatureAndHumidity control object modifies the cooling setpoint temperature of \hyperref[zonecontrolthermostat]{ZoneControl:Thermostat} objects. The ZoneControl:Thermostat:TemperatureAndHumidity object works independently of the \hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat} object; that is, it does not replace the need for, or coordinate its input fields with, \hyperref[zonecontrolhumidistat]{ZoneControl:Humidistat} objects that are required for other types of high humidity control (e.g., ZoneControl:Humidistat objects are required for \hyperref[zonehvacdehumidifierdx]{ZoneHVAC:Dehumidifier:DX} objects, AirLoopHVAC:Unitary* objects with CoolReheat or MultiMode dehumidification control types, etc.) \subsubsection{Inputs}\label{inputs-6-031} @@ -1041,7 +1041,7 @@ \subsubsection{Inputs}\label{inputs-9-025} \subsubsection{Outputs}\label{outputs-3-024} -Three outputs are available from the ZoneControl:Thermostat:ThermalComfort object. Two output variables used primarily for the ZoneControl:Thermost object are also described here to explain their meaning when using thermal comfort control. +Three outputs are available from the ZoneControl:Thermostat:ThermalComfort object. Two output variables used primarily for the ZoneControl:Thermostat object are also described here to explain their meaning when using thermal comfort control. \textbf{ZoneControl:ThermalComfort} @@ -1275,4 +1275,4 @@ \subsubsection{Outputs}\label{outputs-4-020} \paragraph{Zone Generic Air Contaminant Setpoint Concentration {[}ppm{]}}\label{zone-generic-air-contaminant-setpoint-concentration-ppm} -This output variable is the averagegeneric contaminant setpoint value, in parts per million, for the time step being reported. +This output variable is the average generic contaminant setpoint value, in parts per million, for the time step being reported. diff --git a/doc/input-output-reference/src/overview/group-zone-equipment.tex b/doc/input-output-reference/src/overview/group-zone-equipment.tex index 6fa33553629..69342703fce 100644 --- a/doc/input-output-reference/src/overview/group-zone-equipment.tex +++ b/doc/input-output-reference/src/overview/group-zone-equipment.tex @@ -111,7 +111,7 @@ \subsubsection{Inputs}\label{inputs-055} \paragraph{Field: Constant Downstream Leakage Fraction}\label{field-constant-downstream-leakage-fraction} -This is the leakage downstream of the terminal unit as a fraction of the current flow rate through the terminal unit. This fraction is held constant, so the leakage flow rate will vary proportinally with the supply air flow rate. This input is optional; the default is zero. +This is the leakage downstream of the terminal unit as a fraction of the current flow rate through the terminal unit. This fraction is held constant, so the leakage flow rate will vary proportionally with the supply air flow rate. This input is optional; the default is zero. \paragraph{Field: Design Specification Air Terminal Sizing Name}\label{design-specification-air-terminal-sizing-name2} @@ -242,7 +242,7 @@ \subsubsection{Inputs}\label{inputs-2-048} \paragraph{Field: Load Distribution Scheme} -The Load Distribution Scheme selects the algorithm used to allocate the current zone load across the zone equipment. There are four choices: SequentialLoad, UniformLoad, UniformPLR, and SequentialUniformPLR. The default is SequentialLoad. In all cases, the equipment operates in the order specifed by the Zone Equipment Cooling Sequence and Heating or No-Load Sequence fields. +The Load Distribution Scheme selects the algorithm used to allocate the current zone load across the zone equipment. There are four choices: SequentialLoad, UniformLoad, UniformPLR, and SequentialUniformPLR. The default is SequentialLoad. In all cases, the equipment operates in the order specified by the Zone Equipment Cooling Sequence and Heating or No-Load Sequence fields. \begin{itemize} \item diff --git a/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex b/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex index 1a311ee6d7d..8c9f169b093 100644 --- a/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex +++ b/doc/input-output-reference/src/overview/group-zone-forced-air-units.tex @@ -146,7 +146,7 @@ \subsubsection{Inputs}\label{inputs-056} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-000} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Heating Air Flow Rate and Maximum Cooling Air Flow Rate in a Ideal Load Air System zone HVAC object. The scaled maximum heating and cooling air flow rates are used to size the heating and cooling capacities. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Heating Air Flow Rate and Maximum Cooling Air Flow Rate in a Ideal Load Air System zone HVAC object. The scaled maximum heating and cooling air flow rates are used to size the heating and cooling capacities. An example of this object in an IDF is: @@ -726,7 +726,7 @@ \subsubsection{Inputs}\label{inputs-1-053} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-1} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Four Pipe FanCoil zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling and heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Four Pipe FanCoil zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling and heating capacity of the unit. \paragraph{Field: Supply Air Fan Operating Mode Schedule Name}\label{field-supply-air-fan-operating-mode-schedule-name-000} @@ -994,7 +994,7 @@ \subsubsection{Inputs}\label{inputs-2-049} \paragraph{Field: Maximum Outdoor Air Flow Rate}\label{field-maximum-outdoor-air-flow-rate-1-000} -This field allows the user to enter the maximum volumetric flow rate of outdoor air that can be brought into the unit ventilator system in m\(^{3}\)/sec.~This parameter should be some real number greater than zero. Note that the value for this parameter may be less than the maximum air flow rate of the unit ventilator and this may affect the maximum fraction of outdoor air within the control strategy defined above. This parameter is an absolute maximum and will supercede any scheduled fraction of the unit ventilator maximum airflow rate. If ``FixedAmount'' type is selected as the outdoor air control strategy, this field will be ignored and be automatically set to be equal to the minimum outdoor air flow rate specified in the field above. +This field allows the user to enter the maximum volumetric flow rate of outdoor air that can be brought into the unit ventilator system in m\(^{3}\)/sec.~This parameter should be some real number greater than zero. Note that the value for this parameter may be less than the maximum air flow rate of the unit ventilator and this may affect the maximum fraction of outdoor air within the control strategy defined above. This parameter is an absolute maximum and will supersede any scheduled fraction of the unit ventilator maximum airflow rate. If ``FixedAmount'' type is selected as the outdoor air control strategy, this field will be ignored and be automatically set to be equal to the minimum outdoor air flow rate specified in the field above. \paragraph{Field: Maximum Outdoor Air Fraction or Temperature Schedule Name}\label{field-maximum-outdoor-air-fraction-or-temperature-schedule-name-000} @@ -1113,7 +1113,7 @@ \subsubsection{Inputs}\label{inputs-2-049} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-2} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Unit Ventilator zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling and heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Unit Ventilator zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling and heating capacity of the unit. An example input for a unit ventilator, including its constituent components, is shown below. @@ -1365,7 +1365,7 @@ \subsubsection{Inputs}\label{inputs-3-043} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-3} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields \emph{Maximum Supply Air Flow Rate} in this Unit Heater zone HVAC object. The scaled maximum supply air flow rates is used to size Maximum Hot Water or Steam Flow Rate if specified as autosize. The scaled Maximum Air Flow Rate in turn is used to size heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields \emph{Maximum Supply Air Flow Rate} in this Unit Heater zone HVAC object. The scaled maximum supply air flow rates is used to size Maximum Hot Water or Steam Flow Rate if specified as autosize. The scaled Maximum Air Flow Rate in turn is used to size heating capacity of the unit. An example input for a unit heater, including its constituent components, is shown below. @@ -1545,7 +1545,7 @@ \subsubsection{Inputs}\label{inputs-4-040} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-4} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object defined elsewhere. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input field \emph{Design Supply Air Flow Rate} in Evaportaive Cooler zone HVAC object. The scaled design supply air flow rates in turn is used to size capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object defined elsewhere. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input field \emph{Design Supply Air Flow Rate} in Evaporative Cooler zone HVAC object. The scaled design supply air flow rates in turn is used to size capacity of the unit. \paragraph{Field: Shut Off Relative Humidity}\label{shut-off-relative-humidity} @@ -2004,7 +2004,7 @@ \subsubsection{Inputs}\label{inputs-7-031} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-5} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Window Air Conditioner zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Maximum Air Flow Rate in this Window Air Conditioner zone HVAC object. The scaled Maximum Air Flow Rate in turn is used to size cooling capacity of the unit. Following is an example input for the cycling window air conditioner, along with its constituent components. @@ -2278,7 +2278,7 @@ \subsubsection{Inputs}\label{inputs-8-029} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-6} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this Packaged Terminal Air Conditioner~ zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this Packaged Terminal Air Conditioner~ zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. \paragraph{Field: Capacity Control Method}\label{field-capacity-control-method-2} @@ -2666,7 +2666,7 @@ \subsubsection{Inputs}\label{inputs-9-026} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-7} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this PTHP zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this PTHP zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. \paragraph{Field: Capacity Control Method}\label{field-capacity-control-method-3} @@ -3112,7 +3112,7 @@ \subsubsection{Inputs}\label{inputs-11-023} \paragraph{Field: Heat Pump Fan Delay Time}\label{field-heat-pump-fan-delay-time-001} -This numeric field contains the time delay in seconds for the heat pump supply air fan to shut off after compressor cycle off. This value can be obtained from the manufacturer or the heat pump catalog. Suggested value is 60 seconds. This value is disregared at times when the WaterToAirHeatPump's fan operating mode schedule value is greater than 0 (i.e., continuous fan mode). +This numeric field contains the time delay in seconds for the heat pump supply air fan to shut off after compressor cycle off. This value can be obtained from the manufacturer or the heat pump catalog. Suggested value is 60 seconds. This value is disregarded at times when the WaterToAirHeatPump's fan operating mode schedule value is greater than 0 (i.e., continuous fan mode). \paragraph{Field: Supplemental Heating Coil Object Type}\label{field-supplemental-heating-coil-object-type-1-000} @@ -3187,7 +3187,7 @@ \subsubsection{Inputs}\label{inputs-11-023} CyclingOnDemand \end{itemize} -\textbf{Cycling} varies water flow through the coil based on the heat pump Part Load Ratio. This control method is appropriate for modeling heat pumps that are outfitted with a soleniod valve which allows water to flow through the coil only when the compressor is active. This is the default for EnergyPlus V8 and later. +\textbf{Cycling} varies water flow through the coil based on the heat pump Part Load Ratio. This control method is appropriate for modeling heat pumps that are outfitted with a solenoid valve which allows water to flow through the coil only when the compressor is active. This is the default for EnergyPlus V8 and later. \textbf{Constant} provides a constant water flow regardless of heat pump operation. Remember that EnergyPlus has two coils (a heating coil and a cooling coil) to approximate the operation of one coil that can operate in either heating mode or cooling mode. Therefore, when the water flow mode is constant, there will be full flow through either the heating coil or the cooling coil, but not both at the same time. @@ -3195,7 +3195,7 @@ \subsubsection{Inputs}\label{inputs-11-023} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-8} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this Water To Air Heat Pump zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this Water To Air Heat Pump zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. \paragraph{Field: Design Specification Multispeed Object Type}\label{field-design-specification-multispeed-object-type-2} @@ -3234,10 +3234,6 @@ \subsubsection{Inputs}\label{inputs-11-023} Sys 1 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate - 60.0, !- Heat Pump Time Constant - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3858,7 +3854,7 @@ \subsubsection{Inputs}\label{inputs-13-018} SetpointManager:Scheduled, - Heat Exhchanger Supply Air Temp Manager, !- Name + Heat Exchanger Supply Air Temp Manager, !- Name Temperature, !- Control variable Heat Exchanger Supply Air Temp Sch, !- Schedule Name Heat Exchanger Supply Air Nodes; !- Name of the set point Node List @@ -3981,7 +3977,7 @@ \subsection{ZoneHVAC:TerminalUnit:VariableRefrigerantFlow}\label{zonehvactermina For air loop equipment and outdoor air system equipment the VRF terminal unit inlet and outlet nodes define the location of the system in the air loop and outdoor air system. The node names must define the path of the air stream in order from the beginning of the air loop or outdoor air system to the outlet of that system. -This VRF terminal unit can be controlled based on a load or set point. When the system is used as zone equipment, load control is always used. When the VRF terminal unit is used in an air loop and the control zone name or thermostat location is specified, the system is controlled based on zone load. If the control zone name or thermostat location is not specified the VRF terminal unit will be controlled based on termninal unit or coil outlet node set point temperature. When set point based control is used the node temperature set points may be placed at the outlet of the terminal unit or at individual coil outlet nodes. If the VRF terminal unit is used in an air loop's outdoor air system, control is always based on a termninal unit or coil outlet node temperature set point. +This VRF terminal unit can be controlled based on a load or set point. When the system is used as zone equipment, load control is always used. When the VRF terminal unit is used in an air loop and the control zone name or thermostat location is specified, the system is controlled based on zone load. If the control zone name or thermostat location is not specified the VRF terminal unit will be controlled based on terminal unit or coil outlet node set point temperature. When set point based control is used the node temperature set points may be placed at the outlet of the terminal unit or at individual coil outlet nodes. If the VRF terminal unit is used in an air loop's outdoor air system, control is always based on a terminal unit or coil outlet node temperature set point. The terminal units operate to satisfy a heating or cooling load in a zone based on a zone thermostat temperature set point. A direct-expansion (DX) cooling and/or DX heating coil is specified depending on the operating mode required. Both a DX cooling and DX heating coil will typically be installed in the terminal unit, however only one may be used if desired. An optional supplemental heating coil can also be added to the terminal unit to provide additional heating when the main DX heating coil could not meet the entire heating load of a zone during cold outdoor conditions. The Supplemental Heating Coil Object Type must be \hyperref[coilheatingelectric]{Coil:Heating:Electric}, \hyperref[coilheatinggas-000]{Coil:Heating:Fuel}, \hyperref[coilheatingwater]{Coil:Heating:Water}, or \hyperref[coilheatingsteam]{Coil:Heating:Steam}. Outdoor ventilation air is modeled with the use of an optional outside air mixer object. Outside air may be provided to the zone only when the coil is operating or can be supplied continuously even when the coil is not operating. @@ -4101,7 +4097,7 @@ \subsubsection{Inputs}\label{inputs-14-018} \paragraph{Field: Design Specification ZoneHVAC Sizing Object Name}\label{field-design-specification-zonehvac-sizing-object-name-9} -This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Sepcification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this VRF terminal unit zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. +This optional input field is the name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. The name must correspond to unique name of a \hyperref[designspecificationzonehvacsizing]{DesignSpecification:ZoneHVAC:Sizing} object. A Design Specification Zone HVAC Sizing object defines scalable sizing methods for sizing input fields such as Cooling Supply Air Flow Rate in this VRF terminal unit zone HVAC object. The scaled Supply Air Flow Rate in turn is used to size cooling and heating capacity of the unit. \paragraph{Field: Supplemental Heating Coil Object Type}\label{field-supplemental-heating-coil-object-type-2-000} @@ -4348,7 +4344,7 @@ \subsubsection{Inputs} This optional alpha input field specifies the name of the schedule (ref: Group – Schedules) that specifies the minimum supply air humidity ratio allowed in each time step. Values in this schedule are used as a constraint in choosing the feasible settings for supply air flow rate and outdoor air fraction in each operating mode. If this field is blank, no minimum is imposed. \paragraph{Field: Maximum Supply Air Humidity Ratio Schedule Name} -This optional alpha input field specifies the name of the schedule (ref: Group – Schedules) that specifies the maximum supply air humidity raio allowed in each time step. Values in this schedule are used as a constraint in choosing the feasible settings for supply air flow rate and outdoor air fraction in each operating mode. If this field is blank, no maximum is imposed. +This optional alpha input field specifies the name of the schedule (ref: Group – Schedules) that specifies the maximum supply air humidity ratio allowed in each time step. Values in this schedule are used as a constraint in choosing the feasible settings for supply air flow rate and outdoor air fraction in each operating mode. If this field is blank, no maximum is imposed. \paragraph{Field: Method to Choose Controlled Inputs and Part Runtime Fraction} This alpha input field specifies the method that will be used to choose operating mode(s), supply air flow rate(s), outdoor air fraction(s) and part runtime fraction(s) in each time step. The only valid choices are ''Automatic`` and ''User Defined``, ''Automatic`` chooses the controlled independent variables to minimize resource use within each time step, subject to constraints, while best satisfying zone sensible loads, latent loads, and the scheduled ventilation rate. ''User Defined`` indicates that the user will provide a custom control sequence, using Energy Management System objects or other means, to choose the controlled independent variables and determine system outputs in each time step. diff --git a/doc/input-output-reference/src/parametric-objects.tex b/doc/input-output-reference/src/parametric-objects.tex index e04e7c4ba6b..f459b691789 100644 --- a/doc/input-output-reference/src/parametric-objects.tex +++ b/doc/input-output-reference/src/parametric-objects.tex @@ -133,7 +133,7 @@ \subsection{Parametric:Logic}\label{parametriclogic} The statements include PARAMETER, IF, ELSE, ELSEIF, ENDIF, SELECT, CASE, DEFAULT, ENDSELECT, ENABLE, DISABLE, and REMARK. Nested IF and SELECT statements are allowed.~ All objects are enabled until they are specifically disabled using the DISABLE statement and could be later re-enabled with ENABLE. An object that is named with the DISABLE statement would not appear in that simulation run. -The PARAMETER statement declares the name of the parameter. It is necessary that every parameter used in the Parametric:Logic object be initialized using the PARAMETER statement unless the parametes are created using the \hyperref[parametricsetvalueforrun]{Parametric:SetValueForRun} object. Requiring explicit parameter declaration reduces errors in software programming. Parameter names would not be case sensitive. +The PARAMETER statement declares the name of the parameter. It is necessary that every parameter used in the Parametric:Logic object be initialized using the PARAMETER statement unless the parameters are created using the \hyperref[parametricsetvalueforrun]{Parametric:SetValueForRun} object. Requiring explicit parameter declaration reduces errors in software programming. Parameter names would not be case sensitive. The DISABLE and ENABLE commands can have one or two arguments. If a second argument is present it is the kind of object. @@ -227,7 +227,7 @@ \subsubsection{Inputs}\label{inputs-1-027} ENDSELECT \end{lstlisting} -With any number of CASE statements. The \textless{}expression\textgreater{} is evaluated and compared to the constants with each CASE statement. If a match is found the corresponding \textless{}case-block-of-statements\textgreater{} are executed otherwise if no match if found the \textless{}default-block-of-statements\textgreater{} is excecuted. One one matching CASE statement for each SELECT block is executed. An example of how this works is shown below: +With any number of CASE statements. The \textless{}expression\textgreater{} is evaluated and compared to the constants with each CASE statement. If a match is found the corresponding \textless{}case-block-of-statements\textgreater{} are executed otherwise if no match if found the \textless{}default-block-of-statements\textgreater{} is executed. One one matching CASE statement for each SELECT block is executed. An example of how this works is shown below: \begin{lstlisting} diff --git a/doc/input-output-reference/src/standard-output-reports/output-table-annual.tex b/doc/input-output-reference/src/standard-output-reports/output-table-annual.tex index a4bbb5c47a4..5f4fb7ab0c5 100644 --- a/doc/input-output-reference/src/standard-output-reports/output-table-annual.tex +++ b/doc/input-output-reference/src/standard-output-reports/output-table-annual.tex @@ -44,7 +44,7 @@ \subsection{Inputs}\label{inputs-062} \textbf{HoursNonNegative} -- The HoursNonNegative option adds up the elapsed time during the month that this variable has non-negative value. Hours with a positive value and hours with a zero value are all included. -\textbf{HourInTenBinsMinToMax} - Creates 10 columns for the specified variable and shows the number of hours in each of 10 bins based on the minimum and maximum value. The bin sizes will be rounded up to the next most signficant digit value (if the min is 0 and the max is 28786.3, the bin size would be 3000 not 2878.63). A table of the bin ranges would be generated below the main table when this option is selected. +\textbf{HourInTenBinsMinToMax} - Creates 10 columns for the specified variable and shows the number of hours in each of 10 bins based on the minimum and maximum value. The bin sizes will be rounded up to the next most significant digit value (if the min is 0 and the max is 28786.3, the bin size would be 3000 not 2878.63). A table of the bin ranges would be generated below the main table when this option is selected. \textbf{HourInTenBinsZeroToMax} - Creates 11 columns for the specified variable and shows the number of hours in each of 10 bins from zero to the maximum value and a bin for hours below zero. The bin sizes will be rounded up to the next most significant digit value (if the min is 0 and the max is 28786.3, the bin size would be 3000 not 2878.63). A table of the bin ranges would be generated below the main table when this option is selected. diff --git a/doc/input-output-reference/src/standard-output-reports/output-table-monthly.tex b/doc/input-output-reference/src/standard-output-reports/output-table-monthly.tex index 479fef4df9a..e45edd3235c 100644 --- a/doc/input-output-reference/src/standard-output-reports/output-table-monthly.tex +++ b/doc/input-output-reference/src/standard-output-reports/output-table-monthly.tex @@ -42,7 +42,7 @@ \subsection{Inputs}\label{inputs-063} \emph{Advanced Aggregation Types} -The advanced aggregation types are described below. These aggregation types rely on doing an operation on the current variable but only during the time or times defined by a previously defined field. The ValueWhenMaxOrMin displays the value of one variable at the same time as the maximum or minimum is set on a previous field that is defined as either a maximum or minimum. The ``Hours---`` aggregation types display then number of hours that a variable meets a condition. The ``---DuringHoursShown'' aggregation types perform those aggretations but instead of for all the hours in the month, only for the hours that the previous ``Hours---`` entry applies. Multiple ``---DuringHoursShown'' after an ``Hours---`` will all be based on that single ``Hours---`` entry, in fact the ``---DuringHoursShown'' is based on the next column to the left that contains an ``Hours---`` entry even if other types of aggregations are used in intermediate columns. Order of the variables in the report is important when using the advanced aggregation types since they often depend on a previous entry. +The advanced aggregation types are described below. These aggregation types rely on doing an operation on the current variable but only during the time or times defined by a previously defined field. The ValueWhenMaxOrMin displays the value of one variable at the same time as the maximum or minimum is set on a previous field that is defined as either a maximum or minimum. The ``Hours---`` aggregation types display then number of hours that a variable meets a condition. The ``---DuringHoursShown'' aggregation types perform those aggregations but instead of for all the hours in the month, only for the hours that the previous ``Hours---`` entry applies. Multiple ``---DuringHoursShown'' after an ``Hours---`` will all be based on that single ``Hours---`` entry, in fact the ``---DuringHoursShown'' is based on the next column to the left that contains an ``Hours---`` entry even if other types of aggregations are used in intermediate columns. Order of the variables in the report is important when using the advanced aggregation types since they often depend on a previous entry. \textbf{ValueWhenMaximumOrMinimum} -- The ValueWhenMaximumOrMinimum option looks at the previous variable in the report that sets a maximum or minimum and displays the value of the current variable at that same timestep. Order of the variables in the report is important when using ValueWhenMaxMin. This can be used, for example, when an outdoor temperature should be reported for the time of the maximum cooling load. 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 99dbb39439d..744a6fa6d63 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 @@ -129,7 +129,7 @@ \subsubsection{Predefined Annual Summary Reports}\label{predefined-annual-summar \item Cooling Coils includes the nominal total, sensible and latent capacities, the nominal sensible heat ratio, the nominal efficiency, nominal UA value, and nominal~ surface area for each cooling coil. These values are calculated by calling the cooling coil simulation routine with the rated inlet conditions: inlet air dry bulb temperature = 26.67C, inlet air wet bulb temperature = 19.44C, inlet chilled water temperature = 6.67C. \item - DX Cooling Coils summarizes the Standard Rating (Net) Cooling Capacity, SEER, EER and IEER values at AHRI standard test. Currently, these values are only reported for coil type = \hyperref[coilcoolingdxsinglespeed]{Coil:Cooling:DX:SingleSpeed} and \hyperref[coilcoolingdxmultispeed]{Coil:Cooling:DX:MultiSpeeed} with condenser type = AirCooled. However, the EER value is not reported for the mulit-speed DX cooling coil. There are two SEER values reported: \textit{SEER} and \textit{SEER Default}. The \textit{SEER} value is calculated using user specified Part Load Factor (PLF) curve used for energy performance calculation and the \textit{SEER Default} value is calculated using the AHRI Standard 210/240-2008 default PLF curve and cooling coefficent of degradation value of 0.25. + DX Cooling Coils summarizes the Standard Rating (Net) Cooling Capacity, SEER, EER and IEER values at AHRI standard test. Currently, these values are only reported for coil type = \hyperref[coilcoolingdxsinglespeed]{Coil:Cooling:DX:SingleSpeed} and \hyperref[coilcoolingdxmultispeed]{Coil:Cooling:DX:MultiSpeeed} with condenser type = AirCooled. However, the EER value is not reported for the multi-speed DX cooling coil. There are two SEER values reported: \textit{SEER} and \textit{SEER Default}. The \textit{SEER} value is calculated using user specified Part Load Factor (PLF) curve used for energy performance calculation and the \textit{SEER Default} value is calculated using the AHRI Standard 210/240-2008 default PLF curve and cooling coefficient of degradation value of 0.25. \item DX Heating Coils summarizes the High Temperature Heating Standard (Net) Rating Capacity, Low Temperature Heating Standard (Net) Rating Capacity and Heating Seasonal Performance Factor (HSPF) values at AHRI standard test. Currently, these values are only reported for coil type = \hyperref[coilheatingdxsinglespeed]{Coil:Heating:DX:SingleSpeed}. \item @@ -399,7 +399,7 @@ \subsubsection{Predefined Annual Summary Reports}\label{predefined-annual-summar The Air Loop Component Summary tables also include tables that indicate the zones included in the aggregated results for heating and cooling. -If the time of the peak load for each Zone for cooling exactly matches the time of the peak load for the AirLoop or Facility than the Estimated Cooling Peak Load Components will represent a sum of the values from the corresponding zones. Likewise the Estimated Heating Peak Load Components will add up for the AirLoop or Facility if the times of the heating peaks exactly match. This is not necessarily the case for Peak Conditions or the Engineering Checks tables. Since the sizing of Airloops is based on the system sizing they usually will be different than the sum of the corresonding zones. +If the time of the peak load for each Zone for cooling exactly matches the time of the peak load for the AirLoop or Facility than the Estimated Cooling Peak Load Components will represent a sum of the values from the corresponding zones. Likewise the Estimated Heating Peak Load Components will add up for the AirLoop or Facility if the times of the heating peaks exactly match. This is not necessarily the case for Peak Conditions or the Engineering Checks tables. Since the sizing of Airloops is based on the system sizing they usually will be different than the sum of the corresponding zones. \paragraph{Standard 62.1 Summary}\label{standard-62.1-summary} @@ -450,7 +450,7 @@ \subsubsection{Predefined Annual Summary Reports}\label{predefined-annual-summar \paragraph{Component Cost Economics Summary}\label{component-cost-economics-summary} -The Component Cost Economics Summary provides the construction cost estimate summary for the project. The costs are broken into eight catagories and the reference building costs are provided as a comparison. A second table is also produced that provides line item details with one line for every line item object. The key used to obtain this report is ComponentCostEconomicsSummary. +The Component Cost Economics Summary provides the construction cost estimate summary for the project. The costs are broken into eight categories and the reference building costs are provided as a comparison. A second table is also produced that provides line item details with one line for every line item object. The key used to obtain this report is ComponentCostEconomicsSummary. \paragraph{Life Cycle Cost Report}\label{LifeCycleCostReport} @@ -497,7 +497,7 @@ \subsubsection{Predefined Annual Summary Reports}\label{predefined-annual-summar \subsubsection{Predefined Monthly Summary Reports}\label{predefined-monthly-summary-reports} -The predefined monthly report options are shown below. The key name of the predefined monthly report is all that is needed to have that report appear in the tabular output file. After each report name below are the output variables and aggregation types used. These cannot be modified when using the predefined reports but if changes are desired, a \hyperref[outputtablemonthly]{Output:Table:Monthly} can be used instead. The StandardReports.idf file in the DataSets directory includes a \hyperref[outputtablemonthly]{Output:Table:Monthly} that exactly corresponds to the predefined monthly reports shown below. They can be copied into an IDF file and extended if additional variables are desired. A listing of each available key for predefined monthly summary reports follows with a discrption of the variables included. +The predefined monthly report options are shown below. The key name of the predefined monthly report is all that is needed to have that report appear in the tabular output file. After each report name below are the output variables and aggregation types used. These cannot be modified when using the predefined reports but if changes are desired, a \hyperref[outputtablemonthly]{Output:Table:Monthly} can be used instead. The StandardReports.idf file in the DataSets directory includes a \hyperref[outputtablemonthly]{Output:Table:Monthly} that exactly corresponds to the predefined monthly reports shown below. They can be copied into an IDF file and extended if additional variables are desired. A listing of each available key for predefined monthly summary reports follows with a description of the variables included. \paragraph{ZoneCoolingSummaryMonthly}\label{zonecoolingsummarymonthly} diff --git a/doc/input-output-reference/src/weather-data/weather-file-data-reporting-errors-during.tex b/doc/input-output-reference/src/weather-data/weather-file-data-reporting-errors-during.tex index fe976b90003..81f8c83518e 100644 --- a/doc/input-output-reference/src/weather-data/weather-file-data-reporting-errors-during.tex +++ b/doc/input-output-reference/src/weather-data/weather-file-data-reporting-errors-during.tex @@ -1,6 +1,6 @@ \section{Weather File Data Reporting (errors) during Simulation}\label{weather-file-data-reporting-errors-during-simulation} -Missing data on the weather file used will be summarized on the \textbf{eplusout.err} file. In EnergyPlus, ``missing data'' is shown only for fields that EnergyPlus will use. For the ``WeatherCodes'', an invalid field count (where the number of items in the field does not = 9) will be shown. The number of items count refers to the number of records on the weather file that are in error or missing -- for an hourly weather file, this is the number of hours. Likewise out of range values (see specific fields in the previous definition) will be counted for each occurance and summarized. Note that the out of range values will not be changed by EnergyPlus and could affect your simulation results. +Missing data on the weather file used will be summarized on the \textbf{eplusout.err} file. In EnergyPlus, ``missing data'' is shown only for fields that EnergyPlus will use. For the ``WeatherCodes'', an invalid field count (where the number of items in the field does not = 9) will be shown. The number of items count refers to the number of records on the weather file that are in error or missing -- for an hourly weather file, this is the number of hours. Likewise out of range values (see specific fields in the previous definition) will be counted for each occurrence and summarized. Note that the out of range values will not be changed by EnergyPlus and could affect your simulation results. For example: diff --git a/idd/Energy+.idd.in b/idd/Energy+.idd.in index 0c73a3aa715..c56015d4662 100644 --- a/idd/Energy+.idd.in +++ b/idd/Energy+.idd.in @@ -441,7 +441,7 @@ SimulationControl, \key No \default Yes A6, \field Do HVAC Sizing Simulation for Sizing Periods - \note If Yes, SizingPeriod:* objects are exectuted additional times for advanced sizing. + \note If Yes, SizingPeriod:* objects are executed additional times for advanced sizing. \note Currently limited to use with coincident plant sizing, see Sizing:Plant object \type choice \key Yes @@ -449,7 +449,7 @@ SimulationControl, \default No N1; \field Maximum Number of HVAC Sizing Simulation Passes \note the entire set of SizingPeriod:* objects may be repeated to fine tune size results - \note this input sets a limit on the number of passes that the sizing algorithms can repeate the set + \note this input sets a limit on the number of passes that the sizing algorithms can repeat the set \type integer \minimum 1 \default 1 @@ -1260,7 +1260,7 @@ SizingPeriod:DesignDay, \type integer A13; \field Begin Environment Reset Mode \note If used this can control if you want the thermal history to be reset at the beginning of the design day. - \note When using a series of similiar design days, this field can be used to retain warmup state from the previous design day. + \note When using a series of similar design days, this field can be used to retain warmup state from the previous design day. \type choice \key FullResetAtBeginEnvironment \key SuppressAllBeginEnvironmentResets @@ -1966,7 +1966,7 @@ Site:GroundTemperature:Undisturbed:Xing, \type real \units J/kg-K \minimum> 0.0 - N4, \field Average Soil Surface Tempeature + N4, \field Average Soil Surface Temperature \required-field \type real \units C @@ -8943,7 +8943,7 @@ ConstructionProperty:InternalHeatSource, \type real \units m \minimum 0.01 - \maximum 1.0 + \maximum 1.0 \note uniform spacing between tubes or resistance wires in direction \note perpendicular to main intended direction of heat transfer N5; \field Two-Dimensional Temperature Calculation Position @@ -9091,22 +9091,22 @@ Construction:ComplexFenestrationState, \type object-list \object-list CFSGlazingName \object-list WindowComplexShades - A11, \field Outside Layer Directional Front Absoptance Matrix Name + A11, \field Outside Layer Directional Front Absorptance Matrix Name \required-field \type object-list \object-list DataMatrices - A12, \field Outside Layer Directional Back Absoptance Matrix Name + A12, \field Outside Layer Directional Back Absorptance Matrix Name \required-field \type object-list \object-list DataMatrices A13, \field Gap 1 Name \type object-list \object-list CFSGap - A14, \field CFS Gap 1 Directional Front Absoptance Matrix Name + A14, \field CFS Gap 1 Directional Front Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices - A15, \field CFS Gap 1 Directional Back Absoptance Matrix Name + A15, \field CFS Gap 1 Directional Back Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices @@ -9114,20 +9114,20 @@ Construction:ComplexFenestrationState, \type object-list \object-list CFSGlazingName \object-list WindowComplexShades - A17, \field Layer 2 Directional Front Absoptance Matrix Name + A17, \field Layer 2 Directional Front Absorptance Matrix Name \type object-list \object-list DataMatrices - A18, \field Layer 2 Directional Back Absoptance Matrix Name + A18, \field Layer 2 Directional Back Absorptance Matrix Name \type object-list \object-list DataMatrices A19, \field Gap 2 Name \type object-list \object-list CFSGap - A20, \field Gap 2 Directional Front Absoptance Matrix Name + A20, \field Gap 2 Directional Front Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices - A21, \field Gap 2 Directional Back Absoptance Matrix Name + A21, \field Gap 2 Directional Back Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices @@ -9135,20 +9135,20 @@ Construction:ComplexFenestrationState, \type object-list \object-list CFSGlazingName \object-list WindowComplexShades - A23, \field Layer 3 Directional Front Absoptance Matrix Name + A23, \field Layer 3 Directional Front Absorptance Matrix Name \type object-list \object-list DataMatrices - A24, \field Layer 3 Directional Back Absoptance Matrix Name + A24, \field Layer 3 Directional Back Absorptance Matrix Name \type object-list \object-list DataMatrices A25, \field Gap 3 Name \type object-list \object-list CFSGap - A26, \field Gap 3 Directional Front Absoptance Matrix Name + A26, \field Gap 3 Directional Front Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices - A27, \field Gap 3 Directional Back Absoptance Matrix Name + A27, \field Gap 3 Directional Back Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices @@ -9156,20 +9156,20 @@ Construction:ComplexFenestrationState, \type object-list \object-list CFSGlazingName \object-list WindowComplexShades - A29, \field Layer 4 Directional Front Absoptance Matrix Name + A29, \field Layer 4 Directional Front Absorptance Matrix Name \type object-list \object-list DataMatrices - A30, \field Layer 4 Directional Back Absoptance Matrix Name + A30, \field Layer 4 Directional Back Absorptance Matrix Name \type object-list \object-list DataMatrices A31, \field Gap 4 Name \type object-list \object-list CFSGap - A32, \field Gap 4 Directional Front Absoptance Matrix Name + A32, \field Gap 4 Directional Front Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices - A33, \field Gap 4 Directional Back Absoptance Matrix Name + A33, \field Gap 4 Directional Back Absorptance Matrix Name \note Reserved for future use. Leave it blank for this version \type object-list \object-list DataMatrices @@ -9177,10 +9177,10 @@ Construction:ComplexFenestrationState, \type object-list \object-list CFSGlazingName \object-list WindowComplexShades - A35, \field Layer 5 Directional Front Absoptance Matrix Name + A35, \field Layer 5 Directional Front Absorptance Matrix Name \type object-list \object-list DataMatrices - A36; \field Layer 5 Directional Back Absoptance Matrix Name + A36; \field Layer 5 Directional Back Absorptance Matrix Name Construction:WindowEquivalentLayer, \memo Start with outside layer and work your way to the inside Layer @@ -17408,7 +17408,7 @@ SurfaceProperty:ExposedFoundationPerimeter, \note exposed. Value * Fraction = Total exposed perimeter \note BySegment => define whether the segment between each set of \note consecutive vertices of the floor surface is exposed. - \note SUM(exposed segement lengths) = Total exposed perimeter + \note SUM(exposed segment lengths) = Total exposed perimeter \required-field \type choice \key TotalExposedPerimeter @@ -19037,7 +19037,7 @@ ZoneProperty:UserViewFactors:BySurfaceName, \format ViewFactor A1, \field Zone or ZoneList or Space or SpaceList Name \note View factors may be entered for a space, zone, group of spaces, or group of zones in the same enclosure - \note by way of Constructon:AirBoundary or open spaces within a zone. This name must align with an enclosure + \note by way of Construction:AirBoundary or open spaces within a zone. This name must align with an enclosure \note encompassing the same zones or spaces. \type object-list \object-list SpaceNames @@ -19409,10 +19409,10 @@ GroundHeatTransfer:Slab:MatlProps, GroundHeatTransfer:Slab:BoundConds, \memo Supplies some of the boundary conditions used in the ground heat transfer calculations. A1, \field EVTR: Is surface evapotranspiration modeled - \note This field specifies whether or not to use the evapotransporation model. - \note The inclusion of evapotransporation in the calculation has the greatest + \note This field specifies whether or not to use the evapotranspiration model. + \note The inclusion of evapotranspiration in the calculation has the greatest \note effect in warm dry climates, primarily on the ground surface temperature. - \note This field can be used to turn the evapotransporation off and on to check + \note This field can be used to turn the evapotranspiration off and on to check \note sensitivity to it. \type choice \key TRUE @@ -22829,7 +22829,7 @@ ElectricEquipment:ITE:AirCooled, \type object-list \object-list BivariateFunctions \note The name of a two-variable curve or table lookup object which modifies the recirculation - \note fractionas a function of CPU loading (x) and supply air node temperature (y). + \note fraction as a function of CPU loading (x) and supply air node temperature (y). \note This curve (table) should equal 1.0 at design conditions (CPU loading = 1.0 and \note Design Entering Air Temperature).This field is used only if the \note Air Node Connection Type = AdjustedSupply. If this curve is left blank, then the curve @@ -24328,7 +24328,7 @@ ZoneCrossMixing, A6 , \field Delta Temperature Schedule Name \type object-list \object-list ScheduleNames - \note This scheulde contains the temperature differential between source and + \note This schedule contains the temperature differential between source and \note receiving zone or space below which mixing is shutoff. If a source zone is \note specified and it contains more than one space, the average source zone temperature \note will be used for control. Schedule values must be greater than or equal to zero. @@ -24527,10 +24527,58 @@ ZoneEarthtube, \note "C" in Equation \type real \default 0 - N18; \field Velocity Squared Term Flow Coefficient + N18, \field Velocity Squared Term Flow Coefficient \note "D" in Equation \type real \default 0 + A5, \field Earth Tube Model Type + \type choice + \key Basic + \key Vertical + \default Basic + A6; \field Earth Tube Model Parameters + \type object-list + \object-list EarthTubeParameterNames + +ZoneEarthtube:Parameters, + \memo Parameters that apply to the vertical model for an earth tube + \min-fields 6 + A1, \field Earth Tube Model Parameters Name + \required-field + \reference EarthTubeParameterNames + N1, \field Nodes Above Earth Tube + \type integer + \units dimensionless + \minimum 3 + \maximum 10 + \default 5 + N2, \field Nodes Below Earth Tube + \type integer + \units dimensionless + \minimum 3 + \maximum 10 + \default 3 + N3, \field Earth Tube Dimensionless Boundary Above + \note When set to 1.0, the upper boundary is one earth tube radius below ground. + \type real + \units dimensionless + \minimum 0.25 + \maximum 1.0 + \default 1.0 + N4, \field Earth Tube Dimensionless Boundary Above + \note When set to 1.0, the upper boundary is one earth tube radius below ground. + \type real + \units dimensionless + \minimum 0.25 + \maximum 1.0 + \default 0.25 + N5; \field Earth Tube Solution Space Width + \note Width of the nodes in the direction parallel to the ground, multiplied by earth tube radius + \type real + \units dimensionless + \minimum 3.0 + \maximum 20.0 + \default 4.0 ZoneCoolTower:Shower, \memo A cooltower (sometimes referred to as a wind tower or a shower cooling tower) @@ -25067,7 +25115,7 @@ AirflowNetwork:SimulationControl, \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 allowed in the simulation if present. Setting this field to Yes, allows the following equipment \note to be modeled along an AirflowNetwork model: ZoneHVAC:Dehumidifier, ZoneHVAC:EnergyRecoveryVentilator, \note WaterHeater:HeatPump:*. \type choice @@ -26810,9 +26858,9 @@ AirflowNetwork:Distribution:DuctSizing, \maximum 25.0 \default 5.0 \note Used only if Duct Sizing Type = MaximumVelocity or PressureLossWithMaximumVelocity. - \note When MaximumVelocity is entered, duct diameter is calculated at D = flow rate / + \note When MaximumVelocity is entered, duct diameter is calculated at D = flow rate / \note cross section area. - \note When PressureLossWithMaximumVelocity is entered, duct diameter is calculated based on + \note When PressureLossWithMaximumVelocity is entered, duct diameter is calculated based on \note PressureLoss. The value is used to check to ensure the final velocity is less than \note the maximum value. If greater, final value will be obtained from MaximumVelocity. \note This field is apply for trunk size, while branch size is based on total pressure drop. @@ -26821,8 +26869,8 @@ AirflowNetwork:Distribution:DuctSizing, \units Pa \minimum >0.0 \note Used only if Duct Sizing Type = PressureLoss or PressureLossWithMaximumVelocity. - \note When PressureLoss is entered, duct diameter is calculated using Colebrook's equation - \note When PressureLossWithMaximumVelocity is entered, duct diameter is calculated based on + \note When PressureLoss is entered, duct diameter is calculated using Colebrook's equation + \note When PressureLossWithMaximumVelocity is entered, duct diameter is calculated based on \note PressureLoss. The value is used to check to ensure the final velocity is less than \note the maximum value. If greater, final value will be obtained from MaximumVelocity. \note This field is apply for trunk size, while branch size is based on total pressure drop. @@ -26830,20 +26878,20 @@ AirflowNetwork:Distribution:DuctSizing, \type real \units Pa \minimum >0.0 - \note Duct diameter is calculated using Colebrook's equation. When there is no solution, - \note velocity = 5 m/s is used to calculate duct diameter. + \note Duct diameter is calculated using Colebrook's equation. When there is no solution, + \note velocity = 5 m/s is used to calculate duct diameter. N5 , \field Total Pressure Loss Across Return Trunk \type real \units Pa \minimum >0.0 - \note Duct diameter is calculated using Colebrook's equation. When there is no solution, - \note velocity = 5 m/s is used to calculate duct diameter. + \note Duct diameter is calculated using Colebrook's equation. When there is no solution, + \note velocity = 5 m/s is used to calculate duct diameter. N6 ; \field Total Pressure Loss Across Return Branch \type real \units Pa \minimum >0.0 - \note Duct diameter is calculated using Colebrook's equation. When there is no solution, - \note velocity = 5 m/s is used to calculate duct diameter. + \note Duct diameter is calculated using Colebrook's equation. When there is no solution, + \note velocity = 5 m/s is used to calculate duct diameter. AirflowNetwork:OccupantVentilationControl, \memo This object is used to provide advanced thermal comfort control of window opening and closing @@ -28157,7 +28205,7 @@ HVACTemplate:Zone:PTHP, \default None HVACTemplate:Zone:WaterToAirHeatPump, - \min-fields 44 + \min-fields 43 \memo Water to Air Heat Pump to be used with HVACTemplate:Plant:MixedWaterLoop A1, \field Zone Name \required-field @@ -28328,7 +28376,7 @@ HVACTemplate:Zone:WaterToAirHeatPump, \default 2.5 \note The maximum on-off cycling rate for the compressor \note Suggested value is 2.5 for a typical heat pump - N19, \field Heat Pump Time Constant + N19, \field Latent Capacity Time Constant \type real \units s \minimum 0.0 @@ -28336,14 +28384,7 @@ HVACTemplate:Zone:WaterToAirHeatPump, \default 60.0 \note Time constant for the cooling coil's capacity to reach steady state after startup \note Suggested value is 60 for a typical heat pump - N20, \field Fraction of On-Cycle Power Use - \minimum 0.0 - \maximum 0.05 - \default 0.01 - \note The fraction of on-cycle power use to adjust the part load fraction based on - \note the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. - \note Suggested value is 0.01 for a typical heat pump - N21, \field Heat Pump Fan Delay Time + N20, \field Heat Pump Fan Delay Time \units s \minimum 0.0 \default 60 @@ -28368,13 +28409,13 @@ HVACTemplate:Zone:WaterToAirHeatPump, \key SupplyAirTemperature \key TemperatureDifference \default SupplyAirTemperature - N22, \field Zone Cooling Design Supply Air Temperature + N21, \field Zone Cooling Design Supply Air Temperature \type real \units C \default 14.0 \note Zone Cooling Design Supply Air Temperature is only used when Zone Cooling Design \note Supply Air Temperature Input Method = SupplyAirTemperature - N23, \field Zone Cooling Design Supply Air Temperature Difference + N22, \field Zone Cooling Design Supply Air Temperature Difference \type real \units deltaC \default 11.11 @@ -28389,13 +28430,13 @@ HVACTemplate:Zone:WaterToAirHeatPump, \key SupplyAirTemperature \key TemperatureDifference \default SupplyAirTemperature - N24, \field Zone Heating Design Supply Air Temperature + N23, \field Zone Heating Design Supply Air Temperature \type real \units C \default 50.0 \note Zone Heating Design Supply Air Temperature is only used when Zone Heating Design \note Supply Air Temperature Input Method = SupplyAirTemperature - N25, \field Zone Heating Design Supply Air Temperature Difference + N24, \field Zone Heating Design Supply Air Temperature Difference \type real \units deltaC \default 30.0 @@ -28432,7 +28473,7 @@ HVACTemplate:Zone:WaterToAirHeatPump, \note If blank, always on \type object-list \object-list ScheduleNames - N26; \field Baseboard Heating Capacity + N25; \field Baseboard Heating Capacity \autosizable \default autosize \units W @@ -34201,7 +34242,7 @@ Sizing:Zone, \note Use SupplyAirHumidityRatio to enter the humidity ratio when zone dehumidification \note is required. The supply air humidity ratio should be less than the zone humidity \note ratio at the zone thermostat and humidistat set point condition. - \note Use HumidityRatioDifference to enter the difference in humidity ratio from the + \note Use HumidityRatioDifference to enter the difference in humidity ratio from the \note zone thermostat and humidistat set point condition. \type choice \key SupplyAirHumidityRatio @@ -34220,7 +34261,7 @@ Sizing:Zone, \note Zone Latent Cooling Design Supply Air Humidity Ratio Input Method = HumidityRatioDifference. \note This input is a positive value and defines the difference between the zone humidity \note ratio at the thermostat and humidistat set point condition and the supply air - \note humidity ratio entering the zone. + \note humidity ratio entering the zone. \minimum> 0.0 \type real \default 0.005 @@ -34229,7 +34270,7 @@ Sizing:Zone, \note Use SupplyAirHumidityRatio to enter the humidity ratio when zone humidification \note is required. The supply air humidity ratio should be greater than the zone humidity \note ratio at the zone thermostat and humidistat set point condition. - \note Use HumidityRatioDifference to enter the difference in humidity ratio from the + \note Use HumidityRatioDifference to enter the difference in humidity ratio from the \note zone thermostat and humidistat set point condition. \type choice \key SupplyAirHumidityRatio @@ -34248,7 +34289,7 @@ Sizing:Zone, \note Heating Design Supply Air Humidity Ratio Input Method = HumidityRatioDifference. \note This input is a positive value and defines the difference between the zone humidity \note ratio at the thermostat and humidistat set point condition and the supply air - \note humidity ratio entering the zone. + \note humidity ratio entering the zone. \minimum 0.0 \type real \default 0.005 @@ -35434,7 +35475,7 @@ ZoneHVAC:IdealLoadsAirSystem, \note This field is only required when the Ideal Loads Air System is connected to an \note AirloopHVAC:ZoneReturnPlenum, otherwise leave this field blank. When connected to a plenum \note the return plenum Outlet Node Name (or Induced Air Outlet Node Name when connecting multiple - \note ideal loads air sytems) is entered here. The two ideal loads air system node name fields described above, + \note ideal loads air systems) is entered here. The two ideal loads air system node name fields described above, \note the Zone Supply Air Node Name and the Zone Exhaust Air Node Name must also be entered. \note The Zone Supply Air Node Name must match a zone inlet air node name for the zone where this \note Ideal Loads Air System is connected. The Zone Exhaust Air Node Name must match an inlet air @@ -36246,7 +36287,7 @@ ZoneHVAC:WaterToAirHeatPump, \memo Water-to-air heat pump. Forced-convection heating-cooling unit with supply fan, \memo water-to-air cooling and heating coils, supplemental heating coil (gas, electric, hot \memo water, or steam), and fixed-position outdoor air mixer. - \min-fields 25 + \min-fields 21 A1, \field Name \required-field \type alpha @@ -36363,36 +36404,6 @@ ZoneHVAC:WaterToAirHeatPump, \object-list CoolingCoilsWaterToAirHP \object-list CoolingCoilsWaterToAirVSHP \note Needs to match in the water-to-air heat pump cooling coil object - N7, \field Maximum Cycling Rate - \type real - \units cycles/hr - \minimum 0.0 - \maximum 5.0 - \default 2.5 - \note The maximum on-off cycling rate for the compressor - \note Suggested value is 2.5 for a typical heat pump - N8, \field Heat Pump Time Constant - \type real - \units s - \minimum 0.0 - \maximum 500.0 - \default 60.0 - \note Time constant for the cooling coil's capacity to reach steady state after startup - \note Suggested value is 60 for a typical heat pump - N9, \field Fraction of On-Cycle Power Use - \minimum 0.0 - \maximum 0.05 - \default 0.01 - \note The fraction of on-cycle power use to adjust the part load fraction based on - \note the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. - \note Suggested value is 0.01 for a typical heat pump - N10, \field Heat Pump Fan Delay Time - \units s - \minimum 0.0 - \default 60 - \note Programmed time delay for heat pump fan to shut off after compressor cycle off. - \note Only required when fan operating mode is cycling - \note Enter 0 when fan operating mode is continuous A13, \field Supplemental Heating Coil Object Type \required-field \type choice @@ -36406,14 +36417,14 @@ ZoneHVAC:WaterToAirHeatPump, \type object-list \object-list HeatingCoilName \note Needs to match in the supplemental heating coil object - N11, \field Maximum Supply Air Temperature from Supplemental Heater + N7, \field Maximum Supply Air Temperature from Supplemental Heater \required-field \type real \units C \autosizable \default autosize \note Supply air temperature from the supplemental heater will not exceed this value. - N12, \field Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation + N8, \field Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation \type real \maximum 21.0 \default 21.0 @@ -36985,7 +36996,7 @@ ZoneHVAC:EvaporativeCoolerUnit, \key ZoneCoolingLoadOnOffCycling \key ZoneCoolingLoadVariableSpeedFan N2 , \field Throttling Range Temperature Difference - \note used for ZoneTemperatureDeadbandOnOffCycling hystersis range for thermostatic control + \note used for ZoneTemperatureDeadbandOnOffCycling hysteresis range for thermostatic control \type real \units deltaC \default 1.0 @@ -37033,8 +37044,8 @@ ZoneHVAC:EvaporativeCoolerUnit, \units percent ZoneHVAC:HybridUnitaryHVAC, - \memo Hybrid Unitary HVAC. A black box model for multi-mode packaged forced air equipment. Independent variables include outdoor air conditions and indoor air conditions. Controlled inputs include operating mode, supply air flow rate, and outdoor air faction. Emperical lookup tables are required to map supply air temperature supply air humidity, electricity use, fuel uses, water use, fan electricity use, and external static pressure as a function of each indpednent varaible and each controlled input. In each timestep the model will choose one or more combinations of settings for mode, supply air flow rate, outdoor air faction, and part runtime fraction so as to satisfy zone requests for sensible cooling, heating, ventilation, and/or dehumidification with the least resource consumption. Equipment in this class may consume electricity, water, and up to two additional fuel types. - \extensible:25 repeat last twentyfive fields remembering to move the semi-colon to the last value + \memo Hybrid Unitary HVAC. A black box model for multi-mode packaged forced air equipment. Independent variables include outdoor air conditions and indoor air conditions. Controlled inputs include operating mode, supply air flow rate, and outdoor air faction. Empirical lookup tables are required to map supply air temperature supply air humidity, electricity use, fuel uses, water use, fan electricity use, and external static pressure as a function of each independent variable and each controlled input. In each timestep the model will choose one or more combinations of settings for mode, supply air flow rate, outdoor air faction, and part runtime fraction so as to satisfy zone requests for sensible cooling, heating, ventilation, and/or dehumidification with the least resource consumption. Equipment in this class may consume electricity, water, and up to two additional fuel types. + \extensible:25 repeat last twenty five fields remembering to move the semi-colon to the last value A1, \field Name \required-field \type alpha @@ -37048,7 +37059,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type object-list \object-list SystemAvailabilityManagerLists A4, \field Minimum Supply Air Temperature Schedule Name - \note Values in this schedule are used as a constraint in choosing the feasible settings for supply air flow rate and ouside air fraction in each operating mode. If this field is blank, no minimum is imposed. + \note Values in this schedule are used as a constraint in choosing the feasible settings for supply air flow rate and outside air fraction in each operating mode. If this field is blank, no minimum is imposed. \type object-list \object-list ScheduleNames A5, \field Maximum Supply Air Temperature Schedule Name @@ -37087,7 +37098,7 @@ ZoneHVAC:HybridUnitaryHVAC, N1, \field System Maximum Supply Air Flow Rate \type real \minimum> 0 - \note The value in this field represents the maximum supply air volume flow rate among all operating modes. Values of extensive variables in lookup tables are normalized by the system maximum supply air mass flow rate that was used to build performance curves. The value in this field is used to rescale the output from exenstive variables to a desired system size. + \note The value in this field represents the maximum supply air volume flow rate among all operating modes. Values of extensive variables in lookup tables are normalized by the system maximum supply air mass flow rate that was used to build performance curves. The value in this field is used to rescale the output from extensive variables to a desired system size. \units m3/s N2, \field External Static Pressure at System Maximum Supply Air Flow Rate \type real @@ -37199,7 +37210,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type alpha \retaincase \note Enter a name for Mode 0. - \note Mode 0 describes equipment performance in standby. Mode 0 is usually characterized by electricity use for controls and crankcase heaters, or other standby resouce consumption. Mode 0 will be chosen for any timestep, or portion of timestep, when no ventilation, cooling, humidification, or dehumidification is required. Mode 0 is available at any environmental condition. + \note Mode 0 describes equipment performance in standby. Mode 0 is usually characterized by electricity use for controls and crankcase heaters, or other standby resource consumption. Mode 0 will be chosen for any timestep, or portion of timestep, when no ventilation, cooling, humidification, or dehumidification is required. Mode 0 is available at any environmental condition. A21, \field Mode 0 Supply Air Temperature Lookup Table Name \type object-list \object-list MultivariateFunctions @@ -37211,7 +37222,7 @@ ZoneHVAC:HybridUnitaryHVAC, \object-list MultivariateFunctions \note Enter the name of the Supply Air Humidity Ratio Lookup Table for Mode 0. \note Units for lookup table values should be in kgWater/kgDryAir. - \note If this field is blank, Mode 0 will not be considered for any period that requires ventilation, heating, cooling, humidification, or dehumidification. If this field is blank, when Mode 0 is chosen (during standby periods) the supply air humidty ratio will equal the return air humidity ratio. + \note If this field is blank, Mode 0 will not be considered for any period that requires ventilation, heating, cooling, humidification, or dehumidification. If this field is blank, when Mode 0 is chosen (during standby periods) the supply air humidity ratio will equal the return air humidity ratio. A23, \field Mode 0 System Electric Power Lookup Table Name \type object-list \object-list MultivariateFunctions @@ -37334,7 +37345,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 1. - \note Mode 1 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 1 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N11, \field Mode 1 Maximum Outdoor Air Humidity Ratio @@ -37375,7 +37386,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 1. - \note Mode 1 will not be considred when the return air temperature is above the value in this field. + \note Mode 1 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N16, \field Mode 1 Minimum Return Air Humidity Ratio \type real @@ -37410,7 +37421,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 1. + \note Enter the maximum return air relative humidity allowed for Mode 1. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 1 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -37519,7 +37530,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 2. - \note Mode 2 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 2 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N27, \field Mode 2 Maximum Outdoor Air Humidity Ratio @@ -37560,7 +37571,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 2. - \note Mode 2 will not be considred when the return air temperature is above the value in this field. + \note Mode 2 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N32, \field Mode 2 Minimum Return Air Humidity Ratio \type real @@ -37595,7 +37606,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 2. + \note Enter the maximum return air relative humidity allowed for Mode 2. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 2 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -37704,7 +37715,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 3. - \note Mode 3 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 3 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N43, \field Mode 3 Maximum Outdoor Air Humidity Ratio @@ -37745,7 +37756,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 3. - \note Mode 3 will not be considred when the return air temperature is above the value in this field. + \note Mode 3 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N48, \field Mode 3 Minimum Return Air Humidity Ratio \type real @@ -37780,7 +37791,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 3. + \note Enter the maximum return air relative humidity allowed for Mode 3. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 3 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -37889,7 +37900,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 4. - \note Mode 4 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 4 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N59, \field Mode 4 Maximum Outdoor Air Humidity Ratio @@ -37930,7 +37941,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 4. - \note Mode 4 will not be considred when the return air temperature is above the value in this field. + \note Mode 4 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N64, \field Mode 4 Minimum Return Air Humidity Ratio \type real @@ -37965,7 +37976,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 4. + \note Enter the maximum return air relative humidity allowed for Mode 4. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 4 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -38074,7 +38085,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 5. - \note Mode 5 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 5 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N75, \field Mode 5 Maximum Outdoor Air Humidity Ratio @@ -38115,7 +38126,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 5. - \note Mode 5 will not be considred when the return air temperature is above the value in this field. + \note Mode 5 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N80, \field Mode 5 Minimum Return Air Humidity Ratio \type real @@ -38150,7 +38161,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 5. + \note Enter the maximum return air relative humidity allowed for Mode 5. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 5 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -38259,7 +38270,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 6. - \note Mode 6 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 6 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N91, \field Mode 6 Maximum Outdoor Air Humidity Ratio @@ -38300,7 +38311,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 6. - \note Mode 6 will not be considred when the return air temperature is above the value in this field. + \note Mode 6 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N96, \field Mode 6 Minimum Return Air Humidity Ratio \type real @@ -38335,7 +38346,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 6. + \note Enter the maximum return air relative humidity allowed for Mode 6. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 6 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -38444,7 +38455,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 7. - \note Mode 7 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 7 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N107, \field Mode 7 Maximum Outdoor Air Humidity Ratio @@ -38485,7 +38496,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 7. - \note Mode 7 will not be considred when the return air temperature is above the value in this field. + \note Mode 7 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N112, \field Mode 7 Minimum Return Air Humidity Ratio \type real @@ -38520,7 +38531,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 7. + \note Enter the maximum return air relative humidity allowed for Mode 7. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 7 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -38629,7 +38640,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 8. - \note Mode 8 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 8 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N123, \field Mode 8 Maximum Outdoor Air Humidity Ratio @@ -38670,7 +38681,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 8. - \note Mode 8 will not be considred when the return air temperature is above the value in this field. + \note Mode 8 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N128, \field Mode 8 Minimum Return Air Humidity Ratio \type real @@ -38705,7 +38716,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 8. + \note Enter the maximum return air relative humidity allowed for Mode 8. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 8 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -38814,7 +38825,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 9. - \note Mode 9 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 9 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N139, \field Mode 9 Maximum Outdoor Air Humidity Ratio @@ -38855,7 +38866,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 9. - \note Mode 9 will not be considred when the return air temperature is above the value in this field. + \note Mode 9 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N144, \field Mode 9 Minimum Return Air Humidity Ratio \type real @@ -38890,7 +38901,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 9. + \note Enter the maximum return air relative humidity allowed for Mode 9. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 9 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -39004,7 +39015,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 10. - \note Mode 10 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 10 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N155, \field Mode 10 Maximum Outdoor Air Humidity Ratio @@ -39045,7 +39056,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 10. - \note Mode 10 will not be considred when the return air temperature is above the value in this field. + \note Mode 10 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N160, \field Mode 10 Minimum Return Air Humidity Ratio \type real @@ -39080,7 +39091,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 10. + \note Enter the maximum return air relative humidity allowed for Mode 10. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 10 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -39189,7 +39200,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 11. - \note Mode 11 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 11 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N171, \field Mode 11 Maximum Outdoor Air Humidity Ratio @@ -39230,7 +39241,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 11. - \note Mode 11 will not be considred when the return air temperature is above the value in this field. + \note Mode 11 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N176, \field Mode 11 Minimum Return Air Humidity Ratio \type real @@ -39265,7 +39276,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 11. + \note Enter the maximum return air relative humidity allowed for Mode 11. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 11 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -39374,7 +39385,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 12. - \note Mode 12 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 12 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N187, \field Mode 12 Maximum Outdoor Air Humidity Ratio @@ -39415,7 +39426,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 12. - \note Mode 12 will not be considred when the return air temperature is above the value in this field. + \note Mode 12 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N192, \field Mode 12 Minimum Return Air Humidity Ratio \type real @@ -39450,7 +39461,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 12. + \note Enter the maximum return air relative humidity allowed for Mode 12. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 12 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -39559,7 +39570,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 13. - \note Mode 13 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 13 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N203, \field Mode 13 Maximum Outdoor Air Humidity Ratio @@ -39600,7 +39611,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 13. - \note Mode 13 will not be considred when the return air temperature is above the value in this field. + \note Mode 13 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N208, \field Mode 13 Minimum Return Air Humidity Ratio \type real @@ -39635,7 +39646,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 13. + \note Enter the maximum return air relative humidity allowed for Mode 13. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 13 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -39744,7 +39755,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 14. - \note Mode 14 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 14 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N219, \field Mode 14 Maximum Outdoor Air Humidity Ratio @@ -39785,7 +39796,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 14. - \note Mode 14 will not be considred when the return air temperature is above the value in this field. + \note Mode 14 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N224, \field Mode 14 Minimum Return Air Humidity Ratio \type real @@ -39820,7 +39831,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 14. + \note Enter the maximum return air relative humidity allowed for Mode 14. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 14 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -39929,7 +39940,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 15. - \note Mode 15 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 15 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N235, \field Mode 15 Maximum Outdoor Air Humidity Ratio @@ -39970,7 +39981,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 15. - \note Mode 15 will not be considred when the return air temperature is above the value in this field. + \note Mode 15 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N240, \field Mode 15 Minimum Return Air Humidity Ratio \type real @@ -40005,7 +40016,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 15. + \note Enter the maximum return air relative humidity allowed for Mode 15. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 15 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -40114,7 +40125,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 16. - \note Mode 16 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 16 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N251, \field Mode 16 Maximum Outdoor Air Humidity Ratio @@ -40155,7 +40166,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 16. - \note Mode 16 will not be considred when the return air temperature is above the value in this field. + \note Mode 16 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N256, \field Mode 16 Minimum Return Air Humidity Ratio \type real @@ -40190,7 +40201,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 16. + \note Enter the maximum return air relative humidity allowed for Mode 16. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 16 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -40299,7 +40310,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 17. - \note Mode 17 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 17 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N267, \field Mode 17 Maximum Outdoor Air Humidity Ratio @@ -40340,7 +40351,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 17. - \note Mode 17 will not be considred when the return air temperature is above the value in this field. + \note Mode 17 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N272, \field Mode 17 Minimum Return Air Humidity Ratio \type real @@ -40375,7 +40386,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 17. + \note Enter the maximum return air relative humidity allowed for Mode 17. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 17 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -40484,7 +40495,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 18. - \note Mode 18 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 18 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N283, \field Mode 18 Maximum Outdoor Air Humidity Ratio @@ -40525,7 +40536,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 18. - \note Mode 18 will not be considred when the return air temperature is above the value in this field. + \note Mode 18 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N288, \field Mode 18 Minimum Return Air Humidity Ratio \type real @@ -40560,7 +40571,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 18. + \note Enter the maximum return air relative humidity allowed for Mode 18. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 18 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -40669,7 +40680,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 19. - \note Mode 19 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 19 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N299, \field Mode 19 Maximum Outdoor Air Humidity Ratio @@ -40710,7 +40721,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 19. - \note Mode 19 will not be considred when the return air temperature is above the value in this field. + \note Mode 19 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N304, \field Mode 19 Minimum Return Air Humidity Ratio \type real @@ -40745,7 +40756,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 19. + \note Enter the maximum return air relative humidity allowed for Mode 19. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 19 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -40854,7 +40865,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 20. - \note Mode 20 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 20 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N315, \field Mode 20 Maximum Outdoor Air Humidity Ratio @@ -40895,7 +40906,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 20. - \note Mode 20 will not be considred when the return air temperature is above the value in this field. + \note Mode 20 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N320, \field Mode 20 Minimum Return Air Humidity Ratio \type real @@ -40930,7 +40941,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 20. + \note Enter the maximum return air relative humidity allowed for Mode 20. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 20 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -41039,7 +41050,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 21. - \note Mode 21 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 21 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N331, \field Mode 21 Maximum Outdoor Air Humidity Ratio @@ -41080,7 +41091,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 21. - \note Mode 21 will not be considred when the return air temperature is above the value in this field. + \note Mode 21 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N336, \field Mode 21 Minimum Return Air Humidity Ratio \type real @@ -41115,7 +41126,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 21. + \note Enter the maximum return air relative humidity allowed for Mode 21. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 21 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -41224,7 +41235,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 22. - \note Mode 22 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 22 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N347, \field Mode 22 Maximum Outdoor Air Humidity Ratio @@ -41265,7 +41276,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 22. - \note Mode 22 will not be considred when the return air temperature is above the value in this field. + \note Mode 22 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N352, \field Mode 22 Minimum Return Air Humidity Ratio \type real @@ -41300,7 +41311,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 22. + \note Enter the maximum return air relative humidity allowed for Mode 22. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 22 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -41409,7 +41420,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 23. - \note Mode 23 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 23 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N363, \field Mode 23 Maximum Outdoor Air Humidity Ratio @@ -41450,7 +41461,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 23. - \note Mode 23 will not be considred when the return air temperature is above the value in this field. + \note Mode 23 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N368, \field Mode 23 Minimum Return Air Humidity Ratio \type real @@ -41485,7 +41496,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 23. + \note Enter the maximum return air relative humidity allowed for Mode 23. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 23 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -41594,7 +41605,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 24. - \note Mode 24 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 24 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N379, \field Mode 24 Maximum Outdoor Air Humidity Ratio @@ -41635,7 +41646,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 24. - \note Mode 24 will not be considred when the return air temperature is above the value in this field. + \note Mode 24 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N384, \field Mode 24 Minimum Return Air Humidity Ratio \type real @@ -41670,7 +41681,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 24. + \note Enter the maximum return air relative humidity allowed for Mode 24. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 24 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -41779,7 +41790,7 @@ ZoneHVAC:HybridUnitaryHVAC, \maximum 0.10 \units kgWater/kgDryAir \note Enter the minimum outdoor humidity ratio allowed for Mode 25. - \note Mode 25 will not be considerd when outdoor air absolute humidity is below the value in this field. + \note Mode 25 will not be considered when outdoor air absolute humidity is below the value in this field. \note If this field is blank, the lower constraint on outdoor air humidity ratio will be 0.00 kgWater/kgDryAir. \default 0.00 N395, \field Mode 25 Maximum Outdoor Air Humidity Ratio @@ -41820,7 +41831,7 @@ ZoneHVAC:HybridUnitaryHVAC, \type real \units C \note Enter the maximum return air temperature allowed for Mode 25. - \note Mode 25 will not be considred when the return air temperature is above the value in this field. + \note Mode 25 will not be considered when the return air temperature is above the value in this field. \note If this field is blank, there will be no upper constraint on return air temperature. N400, \field Mode 25 Minimum Return Air Humidity Ratio \type real @@ -41855,7 +41866,7 @@ ZoneHVAC:HybridUnitaryHVAC, \minimum 0.00 \maximum 100.00 \units percent - \note Enter the maximum return air relative humdity allowed for Mode 25. + \note Enter the maximum return air relative humidity allowed for Mode 25. \note Relative humidity as percent from 0.00 to 100.00. \note Mode 25 will not be considered when the return air relative humidity is above the value in this field. \note If this field is blank, the upper constraint on return air relative humidity will be 100%. @@ -42177,7 +42188,7 @@ ZoneHVAC:TerminalUnit:VariableRefrigerantFlow, \units m3/s \minimum 0.0 \autosizable - \note This field is used only when an oudoor air mixer is included. + \note This field is used only when an outdoor air mixer is included. \note This field is set to zero flow when the VRF terminal unit is connected to \note central dedicated outdoor air through air terminal single duct mixer object. \note When this VRF terminal is used as air loop equipment the autosized flow @@ -42188,7 +42199,7 @@ ZoneHVAC:TerminalUnit:VariableRefrigerantFlow, \units m3/s \minimum 0.0 \autosizable - \note This field is used only when an oudoor air mixer is included. + \note This field is used only when an outdoor air mixer is included. \note This field is set to zero flow when the VRF terminal unit is connected to \note central dedicated outdoor air through air terminal single duct mixer object. \note When this VRF terminal is used as air loop equipment the autosized flow @@ -42199,7 +42210,7 @@ ZoneHVAC:TerminalUnit:VariableRefrigerantFlow, \units m3/s \minimum 0.0 \autosizable - \note This field is used only when an oudoor air mixer is included. + \note This field is used only when an outdoor air mixer is included. \note This field is set to zero flow when the VRF terminal unit is connected to \note central dedicated outdoor air through air terminal single duct mixer object. \note When this VRF terminal is used as air loop equipment the autosized flow @@ -45853,7 +45864,7 @@ ZoneHVAC:LowTemperatureRadiant:VariableFlow:Design, \default 1.0 A10; \field Changeover Delay Time Period Schedule \note Changeover delay schedule name for this system. Schedule value <= 0 allows changeover with no delay - \note The schedule values are interpretted as hours. + \note The schedule values are interpreted as hours. \note If this field is blank, the system allows changeover with no delay \type object-list \object-list ScheduleNames @@ -46039,7 +46050,7 @@ ZoneHVAC:LowTemperatureRadiant:ConstantFlow:Design, \default 1.0 A5 ; \field Changeover Delay Time Period Schedule \note Changeover delay schedule name for this system. Schedule value <= 0 allows changeover with no delay - \note The schedule values are interpretted as hours. + \note The schedule values are interpreted as hours. \note If this field is blank, the system allows changeover with no delay \type object-list \object-list ScheduleNames @@ -48695,7 +48706,7 @@ AirTerminal:SingleDuct:ConstantVolume:FourPipeBeam, \minimum> 0.0 \default 27.8 N11, \field Beam Rated Hot Water Volume Flow Rate per Beam Length - \note The volume flow rate of hoy water per meter of beam length at the rating point. + \note The volume flow rate of hot water per meter of beam length at the rating point. \type real \units m3/s-m \ip-units gal/min-ft @@ -48902,7 +48913,7 @@ AirTerminal:SingleDuct:Mixer, \note If Outdoor Air Flow per Person is non-zero, then the outdoor air requirement will \note be computed based on the current number of occupants in the zone, as for demand controlled ventilation. \note If this field is blank, then the terminal unit will be controlled using the - \note DesignSpecification:OutdoorAir objec referenced in the Sizing:Zone object. + \note DesignSpecification:OutdoorAir object referenced in the Sizing:Zone object. A9; \field Per Person Ventilation Rate Mode \type choice \key CurrentOccupancy @@ -49089,13 +49100,13 @@ ZoneHVAC:AirDistributionUnit, \object-list DesignSpecificationAirTerminalSizingName ZoneHVAC:ExhaustControl, - \memo Defines a controlled exhaust flow from a zone which finally feeds into + \memo Defines a controlled exhaust flow from a zone which finally feeds into \memo one of AirLoopHVAC:ZoneMixer's inlets, which are part of an AirLoopHVAC:ExhaustSystem. A1 , \field Name \required-field A2 , \field Availability Schedule Name \note Availability schedule name for this exhaust system. Schedule value > 0 means it is available. - \note If this field is blank, the exhaust system is always available. If the attached + \note If this field is blank, the exhaust system is always available. If the attached \note AirLoopHVAC:ExhaustSystem is off, then the flow will be zero. \type object-list \object-list ScheduleNames @@ -50538,7 +50549,7 @@ Fan:VariableVolume, \maximum 1.0 N8 , \field Fan Power Coefficient 1 \note all Fan Power Coefficients should not be 0.0 or no fan power will be consumed. - \note Fan Power Coefficents are specified as function of full flow rate/power + \note Fan Power Coefficients are specified as function of full flow rate/power \note Equation: N9 , \field Fan Power Coefficient 2 N10, \field Fan Power Coefficient 3 @@ -51148,9 +51159,9 @@ Coil:Cooling:Water:DetailedGeometry, \autosizable \default autosize \minimum> 0 - \note This input field is optional. If specified, it is used for sizing the coil Design Geomtery + \note This input field is optional. If specified, it is used for sizing the coil Design Geometry \note Parameters. If autosized, the Design Loop Exit Temperature value specified in Sizing:Plant - \note object is used for sizing the coil Design Geomtery Parameters. If the autosized value is + \note object is used for sizing the coil Design Geometry Parameters. If the autosized value is \note higher than the coil design outlet air temperature, then the design inlet water temperature \note value is reset to coil design outlet air temperature minus 5.0 DeltaC. @@ -51723,7 +51734,7 @@ Coil:Cooling:DX:SingleSpeed, \note should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total cooling capacity N5 , \field 2017 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. + \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), Energy \note Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER), and the Standard Rating @@ -51980,7 +51991,7 @@ Coil:Cooling:DX:TwoSpeed, \note of rated total cooling capacity. N5 , \field High Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. + \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), Energy \note Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER), and the Standard Rating @@ -52090,7 +52101,7 @@ Coil:Cooling:DX:TwoSpeed, \note of rated total cooling capacity. N12, \field Low Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. + \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), Energy \note Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER), and the Standard Rating @@ -53002,7 +53013,7 @@ Coil:Cooling:DX:VariableSpeed, \memo wet coil when compressor cycles off with continuous fan operation. Requires two to \memo ten sets of performance data and will interpolate between speeds. Modeled as a \memo single coil with variable-speed compressor. - \min-fields 31 + \min-fields 36 A1, \field Name \required-field \type alpha @@ -53046,6 +53057,28 @@ Coil:Cooling:DX:VariableSpeed, \type real \minimum 0 \default 0 + N7, \field Maximum Cycling Rate + \note The maximum on-off cycling Rate for the compressor, which occurs at 50% run time + \note fraction. Suggested value is 3; zero value means latent degradation model is disabled. + \type real + \units cycles/hr + \minimum 0.0 + \maximum 5.0 + \default 2.5 + N8, \field Latent Capacity Time Constant + \note Time constant for the cooling coil's latent capacity to reach steady state after + \note startup. Suggested value is 45; zero value means latent degradation model is disabled. + \type real + \units s + \minimum 0.0 + \maximum 500.0 + \default 60 + N9, \field Fan Delay Time + \units s + \minimum 0.0 + \default 60 + \note Programmed time delay for fan to shut off after compressor cycle off. + \note Enter 0 when fan operating mode is continuous A4, \field Energy Part Load Fraction Curve Name \required-field \type object-list @@ -53062,25 +53095,25 @@ Coil:Cooling:DX:VariableSpeed, \key AirCooled \key EvaporativelyCooled \default AirCooled - N7, \field Evaporative Condenser Pump Rated Power Consumption + N10, \field Evaporative Condenser Pump Rated Power Consumption \type real \units W \minimum 0.0 \default 0.0 \autosizable \note Rated power consumed by the evaporative condenser's water pump - N8, \field Crankcase Heater Capacity + N11, \field Crankcase Heater Capacity \type real \minimum 0.0 \default 0.0 \units W \ip-units W - N9, \field Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation + N12, \field Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation \type real \minimum 0.0 \default 10.0 \units C - N10, \field Minimum Outdoor Dry-Bulb Temperature for Compressor Operation + N13, \field Minimum Outdoor Dry-Bulb Temperature for Compressor Operation \type real \default -25.0 \units C @@ -53090,7 +53123,7 @@ Coil:Cooling:DX:VariableSpeed, A8, \field Condensate Collection Water Storage Tank Name \type object-list \object-list WaterStorageTankNames - N11, \field Basin Heater Capacity + N14, \field Basin Heater Capacity \type real \units W/K \minimum 0.0 @@ -53100,7 +53133,7 @@ Coil:Cooling:DX:VariableSpeed, \note For this situation, the heater maintains the basin water temperature at the basin heater \note setpoint temperature when the outdoor air temperature falls below the setpoint temperature. \note The basin heater only operates when the DX coil is off. - N12, \field Basin Heater Setpoint Temperature + N15, \field Basin Heater Setpoint Temperature \type real \units C \minimum 2.0 @@ -53115,29 +53148,29 @@ Coil:Cooling:DX:VariableSpeed, \note air dry-bulb temperature is below the basin heater setpoint temperature. \note If a schedule name is not entered, the basin heater is allowed to operate \note throughout the entire simulation. - N13, \field Speed 1 Reference Unit Gross Rated Total Cooling Capacity + N16, \field Speed 1 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 \required-field - N14, \field Speed 1 Reference Unit Gross Rated Sensible Heat Ratio + N17, \field Speed 1 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 \required-field - N15, \field Speed 1 Reference Unit Gross Rated Cooling COP + N18, \field Speed 1 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 \required-field - N16, \field Speed 1 Reference Unit Rated Air Flow Rate + N19, \field Speed 1 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 \required-field - N17, \field 2017 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate + N20, \field 2017 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53149,7 +53182,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N18, \field 2023 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate + N21, \field 2023 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53161,12 +53194,12 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N19, \field Speed 1 Reference Unit Rated Condenser Air Flow Rate + N22, \field Speed 1 Reference Unit Rated Condenser Air Flow Rate \units m3/s \type real \minimum 0 \note This field is only used for Condenser Type = EvaporativelyCooled - N20, \field Speed 1 Reference Unit Rated Pad Effectiveness of Evap Precooling + N23, \field Speed 1 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53200,25 +53233,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N21, \field Speed 2 Reference Unit Gross Rated Total Cooling Capacity + N24, \field Speed 2 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N22, \field Speed 2 Reference Unit Gross Rated Sensible Heat Ratio + N25, \field Speed 2 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N23, \field Speed 2 Reference Unit Gross Rated Cooling COP + N26, \field Speed 2 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N24, \field Speed 2 Reference Unit Rated Air Flow Rate + N27, \field Speed 2 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N25, \field 2017 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate + N28, \field 2017 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53230,7 +53263,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N26, \field 2023 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate + N29, \field 2023 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53242,11 +53275,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N27, \field Speed 2 Reference Unit Rated Condenser Air Flow Rate + N30, \field Speed 2 Reference Unit Rated Condenser Air Flow Rate \units m3/s \type real \minimum 0 - N28, \field Speed 2 Reference Unit Rated Pad Effectiveness of Evap Precooling + N31, \field Speed 2 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53275,25 +53308,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N29, \field Speed 3 Reference Unit Gross Rated Total Cooling Capacity + N32, \field Speed 3 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N30, \field Speed 3 Reference Unit Gross Rated Sensible Heat Ratio + N33, \field Speed 3 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N31, \field Speed 3 Reference Unit Gross Rated Cooling COP + N34, \field Speed 3 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N32, \field Speed 3 Reference Unit Rated Air Flow Rate + N35, \field Speed 3 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N33, \field 2017 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate + N36, \field 2017 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53305,7 +53338,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N34, \field 2023 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate + N37, \field 2023 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53317,11 +53350,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N35, \field Speed 3 Reference Unit Rated Condenser Air Flow Rate + N38, \field Speed 3 Reference Unit Rated Condenser Air Flow Rate \units m3/s \type real \minimum 0 - N36, \field Speed 3 Reference Unit Rated Pad Effectiveness of Evap Precooling + N39, \field Speed 3 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53350,25 +53383,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N37, \field Speed 4 Reference Unit Gross Rated Total Cooling Capacity + N40, \field Speed 4 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N38, \field Speed 4 Reference Unit Gross Rated Sensible Heat Ratio + N41, \field Speed 4 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N39, \field Speed 4 Reference Unit Gross Rated Cooling COP + N42, \field Speed 4 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N40, \field Speed 4 Reference Unit Rated Air Flow Rate + N43, \field Speed 4 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N41, \field 2017 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate + N44, \field 2017 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53380,7 +53413,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N42, \field 2023 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate + N45, \field 2023 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53392,11 +53425,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N43, \field Speed 4 Reference Unit Rated Condenser Air Flow Rate + N46, \field Speed 4 Reference Unit Rated Condenser Air Flow Rate \units m3/s \type real \minimum 0 - N44, \field Speed 4 Reference Unit Rated Pad Effectiveness of Evap Precooling + N47, \field Speed 4 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53425,25 +53458,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N45, \field Speed 5 Reference Unit Gross Rated Total Cooling Capacity + N48, \field Speed 5 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N46, \field Speed 5 Reference Unit Gross Rated Sensible Heat Ratio + N49, \field Speed 5 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N47, \field Speed 5 Reference Unit Gross Rated Cooling COP + N50, \field Speed 5 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N48, \field Speed 5 Reference Unit Rated Air Flow Rate + N51, \field Speed 5 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N49, \field 2017 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate + N52, \field 2017 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53455,7 +53488,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N50, \field 2023 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate + N53, \field 2023 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53467,11 +53500,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N51, \field Speed 5 Reference Unit Rated Condenser Air Flow Rate + N54, \field Speed 5 Reference Unit Rated Condenser Air Flow Rate \units m3/s \type real \minimum 0 - N52, \field Speed 5 Reference Unit Rated Pad Effectiveness of Evap Precooling + N55, \field Speed 5 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53500,25 +53533,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N53, \field Speed 6 Reference Unit Gross Rated Total Cooling Capacity + N56, \field Speed 6 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N54, \field Speed 6 Reference Unit Gross Rated Sensible Heat Ratio + N57, \field Speed 6 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N55, \field Speed 6 Reference Unit Gross Rated Cooling COP + N58, \field Speed 6 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N56, \field Speed 6 Reference Unit Rated Air Flow Rate + N59, \field Speed 6 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N57, \field 2017 Speed 6 Rated Evaporator Fan Power Per Volume Flow Rate + N60, \field 2017 Speed 6 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53530,7 +53563,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N58, \field 2023 Speed 6 Rated Evaporator Fan Power Per Volume Flow Rate + N61, \field 2023 Speed 6 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53542,11 +53575,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N59, \field Speed 6 Reference Unit Condenser Air Flow Rate + N62, \field Speed 6 Reference Unit Condenser Air Flow Rate \units m3/s \type real \minimum 0 - N60, \field Speed 6 Reference Unit Rated Pad Effectiveness of Evap Precooling + N63, \field Speed 6 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53575,25 +53608,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N61, \field Speed 7 Reference Unit Gross Rated Total Cooling Capacity + N64, \field Speed 7 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N62, \field Speed 7 Reference Unit Gross Rated Sensible Heat Ratio + N65, \field Speed 7 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N63, \field Speed 7 Reference Unit Gross Rated Cooling COP + N66, \field Speed 7 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N64, \field Speed 7 Reference Unit Rated Air Flow Rate + N67, \field Speed 7 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N65, \field 2017 Speed 7 Rated Evaporator Fan Power Per Volume Flow Rate + N68, \field 2017 Speed 7 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53605,7 +53638,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N66, \field 2023 Speed 7 Rated Evaporator Fan Power Per Volume Flow Rate + N69, \field 2023 Speed 7 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53617,11 +53650,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N67, \field Speed 7 Reference Unit Condenser Flow Rate + N70, \field Speed 7 Reference Unit Condenser Flow Rate \units m3/s \type real \minimum 0 - N68, \field Speed 7 Reference Unit Rated Pad Effectiveness of Evap Precooling + N71, \field Speed 7 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53650,25 +53683,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N69, \field Speed 8 Reference Unit Gross Rated Total Cooling Capacity + N72, \field Speed 8 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N70, \field Speed 8 Reference Unit Gross Rated Sensible Heat Ratio + N73, \field Speed 8 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N71, \field Speed 8 Reference Unit Gross Rated Cooling COP + N74, \field Speed 8 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N72, \field Speed 8 Reference Unit Rated Air Flow Rate + N75, \field Speed 8 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N73, \field 2017 Speed 8 Rated Evaporator Fan Power Per Volume Flow Rate + N76, \field 2017 Speed 8 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53680,7 +53713,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N74, \field 2023 Speed 8 Rated Evaporator Fan Power Per Volume Flow Rate + N77, \field 2023 Speed 8 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53692,11 +53725,11 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N75, \field Speed 8 Reference Unit Condenser Air Flow Rate + N78, \field Speed 8 Reference Unit Condenser Air Flow Rate \units m3/s \type real \minimum 0 - N76, \field Speed 8 Reference Unit Rated Pad Effectiveness of Evap Precooling + N79, \field Speed 8 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53725,25 +53758,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N77, \field Speed 9 Reference Unit Gross Rated Total Cooling Capacity + N80, \field Speed 9 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N78, \field Speed 9 Reference Unit Gross Rated Sensible Heat Ratio + N81, \field Speed 9 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N79, \field Speed 9 Reference Unit Gross Rated Cooling COP + N82, \field Speed 9 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N80, \field Speed 9 Reference Unit Rated Air Flow Rate + N83, \field Speed 9 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N81, \field 2017 Speed 9 Rated Evaporator Fan Power Per Volume Flow Rate + N84, \field 2017 Speed 9 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53755,7 +53788,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N82, \field 2023 Speed 9 Rated Evaporator Fan Power Per Volume Flow Rate + N85, \field 2023 Speed 9 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53767,12 +53800,12 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N83, \field Speed 9 Reference Unit Condenser Air Flow Rate + N86, \field Speed 9 Reference Unit Condenser Air Flow Rate \units m3/s \type real \minimum 0 \note optional - N84, \field Speed 9 Reference Unit Rated Pad Effectiveness of Evap Precooling + N87, \field Speed 9 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -53802,25 +53835,25 @@ Coil:Cooling:DX:VariableSpeed, \note quadratic curve = a + b*ffa + c*ffa**2 \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 \note ffa = Fraction of the full load Air Flow - N85, \field Speed 10 Reference Unit Gross Rated Total Cooling Capacity + N88, \field Speed 10 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N86, \field Speed 10 Reference Unit Gross Rated Sensible Heat Ratio + N89, \field Speed 10 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N87, \field Speed 10 Reference Unit Gross Rated Cooling COP + N90, \field Speed 10 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N88, \field Speed 10 Reference Unit Rated Air Flow Rate + N91, \field Speed 10 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N89, \field 2017 Speed 10 Rated Evaporator Fan Power Per Volume Flow Rate + N92, \field 2017 Speed 10 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53832,7 +53865,7 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1250.0 \default 773.3 - N90, \field 2023 Speed 10 Rated Evaporator Fan Power Per Volume Flow Rate + N93, \field 2023 Speed 10 Rated Evaporator Fan Power Per Volume Flow Rate \note Enter the evaporator fan power per air volume flow rate at the rated test conditions \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on total cooling capacity. @@ -53844,12 +53877,12 @@ Coil:Cooling:DX:VariableSpeed, \minimum 0.0 \maximum 1505.0 \default 934.4 - N91, \field Speed 10 Reference Unit Condenser Air Flow Rate + N94, \field Speed 10 Reference Unit Condenser Air Flow Rate \units m3/s \type real \minimum 0 \note optional - N92, \field Speed 10 Reference Unit Rated Pad Effectiveness of Evap Precooling + N95, \field Speed 10 Reference Unit Rated Pad Effectiveness of Evap Precooling \units dimensionless \type real \minimum 0 @@ -54891,7 +54924,7 @@ Coil:Heating:DX:SingleSpeed, \note should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated heating capacity N4 , \field 2017 Rated Supply Fan Power Per Volume Flow Rate \note Enter the supply fan power per air volume flow rate at the rated test conditions. - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. + \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on heating capacity. \note This value is only used to calculate Heating Seasonal Performance Factor(HSPF). \note This value is not used for modeling the supply (condenser) fan during simulations. @@ -54902,7 +54935,7 @@ Coil:Heating:DX:SingleSpeed, \default 773.3 N5 , \field 2023 Rated Supply Fan Power Per Volume Flow Rate \note Enter the supply fan power per air volume flow rate at the rated test conditions. - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. + \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. \note The test conditions vary external static pressure based on heating capacity. \note This value is only used to calculate Heating Seasonal Performance Factor(HSPF). \note This value is not used for modeling the supply (condenser) fan during simulations. @@ -56528,7 +56561,7 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, \memo evaporation from wet coil when compressor cycles off with continuous fan operation. \memo Parameter estimation model is a deterministic model that requires a consistent set of \memo parameters to describe the operating conditions of the heat pump components. - \min-fields 18 + \min-fields 31 A1 , \field Name \required-field \type alpha @@ -56686,20 +56719,49 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, \minimum 0.0 \units dimensionless \type real - N20; \field Source Side Heat Transfer Resistance2 + N20, \field Source Side Heat Transfer Resistance2 \note Use when Source Side Fluid Name is an antifreeze \note Leave this field blank for Source Side Fluid is Water \note Previously part of Parameter 10 \units W/K \minimum 0.0 \type real + A8, \field Part Load Fraction Correlation Curve Name + \note quadratic curve = a + b*PLR + c*PLR**2 + \note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 + \note PLR = part load ratio (cooling load/steady state capacity) + \type object-list + \object-list UnivariateFunctions + N21, \field Maximum Cycling Rate + \note The maximum on-off cycling Rate for the compressor, which occurs at 50% run time + \note fraction. Suggested value is 3; zero value means latent degradation model is disabled. + \type real + \units cycles/hr + \minimum 0.0 + \maximum 5.0 + \default 0.0 + N22, \field Latent Capacity Time Constant + \note Time constant for the cooling coil's latent capacity to reach steady state after + \note startup. Suggested value is 45; zero value means latent degradation model is disabled. + \type real + \units s + \minimum 0.0 + \maximum 500.0 + \default 0.0 + N23; \field Fan Delay Time + \units s + \minimum 0.0 + \default 60 + \note Programmed time delay for heat pump fan to shut off after compressor cycle off. + \note Only required when fan operating mode is cycling + \note Enter 0 when fan operating mode is continuous Coil:Heating:WaterToAirHeatPump:ParameterEstimation, \memo Direct expansion (DX) heating coil for water-to-air heat pump (includes electric \memo compressor), single-speed, parameter estimation model. Parameter estimation model is \memo a deterministic model that requires a consistent set of parameters to describe \memo the operating conditions of the heat pump components. - \min-fields 15 + \min-fields 25 A1 , \field Name \required-field \type alpha @@ -56833,19 +56895,26 @@ Coil:Heating:WaterToAirHeatPump:ParameterEstimation, \minimum 0.0 \units dimensionless \type real - N17; \field Source Side Heat Transfer Resistance2 + N17, \field Source Side Heat Transfer Resistance2 \note Use when Source Side Fluid Name is an antifreeze \note Leave this field blank for Source Side Fluid is Water \note Previously part of Parameter 9 \units W/K \minimum 0.0 \type real + A8; \field Part Load Fraction Correlation Curve Name + \note quadratic curve = a + b*PLR + c*PLR**2 + \note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 + \note PLR = part load ratio (heating load/steady state capacity) + \type object-list + \object-list UnivariateFunctions Coil:Cooling:WaterToAirHeatPump:EquationFit, \memo Direct expansion (DX) cooling coil for water-to-air heat pump (includes electric \memo compressor), single-speed, equation-fit model. Optional inputs for moisture \memo evaporation from wet coil when compressor cycles off with continuous fan operation. \memo Equation-fit model uses normalized curves to describe the heat pump performance. + \min-fields 22 A1, \field Name \required-field \type alpha @@ -56871,59 +56940,33 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, \minimum> 0.0 \units m3/s \autosizable - N2 , \field 2017 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), Energy - \note Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER), and the Standard Rating - \note (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. This value is not - \note used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N3 , \field 2023 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), Energy - \note Efficiency Ratio (EER), Integrated Energy Efficiency Ratio (IEER), and the Standard Rating - \note (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. This value is not - \note used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N4, \field Rated Water Flow Rate + N2, \field Rated Water Flow Rate \required-field \type real \minimum> 0.0 \units m3/s \ip-units gal/min \autosizable - N5, \field Gross Rated Total Cooling Capacity + N3, \field Gross Rated Total Cooling Capacity \note Total cooling capacity at rated conditions not accounting for the effect of supply air fan heat \required-field \type real \minimum> 0.0 \units W \autosizable - N6, \field Gross Rated Sensible Cooling Capacity + N4, \field Gross Rated Sensible Cooling Capacity \required-field \type real \minimum> 0.0 \units W \autosizable - N7, \field Gross Rated Cooling COP + N5, \field Gross Rated Cooling COP \note Gross cooling COP at rated conditions \required-field \type real \units W/W \minimum> 0.0 - N8, \field Rated Entering Water Temperature + N6, \field Rated Entering Water Temperature \note Rated entering water temperature corresponding to the water-to \note -air application for which this coil is used. For example: for water loop \note applications, the rated temperature is 30 degree Celsius @@ -56931,7 +56974,7 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, \type real \minimum> 0 \default 30 - N9, \field Rated Entering Air Dry-Bulb Temperature + N7, \field Rated Entering Air Dry-Bulb Temperature \note Rated entering air dry-bulb temperature corresponding to the \note water-to-air application for which this coil is used. For example: for \note water loop applications, the rated temperature is 27 degree Celsius @@ -56939,7 +56982,7 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, \type real \default 27 \minimum> 0 - N10, \field Rated Entering Air Wet-Bulb Temperature + N8, \field Rated Entering Air Wet-Bulb Temperature \note Rated entering air wet-bulb temperature corresponding to the \note water-to-air application for which this coil is used. For example: for \note water loop applications, the rated temperature is 19 degree Celsius @@ -56959,7 +57002,13 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, \required-field \type object-list \object-list QuadvariateFunctions - N11, \field Nominal Time for Condensate Removal to Begin + A9, \field Part Load Fraction Correlation Curve Name + \note quadratic curve = a + b*PLR + c*PLR**2 + \note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 + \note PLR = part load ratio (cooling load/steady state capacity) + \type object-list + \object-list UnivariateFunctions + N9, \field Nominal Time for Condensate Removal to Begin \type real \units s \minimum 0.0 @@ -56970,7 +57019,7 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, \note Nominal time is equal to the ratio of the energy of the coil's maximum \note condensate holding capacity (J) to the coil's steady state latent capacity (W). \note Suggested value is 1000; zero value means latent degradation model is disabled. - N12; \field Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity + N10, \field Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity \type real \units dimensionless \minimum 0.0 @@ -56980,6 +57029,29 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, \note the compressor first turns off) and the coil's steady state latent capacity \note at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value \note means latent degradation model is disabled. + N11, \field Maximum Cycling Rate + \note The maximum on-off cycling Rate for the compressor, which occurs at 50% run time + \note fraction. Suggested value is 3; zero value means latent degradation model is disabled. + \type real + \units cycles/hr + \minimum 0.0 + \maximum 5.0 + \default 0.0 + N12, \field Latent Capacity Time Constant + \note Time constant for the cooling coil's latent capacity to reach steady state after + \note startup. Suggested value is 45; zero value means latent degradation model is disabled. + \type real + \units s + \minimum 0.0 + \maximum 500.0 + \default 0.0 + N13; \field Fan Delay Time + \units s + \minimum 0.0 + \default 60 + \note Programmed time delay for heat pump fan to shut off after compressor cycle off. + \note Only required when fan operating mode is cycling + \note Enter 0 when fan operating mode is continuous Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \memo Direct expansion (DX) cooling coil for water-to-air heat pump (includes electric @@ -56988,7 +57060,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \memo Equation-fit model uses normalized curves to describe the heat pump performance. \memo Requires two to ten sets of performance data and will interpolate between speeds. \memo Modeled as a single coil with variable-speed compressor. - \min-fields 27 + \min-fields 30 A1, \field Name \required-field \type alpha @@ -57045,7 +57117,29 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \type real \minimum 0 \default 0 - N8, \field Flag for Using Hot Gas Reheat, 0 or 1 + N8, \field Maximum Cycling Rate + \note The maximum on-off cycling Rate for the compressor, which occurs at 50% run time + \note fraction. Suggested value is 3; zero value means latent degradation model is disabled. + \type real + \units cycles/hr + \minimum 0.0 + \maximum 5.0 + \default 0.0 + N9, \field Latent Capacity Time Constant + \note Time constant for the cooling coil's latent capacity to reach steady state after + \note startup. Suggested value is 45; zero value means latent degradation model is disabled. + \type real + \units s + \minimum 0.0 + \maximum 500.0 + \default 0.0 + N10, \field Fan Delay Time + \units s + \minimum 0.0 + \default 60 + \note Programmed time delay for heat pump fan to shut off after compressor cycle off. + \note Enter 0 when fan operating mode is continuous + N11, \field Flag for Using Hot Gas Reheat, 0 or 1 \note Flag for using hot gas reheat, 0 - not used, 1 - used \units dimensionless \type real @@ -57058,53 +57152,29 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*PLR + c*PLR**2 \note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 \note PLR = part load ratio (cooling load/steady state capacity) - N9, \field Speed 1 Reference Unit Gross Rated Total Cooling Capacity + N12, \field Speed 1 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 \required-field - N10, \field Speed 1 Reference Unit Gross Rated Sensible Heat Ratio + N13, \field Speed 1 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 \required-field - N11, \field Speed 1 Reference Unit Gross Rated Cooling COP + N14, \field Speed 1 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 \required-field - N12, \field Speed 1 Reference Unit Rated Air Flow Rate + N15, \field Speed 1 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 \required-field - N13, \field 2017 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N14, \field 2023 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N15, \field Speed 1 Reference Unit Rated Water Flow Rate + N16, \field Speed 1 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57152,7 +57222,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N16, \field Speed 1 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N17, \field Speed 1 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57164,49 +57234,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N17, \field Speed 2 Reference Unit Gross Rated Total Cooling Capacity + N18, \field Speed 2 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N18, \field Speed 2 Reference Unit Gross Rated Sensible Heat Ratio + N19, \field Speed 2 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N19, \field Speed 2 Reference Unit Gross Rated Cooling COP + N20, \field Speed 2 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N20, \field Speed 2 Reference Unit Rated Air Flow Rate + N21, \field Speed 2 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N21, \field 2017 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N22, \field 2023 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N23, \field Speed 2 Reference Unit Rated Water Flow Rate + N22, \field Speed 2 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57232,7 +57278,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, A17, \field Speed 2 Energy Input Ratio Function of Temperature Curve Name \type object-list \object-list BivariateFunctions - \note curve = a + b*wb + c*wb**2 + d*ewet + e*ewt**2 + f*wb*ewt + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) A18, \field Speed 2 Energy Input Ratio Function of Air Flow Fraction Curve Name @@ -57247,7 +57293,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N24, \field Speed 2 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N23, \field Speed 2 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57257,49 +57303,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N25, \field Speed 3 Reference Unit Gross Rated Total Cooling Capacity + N24, \field Speed 3 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N26, \field Speed 3 Reference Unit Gross Rated Sensible Heat Ratio + N25, \field Speed 3 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N27, \field Speed 3 Reference Unit Gross Rated Cooling COP + N26, \field Speed 3 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N28, \field Speed 3 Reference Unit Rated Air Flow Rate + N27, \field Speed 3 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N29, \field 2017 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N30, \field 2023 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N31, \field Speed 3 Reference Unit Rated Water Flow Rate + N28, \field Speed 3 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57346,7 +57368,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N32, \field Speed 3 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N29, \field Speed 3 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57357,49 +57379,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N33, \field Speed 4 Reference Unit Gross Rated Total Cooling Capacity + N30, \field Speed 4 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N34, \field Speed 4 Reference Unit Gross Rated Sensible Heat Ratio + N31, \field Speed 4 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N35, \field Speed 4 Reference Unit Gross Rated Cooling COP + N32, \field Speed 4 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N36, \field Speed 4 Reference Unit Rated Air Flow Rate + N33, \field Speed 4 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N37, \field 2017 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N38, \field 2023 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N39, \field Speed 4 Reference Unit Rated Water Flow Rate + N34, \field Speed 4 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57446,7 +57444,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N40, \field Speed 4 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N35, \field Speed 4 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57457,49 +57455,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N41, \field Speed 5 Reference Unit Gross Rated Total Cooling Capacity + N36, \field Speed 5 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N42, \field Speed 5 Reference Unit Gross Rated Sensible Heat Ratio + N37, \field Speed 5 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N43, \field Speed 5 Reference Unit Gross Rated Cooling COP + N38, \field Speed 5 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N44, \field Speed 5 Reference Unit Rated Air Flow Rate + N39, \field Speed 5 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N45, \field 2017 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N46, \field 2023 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N47, \field Speed 5 Reference Unit Rated Water Flow Rate + N40, \field Speed 5 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57546,7 +57520,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N48, \field Speed 5 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N41, \field Speed 5 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57557,49 +57531,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N49, \field Speed 6 Reference Unit Gross Rated Total Cooling Capacity + N42, \field Speed 6 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N50, \field Speed 6 Reference Unit Gross Rated Sensible Heat Ratio + N43, \field Speed 6 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N51, \field Speed 6 Reference Unit Gross Rated Cooling COP + N44, \field Speed 6 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N52, \field Speed 6 Reference Unit Rated Air Flow Rate + N45, \field Speed 6 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N53, \field 2017 Speed 6 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N54, \field 2023 Speed 6 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N55, \field Speed 6 Reference Unit Rated Water Flow Rate + N46, \field Speed 6 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57646,7 +57596,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N56, \field Speed 6 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N47, \field Speed 6 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57657,49 +57607,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N57, \field Speed 7 Reference Unit Gross Rated Total Cooling Capacity + N48, \field Speed 7 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N58, \field Speed 7 Reference Unit Gross Rated Sensible Heat Ratio + N49, \field Speed 7 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N59, \field Speed 7 Reference Unit Gross Rated Cooling COP + N50, \field Speed 7 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N60, \field Speed 7 Reference Unit Rated Air Flow Rate + N51, \field Speed 7 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N61, \field 2017 Speed 7 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N62, \field 2023 Speed 7 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N63, \field Speed 7 Reference Unit Rated Water Flow Rate + N52, \field Speed 7 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57746,7 +57672,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N64, \field Speed 7 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N53, \field Speed 7 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57757,49 +57683,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N65, \field Speed 8 Reference Unit Gross Rated Total Cooling Capacity + N54, \field Speed 8 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N66, \field Speed 8 Reference Unit Gross Rated Sensible Heat Ratio + N55, \field Speed 8 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N67, \field Speed 8 Reference Unit Gross Rated Cooling COP + N56, \field Speed 8 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N68, \field Speed 8 Reference Unit Rated Air Flow Rate + N57, \field Speed 8 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N69, \field 2017 Speed 8 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N70, \field 2023 Speed 8 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N71, \field Speed 8 Reference Unit Rated Water Flow Rate + N58, \field Speed 8 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57846,7 +57748,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N72, \field Speed 8 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N59, \field Speed 8 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57857,49 +57759,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N73, \field Speed 9 Reference Unit Gross Rated Total Cooling Capacity + N60, \field Speed 9 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N74, \field Speed 9 Reference Unit Gross Rated Sensible Heat Ratio + N61, \field Speed 9 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N75, \field Speed 9 Reference Unit Gross Rated Cooling COP + N62, \field Speed 9 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N76, \field Speed 9 Reference Unit Rated Air Flow Rate + N63, \field Speed 9 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N77, \field 2017 Speed 9 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N78, \field 2023 Speed 9 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N79, \field Speed 9 Reference Unit Rated Water Flow Rate + N64, \field Speed 9 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -57946,7 +57824,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N80, \field Speed 9 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N65, \field Speed 9 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -57957,49 +57835,25 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt \note wb = entering wet-bulb temperature (C) \note ewt = water entering temperature seen by the condenser (C) - N81, \field Speed 10 Reference Unit Gross Rated Total Cooling Capacity + N66, \field Speed 10 Reference Unit Gross Rated Total Cooling Capacity \note Total cooling capacity not accounting for the effect of supply air fan heat \units W \type real \minimum 0 - N82, \field Speed 10 Reference Unit Gross Rated Sensible Heat Ratio + N67, \field Speed 10 Reference Unit Gross Rated Sensible Heat Ratio \units dimensionless \type real \minimum 0 \maximum 1.0 - N83, \field Speed 10 Reference Unit Gross Rated Cooling COP + N68, \field Speed 10 Reference Unit Gross Rated Cooling COP \type real \units W/W \minimum> 0.0 - N84, \field Speed 10 Reference Unit Rated Air Flow Rate + N69, \field Speed 10 Reference Unit Rated Air Flow Rate \units m3/s \type real \minimum 0 - N85, \field 2017 Speed 10 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2017 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1250.0 - \default 773.3 - N86, \field 2023 Speed 10 Rated Evaporator Fan Power Per Volume Flow Rate - \note Enter the evaporator fan power per air volume flow rate at the rated test conditions - \note as defined in the 2023 version of ANSI/AHRI Standard 210/240. - \note The test conditions vary external static pressure based on total cooling capacity. - \note This value is only used to calculate Seasonal Energy Efficiency Ratio (SEER2), and the - \note Standard Rating (Net) Cooling Capacity which will be outputs in the EnergyPlus eio file. - \note This value is not used for modeling the evaporator fan during simulations. - \type real - \units W/(m3/s) - \minimum 0.0 - \maximum 1505.0 - \default 934.4 - N87, \field Speed 10 Reference Unit Rated Water Flow Rate + N70, \field Speed 10 Reference Unit Rated Water Flow Rate \units m3/s \ip-units gal/min \type real @@ -58046,7 +57900,7 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, \note quadratic curve = a + b*ffw + c*ffw**2 \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 \note ffw = Fraction of the full load Water Flow - N88, \field Speed 10 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions + N71, \field Speed 10 Reference Unit Waste Heat Fraction of Input Power At Rated Conditions \units dimensionless \type real \minimum 0 @@ -58062,6 +57916,7 @@ Coil:Heating:WaterToAirHeatPump:EquationFit, \memo Direct expansion (DX) heating coil for water-to-air heat pump (includes electric \memo compressor), single-speed, equation-fit model. Equation-fit model uses normalized \memo curves to describe the heat pump performance. + \min-fields 12 A1, \field Name \required-field \type alpha @@ -58124,7 +57979,7 @@ Coil:Heating:WaterToAirHeatPump:EquationFit, N7, \field Ratio of Rated Heating Capacity to Rated Cooling Capacity \note Ratio of rated heating capacity to rated cooling capacity. This \note input is used to calculate the heating or cooling capacity when autosizing. - \note This input is only used if a companion cooling coil of the same type + \note This input is only used if a companion cooling coil of the same type \note (Coil:Cooling:WaterToAirHeatPump:EquationFit) is used. This input is only \note used when a sizing run for the system which uses this object is requested \note and when the coil capacity is autosized. @@ -58135,10 +57990,16 @@ Coil:Heating:WaterToAirHeatPump:EquationFit, \required-field \type object-list \object-list QuadvariateFunctions - A7; \field Heating Power Consumption Curve Name + A7, \field Heating Power Consumption Curve Name \required-field \type object-list \object-list QuadvariateFunctions + A8; \field Part Load Fraction Correlation Curve Name + \note quadratic curve = a + b*PLR + c*PLR**2 + \note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 + \note PLR = part load ratio (heat load/steady state capacity) + \type object-list + \object-list UnivariateFunctions Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, \memo Direct expansion (DX) heating coil for water-to-air heat pump (includes electric @@ -59291,7 +59152,7 @@ Coil:WaterHeating:AirToWaterHeatPump:Wrapped, \note due to variations in part load ratio. Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, - \memo vairlable-speed Heat pump water heater (VSHPWH) heating coil, air-to-water direct-expansion (DX) + \memo variable-speed Heat pump water heater (VSHPWH) heating coil, air-to-water direct-expansion (DX) \memo system which includes a variable-speed water heating coil, evaporator air coil, evaporator \memo fan, electric compressor, and water pump. Part of a WaterHeater:HeatPump system. \min-fields 33 @@ -61661,7 +61522,7 @@ EvaporativeCooler:Indirect:ResearchSpecial, N2 , \field Cooler Drybulb Design Effectiveness \type real \note dry operation effectiveness with respect to drybulb temperature difference - \note this is the nominal design dryblub effectiveness at design air flow rates, no evaporation water active + \note this is the nominal design drybulb effectiveness at design air flow rates, no evaporation water active \minimum 0.0 A4 , \field Drybulb Effectiveness Flow Ratio Modifier Curve Name \note this curve modifies the drybulb effectiveness in the previous field (eff_db_design) @@ -61707,7 +61568,7 @@ EvaporativeCooler:Indirect:ResearchSpecial, \type real \units dimensionless \default 1.0 - \note This field is used when the previous field is set to autoize. The Primary Design Air Flow Rate is scaled using this factor + \note This field is used when the previous field is set to autosize. The Primary Design Air Flow Rate is scaled using this factor \note to calculate the secondary design air flow rate. N7 , \field Secondary Air Fan Design Power \type real @@ -63256,55 +63117,19 @@ AirLoopHVAC:UnitarySystem, \note If this field is blank, outdoor temperature from the weather file is used. \note If this field is not blank, the node name specified determines the outdoor temperature used \note for controlling supplemental heater operation. - N19, \field Maximum Cycling Rate - \type real - \units cycles/hr - \minimum 0.0 - \maximum 5.0 - \default 2.5 - \note Used only for water source heat pump. - \note The maximum on-off cycling rate for the compressor. - \note Suggested value is 2.5 for a typical heat pump. - N20, \field Heat Pump Time Constant - \type real - \units s - \minimum 0.0 - \maximum 500.0 - \default 60.0 - \note Used only for water source heat pump. - \note Time constant for the cooling coil's capacity to reach steady state after startup. - \note Suggested value is 60 for a typical heat pump. - N21, \field Fraction of On-Cycle Power Use - \type real - \minimum 0.0 - \maximum 0.05 - \default 0.01 - \note Used only for water source heat pump. - \note The fraction of on-cycle power use to adjust the part load fraction based on - \note the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. - \note Suggested value is 0.01 for a typical heat pump. - N22, \field Heat Pump Fan Delay Time - \type real - \units s - \minimum 0.0 - \default 60 - \note Used only for water source heat pump. - \note Programmed time delay for heat pump fan to shut off after compressor cycle off. - \note Only required when fan operating mode is cycling. - \note Enter 0 when fan operating mode is continuous. - N23, \field Ancillary On-Cycle Electric Power + N19, \field Ancillary On-Cycle Electric Power \type real \units W \minimum 0 \default 0 \note Enter the value of ancillary electric power for controls or other devices consumed during the on cycle. - N24, \field Ancillary Off-Cycle Electric Power + N20, \field Ancillary Off-Cycle Electric Power \type real \units W \minimum 0 \default 0 \note Enter the value of ancillary electric power for controls or other devices consumed during the off cycle. - N25, \field Design Heat Recovery Water Flow Rate + N21, \field Design Heat Recovery Water Flow Rate \type real \units m3/s \ip-units gal/min @@ -63312,7 +63137,7 @@ AirLoopHVAC:UnitarySystem, \default 0.0 \note If non-zero, then the heat recovery inlet and outlet node names must be entered. \note Used for heat recovery to an EnergyPlus plant loop. - N26, \field Maximum Temperature for Heat Recovery + N22, \field Maximum Temperature for Heat Recovery \type real \units C \maximum 100.0 @@ -64124,7 +63949,7 @@ AirLoopHVAC:UnitaryHeatPump:WaterToAir, \memo supply fan (continuous or cycling), direct expansion (DX) cooling coil, DX heating \memo coil (water-to-air heat pump), and supplemental heating coil (gas, electric, \memo hot water, or steam). - \min-fields 25 + \min-fields 21 A1, \field Name \required-field \type alpha @@ -64194,36 +64019,6 @@ AirLoopHVAC:UnitaryHeatPump:WaterToAir, \type real \minimum> 0.0 \default 0.001 - N4, \field Maximum Cycling Rate - \type real - \units cycles/hr - \minimum 0.0 - \maximum 5.0 - \default 2.5 - \note The maximum on-off cycling rate for the compressor - \note Suggested value is 2.5 for a typical heat pump - N5, \field Heat Pump Time Constant - \type real - \units s - \minimum 0.0 - \maximum 500.0 - \default 60.0 - \note Time constant for the cooling coil's capacity to reach steady state after startup - \note Suggested value is 60 for a typical heat pump - N6, \field Fraction of On-Cycle Power Use - \minimum 0.0 - \maximum 0.05 - \default 0.01 - \note The fraction of on-cycle power use to adjust the part load fraction based on - \note the off-cycle power consumption due to crankcase heaters, controls, fans, and etc. - \note Suggested value is 0.01 for a typical heat pump - N7, \field Heat Pump Fan Delay Time - \units s - \minimum 0.0 - \default 60 - \note Programmed time delay for heat pump fan to shut off after compressor cycle off. - \note Only required when fan operating mode is cycling - \note Enter 0 when fan operating mode is continuous A12, \field Supplemental Heating Coil Object Type \required-field \type choice @@ -64237,12 +64032,12 @@ AirLoopHVAC:UnitaryHeatPump:WaterToAir, \type object-list \object-list HeatingCoilName \note Needs to match in the supplemental heating coil object - N8, \field Maximum Supply Air Temperature from Supplemental Heater + N4, \field Maximum Supply Air Temperature from Supplemental Heater \required-field \type real \units C \autosizable - N9, \field Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation + N5, \field Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation \type real \maximum 21.0 \default 21.0 @@ -66520,7 +66315,7 @@ Controller:MechanicalVentilation, \object-list DSOASpaceListNames A7, \field Design Specification Zone Air Distribution Object Name 1 \note If left blank, the name will be taken from the Sizing:Zone object for this zone. - \note If no specification is found for this zone, then effectivness will be 1.0 and + \note If no specification is found for this zone, then effectiveness will be 1.0 and \note and secondary recirculation will be zero. \type object-list \object-list DesignSpecificationZoneAirDistributionNames @@ -71456,7 +71251,7 @@ Pump:VariableSpeed, \type object-list \object-list ScheduleNames A13, \field Zone Name - \note optional, if used pump losses transfered to zone as internal gains + \note optional, if used pump losses transferred to zone as internal gains \type object-list \object-list ZoneNames N12, \field Skin Loss Radiative Fraction @@ -71571,7 +71366,7 @@ Pump:ConstantSpeed, \type real \note "N" in above expression in field A6 A7, \field Zone Name - \note optional, if used pump losses transfered to zone as internal gains + \note optional, if used pump losses transferred to zone as internal gains \type object-list \object-list ZoneNames N8, \field Skin Loss Radiative Fraction @@ -71666,7 +71461,7 @@ Pump:VariableSpeed:Condensate, \type object-list \object-list ScheduleNames A5 , \field Zone Name - \note optional, if used pump losses transfered to zone as internal gains + \note optional, if used pump losses transferred to zone as internal gains \type object-list \object-list ZoneNames N10, \field Skin Loss Radiative Fraction @@ -71766,7 +71561,7 @@ HeaderedPumps:ConstantSpeed, \type object-list \object-list ScheduleNames A7 , \field Zone Name - \note optional, if used pump losses transfered to zone as internal gains + \note optional, if used pump losses transferred to zone as internal gains \type object-list \object-list ZoneNames N7 , \field Skin Loss Radiative Fraction @@ -71879,7 +71674,7 @@ HeaderedPumps:VariableSpeed, \type object-list \object-list ScheduleNames A7 , \field Zone Name - \note optional, if used pump losses transfered to zone as internal gains + \note optional, if used pump losses transferred to zone as internal gains \type object-list \object-list ZoneNames N12, \field Skin Loss Radiative Fraction @@ -72913,10 +72708,10 @@ Chiller:Electric:ASHRAE205, \minimum> 0 \ip-units gal/min A21, \field Heat Recovery Inlet Node Name - \note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Stanard 205. + \note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Standard 205. \type node A22, \field Heat Recovery Outlet Node Name - \note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Stanard 205. + \note Not yet implemented / reserved for future use. Heat recovery is not yet within scope of ASHRAE Standard 205. \type node A23; \field End-Use Subcategory \note Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table. @@ -74882,7 +74677,7 @@ HeatPump:AirToWater:FuelFired:Heating, \autosizable \minimum> 0 \units W - \note Nominal Heating Capacity in [W] (autosizeable) + \note Nominal Heating Capacity in [W] (autosizable) N2 , \field Nominal COP \required-field \type real @@ -74894,7 +74689,7 @@ HeatPump:AirToWater:FuelFired:Heating, \autosizable \minimum> 0 \units m3/s - \note Design Flow Rate in m3/s (autosizeable) + \note Design Flow Rate in m3/s (autosizable) N4 , \field Design Supply Temperature \default 60 \units C @@ -75062,7 +74857,7 @@ HeatPump:AirToWater:FuelFired:Cooling, \autosizable \minimum> 0 \units W - \note Nominal Cooling Capacity in [W] (autosizeable) + \note Nominal Cooling Capacity in [W] (autosizable) N2 , \field Nominal COP \required-field \type real @@ -75074,7 +74869,7 @@ HeatPump:AirToWater:FuelFired:Cooling, \autosizable \minimum> 0 \units m3/s - \note Design Flow Rate in m3/s (autosizeable) + \note Design Flow Rate in m3/s (autosizable) N4 , \field Design Supply Temperature \default 7.0 \units C @@ -81265,7 +81060,7 @@ PlantLoop, \key None \default None N6; \field Loop Circulation Time - \note This field is only used to autocalulate the Plant Loop Volume. + \note This field is only used to autocalculate the Plant Loop Volume. \note Loop Volume = Loop Circulation Time * Maximum Loop Flow Rate \type real \units minutes @@ -81364,7 +81159,7 @@ CondenserLoop, \key None \default None N6; \field Loop Circulation Time - \note This field is only used to autocalulate the Condenser Loop Volume. + \note This field is only used to autocalculate the Condenser Loop Volume. \note Loop Volume = Loop Circulation Time * Maximum Loop Flow Rate \type real \units minutes @@ -92562,7 +92357,7 @@ ElectricLoadCenter:Distribution, \note while accounting for any on-site generation. Only excess on site generation gets stored (legacy behavior). \default TrackFacilityElectricDemandStoreExcessOnSite \key TrackMeterDemandStoreExcessOnSite - \note TrackMeterDemandStoreExcessOnSite indicates that storage discharge control will follow an electric meter named in the field called Storage Control Track Meter Name. This scheme is similiar + \note TrackMeterDemandStoreExcessOnSite indicates that storage discharge control will follow an electric meter named in the field called Storage Control Track Meter Name. This scheme is similar \note to TrackFacilityElectricDemandStoreExcessOnSite except that instead of the main facility electric meter, the control is based off of a user-selected meter. \key TrackChargeDischargeSchedules \note TrackChargeDischargeSchedules indicates that control will follow the charging and discharging power and schedules defined in the fields called Maximum Storage Charge Grid Supply Power, @@ -105495,7 +105290,7 @@ Output:Table:Annual, \note hours with a zero value are all included. \note HourInTenBinsMinToMax - Creates 10 columns for the specified variable and shows the number \note of hours in each of 10 bins based on the minimum and maximum value. The bin sizes will - \note be rounded up to the next most signficant digit value. + \note be rounded up to the next most significant digit value. \note HourInTenBinsZeroToMax - Creates 11 columns for the specified variable and shows the number \note of hours in each of 10 bins from zero to the maximum value and a bin for hours below zero. \note The bin sizes will be rounded up to the next most significant digit value. diff --git a/performance_tests/PipingSystem_Underground_FHX.idf b/performance_tests/PipingSystem_Underground_FHX.idf index 7a775a02255..2be1396348c 100644 --- a/performance_tests/PipingSystem_Underground_FHX.idf +++ b/performance_tests/PipingSystem_Underground_FHX.idf @@ -821,10 +821,6 @@ Sys 2 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -952,8 +948,6 @@ Sys 2 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 2 Heating Coil Air Inlet Node, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -964,6 +958,7 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} @@ -981,7 +976,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Zone 2 Fan, !- Name @@ -1044,10 +1040,6 @@ Sys 1 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1082,8 +1074,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -1094,6 +1084,7 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} @@ -1111,7 +1102,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Zone 1 Fan, !- Name diff --git a/scripts/dev/check_for_enum_scope_usage.py b/scripts/dev/check_for_enum_scope_usage.py index 5ef0f1c72ba..5dfaa7018a4 100755 --- a/scripts/dev/check_for_enum_scope_usage.py +++ b/scripts/dev/check_for_enum_scope_usage.py @@ -198,7 +198,7 @@ def run(self): apparent_enums_in_zero_source_files.append(e.describe()) unique_files_in_usages: Set[str] = set() # exceptions listed by : - exceptions = ["DataGlobalConstants.hh:eFuel", "DataGlobalConstants.hh:ePollutant"] + exceptions = ["DataGlobalConstants.hh:ePollutant"] if f"{e.file_path.name}:{e.enum_name}" not in exceptions: for u in e.usages: unique_files_in_usages.add(u.file_path.name) diff --git a/scripts/dev/check_non_utf8.py b/scripts/dev/check_non_utf8.py index 0e4b3475b14..fc7825d3f70 100755 --- a/scripts/dev/check_non_utf8.py +++ b/scripts/dev/check_non_utf8.py @@ -59,10 +59,9 @@ import io # For Python 2 compat import sys -# note I am skipping docs for right now; I want to do those files DIRS_TO_SKIP = [ '.git', 'build', 'builds', 'cmake-build-debug', - 'cmake-build-release', 'design', 'doc', 'release', 'third_party' + 'cmake-build-release', 'design', 'release', ] # these CC files purposefully have bad characters diff --git a/src/EnergyPlus/ConvectionCoefficients.cc b/src/EnergyPlus/ConvectionCoefficients.cc index 21d74f047aa..17c79b01c3f 100644 --- a/src/EnergyPlus/ConvectionCoefficients.cc +++ b/src/EnergyPlus/ConvectionCoefficients.cc @@ -388,7 +388,8 @@ void InitExtConvCoeff(EnergyPlusData &state, Real64 &HExt, // Convection coefficient to exterior air Real64 &HSky, // "Convection" coefficient to sky temperature Real64 &HGround, // "Convection" coefficient to ground temperature - Real64 &HAir // Radiation to Air Component + Real64 &HAir, // Radiation to Air Component + Real64 &HSrdSurf // Radiation to surrounding surfaces ) { @@ -432,6 +433,7 @@ void InitExtConvCoeff(EnergyPlusData &state, Real64 TSurf = TempExt + Constant::KelvinConv; Real64 TSky = state.dataEnvrn->SkyTempKelvin; Real64 TGround = TAir; + HSrdSurf = 0.0; if (surface.SurfHasSurroundingSurfProperty) { int SrdSurfsNum = surface.SurfSurroundingSurfacesNum; @@ -439,6 +441,7 @@ void InitExtConvCoeff(EnergyPlusData &state, TSky = ScheduleManager::GetCurrentScheduleValue(state, state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).SkyTempSchNum) + Constant::KelvinConv; } + HSrdSurf = SurroundingSurfacesRadCoeffAverage(state, SurfNum, TSurf, AbsExt); } if (surface.UseSurfPropertyGndSurfTemp) { int gndSurfsNum = surface.SurfPropertyGndSurfIndex; @@ -6536,4 +6539,17 @@ void ShowSevereScheduleOutOfRange(EnergyPlusData &state, if (!msg.empty()) ShowContinueError(state, msg); } +Real64 SurroundingSurfacesRadCoeffAverage(EnergyPlusData &state, int const SurfNum, Real64 const TSurfK, Real64 const AbsExt) +{ + // compute exterior surfaces LW radiation transfer coefficient to surrounding surfaces + // the surface.SrdSurfTemp is weighed by surrounding surfaces view factor + Real64 HSrdSurf = 0.0; + auto &surface = state.dataSurface->Surface(SurfNum); + Real64 SrdSurfsTK = surface.SrdSurfTemp + Constant::KelvinConv; + if (TSurfK != SrdSurfsTK) { + HSrdSurf = Constant::StefanBoltzmann * AbsExt * surface.ViewFactorSrdSurfs * (pow_4(TSurfK) - pow_4(SrdSurfsTK)) / (TSurfK - SrdSurfsTK); + } + return HSrdSurf; +} + } // namespace EnergyPlus::Convect diff --git a/src/EnergyPlus/ConvectionCoefficients.hh b/src/EnergyPlus/ConvectionCoefficients.hh index da8e0c50f63..5b5f421e004 100644 --- a/src/EnergyPlus/ConvectionCoefficients.hh +++ b/src/EnergyPlus/ConvectionCoefficients.hh @@ -234,7 +234,14 @@ namespace Convect { Real64 &HExt, // Convection coefficient to exterior air Real64 &HSky, // "Convection" coefficient to sky temperature Real64 &HGround, // "Convection" coefficient to ground temperature - Real64 &HAir // Radiation to Air Component + Real64 &HAir, // Radiation to Air Component + Real64 &HSrdSurf // Radiation to surrounding surfaces + ); + + Real64 SurroundingSurfacesRadCoeffAverage(EnergyPlusData &state, + int const SurfNum, // Surface number (in Surface derived type) + Real64 const TempExtK, // Exterior surface temperature (K) + Real64 const AbsExt // Exterior thermal absorptance ); Real64 CalcHfExteriorSparrow(Real64 SurfWindSpeed, // Local wind speed at height of the heat transfer surface (m/s) diff --git a/src/EnergyPlus/DElightManagerF.cc b/src/EnergyPlus/DElightManagerF.cc index 8e6dcb0f90d..3978c92e551 100644 --- a/src/EnergyPlus/DElightManagerF.cc +++ b/src/EnergyPlus/DElightManagerF.cc @@ -252,8 +252,8 @@ namespace DElightManagerF { ShowWarningError(state, format("Maximum of 100 Reference Points exceeded for daylighting zone using DElight ={}", znDayl.Name)); ShowWarningError(state, " Only first 100 Reference Points included in DElight analysis"); } - znDayl.DaylRefPtAbsCoord.allocate(3, znDayl.TotalDaylRefPoints); - znDayl.DaylRefPtAbsCoord = 0.0; + znDayl.DaylRefPtAbsCoord.allocate(znDayl.TotalDaylRefPoints); + std::fill(znDayl.DaylRefPtAbsCoord.begin(), znDayl.DaylRefPtAbsCoord.end(), Vector3(0.0)); // RJH 2008-03-07: Allocate and Init DaylIllumAtRefPt array for this DElight zone znDayl.DaylIllumAtRefPt.allocate(znDayl.TotalDaylRefPoints); @@ -595,7 +595,7 @@ namespace DElightManagerF { RefPt_WCS_Coord(2) = Xtrans * SinBldgRelNorth + Ytrans * CosBldgRelNorth; } } - znDayl.DaylRefPtAbsCoord({1, 3}, refPt.indexToFracAndIllum) = RefPt_WCS_Coord({1, 3}); + znDayl.DaylRefPtAbsCoord(refPt.indexToFracAndIllum) = {RefPt_WCS_Coord(1), RefPt_WCS_Coord(2), RefPt_WCS_Coord(3)}; // Validate that Reference Point coordinates are within the host Zone if (RefPt_WCS_Coord(1) < thisZone.MinimumX || RefPt_WCS_Coord(1) > thisZone.MaximumX) { diff --git a/src/EnergyPlus/DXCoils.cc b/src/EnergyPlus/DXCoils.cc index 130eb4964ec..13235a7d9e9 100644 --- a/src/EnergyPlus/DXCoils.cc +++ b/src/EnergyPlus/DXCoils.cc @@ -4194,7 +4194,7 @@ void GetDXCoils(EnergyPlusData &state) ShowContinueError(state, format("...required {} is blank.", cAlphaFields(17 + (I - 1) * 6))); } else { ShowSevereError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, thisDXCoil.Name)); - ShowContinueError(state, format("...not found {}=\"{}\".", cAlphaFields(17 + (I - 1) * 6), Alphas(16 + (I - 1) * 6))); + ShowContinueError(state, format("...not found {}=\"{}\".", cAlphaFields(17 + (I - 1) * 6), Alphas(17 + (I - 1) * 6))); } ErrorsFound = true; } else { diff --git a/src/EnergyPlus/DataDaylighting.hh b/src/EnergyPlus/DataDaylighting.hh index 77969978842..2132e361c9d 100644 --- a/src/EnergyPlus/DataDaylighting.hh +++ b/src/EnergyPlus/DataDaylighting.hh @@ -57,6 +57,7 @@ // EnergyPlus Headers #include #include +#include #include #include @@ -163,9 +164,10 @@ namespace Dayltg { int enclIndex = 0; // Index to enclosure where the daylighting:controls object is located Dayltg::DaylightingMethod DaylightMethod = DaylightingMethod::None; // Type of Daylighting (1=SplitFlux, 2=DElight) int AvailSchedNum = 0; // pointer to availability schedule if present - int TotalDaylRefPoints = 0; // Number of daylighting reference points for this control - Array1D_int DaylRefPtNum; // Reference number to DaylRefPt array that stores Daylighting:ReferencePoint - Array2D DaylRefPtAbsCoord; // =0.0 ! X,Y,Z coordinates of all daylighting reference points + int TotalExtWindows = 0; + int TotalDaylRefPoints = 0; // Number of daylighting reference points for this control + Array1D_int DaylRefPtNum; // Reference number to DaylRefPt array that stores Daylighting:ReferencePoint + Array1D> DaylRefPtAbsCoord; // =0.0 ! X,Y,Z coordinates of all daylighting reference points // in absolute coordinate system (m) // Points 1 and 2 are the control reference points Array1D_bool DaylRefPtInBounds; // True when coordinates are in bounds of zone coordinates @@ -185,14 +187,16 @@ namespace Dayltg { Real64 DElightGriddingResolution = 0.0; // Field: Delight Gridding Resolution Array1D RefPtPowerReductionFactor; // =1.0 ! Electric power reduction factor at reference points // due to daylighting - Array1D DaylIllumAtRefPt; // =0.0 ! Daylight illuminance at reference points (lux) - Array1D GlareIndexAtRefPt; // =0.0 ! Glare index at reference points - Array1D BacLum; // =0.0 ! Background luminance at each reference point (cd/m2) - Array2D SolidAngAtRefPt; // (Number of Zones, Total Daylighting Reference Points) - Array2D SolidAngAtRefPtWtd; // (Number of Zones, Total Daylighting Reference Points) - Array3D IllumFromWinAtRefPt; // (Number of Zones, 2, Total Daylighting Reference Points) - Array3D BackLumFromWinAtRefPt; // (Number of Zones, 2, Total Daylighting Reference Points) - Array3D SourceLumFromWinAtRefPt; // (Number of Zones, 2, Total Daylighting Reference Points) + Array1D DaylIllumAtRefPt; // =0.0 ! Daylight illuminance at reference points (lux) + Array1D GlareIndexAtRefPt; // =0.0 ! Glare index at reference points + Array1D BacLum; // =0.0 ! Background luminance at each reference point (cd/m2) + Array2D SolidAngAtRefPt; // (Number of Zones, Total Daylighting Reference Points) + Array2D SolidAngAtRefPtWtd; // (Number of Zones, Total Daylighting Reference Points) + Array2D> IllumFromWinAtRefPt; // (Number of Zones, 2, Total Daylighting Reference Points) + Array2D> + BackLumFromWinAtRefPt; // (Number of Zones, 2, Total Daylighting Reference Points) + Array2D> + SourceLumFromWinAtRefPt; // (Number of Zones, 2, Total Daylighting Reference Points) Array1D TimeExceedingGlareIndexSPAtRefPt; // Allocatable daylight factor arrays // Arguments (dimensions) for Dayl---Sky are: @@ -256,17 +260,17 @@ namespace Dayltg { struct MapCalcData { // Members - int TotalMapRefPoints = 0; // Number of illuminance map reference points in this zone (up to 100) - int zoneIndex = 0; // Pointer to zone being mapped - int enclIndex = 0; // Index to enclosure for this map - Array2D MapRefPtAbsCoord; // X,Y,Z coordinates of all illuminance map reference points + int TotalMapRefPoints = 0; // Number of illuminance map reference points in this zone (up to 100) + int zoneIndex = 0; // Pointer to zone being mapped + int enclIndex = 0; // Index to enclosure for this map + Array1D> MapRefPtAbsCoord; // X,Y,Z coordinates of all illuminance map reference points // in absolute coordinate system (m) // Points 1 and 2 are the control reference points Array1D_bool MapRefPtInBounds; // True when coordinates are in bounds of zone coordinates Array1D DaylIllumAtMapPt; // Daylight illuminance at illuminance map points (lux) // following Hr - report avg hr - Array1D DaylIllumAtMapPtHr; // Daylight illuminance at illuminance map points (lux) - Array3D IllumFromWinAtMapPt; // (Number of Zones, 2, Total Map Reference Points) + Array1D DaylIllumAtMapPtHr; // Daylight illuminance at illuminance map points (lux) + Array2D> IllumFromWinAtMapPt; // (Number of Zones, Total Map Reference Points) // Arguments (dimensions) for Dayl---Sky are: // 1: Sun position index / HourOfDay (1 to 24) // 2: Daylit window number (1 to NumOfDayltgExtWins) diff --git a/src/EnergyPlus/DataHeatBalSurface.hh b/src/EnergyPlus/DataHeatBalSurface.hh index 57a5f7e25be..39a2dfa45a1 100644 --- a/src/EnergyPlus/DataHeatBalSurface.hh +++ b/src/EnergyPlus/DataHeatBalSurface.hh @@ -120,6 +120,7 @@ struct HeatBalSurfData : BaseGlobalStruct Array1D SurfTempSource; // Temperature at the source location for each heat transfer surface Array1D SurfTempUserLoc; // Temperature at the user specified location for each heat transfer surface Array1D SurfTempInMovInsRep; // Temperature of interior movable insulation on the side facing the zone + Array1D SurfHSrdSurfExt; // Outside Radiation Coefficient to Surrounding Surfaces Array1D SurfQConvInReport; // Surface convection heat gain at inside face [J] Array1D SurfQdotConvInRep; // Surface convection heat transfer rate at inside face surface [W] (report) diff --git a/src/EnergyPlus/DataSurfaces.cc b/src/EnergyPlus/DataSurfaces.cc index e1d82b73148..784779d8b98 100644 --- a/src/EnergyPlus/DataSurfaces.cc +++ b/src/EnergyPlus/DataSurfaces.cc @@ -568,6 +568,7 @@ void SurfaceData::make_hash_key(EnergyPlusData &state, const int SurfNum) calcHashKey.LinkedOutAirNode = state.dataSurface->Surface(SurfNum).SurfLinkedOutAirNode; calcHashKey.OutsideHeatSourceTermSchedule = OutsideHeatSourceTermSchedule; calcHashKey.InsideHeatSourceTermSchedule = InsideHeatSourceTermSchedule; + calcHashKey.ViewFactorSrdSurfs = state.dataSurface->Surface(SurfNum).ViewFactorSrdSurfs; } void SurfaceData::set_representative_surface(EnergyPlusData &state, const int SurfNum) diff --git a/src/EnergyPlus/DataSurfaces.hh b/src/EnergyPlus/DataSurfaces.hh index 3a913202608..56b77b11504 100644 --- a/src/EnergyPlus/DataSurfaces.hh +++ b/src/EnergyPlus/DataSurfaces.hh @@ -167,6 +167,16 @@ namespace DataSurfaces { Num // The counter representing the total number of surface class, always stays at the bottom }; + // A coarse grain version of SurfaceClass + enum class FWC + { + Invalid = -1, + Floor, + Wall, + Ceiling, + Num + }; + enum class SurfaceFilter { Invalid = -1, @@ -196,6 +206,14 @@ namespace DataSurfaces { "ALLINTERIORCEILINGS", "ALLINTERIORFLOORS"}; + enum class WinCover + { + Invalid = -1, + Bare, + Shaded, + Num + }; + enum class WinShadingType { Invalid = -1, @@ -514,20 +532,21 @@ namespace DataSurfaces { { // Values that must be the same in order for surfaces to use a representative calculation - int Construction; // Pointer to the construction in the Construct derived type - Real64 Azimuth; // Direction the surface outward normal faces (degrees) or FACING - Real64 Tilt; // Angle (deg) between the ground outward normal and the surface outward normal - Real64 Height; // Height of the surface (m) - int Zone; // Interior environment or zone the surface is a part of - int EnclIndex; // Pointer to enclosure this surface belongs to - int TAirRef; // Flag for reference air temperature - int ExtZone; // For an "interzone" surface, this is the adjacent ZONE number (not adjacent SURFACE number). - int ExtCond; // Exterior condition type. Same as ExtBoundCond for non-interzone surfaces. Value = 1 for interzone surfaces. - int ExtEnclIndex; // For an "interzone" surface, this is the adjacent ENCLOSURE number - bool ExtSolar; // True if the "outside" of the surface is exposed to solar - bool ExtWind; // True if the "outside" of the surface is exposed to wind - Real64 ViewFactorGround; // View factor to the ground from the exterior of the surface for diffuse solar radiation - Real64 ViewFactorSky; // View factor to the sky from the exterior of the surface for diffuse solar radiation + int Construction; // Pointer to the construction in the Construct derived type + Real64 Azimuth; // Direction the surface outward normal faces (degrees) or FACING + Real64 Tilt; // Angle (deg) between the ground outward normal and the surface outward normal + Real64 Height; // Height of the surface (m) + int Zone; // Interior environment or zone the surface is a part of + int EnclIndex; // Pointer to enclosure this surface belongs to + int TAirRef; // Flag for reference air temperature + int ExtZone; // For an "interzone" surface, this is the adjacent ZONE number (not adjacent SURFACE number). + int ExtCond; // Exterior condition type. Same as ExtBoundCond for non-interzone surfaces. Value = 1 for interzone surfaces. + int ExtEnclIndex; // For an "interzone" surface, this is the adjacent ENCLOSURE number + bool ExtSolar; // True if the "outside" of the surface is exposed to solar + bool ExtWind; // True if the "outside" of the surface is exposed to wind + Real64 ViewFactorGround; // View factor to the ground from the exterior of the surface for diffuse solar radiation + Real64 ViewFactorSky; // View factor to the sky from the exterior of the surface for diffuse solar radiation + Real64 ViewFactorSrdSurfs; // View factor to the surrounding surfaces seen from the exterior of the surface // Special Properties HeatTransferModel HeatTransferAlgorithm; // used for surface-specific heat transfer algorithm. @@ -782,6 +801,8 @@ namespace DataSurfaces { int SurfLinkedOutAirNode; // Index of the an OutdoorAir:Node, zero if none Real64 AE = 0.0; // Product of area and emissivity for each surface Real64 enclAESum = 0.0; // Sum of area times emissivity for all other surfaces in enclosure + Real64 SrdSurfTemp; // surrounding surfaces average temperature seen by an exterior surface (C) + Real64 ViewFactorSrdSurfs; // surrounding surfaces view factor sum seen by an exterior surface(-) // Default Constructor SurfaceData() @@ -799,7 +820,7 @@ namespace DataSurfaces { SolarEnclIndex(0), SolarEnclSurfIndex(0), IsAirBoundarySurf(false), IsSurfPropertyGndSurfacesDefined(false), SurfPropertyGndSurfIndex(0), UseSurfPropertyGndSurfTemp(false), UseSurfPropertyGndSurfRefl(false), GndReflSolarRad(0.0), SurfHasSurroundingSurfProperty(false), SurfSchedExternalShadingFrac(false), SurfSurroundingSurfacesNum(0), SurfExternalShadingSchInd(0), - SurfLinkedOutAirNode(0) + SurfLinkedOutAirNode(0), SrdSurfTemp(0.0), ViewFactorSrdSurfs(0.0) { } @@ -837,13 +858,15 @@ namespace DataSurfaces { struct SurfaceWindowCalc // Calculated window-related values { // Members - Array1D SolidAngAtRefPt; // Solid angle subtended by window from daylit ref points 1 and 2 - Array1D SolidAngAtRefPtWtd; // Solid angle subtended by window from ref pts weighted by glare pos factor - Array2D IllumFromWinAtRefPt; // Illuminance from window at ref pts for window with and w/o shade (lux) - Array2D BackLumFromWinAtRefPt; // Window background luminance from window wrt ref pts (cd/m2) with and w/o shade (cd/m2) - Array2D SourceLumFromWinAtRefPt; // Window luminance at ref pts for window with and w/o shade (cd/m2) - Vector3 WinCenter; // X,Y,Z coordinates of window center point in building coord system - Array1D ThetaFace; // Face temperatures of window layers (K) + Array1D SolidAngAtRefPt; // Solid angle subtended by window from daylit ref points 1 and 2 + Array1D SolidAngAtRefPtWtd; // Solid angle subtended by window from ref pts weighted by glare pos factor + EPVector> + IllumFromWinAtRefPt; // Illuminance from window at ref pts for window with and w/o shade (lux) + EPVector> + BackLumFromWinAtRefPt; // Window background luminance from window wrt ref pts (cd/m2) with and w/o shade (cd/m2) + EPVector> SourceLumFromWinAtRefPt; // Window luminance at ref pts for window with and w/o shade (cd/m2) + Vector3 WinCenter = {0.0, 0.0, 0.0}; // X,Y,Z coordinates of window center point in building coord system + Array1D ThetaFace; // Face temperatures of window layers (K) Array1D OutProjSLFracMult; // Multiplier on sunlit fraction due to shadowing of glass by frame // and divider outside projections @@ -855,9 +878,11 @@ namespace DataSurfaces { Array1D IllumFromWinAtRefPtRep; // Illuminance from window at reference point N [lux] Array1D LumWinFromRefPtRep; // Window luminance as viewed from reference point N [cd/m2] // for shadowing of ground by building and obstructions [W/m2] - Array1D EnclAreaMinusThisSurf; // Enclosure inside surface area minus this surface and its subsurfaces + std::array EnclAreaMinusThisSurf = { + 0.0, 0.0, 0.0}; // Enclosure inside surface area minus this surface and its subsurfaces // for floor/wall/ceiling (m2) - Array1D EnclAreaReflProdMinusThisSurf; // Enclosure product of inside surface area times vis reflectance + std::array EnclAreaReflProdMinusThisSurf = { + 0.0, 0.0, 0.0}; // Enclosure product of inside surface area times vis reflectance // minus this surface and its subsurfaces, // for floor/wall/ceiling (m2) @@ -865,9 +890,8 @@ namespace DataSurfaces { // Default Constructor SurfaceWindowCalc() - : WinCenter(0.0, 0.0, 0.0), ThetaFace(10, 296.15), OutProjSLFracMult(24, 1.0), InOutProjSLFracMult(24, 1.0), - EffShBlindEmiss(Material::MaxSlatAngs, 0.0), EffGlassEmiss(Material::MaxSlatAngs, 0.0), EnclAreaMinusThisSurf(3, 0.0), - EnclAreaReflProdMinusThisSurf(3, 0.0) + : ThetaFace(10, 296.15), OutProjSLFracMult(24, 1.0), InOutProjSLFracMult(24, 1.0), EffShBlindEmiss(Material::MaxSlatAngs, 0.0), + EffGlassEmiss(Material::MaxSlatAngs, 0.0) { } }; @@ -1264,6 +1288,7 @@ namespace DataSurfaces { std::string Name; Real64 SkyViewFactor = 0.0; // sky view factor Real64 GroundViewFactor = 0.0; // ground view factor + Real64 SurfsViewFactorSum = 0.0; // surrounding surfaces view factor sum int SkyTempSchNum = 0; // schedule pointer int GroundTempSchNum = 0; // schedule pointer int TotSurroundingSurface = 0; // Total number of surrounding surfaces defined for an exterior surface @@ -1755,329 +1780,7 @@ struct SurfacesData : BaseGlobalStruct void clear_state() override { - this->TotSurfaces = 0; - this->TotWindows = 0; - this->TotStormWin = 0; - this->TotWinShadingControl = 0; - this->TotUserIntConvModels = 0; - this->TotUserExtConvModels = 0; - this->TotOSC = 0; - this->TotOSCM = 0; - this->TotExtVentCav = 0; - this->TotSurfIncSolSSG = 0; - this->TotSurfIncSolMultiplier = 0; - this->TotFenLayAbsSSG = 0; - this->TotSurfLocalEnv = 0; - this->TotSurfPropGndSurfs = 0; - this->Corner = 0; - this->MaxVerticesPerSurface = 4; - this->BuildingShadingCount = 0; - this->FixedShadingCount = 0; - this->AttachedShadingCount = 0; - this->ShadingSurfaceFirst = 0; - this->ShadingSurfaceLast = -1; - this->AspectTransform = false; - this->CalcSolRefl = false; - this->CCW = false; - this->WorldCoordSystem = false; - this->DaylRefWorldCoordSystem = false; - this->MaxRecPts = 0; - this->MaxReflRays = 0; - this->GroundLevelZ = 0.0; - this->AirflowWindows = false; - this->ShadingTransmittanceVaries = false; - this->UseRepresentativeSurfaceCalculations = false; - this->AnyMovableInsulation = false; - this->AnyMovableSlat = false; - this->SurfWinInsideGlassCondensationFlag.deallocate(); - this->SurfWinInsideFrameCondensationFlag.deallocate(); - this->SurfWinInsideDividerCondensationFlag.deallocate(); - this->SurfAdjacentZone.deallocate(); - this->X0.deallocate(); - this->Y0.deallocate(); - this->Z0.deallocate(); - this->RepresentativeSurfaceMap.clear(); - this->AllHTSurfaceList.clear(); - this->AllExtSolarSurfaceList.clear(); - this->AllExtSolAndShadingSurfaceList.clear(); - this->AllShadowPossObstrSurfaceList.clear(); - this->AllIZSurfaceList.clear(); - this->AllHTNonWindowSurfaceList.clear(); - this->AllHTWindowSurfaceList.clear(); - this->AllExtSolWindowSurfaceList.clear(); - this->AllExtSolWinWithFrameSurfaceList.clear(); - this->AllHTKivaSurfaceList.clear(); - this->AllSurfaceListReportOrder.clear(); - this->AllVaryAbsOpaqSurfaceList.clear(); - - this->SurfOutDryBulbTemp.deallocate(); - this->SurfOutWetBulbTemp.deallocate(); - this->SurfOutWindSpeed.deallocate(); - this->SurfOutWindDir.deallocate(); - this->SurfGenericContam.deallocate(); - this->SurfLowTempErrCount.deallocate(); - this->SurfHighTempErrCount.deallocate(); - this->SurfAirSkyRadSplit.deallocate(); - this->SurfSunCosHourly.deallocate(); - this->SurfSunlitArea.deallocate(); - this->SurfSunlitFrac.deallocate(); - this->SurfSkySolarInc.deallocate(); - this->SurfGndSolarInc.deallocate(); - this->SurfBmToBmReflFacObs.deallocate(); - this->SurfBmToDiffReflFacObs.deallocate(); - this->SurfBmToDiffReflFacGnd.deallocate(); - this->SurfSkyDiffReflFacGnd.deallocate(); - this->SurfOpaqAI.deallocate(); - this->SurfOpaqAO.deallocate(); - this->SurfPenumbraID.deallocate(); - this->SurfReflFacBmToDiffSolObs.deallocate(); - this->SurfReflFacBmToDiffSolGnd.deallocate(); - this->SurfReflFacBmToBmSolObs.deallocate(); - this->SurfReflFacSkySolObs.deallocate(); - this->SurfReflFacSkySolGnd.deallocate(); - this->SurfCosIncAveBmToBmSolObs.deallocate(); - this->SurfShadowDiffuseSolRefl.deallocate(); - this->SurfShadowDiffuseVisRefl.deallocate(); - this->SurfShadowGlazingFrac.deallocate(); - this->SurfShadowGlazingConstruct.deallocate(); - this->SurfShadowRecSurfNum.deallocate(); - this->SurfShadowDisabledZoneList.deallocate(); - this->SurfMaterialMovInsulExt.deallocate(); - this->SurfMaterialMovInsulInt.deallocate(); - this->SurfSchedMovInsulExt.deallocate(); - this->SurfSchedMovInsulInt.deallocate(); - this->SurfEMSConstructionOverrideON.deallocate(); - this->SurfEMSConstructionOverrideValue.deallocate(); - this->SurfEMSOverrideIntConvCoef.deallocate(); - this->SurfEMSValueForIntConvCoef.deallocate(); - this->SurfEMSOverrideExtConvCoef.deallocate(); - this->SurfEMSValueForExtConvCoef.deallocate(); - this->SurfOutDryBulbTempEMSOverrideOn.deallocate(); - this->SurfOutDryBulbTempEMSOverrideValue.deallocate(); - this->SurfOutWetBulbTempEMSOverrideOn.deallocate(); - this->SurfOutWetBulbTempEMSOverrideValue.clear(); - this->SurfWindSpeedEMSOverrideOn.deallocate(); - this->SurfWindSpeedEMSOverrideValue.deallocate(); - this->SurfViewFactorGroundEMSOverrideOn.deallocate(); - this->SurfViewFactorGroundEMSOverrideValue.deallocate(); - this->SurfWindDirEMSOverrideOn.deallocate(); - this->SurfWindDirEMSOverrideValue.deallocate(); - this->SurfDaylightingShelfInd.deallocate(); - this->SurfExtEcoRoof.deallocate(); - this->SurfExtCavityPresent.deallocate(); - this->SurfExtCavNum.deallocate(); - this->SurfIsPV.deallocate(); - this->SurfIsICS.deallocate(); - this->SurfIsPool.deallocate(); - this->SurfICSPtr.deallocate(); - this->SurfIsRadSurfOrVentSlabOrPool.deallocate(); - this->SurfTAirRef.deallocate(); - this->SurfTAirRefRpt.deallocate(); - - this->surfIntConv.deallocate(); - this->surfExtConv.deallocate(); - this->SurfWinA.deallocate(); - this->SurfWinADiffFront.deallocate(); - this->SurfWinACFOverlap.deallocate(); - this->SurfWinTransSolar.deallocate(); - this->SurfWinBmSolar.deallocate(); - this->SurfWinBmBmSolar.deallocate(); - this->SurfWinBmDifSolar.deallocate(); - this->SurfWinDifSolar.deallocate(); - this->SurfWinHeatGain.deallocate(); - this->SurfWinHeatGainRep.deallocate(); - this->SurfWinHeatLossRep.deallocate(); - this->SurfWinGainConvGlazToZoneRep.deallocate(); - this->SurfWinGainIRGlazToZoneRep.deallocate(); - this->SurfWinLossSWZoneToOutWinRep.deallocate(); - this->SurfWinGainFrameDividerToZoneRep.deallocate(); - this->SurfWinGainConvShadeToZoneRep.deallocate(); - this->SurfWinGainIRShadeToZoneRep.deallocate(); - this->SurfWinGapConvHtFlowRep.deallocate(); - this->SurfWinShadingAbsorbedSolar.deallocate(); - this->SurfWinSysSolTransmittance.deallocate(); - this->SurfWinSysSolReflectance.deallocate(); - this->SurfWinSysSolAbsorptance.deallocate(); - this->SurfWinTransSolarEnergy.deallocate(); - this->SurfWinBmSolarEnergy.deallocate(); - this->SurfWinBmBmSolarEnergy.deallocate(); - this->SurfWinBmDifSolarEnergy.deallocate(); - this->SurfWinDifSolarEnergy.deallocate(); - this->SurfWinHeatGainRepEnergy.deallocate(); - this->SurfWinHeatLossRepEnergy.deallocate(); - this->SurfWinShadingAbsorbedSolarEnergy.deallocate(); - this->SurfWinGapConvHtFlowRepEnergy.deallocate(); - this->SurfWinHeatTransferRepEnergy.deallocate(); - this->SurfWinIRfromParentZone.deallocate(); - this->SurfWinFrameQRadOutAbs.deallocate(); - this->SurfWinFrameQRadInAbs.deallocate(); - this->SurfWinDividerQRadOutAbs.deallocate(); - this->SurfWinDividerQRadInAbs.deallocate(); - this->SurfWinExtBeamAbsByShade.deallocate(); - this->SurfWinExtDiffAbsByShade.deallocate(); - this->SurfWinIntBeamAbsByShade.deallocate(); - this->SurfWinIntSWAbsByShade.deallocate(); - this->SurfWinInitialDifSolAbsByShade.deallocate(); - this->SurfWinIntLWAbsByShade.deallocate(); - this->SurfWinConvHeatFlowNatural.deallocate(); - this->SurfWinConvHeatGainToZoneAir.deallocate(); - this->SurfWinRetHeatGainToZoneAir.deallocate(); - this->SurfWinDividerHeatGain.deallocate(); - this->SurfWinBlTsolBmBm.deallocate(); - this->SurfWinBlTsolBmDif.deallocate(); - this->SurfWinBlTsolDifDif.deallocate(); - this->SurfWinBlGlSysTsolBmBm.deallocate(); - this->SurfWinBlGlSysTsolDifDif.deallocate(); - this->SurfWinScTsolBmBm.deallocate(); - this->SurfWinScTsolBmDif.deallocate(); - this->SurfWinScTsolDifDif.deallocate(); - this->SurfWinScGlSysTsolBmBm.deallocate(); - this->SurfWinScGlSysTsolDifDif.deallocate(); - this->SurfWinGlTsolBmBm.deallocate(); - this->SurfWinGlTsolBmDif.deallocate(); - this->SurfWinGlTsolDifDif.deallocate(); - this->SurfWinBmSolTransThruIntWinRep.deallocate(); - this->SurfWinBmSolAbsdOutsReveal.deallocate(); - this->SurfWinBmSolRefldOutsRevealReport.deallocate(); - this->SurfWinBmSolAbsdInsReveal.deallocate(); - this->SurfWinBmSolRefldInsReveal.deallocate(); - this->SurfWinBmSolRefldInsRevealReport.deallocate(); - this->SurfWinOutsRevealDiffOntoGlazing.deallocate(); - this->SurfWinInsRevealDiffOntoGlazing.deallocate(); - this->SurfWinInsRevealDiffIntoZone.deallocate(); - this->SurfWinOutsRevealDiffOntoFrame.deallocate(); - this->SurfWinInsRevealDiffOntoFrame.deallocate(); - this->SurfWinInsRevealDiffOntoGlazingReport.deallocate(); - this->SurfWinInsRevealDiffIntoZoneReport.deallocate(); - this->SurfWinInsRevealDiffOntoFrameReport.deallocate(); - this->SurfWinBmSolAbsdInsRevealReport.deallocate(); - this->SurfWinBmSolTransThruIntWinRepEnergy.deallocate(); - this->SurfWinBmSolRefldOutsRevealRepEnergy.deallocate(); - this->SurfWinBmSolRefldInsRevealRepEnergy.deallocate(); - this->SurfWinProfileAngHor.deallocate(); - this->SurfWinProfileAngVert.deallocate(); - this->SurfWinShadingFlag.deallocate(); - this->SurfWinShadingFlagEMSOn.deallocate(); - this->SurfWinShadingFlagEMSValue.deallocate(); - this->SurfWinStormWinFlag.deallocate(); - this->SurfWinStormWinFlagPrevDay.deallocate(); - this->SurfWinFracTimeShadingDeviceOn.deallocate(); - this->SurfWinExtIntShadePrevTS.deallocate(); - this->SurfWinHasShadeOrBlindLayer.deallocate(); - this->SurfWinSurfDayLightInit.deallocate(); - this->SurfWinDaylFacPoint.deallocate(); - this->SurfWinVisTransSelected.deallocate(); - this->SurfWinSwitchingFactor.deallocate(); - this->SurfWinTheta.deallocate(); - this->SurfWinPhi.deallocate(); - this->SurfWinRhoCeilingWall.deallocate(); - this->SurfWinRhoFloorWall.deallocate(); - this->SurfWinFractionUpgoing.deallocate(); - this->SurfWinVisTransRatio.deallocate(); - this->SurfWinFrameArea.deallocate(); - this->SurfWinFrameConductance.deallocate(); - this->SurfWinFrameSolAbsorp.deallocate(); - this->SurfWinFrameVisAbsorp.deallocate(); - this->SurfWinFrameEmis.deallocate(); - this->SurfWinFrEdgeToCenterGlCondRatio.deallocate(); - this->SurfWinFrameEdgeArea.deallocate(); - this->SurfWinFrameTempIn.deallocate(); - this->SurfWinFrameTempInOld.deallocate(); - this->SurfWinFrameTempSurfOut.deallocate(); - this->SurfWinProjCorrFrOut.deallocate(); - this->SurfWinProjCorrFrIn.deallocate(); - this->SurfWinDividerType.deallocate(); - this->SurfWinDividerArea.deallocate(); - this->SurfWinDividerConductance.deallocate(); - this->SurfWinDividerSolAbsorp.deallocate(); - this->SurfWinDividerVisAbsorp.deallocate(); - this->SurfWinDividerEmis.deallocate(); - this->SurfWinDivEdgeToCenterGlCondRatio.deallocate(); - this->SurfWinDividerEdgeArea.deallocate(); - this->SurfWinDividerTempIn.deallocate(); - this->SurfWinDividerTempInOld.deallocate(); - this->SurfWinDividerTempSurfOut.deallocate(); - this->SurfWinProjCorrDivOut.deallocate(); - this->SurfWinProjCorrDivIn.deallocate(); - this->SurfWinGlazedFrac.deallocate(); - this->SurfWinCenterGlArea.deallocate(); - this->SurfWinEdgeGlCorrFac.deallocate(); - this->SurfWinOriginalClass.deallocate(); - this->SurfWinShadeAbsFacFace1.deallocate(); - this->SurfWinShadeAbsFacFace2.deallocate(); - this->SurfWinConvCoeffWithShade.deallocate(); - this->SurfWinOtherConvHeatGain.deallocate(); - this->SurfWinBlindNumber.deallocate(); - this->SurfWinEffInsSurfTemp.deallocate(); - this->SurfWinMovableSlats.deallocate(); - this->SurfWinSlatAngThisTS.deallocate(); - this->SurfWinSlatAngThisTSDeg.deallocate(); - this->SurfWinSlatAngThisTSDegEMSon.deallocate(); - this->SurfWinSlatAngThisTSDegEMSValue.deallocate(); - this->SurfWinSlatsBlockBeam.deallocate(); - this->SurfWinSlatsAngIndex.deallocate(); - this->SurfWinSlatsAngInterpFac.deallocate(); - this->SurfWinProfileAng.deallocate(); - this->SurfWinProfAngIndex.deallocate(); - this->SurfWinProfAngInterpFac.deallocate(); - this->SurfWinBlindBmBmTrans.deallocate(); - this->SurfWinBlindAirFlowPermeability.deallocate(); - this->SurfWinTotGlazingThickness.deallocate(); - this->SurfWinTanProfileAngHor.deallocate(); - this->SurfWinTanProfileAngVert.deallocate(); - this->SurfWinInsideSillDepth.deallocate(); - this->SurfWinInsideReveal.deallocate(); - this->SurfWinInsideSillSolAbs.deallocate(); - this->SurfWinInsideRevealSolAbs.deallocate(); - this->SurfWinOutsideRevealSolAbs.deallocate(); - this->SurfWinScreenNumber.deallocate(); - this->SurfWinAirflowSource.deallocate(); - this->SurfWinAirflowDestination.deallocate(); - this->SurfWinAirflowReturnNodePtr.deallocate(); - this->SurfWinMaxAirflow.deallocate(); - this->SurfWinAirflowControlType.deallocate(); - this->SurfWinAirflowHasSchedule.deallocate(); - this->SurfWinAirflowSchedulePtr.deallocate(); - this->SurfWinAirflowThisTS.deallocate(); - this->SurfWinTAirflowGapOutlet.deallocate(); - this->SurfWinWindowCalcIterationsRep.deallocate(); - this->SurfWinVentingOpenFactorMultRep.deallocate(); - this->SurfWinInsideTempForVentingRep.deallocate(); - this->SurfWinVentingAvailabilityRep.deallocate(); - this->SurfWinSkyGndSolarInc.deallocate(); - this->SurfWinBmGndSolarInc.deallocate(); - this->SurfWinLightWellEff.deallocate(); - this->SurfWinSolarDiffusing.deallocate(); - this->SurfWinFrameHeatGain.deallocate(); - this->SurfWinFrameHeatLoss.deallocate(); - this->SurfWinDividerHeatLoss.deallocate(); - this->SurfWinTCLayerTemp.deallocate(); - this->SurfWinSpecTemp.deallocate(); - this->SurfWinWindowModelType.deallocate(); - this->SurfWinTDDPipeNum.deallocate(); - this->SurfWinStormWinConstr.deallocate(); - this->SurfActiveConstruction.deallocate(); - this->SurfWinActiveShadedConstruction.deallocate(); - this->AnyHeatBalanceInsideSourceTerm = false; - this->AnyHeatBalanceOutsideSourceTerm = false; - this->Surface.deallocate(); - this->SurfaceWindow.deallocate(); - this->FrameDivider.deallocate(); - this->StormWindow.deallocate(); - this->WindowShadingControl.deallocate(); - this->OSC.deallocate(); - this->OSCM.deallocate(); - this->userIntConvModels.deallocate(); - this->userExtConvModels.deallocate(); - this->ShadeV.deallocate(); - this->SurfIncSolSSG.deallocate(); - this->SurfIncSolMultiplier.deallocate(); - this->FenLayAbsSSG.deallocate(); - this->SurfLocalEnvironment.deallocate(); - this->SurroundingSurfsProperty.deallocate(); - this->IntMassObjects.deallocate(); - this->actualMaxSlatAngs = Material::MaxSlatAngs; - this->GroundSurfsProperty.deallocate(); + new (this) SurfacesData(); } }; diff --git a/src/EnergyPlus/DaylightingManager.cc b/src/EnergyPlus/DaylightingManager.cc index 175568e7a0b..df66f5166ad 100644 --- a/src/EnergyPlus/DaylightingManager.cc +++ b/src/EnergyPlus/DaylightingManager.cc @@ -54,9 +54,8 @@ // ObjexxFCL Headers #include #include -#include #include -#include +// #include #include #include #include @@ -173,27 +172,22 @@ void DayltgAveInteriorReflectance(EnergyPlusData &state, int const enclNum) // E // REFERENCES: // Based on DOE-2.1E subroutine DAVREF - SurfaceClass IType; // Surface type/class - Real64 AREA; // Inside surface area (m2) - Real64 AInsTot; // Total inside surface area of an enclosure (m2) - Real64 ARHTOT; // Sum over surfaces of AREA*(inside visible reflectance) (m2) - int ITILT; // Surface tilt category (1 = floor, 2 = wall, 3 = ceiling) - Real64 ATWL; // Opaque surface area (m2) - Real64 ARHTWL; // ATWL times inside visible reflectance of surface (m2) - Real64 ETA; // Ratio of floor-to-window-center height and average floor-to-ceiling height + Real64 AREA; // Inside surface area (m2) + Real64 ETA; // Ratio of floor-to-window-center height and average floor-to-ceiling height // Total inside surface area, including windows - AInsTot = 0.0; + Real64 AInsTot = 0.0; // Sum of products of inside surface area * vis reflectance - ARHTOT = 0.0; + Real64 ARHTOT = 0.0; + // Area sum and area * reflectance sum for different orientations - state.dataDaylightingManager->AR = 0.0; - state.dataDaylightingManager->ARH = 0.0; + std::array AR = {0.0, 0.0, 0.0}; + std::array ARH = {0.0, 0.0, 0.0}; // Loop over surfaces in the zone's enclosure auto &thisEnclosure(state.dataViewFactor->EnclSolInfo(enclNum)); for (int ISurf : thisEnclosure.SurfacePtr) { - IType = state.dataSurface->Surface(ISurf).Class; + SurfaceClass IType = state.dataSurface->Surface(ISurf).Class; // Error if window has multiplier > 1 since this causes incorrect illuminance calc if (IType == SurfaceClass::Window && state.dataSurface->Surface(ISurf).Multiplier > 1.0) { if (thisEnclosure.TotalEnclosureDaylRefPoints > 0) { @@ -223,18 +217,17 @@ void DayltgAveInteriorReflectance(EnergyPlusData &state, int const enclNum) // E (1.0 - state.dataSurface->SurfWinFrameSolAbsorp(ISurf)) + state.dataSurface->SurfWinDividerArea(ISurf) * (1.0 + state.dataSurface->SurfWinProjCorrDivIn(ISurf)) * (1.0 - state.dataSurface->SurfWinDividerSolAbsorp(ISurf)); - ITILT = 3; // Ceiling - if (state.dataSurface->Surface(ISurf).Tilt > 10.0 && state.dataSurface->Surface(ISurf).Tilt < 170.0) ITILT = 2; // Wall - if (state.dataSurface->Surface(ISurf).Tilt >= 170.0) ITILT = 1; // Floor - state.dataDaylightingManager->AR(ITILT) += - AREA + state.dataSurface->SurfWinFrameArea(ISurf) * (1.0 + 0.5 * state.dataSurface->SurfWinProjCorrFrIn(ISurf)) + - state.dataSurface->SurfWinDividerArea(ISurf) * (1.0 + state.dataSurface->SurfWinProjCorrDivIn(ISurf)); - state.dataDaylightingManager->ARH(ITILT) += - AREA * state.dataConstruction->Construct(state.dataSurface->Surface(ISurf).Construction).ReflectVisDiffBack + - state.dataSurface->SurfWinFrameArea(ISurf) * (1.0 + 0.5 * state.dataSurface->SurfWinProjCorrFrIn(ISurf)) * - (1.0 - state.dataSurface->SurfWinFrameSolAbsorp(ISurf)) + - state.dataSurface->SurfWinDividerArea(ISurf) * (1.0 + state.dataSurface->SurfWinProjCorrDivIn(ISurf)) * - (1.0 - state.dataSurface->SurfWinDividerSolAbsorp(ISurf)); + + FWC fwc = FWC::Ceiling; // Ceiling + if (state.dataSurface->Surface(ISurf).Tilt > 10.0 && state.dataSurface->Surface(ISurf).Tilt < 170.0) fwc = FWC::Wall; // Wall + if (state.dataSurface->Surface(ISurf).Tilt >= 170.0) fwc = FWC::Floor; // Floor + AR[(int)fwc] += AREA + state.dataSurface->SurfWinFrameArea(ISurf) * (1.0 + 0.5 * state.dataSurface->SurfWinProjCorrFrIn(ISurf)) + + state.dataSurface->SurfWinDividerArea(ISurf) * (1.0 + state.dataSurface->SurfWinProjCorrDivIn(ISurf)); + ARH[(int)fwc] += AREA * state.dataConstruction->Construct(state.dataSurface->Surface(ISurf).Construction).ReflectVisDiffBack + + state.dataSurface->SurfWinFrameArea(ISurf) * (1.0 + 0.5 * state.dataSurface->SurfWinProjCorrFrIn(ISurf)) * + (1.0 - state.dataSurface->SurfWinFrameSolAbsorp(ISurf)) + + state.dataSurface->SurfWinDividerArea(ISurf) * (1.0 + state.dataSurface->SurfWinProjCorrDivIn(ISurf)) * + (1.0 - state.dataSurface->SurfWinDividerSolAbsorp(ISurf)); } } @@ -247,26 +240,26 @@ void DayltgAveInteriorReflectance(EnergyPlusData &state, int const enclNum) // E // Total inside surface area of enclosure state.dataDaylightingData->enclDaylight(enclNum).totInsSurfArea = AInsTot; // Average floor visible reflectance - state.dataDaylightingData->enclDaylight(enclNum).floorVisRefl = - state.dataDaylightingManager->ARH(3) / (state.dataDaylightingManager->AR(3) + 1.e-6); + state.dataDaylightingData->enclDaylight(enclNum).floorVisRefl = ARH[(int)FWC::Ceiling] / (AR[(int)FWC::Ceiling] + 1.e-6); for (int ISurf : thisEnclosure.SurfacePtr) { auto const &surf = state.dataSurface->Surface(ISurf); - IType = surf.Class; + SurfaceClass IType = surf.Class; if (IType == SurfaceClass::Wall || IType == SurfaceClass::Floor || IType == SurfaceClass::Roof) { // Remove this surface from the space inside surface area and area*reflectivity // The resulting areas are AP(ITILT). The resulting area*reflectivity is ARHP(ITILT). // Initialize gross area of surface (including subsurfaces) - ATWL = surf.Area; // This is the surface area less subsurfaces + Real64 ATWL = surf.Area; // This is the surface area less subsurfaces // Area * reflectance for this surface, excluding attached windows and doors - ARHTWL = surf.Area * state.dataConstruction->Construct(surf.Construction).ReflectVisDiffBack; - // Tilt index + Real64 ARHTWL = surf.Area * state.dataConstruction->Construct(surf.Construction).ReflectVisDiffBack; + + FWC fwc; if (surf.Tilt > 45.0 && surf.Tilt < 135.0) { - ITILT = 2; // Wall + fwc = FWC::Wall; // Wall } else if (surf.Tilt >= 135.0) { - ITILT = 1; // Floor + fwc = FWC::Floor; // Floor } else { - ITILT = 3; // Ceiling + fwc = FWC::Ceiling; // Ceiling } // Loop over windows and doors on this wall for (int IWinDr : thisEnclosure.SurfacePtr) { @@ -284,18 +277,21 @@ void DayltgAveInteriorReflectance(EnergyPlusData &state, int const enclNum) // E (1.0 - state.dataSurface->SurfWinDividerSolAbsorp(IWinDr)); } } + + std::array AP; + std::array ARHP; // Inside surface area of floor, walls and ceilings, minus surface ISurf and its subsurfaces - for (int IT = 1; IT <= 3; ++IT) { - if (IT == ITILT) { - state.dataDaylightingManager->AP(IT) = state.dataDaylightingManager->AR(IT) - ATWL; - state.dataDaylightingManager->ARHP(IT) = state.dataDaylightingManager->ARH(IT) - ARHTWL; + for (int iFWC = (int)FWC::Floor; iFWC < (int)FWC::Num; ++iFWC) { + if (iFWC == (int)fwc) { + AP[iFWC] = AR[iFWC] - ATWL; + ARHP[iFWC] = ARH[iFWC] - ARHTWL; } else { - state.dataDaylightingManager->AP(IT) = state.dataDaylightingManager->AR(IT); - state.dataDaylightingManager->ARHP(IT) = state.dataDaylightingManager->ARH(IT); + AP[iFWC] = AR[iFWC]; + ARHP[iFWC] = ARH[iFWC]; } } - state.dataSurface->SurfaceWindow(ISurf).EnclAreaMinusThisSurf = state.dataDaylightingManager->AP; - state.dataSurface->SurfaceWindow(ISurf).EnclAreaReflProdMinusThisSurf = state.dataDaylightingManager->ARHP; + state.dataSurface->SurfaceWindow(ISurf).EnclAreaMinusThisSurf = AP; + state.dataSurface->SurfaceWindow(ISurf).EnclAreaReflProdMinusThisSurf = ARHP; } } // End of loop over opaque surfaces in enclosure @@ -308,15 +304,15 @@ void DayltgAveInteriorReflectance(EnergyPlusData &state, int const enclNum) // E min(1.0, (state.dataSurface->SurfaceWindow(IWin).WinCenter.z - state.dataHeatBal->Zone(zoneNum).OriginZ) * state.dataHeatBal->Zone(zoneNum).FloorArea / state.dataHeatBal->Zone(zoneNum).Volume)); - state.dataDaylightingManager->AP = state.dataSurface->SurfaceWindow(ISurf).EnclAreaMinusThisSurf; - state.dataDaylightingManager->ARHP = state.dataSurface->SurfaceWindow(ISurf).EnclAreaReflProdMinusThisSurf; + + std::array AP = state.dataSurface->SurfaceWindow(ISurf).EnclAreaMinusThisSurf; + std::array ARHP = state.dataSurface->SurfaceWindow(ISurf).EnclAreaReflProdMinusThisSurf; // Average reflectance seen by light moving up (RhoCeilingWall) and down (RhoFloorWall) // across horizontal plane through center of window state.dataSurface->SurfWinRhoCeilingWall(IWin) = - (state.dataDaylightingManager->ARHP(2) * (1.0 - ETA) + state.dataDaylightingManager->ARHP(3)) / - (state.dataDaylightingManager->AP(2) * (1.0 - ETA) + state.dataDaylightingManager->AP(3) + 1.0e-5); - state.dataSurface->SurfWinRhoFloorWall(IWin) = (state.dataDaylightingManager->ARHP(2) * ETA + state.dataDaylightingManager->ARHP(1)) / - (state.dataDaylightingManager->AP(2) * ETA + state.dataDaylightingManager->AP(1) + 1.e-9); + (ARHP[(int)FWC::Wall] * (1.0 - ETA) + ARHP[(int)FWC::Ceiling]) / (AP[(int)FWC::Wall] * (1.0 - ETA) + AP[(int)FWC::Ceiling] + 1.0e-5); + state.dataSurface->SurfWinRhoFloorWall(IWin) = + (ARHP[(int)FWC::Wall] * ETA + ARHP[(int)FWC::Floor]) / (AP[(int)FWC::Wall] * ETA + AP[(int)FWC::Floor] + 1.e-9); // Angle factor for windows with diffusing shades. SurfaceWindow(IWin)%FractionUpgoing is // fraction of light from the shade that goes up toward ceiling and upper part of walls. @@ -819,20 +815,20 @@ void CalcDayltgCoeffsRefPoints(EnergyPlusData &state, int const daylightCtrlNum) Real64 TVISIntWin; // Visible transmittance of int win at COSBIntWin for light from ext win Real64 TVISIntWinDisk; // Visible transmittance of int win at COSBIntWin for sun - auto &W2 = state.dataDaylightingManager->W2; - auto &W3 = state.dataDaylightingManager->W3; - auto &W21 = state.dataDaylightingManager->W21; - auto &W23 = state.dataDaylightingManager->W23; - auto &RREF2 = state.dataDaylightingManager->RREF2; - auto &RWIN = state.dataDaylightingManager->RWIN; - auto &RWIN2 = state.dataDaylightingManager->RWIN2; - auto &Ray = state.dataDaylightingManager->Ray; - auto &WNORM2 = state.dataDaylightingManager->WNORM2; - auto &VIEWVC = state.dataDaylightingManager->VIEWVC; - auto &U2 = state.dataDaylightingManager->U2; - auto &U21 = state.dataDaylightingManager->U21; - auto &U23 = state.dataDaylightingManager->U23; - auto &VIEWVC2 = state.dataDaylightingManager->VIEWVC2; + Vector3 W2; + Vector3 W3; + Vector3 W21; + Vector3 W23; + Vector3 RREF2; + Vector3 RWIN; + Vector3 RWIN2; + Vector3 Ray; + Vector3 WNORM2; + Vector3 VIEWVC; + Vector3 U2; + Vector3 U21; + Vector3 U23; + Vector3 VIEWVC2; int WinEl; // Current window element @@ -856,9 +852,14 @@ void CalcDayltgCoeffsRefPoints(EnergyPlusData &state, int const daylightCtrlNum) thisDaylightControl.GlareIndexAtRefPt = 0.0; // Glare index at reference points thisDaylightControl.SolidAngAtRefPt = 0.0; thisDaylightControl.SolidAngAtRefPtWtd = 0.0; - thisDaylightControl.IllumFromWinAtRefPt = 0.0; - thisDaylightControl.BackLumFromWinAtRefPt = 0.0; - thisDaylightControl.SourceLumFromWinAtRefPt = 0.0; + + for (int iExtWin = 1; iExtWin <= thisDaylightControl.TotalExtWindows; ++iExtWin) { + for (int iRefPt = 1; iRefPt <= thisDaylightControl.TotalDaylRefPoints; ++iRefPt) { + thisDaylightControl.IllumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + thisDaylightControl.BackLumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + thisDaylightControl.SourceLumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + } + } int iHrBeg = state.dataSysVars->DetailedSolarTimestepIntegration ? state.dataGlobal->HourOfDay : 1; int iHrEnd = state.dataSysVars->DetailedSolarTimestepIntegration ? state.dataGlobal->HourOfDay : Constant::HoursInDay; @@ -889,7 +890,7 @@ void CalcDayltgCoeffsRefPoints(EnergyPlusData &state, int const daylightCtrlNum) for (int IL = 1; IL <= NRF; ++IL) { // Reference point in absolute coordinate system - state.dataDaylightingManager->RREF = thisDaylightControl.DaylRefPtAbsCoord({1, 3}, IL); // ( x, y, z ) + Vector3 RREF = thisDaylightControl.DaylRefPtAbsCoord(IL); // ( x, y, z ) // ------------- // ---------- WINDOW LOOP ---------- @@ -901,7 +902,7 @@ void CalcDayltgCoeffsRefPoints(EnergyPlusData &state, int const daylightCtrlNum) IL, loopwin, CalledFor::RefPoint, - state.dataDaylightingManager->RREF, + RREF, VIEWVC, IWin, IWin2, @@ -960,7 +961,7 @@ void CalcDayltgCoeffsRefPoints(EnergyPlusData &state, int const daylightCtrlNum) W2, W21, W23, - state.dataDaylightingManager->RREF, + RREF, NWYlim, VIEWVC2, DWX, @@ -1181,20 +1182,20 @@ void CalcDayltgCoeffsMapPoints(EnergyPlusData &state, int const mapNum) Real64 TVISIntWinDisk; // Visible transmittance of int win at COSBIntWin for sun int WinEl; // window elements counter - auto &W2 = state.dataDaylightingManager->W2; - auto &W3 = state.dataDaylightingManager->W3; - auto &W21 = state.dataDaylightingManager->W21; - auto &W23 = state.dataDaylightingManager->W23; - auto &RREF2 = state.dataDaylightingManager->RREF2; - auto &RWIN = state.dataDaylightingManager->RWIN; - auto &RWIN2 = state.dataDaylightingManager->RWIN2; - auto &Ray = state.dataDaylightingManager->Ray; - auto &WNORM2 = state.dataDaylightingManager->WNORM2; - auto &VIEWVC = state.dataDaylightingManager->VIEWVC; - auto &U2 = state.dataDaylightingManager->U2; - auto &U21 = state.dataDaylightingManager->U21; - auto &U23 = state.dataDaylightingManager->U23; - auto &VIEWVC2 = state.dataDaylightingManager->VIEWVC2; + Vector3 W2; + Vector3 W3; + Vector3 W21; + Vector3 W23; + Vector3 RREF2; + Vector3 RWIN; + Vector3 RWIN2; + Vector3 Ray; + Vector3 WNORM2; + Vector3 VIEWVC; + Vector3 U2; + Vector3 U21; + Vector3 U23; + Vector3 VIEWVC2; if (state.dataDaylightingManager->mapFirstTime && (int)state.dataDaylightingData->IllumMap.size() > 0) { IL = -999; @@ -1220,7 +1221,12 @@ void CalcDayltgCoeffsMapPoints(EnergyPlusData &state, int const mapNum) int numExtWins = thisEnclDaylight.NumOfDayltgExtWins; illumMapCalc.DaylIllumAtMapPt = 0.0; // Daylight illuminance at reference points (lux) - illumMapCalc.IllumFromWinAtMapPt = 0.0; + + for (int iExtWin = 1; iExtWin <= (int)illumMapCalc.IllumFromWinAtMapPt.size1(); ++iExtWin) { + for (int iRefPt = 1; iRefPt <= (int)illumMapCalc.IllumFromWinAtMapPt.size2(); ++iRefPt) { + illumMapCalc.IllumFromWinAtMapPt(iExtWin, iRefPt) = {0.0, 0.0}; + } + } int iHrBeg = state.dataSysVars->DetailedSolarTimestepIntegration ? state.dataGlobal->HourOfDay : 1; int iHrEnd = state.dataSysVars->DetailedSolarTimestepIntegration ? state.dataGlobal->HourOfDay : Constant::HoursInDay; @@ -1239,7 +1245,7 @@ void CalcDayltgCoeffsMapPoints(EnergyPlusData &state, int const mapNum) for (int IL = 1; IL <= numRefPts; ++IL) { - state.dataDaylightingManager->RREF = illumMapCalc.MapRefPtAbsCoord({1, 3}, IL); // (x, y, z) + Vector3 RREF = illumMapCalc.MapRefPtAbsCoord(IL); // (x, y, z) // ------------- // ---------- WINDOW LOOP ---------- @@ -1253,7 +1259,7 @@ void CalcDayltgCoeffsMapPoints(EnergyPlusData &state, int const mapNum) IL, loopwin, CalledFor::MapPoint, - state.dataDaylightingManager->RREF, + RREF, VIEWVC, IWin, IWin2, @@ -1313,7 +1319,7 @@ void CalcDayltgCoeffsMapPoints(EnergyPlusData &state, int const mapNum) W2, W21, W23, - state.dataDaylightingManager->RREF, + RREF, NWYlim, VIEWVC2, DWX, @@ -1526,6 +1532,9 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, int zoneNum = 0; // zone number int enclNum = 0; // enclosure number + Vector3 W1 = {0.0, 0.0, 0.0}; + Vector3 WC = {0.0, 0.0, 0.0}; + if (CalledFrom == CalledFor::RefPoint) { state.dataDaylightingData->daylightControl(daylightCtrlNum).SolidAngAtRefPt(loopwin, iRefPoint) = 0.0; state.dataDaylightingData->daylightControl(daylightCtrlNum).SolidAngAtRefPtWtd(loopwin, iRefPoint) = 0.0; @@ -1583,11 +1592,11 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, // upper left as viewed from outside. W3 = state.dataSurface->Surface(IWin).Vertex(2); W2 = state.dataSurface->Surface(IWin).Vertex(3); - state.dataDaylightingManager->W1 = state.dataSurface->Surface(IWin).Vertex(4); + W1 = state.dataSurface->Surface(IWin).Vertex(4); } else if (is_Triangle) { W3 = state.dataSurface->Surface(IWin).Vertex(2); W2 = state.dataSurface->Surface(IWin).Vertex(3); - state.dataDaylightingManager->W1 = state.dataSurface->Surface(IWin).Vertex(1); + W1 = state.dataSurface->Surface(IWin).Vertex(1); } // Shade/blind calculation flag @@ -1610,39 +1619,39 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, // Unit vectors from window vertex 2 to 1 and 2 to 3, // center point of window, and vector from ref pt to center of window - W21 = state.dataDaylightingManager->W1 - W2; + W21 = W1 - W2; W23 = W3 - W2; HW = W21.magnitude(); WW = W23.magnitude(); if (is_Rectangle) { - state.dataDaylightingManager->WC = W2 + (W23 + W21) / 2.0; + WC = W2 + (W23 + W21) / 2.0; } else if (is_Triangle) { - state.dataDaylightingManager->WC = W2 + (W23 + W21) / 3.0; + WC = W2 + (W23 + W21) / 3.0; } - state.dataSurface->SurfaceWindow(IWin).WinCenter = state.dataDaylightingManager->WC; - state.dataDaylightingManager->REFWC = state.dataDaylightingManager->WC - RREF; + state.dataSurface->SurfaceWindow(IWin).WinCenter = WC; + Vector3 REFWC = WC - RREF; // Unit vectors W21 /= HW; W23 /= WW; // Unit vector normal to window (pointing away from room) - state.dataDaylightingManager->WNORM = state.dataSurface->Surface(IWin).lcsz; + Vector3 WNORM = state.dataSurface->Surface(IWin).lcsz; // Initialize number of window elements NDIVX = 40; NDIVY = 40; // Distance from ref point to window plane - ALF = std::abs(dot(state.dataDaylightingManager->WNORM, state.dataDaylightingManager->REFWC)); + ALF = std::abs(dot(WNORM, REFWC)); if (CalledFrom == CalledFor::RefPoint) { // Check if ref point to close to window due to input error (0.1524 m below is 0.5 ft) if (ALF < 0.1524 && extWinType == ExtWinType::InZone) { // Ref pt is close to window plane. Get vector from window // origin to projection of ref pt on window plane. - state.dataDaylightingManager->W2REF = RREF + ALF * state.dataDaylightingManager->WNORM - W2; + Vector3 W2REF = RREF + ALF * WNORM - W2; - D1a = dot(state.dataDaylightingManager->W2REF, W23); - D1b = dot(state.dataDaylightingManager->W2REF, W21); + D1a = dot(W2REF, W23); + D1b = dot(W2REF, W21); // ! Error message if ref pt is too close to window. if (D1a > 0.0 && D1b > 0.0 && D1b <= HW && D1a <= WW) { @@ -1721,9 +1730,9 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, DWY = HW / NWY; // Azimuth and altitude of window normal - state.dataSurface->SurfWinPhi(IWin) = std::asin(state.dataDaylightingManager->WNORM.z); - if (std::abs(state.dataDaylightingManager->WNORM.x) > 1.0e-5 || std::abs(state.dataDaylightingManager->WNORM.y) > 1.0e-5) { - state.dataSurface->SurfWinTheta(IWin) = std::atan2(state.dataDaylightingManager->WNORM.y, state.dataDaylightingManager->WNORM.x); + state.dataSurface->SurfWinPhi(IWin) = std::asin(WNORM.z); + if (std::abs(WNORM.x) > 1.0e-5 || std::abs(WNORM.y) > 1.0e-5) { + state.dataSurface->SurfWinTheta(IWin) = std::atan2(WNORM.y, WNORM.x); } else { state.dataSurface->SurfWinTheta(IWin) = 0.0; } @@ -1739,42 +1748,41 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, // Calculate reference point coords relative to the diffuser coordinate system // W21, W23, and WNORM are the unit vectors - state.dataDaylightingManager->REFD.x = dot(state.dataDaylightingManager->REFWC, W21); - state.dataDaylightingManager->REFD.y = dot(state.dataDaylightingManager->REFWC, W23); - state.dataDaylightingManager->REFD.z = dot(state.dataDaylightingManager->REFWC, state.dataDaylightingManager->WNORM); + Vector3 REFD = {dot(REFWC, W21), dot(REFWC, W23), dot(REFWC, WNORM)}; // Calculate view vector coords relative to the diffuser coordinate system - state.dataDaylightingManager->VIEWVD = {dot(VIEWVC, W21), dot(VIEWVC, W23), dot(VIEWVC, state.dataDaylightingManager->WNORM)}; + Vector3 VIEWVD = {dot(VIEWVC, W21), dot(VIEWVC, W23), dot(VIEWVC, WNORM)}; - state.dataDaylightingManager->U3 = surf2.Vertex(2); + Vector3 U3 = surf2.Vertex(2); U2 = surf2.Vertex(3); + Vector3 U1; if (surf2.Sides == 4) { // Vertices of window (numbered counter-clockwise starting // at upper left as viewed from inside of room) // Assumes original vertices are numbered counter-clockwise from // upper left as viewed from outside. - state.dataDaylightingManager->U3 = surf2.Vertex(2); + U3 = surf2.Vertex(2); U2 = surf2.Vertex(3); - state.dataDaylightingManager->U1 = surf2.Vertex(4); + U1 = surf2.Vertex(4); } else if (surf2.Sides == 3) { - state.dataDaylightingManager->U3 = surf2.Vertex(2); + U3 = surf2.Vertex(2); U2 = surf2.Vertex(3); - state.dataDaylightingManager->U1 = surf2.Vertex(1); + U1 = surf2.Vertex(1); } // Unit vectors from window vertex 2 to 1 and 2 to 3, // center point of window, and vector from ref pt to center of window - U21 = state.dataDaylightingManager->U1 - U2; - U23 = state.dataDaylightingManager->U3 - U2; + U21 = U1 - U2; + U23 = U3 - U2; HW = U21.magnitude(); WW = U23.magnitude(); if (surf2.Sides == 4) { - state.dataDaylightingManager->WC = U2 + (U23 + U21) / 2.0; + WC = U2 + (U23 + U21) / 2.0; } else if (surf2.Sides == 3) { - state.dataDaylightingManager->WC = U2 + (U23 + U21) / 3.0; + WC = U2 + (U23 + U21) / 3.0; } - state.dataSurface->SurfaceWindow(IWin2).WinCenter = state.dataDaylightingManager->WC; + state.dataSurface->SurfaceWindow(IWin2).WinCenter = WC; // Unit vectors U21 /= HW; U23 /= WW; @@ -1795,13 +1803,11 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, // Calculate new virtual reference point coords relative to dome coord system // W21, W23, and WNORM2 are now the unit vectors for the dome coord system - state.dataDaylightingManager->REFWC = - state.dataDaylightingManager->REFD.x * U21 + state.dataDaylightingManager->REFD.y * U23 + state.dataDaylightingManager->REFD.z * WNORM2; - RREF2 = state.dataDaylightingManager->WC - state.dataDaylightingManager->REFWC; + REFWC = REFD.x * U21 + REFD.y * U23 + REFD.z * WNORM2; + RREF2 = WC - REFWC; // Calculate new virtual view vector coords relative to dome coord system - VIEWVC2 = state.dataDaylightingManager->VIEWVD.x * U21 + state.dataDaylightingManager->VIEWVD.y * U23 + - state.dataDaylightingManager->VIEWVD.z * WNORM2; + VIEWVC2 = VIEWVD.x * U21 + VIEWVD.y * U23 + VIEWVD.z * WNORM2; // Copy several values from the diffuser so that DayltgInterReflectedIllum works correctly // These are specific to the interior. @@ -1813,7 +1819,7 @@ void FigureDayltgCoeffsAtPointsSetupForWindow(EnergyPlusData &state, } else { // This is not a TDD:DIFFUSER. Make sure nothing is messed up for a regular window. IWin2 = IWin; - WNORM2 = state.dataDaylightingManager->WNORM; + WNORM2 = WNORM; RREF2 = RREF; VIEWVC2 = VIEWVC; @@ -2011,6 +2017,8 @@ void FigureDayltgCoeffsAtPointsForWindowElements( TVISIntWinDisk = 0.0; // Init Value TVISIntWin = 0.0; + Vector3 HitPtIntWin = {0.0, 0.0, 0.0}; + if (state.dataSurface->SurfWinOriginalClass(IWin) == SurfaceClass::TDD_Diffuser) { // Look up the TDD:DOME object int PipeNum = state.dataSurface->SurfWinTDDPipeNum(IWin); @@ -2044,7 +2052,8 @@ void FigureDayltgCoeffsAtPointsForWindowElements( 1) { // in develop this was Surface(IntWin).Class == SurfaceClass::Window && Surface(IntWin).ExtBoundCond >= 1 if (state.dataSurface->Surface(state.dataSurface->Surface(IntWin).ExtBoundCond).Zone == state.dataSurface->Surface(IWin).Zone) { - PierceSurface(state, IntWin, RREF, Ray, state.dataDaylightingManager->HitPtIntWin, hitIntWin); + + PierceSurface(state, IntWin, RREF, Ray, HitPtIntWin, hitIntWin); if (hitIntWin) { IntWinHitNum = IntWin; COSBIntWin = dot(state.dataSurface->Surface(IntWin).OutNormVec, Ray); @@ -2083,10 +2092,10 @@ void FigureDayltgCoeffsAtPointsForWindowElements( if (extWinType == ExtWinType::AdjZone && IntWinHitNum > 0 && !hitIntObs) { // Check for obstruction between ref point and interior window through which ray passes - DayltgHitInteriorObstruction(state, IntWinHitNum, RREF, state.dataDaylightingManager->HitPtIntWin, hitIntObs); + DayltgHitInteriorObstruction(state, IntWinHitNum, RREF, HitPtIntWin, hitIntObs); if (!hitIntObs) { // Check for obstruction between intersection point on int window and ext win element - DayltgHitBetWinObstruction(state, IntWinHitNum, IWin, state.dataDaylightingManager->HitPtIntWin, RWIN, hitIntObs); + DayltgHitBetWinObstruction(state, IntWinHitNum, IWin, HitPtIntWin, RWIN, hitIntObs); } } if (CalledFrom == CalledFor::RefPoint) { @@ -2138,9 +2147,9 @@ void FigureDayltgCoeffsAtPointsForWindowElements( .IlluminanceMap(iRefPoint, MapNum) .RefSurfIndex(ICplxFen, WinEl); } - state.dataDaylightingManager->RayVector = state.dataBSDFWindow->ComplexWind(IWin).Geom(CplxFenState).sInc(RayIndex); + Vector3 RayVector = state.dataBSDFWindow->ComplexWind(IWin).Geom(CplxFenState).sInc(RayIndex); // It will get product of all transmittances - DayltgHitObstruction(state, state.dataGlobal->HourOfDay, IWin, RWIN, state.dataDaylightingManager->RayVector, TransBeam); + DayltgHitObstruction(state, state.dataGlobal->HourOfDay, IWin, RWIN, RayVector, TransBeam); // IF (TransBeam > 0.0d0) ObTrans = TransBeam if (CalledFrom == CalledFor::RefPoint) { state.dataBSDFWindow->ComplexWind(IWin).DaylghtGeom(CplxFenState).RefPoint(iRefPoint).TransOutSurf(ICplxFen, WinEl) = @@ -2166,11 +2175,9 @@ void FigureDayltgCoeffsAtPointsForWindowElements( Alfa = std::acos(-Ray.z); Beta = std::atan2(Ray.y, Ray.x); HorDis = (RWIN2.z - state.dataSurface->GroundLevelZ) * std::tan(Alfa); - state.dataDaylightingManager->GroundHitPt = { - RWIN2.x + HorDis * std::cos(Beta), RWIN2.y + HorDis * std::sin(Beta), state.dataSurface->GroundLevelZ}; + Vector3 GroundHitPt = {RWIN2.x + HorDis * std::cos(Beta), RWIN2.y + HorDis * std::sin(Beta), state.dataSurface->GroundLevelZ}; - SkyObstructionMult = CalcObstrMultiplier( - state, state.dataDaylightingManager->GroundHitPt, AltAngStepsForSolReflCalc, DataSurfaces::AzimAngStepsForSolReflCalc); + SkyObstructionMult = CalcObstrMultiplier(state, GroundHitPt, AltAngStepsForSolReflCalc, DataSurfaces::AzimAngStepsForSolReflCalc); } // End of check if solar reflection calculation is in effect } // End of check if COSB > 0 @@ -2201,12 +2208,12 @@ void InitializeCFSDaylighting(EnergyPlusData &state, Real64 DWY; // Window element height Real64 WinElArea; // Window element area - auto &W1 = state.dataDaylightingManager->W1; - auto &W2 = state.dataDaylightingManager->W2; - auto &W3 = state.dataDaylightingManager->W3; - auto &W21 = state.dataDaylightingManager->W21; - auto &W23 = state.dataDaylightingManager->W23; - auto &WNorm = state.dataDaylightingManager->WNorm; // unit vector from window (point towards outside) + Vector3 W1; + Vector3 W2; + Vector3 W3; + Vector3 W21; + Vector3 W23; + Vector3 WNorm; // Position factor variables Real64 AZVIEW; // Azimuth of view vector @@ -2392,9 +2399,9 @@ void InitializeCFSStateData(EnergyPlusData &state, Real64 TransRSurf; int J; - auto &RWin = state.dataDaylightingManager->RWin; - auto &V = state.dataDaylightingManager->V; - auto &GroundHitPt = state.dataDaylightingManager->GroundHitPt; + Vector3 RWin; + Vector3 V; + Vector3 GroundHitPt; // temporary arrays for surfaces // Each complex fenestration state can have different number of basis elements @@ -2408,10 +2415,10 @@ void InitializeCFSStateData(EnergyPlusData &state, Array2D TmpHSurfDSq(state.dataSurface->TotSurfaces, NBasis, 0.0); // Temporary HitSurfDSq // Object Data - Vector Centroid; // current window element centroid - Vector HitPt; // surface hit point - Array1D TmpGndPt(NBasis, Vector(0.0, 0.0, 0.0)); // Temporary ground intersection list - Array2D TmpHitPt(state.dataSurface->TotSurfaces, NBasis, Vector(0.0, 0.0, 0.0)); // Temporary HitPt + Vector3 Centroid; // current window element centroid + Vector3 HitPt; // surface hit point + Array1D> TmpGndPt(NBasis, Vector3(0.0, 0.0, 0.0)); // Temporary ground intersection list + Array2D> TmpHitPt(state.dataSurface->TotSurfaces, NBasis, Vector3(0.0, 0.0, 0.0)); // Temporary HitPt CFSRefPointPosFactor(state, RefPoint, StateRefPoint, iWin, CurFenState, NTrnBasis, AZVIEW); @@ -2707,22 +2714,14 @@ void CFSRefPointSolidAngle(EnergyPlusData &state, // PURPOSE OF THIS SUBROUTINE: // Calculate position factor for given reference point. - // SUBROUTINE LOCAL VARIABLES - auto &Ray = state.dataDaylightingManager->Ray; - auto &RayNorm = state.dataDaylightingManager->RayNorm; - Real64 BestMatch; - Real64 temp; - Real64 Dist; - Real64 CosB; - // calculate vector from center of window element to the current reference point - Ray = RefPoint - RWin; + Vector3 Ray = RefPoint - RWin; // figure out outgoing beam direction from current reference point - BestMatch = 0.0; + Real64 BestMatch = 0.0; for (int iTrnRay = 1; iTrnRay <= NTrnBasis; ++iTrnRay) { - state.dataDaylightingManager->V = state.dataBSDFWindow->ComplexWind(iWin).Geom(CurFenState).sTrn(iTrnRay); - temp = dot(Ray, state.dataDaylightingManager->V); + Vector3 const &V = state.dataBSDFWindow->ComplexWind(iWin).Geom(CurFenState).sTrn(iTrnRay); + Real64 temp = dot(Ray, V); if (temp > BestMatch) { BestMatch = temp; RefPointMap.RefPointIndex(curWinEl) = iTrnRay; @@ -2730,10 +2729,10 @@ void CFSRefPointSolidAngle(EnergyPlusData &state, } // calculate solid view angle - Dist = Ray.magnitude(); - RayNorm = Ray / (-Dist); + Real64 Dist = Ray.magnitude(); + Vector3 RayNorm = Ray / (-Dist); RefPointGeomMap.SolidAngleVec(curWinEl) = RayNorm; - CosB = dot(WNorm, RayNorm); + Real64 CosB = dot(WNorm, RayNorm); RefPointGeomMap.SolidAngle(curWinEl) = WinElArea * CosB / (Dist * Dist); } @@ -2762,13 +2761,16 @@ void CFSRefPointPosFactor(EnergyPlusData &state, auto const &sTrn = state.dataBSDFWindow->ComplexWind(iWin).Geom(CurFenState).sTrn; for (int iTrnRay = 1; iTrnRay <= NTrnBasis; ++iTrnRay) { - state.dataDaylightingManager->V = sTrn(iTrnRay); - state.dataDaylightingManager->V.negate(); - PierceSurface(state, iWin, RefPoint, state.dataDaylightingManager->V, state.dataDaylightingManager->InterPoint, hit); + Vector3 V = sTrn(iTrnRay); + V.negate(); + + Vector3 InterPoint; + + PierceSurface(state, iWin, RefPoint, V, InterPoint, hit); if (hit) { RefPointMap.RefPointIntersection(iTrnRay) = true; - elPos = WindowComplexManager::DaylghtAltAndAzimuth(state.dataDaylightingManager->V); + elPos = WindowComplexManager::DaylghtAltAndAzimuth(V); XR = std::tan(std::abs(Constant::PiOvr2 - AZVIEW - elPos.Azimuth) + 0.001); YR = std::tan(elPos.Altitude + 0.001); @@ -2811,14 +2813,13 @@ Real64 CalcObstrMultiplier(EnergyPlusData &state, Real64 CPhi; // cos of Phi Real64 Theta; // Azimuth angle of ray from a ground point (radians) - Real64 CosIncAngURay; // Cosine of incidence angle of URay on ground plane - Real64 dOmegaGnd; // Solid angle element of ray from ground point (steradians) - Real64 IncAngSolidAngFac; // CosIncAngURay*dOmegaGnd/Pi - bool hitObs; // True iff obstruction is hit - auto &URay = state.dataDaylightingManager->URay; // Unit vector in (Phi,Theta) direction - auto &ObsHitPt = state.dataDaylightingManager->ObsHitPt; // Unit vector in (Phi,Theta) direction - auto &AltSteps_last = state.dataDaylightingManager->AltSteps_last; // Unit vector in (Phi,Theta) direction - auto &AzimSteps_last = state.dataDaylightingManager->AzimSteps_last; + Real64 CosIncAngURay; // Cosine of incidence angle of URay on ground plane + Real64 dOmegaGnd; // Solid angle element of ray from ground point (steradians) + Real64 IncAngSolidAngFac; // CosIncAngURay*dOmegaGnd/Pi + bool hitObs; // True iff obstruction is hit + + Vector3 URay; // Unit vector in (Phi,Theta) direction + Vector3 ObsHitPt; // Unit vector in (Phi,Theta) direction assert(AzimSteps <= DataSurfaces::AzimAngStepsForSolReflCalc); @@ -2828,22 +2829,22 @@ Real64 CalcObstrMultiplier(EnergyPlusData &state, SkyGndUnObs = 0.0; // Tuned Precompute Phi trig table - if (AltSteps != AltSteps_last) { + if (AltSteps != state.dataDaylightingManager->AltSteps_last) { for (int IPhi = 1, IPhi_end = (AltSteps / 2); IPhi <= IPhi_end; ++IPhi) { Phi = (IPhi - 0.5) * DPhi; state.dataDaylightingManager->cos_Phi(IPhi) = std::cos(Phi); state.dataDaylightingManager->sin_Phi(IPhi) = std::sin(Phi); } - AltSteps_last = AltSteps; + state.dataDaylightingManager->AltSteps_last = AltSteps; } // Tuned Precompute Theta trig table - if (AzimSteps != AzimSteps_last) { + if (AzimSteps != state.dataDaylightingManager->AzimSteps_last) { for (int ITheta = 1; ITheta <= 2 * AzimSteps; ++ITheta) { Theta = (ITheta - 0.5) * DTheta; state.dataDaylightingManager->cos_Theta(ITheta) = std::cos(Theta); state.dataDaylightingManager->sin_Theta(ITheta) = std::sin(Theta); } - AzimSteps_last = AzimSteps; + state.dataDaylightingManager->AzimSteps_last = AzimSteps; } // Altitude loop @@ -2958,14 +2959,12 @@ void FigureDayltgCoeffsAtPointsForSunPosition( if (state.dataSurface->SurfSunCosHourly(iHour).z < DataEnvironment::SunIsUpValue) return; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - static Vector3 const RREF(0.0); // Location of a reference point in absolute coordinate system //Autodesk Was used uninitialized: + static const Vector3 RREF(0.0); // Location of a reference point in absolute coordinate system //Autodesk Was used uninitialized: // Never set here // Made static for performance and const for now until issue addressed - auto &XEDIRSK = state.dataDaylightingManager->XEDIRSK; - auto &XAVWLSK = state.dataDaylightingManager->XAVWLSK; - Real64 ProfAng; // Solar profile angle on a window (radians) - Real64 POSFAC; // Position factor for a window element / ref point / view vector combination - Real64 XR; // Horizontal displacement ratio - Real64 YR; // Vertical displacement ratio + Real64 ProfAng; // Solar profile angle on a window (radians) + Real64 POSFAC; // Position factor for a window element / ref point / view vector combination + Real64 XR; // Horizontal displacement ratio + Real64 YR; // Vertical displacement ratio Real64 ObTransDisk; // Product of solar transmittances of exterior obstructions hit by ray from reference point to sun Real64 LumAtHitPtFrSun; // Luminance at hit point of obstruction by reflection of direct light from sun (cd/m2) @@ -3045,9 +3044,9 @@ void FigureDayltgCoeffsAtPointsForSunPosition( if (COSB <= 0.0) return; - XEDIRSK = Illums(); + Illums XEDIRSK; // XEDIRSU = 0.0; //Unused Set but never used - XAVWLSK = Illums(); + Illums XAVWLSK; Real64 const Ray_3 = Ray.z; Real64 const DOMEGA_Ray_3 = DOMEGA * Ray_3; @@ -3067,8 +3066,8 @@ void FigureDayltgCoeffsAtPointsForSunPosition( // In the following hitIntObs == false ==> no interior obstructions hit, and // hitExtObs == true ==> one or more exterior obstructions hit. if (state.dataSurface->CalcSolRefl && !hitIntObs && hitExtObs) { - int NearestHitSurfNum; // Surface number of nearest obstruction - auto &NearestHitPt = state.dataDaylightingManager->NearestHitPt; // Hit point of ray on nearest obstruction + int NearestHitSurfNum; // Surface number of nearest obstruction + Vector3 NearestHitPt; // Hit point of ray on nearest obstruction // One or more exterior obstructions was hit; get contribution of reflection // from nearest obstruction. // Find obstruction whose hit point is closest to this ray's window element @@ -3158,8 +3157,8 @@ void FigureDayltgCoeffsAtPointsForSunPosition( state.dataDaylightingManager->AVWLSUdisk(iHour, 1) += state.dataDaylightingManager->WLUMSUdisk(iHour, 1); if (PHRAY > 0.0) state.dataDaylightingManager->EDIRSU(iHour, 1) += state.dataDaylightingManager->WLUMSU(iHour, 1) * DOMEGA_Ray_3; - } else { // Bare window - auto &GroundHitPt = state.dataDaylightingManager->GroundHitPt; // Coordinates of point that ray hits ground (m) + } else { // Bare window + Vector3 GroundHitPt; // Coordinates of point that ray hits ground (m) // Tuned Hoisted operations out of loop and linear indexing if (state.dataSurface->CalcSolRefl) { // Coordinates of ground point hit by the ray Alfa = std::acos(-Ray_3); @@ -3213,7 +3212,7 @@ void FigureDayltgCoeffsAtPointsForSunPosition( if (state.dataSurface->CalcSolRefl) { // Coordinates of ground point hit by the ray // Sun reaches ground point if vector from this point to the sun is unobstructed hitObs = false; - auto &ObsHitPt = state.dataDaylightingManager->ObsHitPt; // Coordinates of hit point on an obstruction (m) + Vector3 ObsHitPt; // Coordinates of hit point on an obstruction (m) for (int ObsSurfNum : state.dataSurface->AllShadowPossObstrSurfaceList) { PierceSurface(state, ObsSurfNum, GroundHitPt, SUNCOS_iHour, ObsHitPt, hitObs); if (hitObs) break; @@ -3230,11 +3229,11 @@ void FigureDayltgCoeffsAtPointsForSunPosition( // Illuminance from beam solar (without interior reflection) // Just run this once on the last pass if (iXelement == NWX && iYelement == NWY) { // Last pass - auto &RAYCOS = state.dataDaylightingManager->RAYCOS; // Beam solar reaching reference point directly without exterior reflection // Unit vector from ref. pt. to sun + Vector3 RAYCOS; RAYCOS.x = state.dataDaylightingManager->CPHSUN * std::cos(state.dataDaylightingManager->THSUN); RAYCOS.y = state.dataDaylightingManager->CPHSUN * std::sin(state.dataDaylightingManager->THSUN); RAYCOS.z = state.dataDaylightingManager->SPHSUN; @@ -3243,7 +3242,7 @@ void FigureDayltgCoeffsAtPointsForSunPosition( COSI = dot(WNORM2, RAYCOS); bool hit; // True if ray from ref point thru window element hits an obstruction bool hitWin; // True if ray passes thru window - auto &HP = state.dataDaylightingManager->HP; + Vector3 HP; if (COSI > 0.0) { // Does RAYCOS pass thru exterior window? HP is point that RAYCOS intersects window plane. @@ -3265,7 +3264,7 @@ void FigureDayltgCoeffsAtPointsForSunPosition( // Surface number of int window intersected by ray betw ref pt and sun int IntWinDiskHitNum; // Intersection point on an interior window for ray from ref pt to sun (m) - auto &HitPtIntWinDisk = state.dataDaylightingManager->HitPtIntWinDisk; + Vector3 HitPtIntWinDisk; auto const &thisZone = state.dataHeatBal->Zone(zoneNum); for (int const spaceNum : thisZone.spaceIndexes) { auto const &thisSpace = state.dataHeatBal->space(spaceNum); @@ -3352,8 +3351,8 @@ void FigureDayltgCoeffsAtPointsForSunPosition( state.dataDaylightingManager->EDIRSUdisk(iHour, 1) = RAYCOS.z * TVISS * ObTransDisk; // Bare window - auto &TransBmBmMult = state.dataDaylightingManager->TransBmBmMult; - TransBmBmMult = 0.0; + std::array transBmBmMult; + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); if (ANY_BLIND(ShType)) { ProfileAngle(state, IWin, RAYCOS, state.dataMaterial->Blind(BlNum).SlatOrientation, ProfAng); // Contribution of beam passing through slats and reaching reference point @@ -3364,12 +3363,12 @@ void FigureDayltgCoeffsAtPointsForSunPosition( } else { SlatAng = state.dataMaterial->Blind(BlNum).SlatAngle * Constant::DegToRadians; } - TransBmBmMult(JB) = WindowManager::BlindBeamBeamTrans(ProfAng, + transBmBmMult[JB] = WindowManager::BlindBeamBeamTrans(ProfAng, SlatAng, state.dataMaterial->Blind(BlNum).SlatWidth, state.dataMaterial->Blind(BlNum).SlatSeparation, state.dataMaterial->Blind(BlNum).SlatThickness); - state.dataDaylightingManager->EDIRSUdisk(iHour, JB + 1) = RAYCOS.z * TVISS * TransBmBmMult(JB) * ObTransDisk; + state.dataDaylightingManager->EDIRSUdisk(iHour, JB + 1) = RAYCOS.z * TVISS * transBmBmMult[JB] * ObTransDisk; // do this only once for fixed slat blinds if (!state.dataSurface->SurfWinMovableSlats(IWin)) break; @@ -3382,8 +3381,8 @@ void FigureDayltgCoeffsAtPointsForSunPosition( IWin, (state.dataDaylightingManager->PHSUN - state.dataSurface->SurfWinPhi(IWin)), (state.dataDaylightingManager->THSUN - state.dataSurface->SurfWinTheta(IWin))); - TransBmBmMult(1) = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmBmTrans; - state.dataDaylightingManager->EDIRSUdisk(iHour, 2) = RAYCOS.z * TVISS * TransBmBmMult(1) * ObTransDisk; + transBmBmMult[1] = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmBmTrans; + state.dataDaylightingManager->EDIRSUdisk(iHour, 2) = RAYCOS.z * TVISS * transBmBmMult[1] * ObTransDisk; } if (CalledFrom == CalledFor::RefPoint) { @@ -3410,11 +3409,11 @@ void FigureDayltgCoeffsAtPointsForSunPosition( if (ANY_BLIND(ShType)) { for (int JB = 1; JB <= Material::MaxSlatAngs; ++JB) { // IF (.NOT. SurfaceWindow(IWin)%MovableSlats .AND. JB > 1) EXIT - state.dataDaylightingManager->AVWLSUdisk(iHour, JB + 1) = XAVWL * TVISS * TransBmBmMult(JB) * ObTransDisk; + state.dataDaylightingManager->AVWLSUdisk(iHour, JB + 1) = XAVWL * TVISS * transBmBmMult[JB] * ObTransDisk; if (!state.dataSurface->SurfWinMovableSlats(IWin)) break; } } else if (ShType == WinShadingType::ExtScreen) { - state.dataDaylightingManager->AVWLSUdisk(iHour, 2) = XAVWL * TVISS * TransBmBmMult(1) * ObTransDisk; + state.dataDaylightingManager->AVWLSUdisk(iHour, 2) = XAVWL * TVISS * transBmBmMult[1] * ObTransDisk; } } // Position Factor } @@ -3430,11 +3429,11 @@ void FigureDayltgCoeffsAtPointsForSunPosition( int RecSurfNum = state.dataSurface->SurfShadowRecSurfNum(IWin2); if (RecSurfNum > 0) { // interior windows do not apply if (state.dataSolarReflectionManager->SolReflRecSurf(RecSurfNum).NumPossibleObs > 0) { - bool hitRefl; // True iff ray hits reflecting surface - auto &HitPtRefl = state.dataDaylightingManager->HitPtRefl; // Point that ray hits reflecting surface - auto &SunVecMir = state.dataDaylightingManager->SunVecMir; // Sun ray mirrored in reflecting surface - auto &ReflNorm = state.dataDaylightingManager->ReflNorm; // Normal vector to reflecting surface - auto &TransBmBmMultRefl = state.dataDaylightingManager->TransBmBmMultRefl; + bool hitRefl; // True iff ray hits reflecting surface + Vector3 HitPtRefl; // Point that ray hits reflecting surface + Vector3 SunVecMir; // Sun ray mirrored in reflecting surface + Vector3 ReflNorm; // Normal vector to reflecting surface + Vector3 TransBmBmMultRefl; // This window has associated obstructions that could reflect beam onto the window for (int loop = 1, loop_end = state.dataSolarReflectionManager->SolReflRecSurf(RecSurfNum).NumPossibleObs; loop <= loop_end; ++loop) { @@ -3472,7 +3471,7 @@ void FigureDayltgCoeffsAtPointsForSunPosition( ReflDistance = std::sqrt(ReflDistanceSq); // Is ray from ref. pt. to reflection point (HitPtRefl) obstructed? bool hitObsRefl = false; - auto &HitPtObs = state.dataDaylightingManager->HitPtObs; // Hit point on obstruction + Vector3 HitPtObs; // Hit point on obstruction for (int loop2 = 1, loop2_end = state.dataSolarReflectionManager->SolReflRecSurf(RecSurfNum).NumPossibleObs; loop2 <= loop2_end; ++loop2) { @@ -3898,12 +3897,12 @@ void GetDaylightingParametersInput(EnergyPlusData &state) surfWin.SolidAngAtRefPt = 0.0; surfWin.SolidAngAtRefPtWtd.allocate(numEnclRefPoints); surfWin.SolidAngAtRefPtWtd = 0.0; - surfWin.IllumFromWinAtRefPt.allocate(2, numEnclRefPoints); - surfWin.IllumFromWinAtRefPt = 0.0; - surfWin.BackLumFromWinAtRefPt.allocate(2, numEnclRefPoints); - surfWin.BackLumFromWinAtRefPt = 0.0; - surfWin.SourceLumFromWinAtRefPt.allocate(2, numEnclRefPoints); - surfWin.SourceLumFromWinAtRefPt = 0.0; + surfWin.IllumFromWinAtRefPt.allocate(numEnclRefPoints); + surfWin.IllumFromWinAtRefPt = {0.0, 0.0}; + surfWin.BackLumFromWinAtRefPt.allocate(numEnclRefPoints); + surfWin.BackLumFromWinAtRefPt = {0.0, 0.0}; + surfWin.SourceLumFromWinAtRefPt.allocate(numEnclRefPoints); + surfWin.SourceLumFromWinAtRefPt = {0.0, 0.0}; surfWin.IllumFromWinAtRefPtRep.allocate(numEnclRefPoints); surfWin.IllumFromWinAtRefPtRep = 0.0; surfWin.LumWinFromRefPtRep.allocate(numEnclRefPoints); @@ -3921,12 +3920,12 @@ void GetDaylightingParametersInput(EnergyPlusData &state) surfWin.SolidAngAtRefPt = 0.0; surfWin.SolidAngAtRefPtWtd.allocate(numAdjEnclRefPoints); surfWin.SolidAngAtRefPtWtd = 0.0; - surfWin.IllumFromWinAtRefPt.allocate(2, numAdjEnclRefPoints); - surfWin.IllumFromWinAtRefPt = 0.0; - surfWin.BackLumFromWinAtRefPt.allocate(2, numAdjEnclRefPoints); - surfWin.BackLumFromWinAtRefPt = 0.0; - surfWin.SourceLumFromWinAtRefPt.allocate(2, numAdjEnclRefPoints); - surfWin.SourceLumFromWinAtRefPt = 0.0; + surfWin.IllumFromWinAtRefPt.allocate(numAdjEnclRefPoints); + surfWin.IllumFromWinAtRefPt = {0.0, 0.0}; + surfWin.BackLumFromWinAtRefPt.allocate(numAdjEnclRefPoints); + surfWin.BackLumFromWinAtRefPt = {0.0, 0.0}; + surfWin.SourceLumFromWinAtRefPt.allocate(numAdjEnclRefPoints); + surfWin.SourceLumFromWinAtRefPt = {0.0, 0.0}; surfWin.IllumFromWinAtRefPtRep.allocate(numAdjEnclRefPoints); surfWin.IllumFromWinAtRefPtRep = 0.0; surfWin.LumWinFromRefPtRep.allocate(numAdjEnclRefPoints); @@ -4365,8 +4364,8 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) // Add additional daylighting reference points for map AddMapPoints = illumMap.Xnum * illumMap.Ynum; illumMapCalc.TotalMapRefPoints = AddMapPoints; - illumMapCalc.MapRefPtAbsCoord.allocate(3, AddMapPoints); - illumMapCalc.MapRefPtAbsCoord = 0.0; + illumMapCalc.MapRefPtAbsCoord.allocate(AddMapPoints); + illumMapCalc.MapRefPtAbsCoord = Vector3(0.0); illumMapCalc.MapRefPtInBounds.allocate(AddMapPoints); illumMapCalc.MapRefPtInBounds = true; illumMapCalc.DaylIllumAtMapPt.allocate(AddMapPoints); @@ -4402,26 +4401,25 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) // Map points and increments are stored in AbsCoord and then that is operated on if relative coords entered. for (int Y = 1; Y <= illumMap.Ynum; ++Y) { for (int X = 1; X <= illumMap.Xnum; ++X) { - illumMapCalc.MapRefPtAbsCoord(1, RefPt) = illumMap.Xmin + (X - 1) * illumMap.Xinc; - illumMapCalc.MapRefPtAbsCoord(2, RefPt) = illumMap.Ymin + (Y - 1) * illumMap.Yinc; - illumMapCalc.MapRefPtAbsCoord(3, RefPt) = illumMap.Z; + illumMapCalc.MapRefPtAbsCoord(RefPt) = { + illumMap.Xmin + (X - 1) * illumMap.Xinc, illumMap.Ymin + (Y - 1) * illumMap.Yinc, illumMap.Z}; ++RefPt; } } + RefPt = 1; for (int Y = 1; Y <= illumMap.Ynum; ++Y) { for (int X = 1; X <= illumMap.Xnum; ++X) { + auto &mapRefPtAbsCoord = illumMapCalc.MapRefPtAbsCoord(RefPt); if (!state.dataSurface->DaylRefWorldCoordSystem) { - Xb = illumMapCalc.MapRefPtAbsCoord(1, RefPt) * CosZoneRelNorth - - illumMapCalc.MapRefPtAbsCoord(2, RefPt) * SinZoneRelNorth + zone.OriginX; - Yb = illumMapCalc.MapRefPtAbsCoord(1, RefPt) * SinZoneRelNorth + - illumMapCalc.MapRefPtAbsCoord(2, RefPt) * CosZoneRelNorth + zone.OriginY; - illumMapCalc.MapRefPtAbsCoord(1, RefPt) = Xb * CosBldgRelNorth - Yb * SinBldgRelNorth; - illumMapCalc.MapRefPtAbsCoord(2, RefPt) = Xb * SinBldgRelNorth + Yb * CosBldgRelNorth; - illumMapCalc.MapRefPtAbsCoord(3, RefPt) += zone.OriginZ; + Xb = mapRefPtAbsCoord.x * CosZoneRelNorth - mapRefPtAbsCoord.y * SinZoneRelNorth + zone.OriginX; + Yb = mapRefPtAbsCoord.x * SinZoneRelNorth + mapRefPtAbsCoord.y * CosZoneRelNorth + zone.OriginY; + mapRefPtAbsCoord.x = Xb * CosBldgRelNorth - Yb * SinBldgRelNorth; + mapRefPtAbsCoord.y = Xb * SinBldgRelNorth + Yb * CosBldgRelNorth; + mapRefPtAbsCoord.z += zone.OriginZ; if (doTransform) { - Xo = illumMapCalc.MapRefPtAbsCoord(1, RefPt); // world coordinates.... shifted by relative north angle... - Yo = illumMapCalc.MapRefPtAbsCoord(2, RefPt); + Xo = mapRefPtAbsCoord.x; // world coordinates.... shifted by relative north angle... + Yo = mapRefPtAbsCoord.y; // next derotate the building XnoRot = Xo * CosBldgRelNorth + Yo * SinBldgRelNorth; YnoRot = Yo * CosBldgRelNorth - Xo * SinBldgRelNorth; @@ -4429,45 +4427,39 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) Xtrans = XnoRot * std::sqrt(NewAspectRatio / OldAspectRatio); Ytrans = YnoRot * std::sqrt(OldAspectRatio / NewAspectRatio); // rerotate - illumMapCalc.MapRefPtAbsCoord(1, RefPt) = Xtrans * CosBldgRelNorth - Ytrans * SinBldgRelNorth; + mapRefPtAbsCoord.x = Xtrans * CosBldgRelNorth - Ytrans * SinBldgRelNorth; - illumMapCalc.MapRefPtAbsCoord(2, RefPt) = Xtrans * SinBldgRelNorth + Ytrans * CosBldgRelNorth; + mapRefPtAbsCoord.y = Xtrans * SinBldgRelNorth + Ytrans * CosBldgRelNorth; } } else { - Xb = illumMapCalc.MapRefPtAbsCoord(1, RefPt); - Yb = illumMapCalc.MapRefPtAbsCoord(2, RefPt); - illumMapCalc.MapRefPtAbsCoord(1, RefPt) = Xb * CosBldgRotAppGonly - Yb * SinBldgRotAppGonly; - illumMapCalc.MapRefPtAbsCoord(2, RefPt) = Xb * SinBldgRotAppGonly + Yb * CosBldgRotAppGonly; + Xb = mapRefPtAbsCoord.x; + Yb = mapRefPtAbsCoord.y; + mapRefPtAbsCoord.x = Xb * CosBldgRotAppGonly - Yb * SinBldgRotAppGonly; + mapRefPtAbsCoord.y = Xb * SinBldgRotAppGonly + Yb * CosBldgRotAppGonly; } if (RefPt == 1) { - illumMap.Xmin = illumMapCalc.MapRefPtAbsCoord(1, RefPt); - illumMap.Ymin = illumMapCalc.MapRefPtAbsCoord(2, RefPt); - illumMap.Xmax = illumMapCalc.MapRefPtAbsCoord(1, RefPt); - illumMap.Ymax = illumMapCalc.MapRefPtAbsCoord(2, RefPt); - illumMap.Z = illumMapCalc.MapRefPtAbsCoord(3, RefPt); + illumMap.Xmin = mapRefPtAbsCoord.x; + illumMap.Ymin = mapRefPtAbsCoord.y; + illumMap.Xmax = mapRefPtAbsCoord.x; + illumMap.Ymax = mapRefPtAbsCoord.y; + illumMap.Z = mapRefPtAbsCoord.z; } - illumMap.Xmin = min(illumMap.Xmin, illumMapCalc.MapRefPtAbsCoord(1, RefPt)); - illumMap.Ymin = min(illumMap.Ymin, illumMapCalc.MapRefPtAbsCoord(2, RefPt)); - illumMap.Xmax = max(illumMap.Xmax, illumMapCalc.MapRefPtAbsCoord(1, RefPt)); - illumMap.Ymax = max(illumMap.Ymax, illumMapCalc.MapRefPtAbsCoord(2, RefPt)); - if ((illumMapCalc.MapRefPtAbsCoord(1, RefPt) < zone.MinimumX && - (zone.MinimumX - illumMapCalc.MapRefPtAbsCoord(1, RefPt)) > 0.001) || - (illumMapCalc.MapRefPtAbsCoord(1, RefPt) > zone.MaximumX && - (illumMapCalc.MapRefPtAbsCoord(1, RefPt) - zone.MaximumX) > 0.001) || - (illumMapCalc.MapRefPtAbsCoord(2, RefPt) < zone.MinimumY && - (zone.MinimumY - illumMapCalc.MapRefPtAbsCoord(2, RefPt)) > 0.001) || - (illumMapCalc.MapRefPtAbsCoord(2, RefPt) > zone.MaximumY && - (illumMapCalc.MapRefPtAbsCoord(2, RefPt) - zone.MaximumY) > 0.001) || - (illumMapCalc.MapRefPtAbsCoord(3, RefPt) < zone.MinimumZ && - (zone.MinimumZ - illumMapCalc.MapRefPtAbsCoord(3, RefPt)) > 0.001) || - (illumMapCalc.MapRefPtAbsCoord(3, RefPt) > zone.MaximumZ && - (illumMapCalc.MapRefPtAbsCoord(3, RefPt) - zone.MaximumZ) > 0.001)) { + illumMap.Xmin = min(illumMap.Xmin, mapRefPtAbsCoord.x); + illumMap.Ymin = min(illumMap.Ymin, mapRefPtAbsCoord.y); + illumMap.Xmax = max(illumMap.Xmax, mapRefPtAbsCoord.x); + illumMap.Ymax = max(illumMap.Ymax, mapRefPtAbsCoord.y); + if ((mapRefPtAbsCoord.x < zone.MinimumX && (zone.MinimumX - mapRefPtAbsCoord.x) > 0.001) || + (mapRefPtAbsCoord.x > zone.MaximumX && (mapRefPtAbsCoord.x - zone.MaximumX) > 0.001) || + (mapRefPtAbsCoord.y < zone.MinimumY && (zone.MinimumY - mapRefPtAbsCoord.y) > 0.001) || + (mapRefPtAbsCoord.y > zone.MaximumY && (mapRefPtAbsCoord.y - zone.MaximumY) > 0.001) || + (mapRefPtAbsCoord.z < zone.MinimumZ && (zone.MinimumZ - mapRefPtAbsCoord.z) > 0.001) || + (mapRefPtAbsCoord.z > zone.MaximumZ && (mapRefPtAbsCoord.z - zone.MaximumZ) > 0.001)) { illumMapCalc.MapRefPtInBounds(RefPt) = false; } // Test extremes of Map Points against Zone Min/Max if (RefPt == 1 || RefPt == illumMapCalc.TotalMapRefPoints) { - if ((illumMapCalc.MapRefPtAbsCoord(1, RefPt) < zone.MinimumX || - illumMapCalc.MapRefPtAbsCoord(1, RefPt) > zone.MaximumX) && + auto const &mapRefPtAbsCoord2 = illumMapCalc.MapRefPtAbsCoord(RefPt); + if ((mapRefPtAbsCoord2.x < zone.MinimumX || mapRefPtAbsCoord2.x > zone.MaximumX) && !illumMapCalc.MapRefPtInBounds(RefPt)) { ShowWarningError(state, format("GetInputIlluminanceMap: Reference Map point #[{}], X Value outside Zone Min/Max X, Zone={}", @@ -4475,21 +4467,18 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) zone.Name)); ShowContinueError(state, format("...X Reference Point= {:.2R}, Zone Minimum X= {:.2R}, Zone Maximum X= {:.2R}", - illumMapCalc.MapRefPtAbsCoord(1, RefPt), + mapRefPtAbsCoord2.x, zone.MinimumX, zone.MaximumX)); - if (illumMapCalc.MapRefPtAbsCoord(1, RefPt) < zone.MinimumX) { - ShowContinueError(state, - format("...X Reference Distance Outside MinimumX= {:.4R} m.", - zone.MinimumX - illumMapCalc.MapRefPtAbsCoord(1, RefPt))); + if (mapRefPtAbsCoord2.x < zone.MinimumX) { + ShowContinueError( + state, format("...X Reference Distance Outside MinimumX= {:.4R} m.", zone.MinimumX - mapRefPtAbsCoord2.x)); } else { - ShowContinueError(state, - format("...X Reference Distance Outside MaximumX= {:.4R} m.", - illumMapCalc.MapRefPtAbsCoord(1, RefPt) - zone.MaximumX)); + ShowContinueError( + state, format("...X Reference Distance Outside MaximumX= {:.4R} m.", mapRefPtAbsCoord2.x - zone.MaximumX)); } } - if ((illumMapCalc.MapRefPtAbsCoord(2, RefPt) < zone.MinimumY || - illumMapCalc.MapRefPtAbsCoord(2, RefPt) > zone.MaximumY) && + if ((mapRefPtAbsCoord2.y < zone.MinimumY || mapRefPtAbsCoord2.y > zone.MaximumY) && !illumMapCalc.MapRefPtInBounds(RefPt)) { ShowWarningError(state, format("GetInputIlluminanceMap: Reference Map point #[{}], Y Value outside Zone Min/Max Y, Zone={}", @@ -4497,21 +4486,18 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) zone.Name)); ShowContinueError(state, format("...Y Reference Point= {:.2R}, Zone Minimum Y= {:.2R}, Zone Maximum Y= {:.2R}", - illumMapCalc.MapRefPtAbsCoord(2, RefPt), + mapRefPtAbsCoord2.y, zone.MinimumY, zone.MaximumY)); - if (illumMapCalc.MapRefPtAbsCoord(2, RefPt) < zone.MinimumY) { - ShowContinueError(state, - format("...Y Reference Distance Outside MinimumY= {:.4R} m.", - zone.MinimumY - illumMapCalc.MapRefPtAbsCoord(2, RefPt))); + if (mapRefPtAbsCoord2.y < zone.MinimumY) { + ShowContinueError( + state, format("...Y Reference Distance Outside MinimumY= {:.4R} m.", zone.MinimumY - mapRefPtAbsCoord2.y)); } else { - ShowContinueError(state, - format("...Y Reference Distance Outside MaximumY= {:.4R} m.", - illumMapCalc.MapRefPtAbsCoord(2, RefPt) - zone.MaximumY)); + ShowContinueError( + state, format("...Y Reference Distance Outside MaximumY= {:.4R} m.", mapRefPtAbsCoord2.y - zone.MaximumY)); } } - if ((illumMapCalc.MapRefPtAbsCoord(3, RefPt) < zone.MinimumZ || - illumMapCalc.MapRefPtAbsCoord(3, RefPt) > zone.MaximumZ) && + if ((mapRefPtAbsCoord2.z < zone.MinimumZ || mapRefPtAbsCoord2.z > zone.MaximumZ) && !illumMapCalc.MapRefPtInBounds(RefPt)) { ShowWarningError(state, format("GetInputIlluminanceMap: Reference Map point #[{}], Z Value outside Zone Min/Max Z, Zone={}", @@ -4519,17 +4505,15 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) zone.Name)); ShowContinueError(state, format("...Z Reference Point= {:.2R}, Zone Minimum Z= {:.2R}, Zone Maximum Z= {:.2R}", - illumMapCalc.MapRefPtAbsCoord(3, RefPt), + mapRefPtAbsCoord2.z, zone.MinimumZ, zone.MaximumZ)); - if (illumMapCalc.MapRefPtAbsCoord(3, RefPt) < zone.MinimumZ) { - ShowContinueError(state, - format("...Z Reference Distance Outside MinimumZ= {:.4R} m.", - zone.MinimumZ - illumMapCalc.MapRefPtAbsCoord(3, RefPt))); + if (mapRefPtAbsCoord2.z < zone.MinimumZ) { + ShowContinueError( + state, format("...Z Reference Distance Outside MinimumZ= {:.4R} m.", zone.MinimumZ - mapRefPtAbsCoord2.z)); } else { - ShowContinueError(state, - format("...Z Reference Distance Outside MaximumZ= {:.4R} m.", - illumMapCalc.MapRefPtAbsCoord(3, RefPt) - zone.MaximumZ)); + ShowContinueError( + state, format("...Z Reference Distance Outside MaximumZ= {:.4R} m.", mapRefPtAbsCoord2.z - zone.MaximumZ)); } } } @@ -4539,6 +4523,7 @@ void GetInputIlluminanceMap(EnergyPlusData &state, bool &ErrorsFound) } } } // MapNum + ZoneMsgDone.dimension(state.dataGlobal->NumOfZones, false); for (int MapNum = 1; MapNum <= TotIllumMaps; ++MapNum) { auto const &illumMap = state.dataDaylightingData->IllumMap(MapNum); @@ -4788,7 +4773,7 @@ void GetDaylightingControls(EnergyPlusData &state, bool &ErrorsFound) daylightControl.IllumSetPoint.allocate(curTotalDaylRefPts); daylightControl.DaylIllumAtRefPt.allocate(curTotalDaylRefPts); daylightControl.GlareIndexAtRefPt.allocate(curTotalDaylRefPts); - daylightControl.DaylRefPtAbsCoord.allocate(3, curTotalDaylRefPts); + daylightControl.DaylRefPtAbsCoord.allocate(curTotalDaylRefPts); daylightControl.DaylRefPtInBounds.allocate(curTotalDaylRefPts); daylightControl.RefPtPowerReductionFactor.allocate(curTotalDaylRefPts); daylightControl.BacLum.allocate(curTotalDaylRefPts); @@ -4806,9 +4791,7 @@ void GetDaylightingControls(EnergyPlusData &state, bool &ErrorsFound) daylightControl.BacLum(refPt) = 0.0; daylightControl.TimeExceedingGlareIndexSPAtRefPt(refPt) = 0.0; daylightControl.TimeExceedingDaylightIlluminanceSPAtRefPt(refPt) = 0.0; - for (int coord = 1; coord <= 3; ++coord) { - daylightControl.DaylRefPtAbsCoord(coord, refPt) = 0.0; - } + daylightControl.DaylRefPtAbsCoord(refPt) = {0.0, 0.0, 0.0}; } int countRefPts = 0; @@ -4958,20 +4941,20 @@ void GeometryTransformForDaylighting(EnergyPlusData &state) curRefPt.indexToFracAndIllum = refPtNum; // back reference to the index to the ZoneDaylight structure arrays related to reference points if (state.dataSurface->DaylRefWorldCoordSystem) { // transform only by appendix G rotation - daylCntrl.DaylRefPtAbsCoord(1, refPtNum) = curRefPt.x * CosBldgRotAppGonly - curRefPt.y * SinBldgRotAppGonly; - daylCntrl.DaylRefPtAbsCoord(2, refPtNum) = curRefPt.x * SinBldgRotAppGonly + curRefPt.y * CosBldgRotAppGonly; - daylCntrl.DaylRefPtAbsCoord(3, refPtNum) = curRefPt.z; + daylCntrl.DaylRefPtAbsCoord(refPtNum).x = curRefPt.x * CosBldgRotAppGonly - curRefPt.y * SinBldgRotAppGonly; + daylCntrl.DaylRefPtAbsCoord(refPtNum).y = curRefPt.x * SinBldgRotAppGonly + curRefPt.y * CosBldgRotAppGonly; + daylCntrl.DaylRefPtAbsCoord(refPtNum).z = curRefPt.z; } else { // Transform reference point coordinates into building coordinate system Xb = curRefPt.x * CosZoneRelNorth - curRefPt.y * SinZoneRelNorth + zone.OriginX; Yb = curRefPt.x * SinZoneRelNorth + curRefPt.y * CosZoneRelNorth + zone.OriginY; // Transform into World Coordinate System - daylCntrl.DaylRefPtAbsCoord(1, refPtNum) = Xb * CosBldgRelNorth - Yb * SinBldgRelNorth; - daylCntrl.DaylRefPtAbsCoord(2, refPtNum) = Xb * SinBldgRelNorth + Yb * CosBldgRelNorth; - daylCntrl.DaylRefPtAbsCoord(3, refPtNum) = curRefPt.z + zone.OriginZ; + daylCntrl.DaylRefPtAbsCoord(refPtNum).x = Xb * CosBldgRelNorth - Yb * SinBldgRelNorth; + daylCntrl.DaylRefPtAbsCoord(refPtNum).y = Xb * SinBldgRelNorth + Yb * CosBldgRelNorth; + daylCntrl.DaylRefPtAbsCoord(refPtNum).z = curRefPt.z + zone.OriginZ; if (doTransform) { - Xo = daylCntrl.DaylRefPtAbsCoord(1, refPtNum); // world coordinates.... shifted by relative north angle... - Yo = daylCntrl.DaylRefPtAbsCoord(2, refPtNum); + Xo = daylCntrl.DaylRefPtAbsCoord(refPtNum).x; // world coordinates.... shifted by relative north angle... + Yo = daylCntrl.DaylRefPtAbsCoord(refPtNum).y; // next derotate the building XnoRot = Xo * CosBldgRelNorth + Yo * SinBldgRelNorth; YnoRot = Yo * CosBldgRelNorth - Xo * SinBldgRelNorth; @@ -4979,8 +4962,8 @@ void GeometryTransformForDaylighting(EnergyPlusData &state) Xtrans = XnoRot * std::sqrt(NewAspectRatio / OldAspectRatio); Ytrans = YnoRot * std::sqrt(OldAspectRatio / NewAspectRatio); // rerotate - daylCntrl.DaylRefPtAbsCoord(1, refPtNum) = Xtrans * CosBldgRelNorth - Ytrans * SinBldgRelNorth; - daylCntrl.DaylRefPtAbsCoord(2, refPtNum) = Xtrans * SinBldgRelNorth + Ytrans * CosBldgRelNorth; + daylCntrl.DaylRefPtAbsCoord(refPtNum).x = Xtrans * CosBldgRelNorth - Ytrans * SinBldgRelNorth; + daylCntrl.DaylRefPtAbsCoord(refPtNum).y = Xtrans * SinBldgRelNorth + Ytrans * CosBldgRelNorth; } } refName = curRefPt.Name; @@ -5004,61 +4987,61 @@ void GeometryTransformForDaylighting(EnergyPlusData &state) OutputReportPredefined::PreDefTableEntry( state, state.dataOutRptPredefined->pdchDyLtWCtrl, refName, rLightLevel * daylCntrl.FracZoneDaylit(refPtNum)); - if (daylCntrl.DaylRefPtAbsCoord(1, refPtNum) < zone.MinimumX || daylCntrl.DaylRefPtAbsCoord(1, refPtNum) > zone.MaximumX) { + if (daylCntrl.DaylRefPtAbsCoord(refPtNum).x < zone.MinimumX || daylCntrl.DaylRefPtAbsCoord(refPtNum).x > zone.MaximumX) { daylCntrl.DaylRefPtInBounds(refPtNum) = false; ShowWarningError(state, format("GeometryTransformForDaylighting: Reference point X Value outside Zone Min/Max X, Zone={}", zone.Name)); ShowContinueError(state, format("...X Reference Point= {:.2R}, Zone Minimum X= {:.2R}, Zone Maximum X= {:.2R}", - daylCntrl.DaylRefPtAbsCoord(1, refPtNum), + daylCntrl.DaylRefPtAbsCoord(refPtNum).x, zone.MinimumX, zone.MaximumX)); - if (daylCntrl.DaylRefPtAbsCoord(1, refPtNum) < zone.MinimumX) { + if (daylCntrl.DaylRefPtAbsCoord(refPtNum).x < zone.MinimumX) { ShowContinueError( state, - format("...X Reference Distance Outside MinimumX= {:.4R} m.", zone.MinimumX - daylCntrl.DaylRefPtAbsCoord(1, refPtNum))); + format("...X Reference Distance Outside MinimumX= {:.4R} m.", zone.MinimumX - daylCntrl.DaylRefPtAbsCoord(refPtNum).x)); } else { ShowContinueError( state, - format("...X Reference Distance Outside MaximumX= {:.4R} m.", daylCntrl.DaylRefPtAbsCoord(1, refPtNum) - zone.MaximumX)); + format("...X Reference Distance Outside MaximumX= {:.4R} m.", daylCntrl.DaylRefPtAbsCoord(refPtNum).x - zone.MaximumX)); } } - if (daylCntrl.DaylRefPtAbsCoord(2, refPtNum) < zone.MinimumY || daylCntrl.DaylRefPtAbsCoord(2, refPtNum) > zone.MaximumY) { + if (daylCntrl.DaylRefPtAbsCoord(refPtNum).y < zone.MinimumY || daylCntrl.DaylRefPtAbsCoord(refPtNum).y > zone.MaximumY) { daylCntrl.DaylRefPtInBounds(refPtNum) = false; ShowWarningError(state, format("GeometryTransformForDaylighting: Reference point Y Value outside Zone Min/Max Y, Zone={}", zone.Name)); ShowContinueError(state, format("...Y Reference Point= {:.2R}, Zone Minimum Y= {:.2R}, Zone Maximum Y= {:.2R}", - daylCntrl.DaylRefPtAbsCoord(2, refPtNum), + daylCntrl.DaylRefPtAbsCoord(refPtNum).x, zone.MinimumY, zone.MaximumY)); - if (daylCntrl.DaylRefPtAbsCoord(2, refPtNum) < zone.MinimumY) { + if (daylCntrl.DaylRefPtAbsCoord(refPtNum).y < zone.MinimumY) { ShowContinueError( state, - format("...Y Reference Distance Outside MinimumY= {:.4R} m.", zone.MinimumY - daylCntrl.DaylRefPtAbsCoord(2, refPtNum))); + format("...Y Reference Distance Outside MinimumY= {:.4R} m.", zone.MinimumY - daylCntrl.DaylRefPtAbsCoord(refPtNum).y)); } else { ShowContinueError( state, - format("...Y Reference Distance Outside MaximumY= {:.4R} m.", daylCntrl.DaylRefPtAbsCoord(2, refPtNum) - zone.MaximumY)); + format("...Y Reference Distance Outside MaximumY= {:.4R} m.", daylCntrl.DaylRefPtAbsCoord(refPtNum).y - zone.MaximumY)); } } - if (daylCntrl.DaylRefPtAbsCoord(3, refPtNum) < zone.MinimumZ || daylCntrl.DaylRefPtAbsCoord(3, refPtNum) > zone.MaximumZ) { + if (daylCntrl.DaylRefPtAbsCoord(refPtNum).z < zone.MinimumZ || daylCntrl.DaylRefPtAbsCoord(refPtNum).z > zone.MaximumZ) { daylCntrl.DaylRefPtInBounds(refPtNum) = false; ShowWarningError(state, format("GeometryTransformForDaylighting: Reference point Z Value outside Zone Min/Max Z, Zone={}", zone.Name)); ShowContinueError(state, format("...Z Reference Point= {:.2R}, Zone Minimum Z= {:.2R}, Zone Maximum Z= {:.2R}", - daylCntrl.DaylRefPtAbsCoord(3, refPtNum), + daylCntrl.DaylRefPtAbsCoord(refPtNum).z, zone.MinimumZ, zone.MaximumZ)); - if (daylCntrl.DaylRefPtAbsCoord(3, refPtNum) < zone.MinimumZ) { + if (daylCntrl.DaylRefPtAbsCoord(refPtNum).z < zone.MinimumZ) { ShowContinueError( state, - format("...Z Reference Distance Outside MinimumZ= {:.4R} m.", zone.MinimumZ - daylCntrl.DaylRefPtAbsCoord(3, refPtNum))); + format("...Z Reference Distance Outside MinimumZ= {:.4R} m.", zone.MinimumZ - daylCntrl.DaylRefPtAbsCoord(refPtNum).z)); } else { ShowContinueError( state, - format("...Z Reference Distance Outside MaximumZ= {:.4R} m.", daylCntrl.DaylRefPtAbsCoord(3, refPtNum) - zone.MaximumZ)); + format("...Z Reference Distance Outside MaximumZ= {:.4R} m.", daylCntrl.DaylRefPtAbsCoord(refPtNum).z - zone.MaximumZ)); } } } // for (refPtNum) reference point @@ -5354,10 +5337,10 @@ void DayltgGlare(EnergyPlusData &state, int WinShadingIndex = findWinShadingStatus(state, 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 - Real64 GTOT1 = 0.4794 * (std::pow(thisDaylightControl.SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL), 1.6)) * + Real64 GTOT1 = 0.4794 * (std::pow(thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[WinShadingIndex - 1], 1.6)) * std::pow(thisDaylightControl.SolidAngAtRefPtWtd(loop, IL), 0.8); Real64 GTOT2 = BLUM + 0.07 * (std::sqrt(thisDaylightControl.SolidAngAtRefPt(loop, IL))) * - thisDaylightControl.SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL); + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[WinShadingIndex - 1]; GTOT += GTOT1 / (GTOT2 + 0.000001); } @@ -5407,10 +5390,10 @@ void DayltgGlareWithIntWins(EnergyPlusData &state, int WinShadingIndex = findWinShadingStatus(state, 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 - Real64 GTOT1 = 0.4794 * (std::pow(thisDaylightControl.SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL), 1.6)) * + Real64 GTOT1 = 0.4794 * (std::pow(thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[WinShadingIndex - 1], 1.6)) * std::pow(thisDaylightControl.SolidAngAtRefPtWtd(loop, IL), 0.8); Real64 GTOT2 = BackgroundLum + 0.07 * (std::sqrt(thisDaylightControl.SolidAngAtRefPt(loop, IL))) * - thisDaylightControl.SourceLumFromWinAtRefPt(loop, WinShadingIndex, IL); + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[WinShadingIndex - 1]; GTOT += GTOT1 / (GTOT2 + 0.000001); } @@ -5455,12 +5438,12 @@ void DayltgExtHorizIllum(EnergyPlusData &state, // Init if (state.dataDaylightingManager->DayltgExtHorizIllum_firstTime) { for (int IPH = 1; IPH <= NPH; ++IPH) { - state.dataDaylightingManager->PH(IPH) = (IPH - 0.5) * DPH; - state.dataDaylightingManager->SPHCPH(IPH) = - std::sin(state.dataDaylightingManager->PH(IPH)) * std::cos(state.dataDaylightingManager->PH(IPH)); // DA = COS(PH)*DTH*DPH + state.dataDaylightingManager->PH[IPH] = (IPH - 0.5) * DPH; + state.dataDaylightingManager->SPHCPH[IPH] = + std::sin(state.dataDaylightingManager->PH[IPH]) * std::cos(state.dataDaylightingManager->PH[IPH]); // DA = COS(PH)*DTH*DPH } for (int ITH = 1; ITH <= NTH; ++ITH) { - state.dataDaylightingManager->TH(ITH) = (ITH - 0.5) * DTH; + state.dataDaylightingManager->TH[ITH] = (ITH - 0.5) * DTH; } state.dataDaylightingManager->DayltgExtHorizIllum_firstTime = false; } @@ -5469,10 +5452,10 @@ void DayltgExtHorizIllum(EnergyPlusData &state, // Sky integration for (int IPH = 1; IPH <= NPH; ++IPH) { - Real64 const PH_IPH(state.dataDaylightingManager->PH(IPH)); - Real64 const SPHCPH_IPH(state.dataDaylightingManager->SPHCPH(IPH)); + Real64 const PH_IPH = state.dataDaylightingManager->PH[IPH]; + Real64 const SPHCPH_IPH = state.dataDaylightingManager->SPHCPH[IPH]; for (int ITH = 1; ITH <= NTH; ++ITH) { - Real64 const TH_ITH(state.dataDaylightingManager->TH(ITH)); + Real64 const TH_ITH = state.dataDaylightingManager->TH[ITH]; for (int iSky = (int)SkyType::Clear; iSky < (int)SkyType::Num; ++iSky) { HISK.sky[iSky] += DayltgSkyLuminance(state, static_cast(iSky), TH_ITH, PH_IPH) * SPHCPH_IPH; } @@ -5525,6 +5508,7 @@ void DayltgHitObstruction(EnergyPlusData &state, auto const &window(state.dataSurface->Surface(IWin)); int const window_iBaseSurf(window.BaseSurf); + Vector3 DayltgHitObstructionHP; // Loop over potentially obstructing surfaces, which can be building elements, like walls, or shadowing surfaces, like overhangs // Building elements are assumed to be opaque // A shadowing surface is opaque unless its transmittance schedule value is non-zero @@ -5534,13 +5518,13 @@ void DayltgHitObstruction(EnergyPlusData &state, auto const &surface = state.dataSurface->Surface(ISurf); SurfaceClass IType = surface.Class; if ((IType == SurfaceClass::Wall || IType == SurfaceClass::Roof || IType == SurfaceClass::Floor) && (ISurf != window_iBaseSurf)) { - PierceSurface(state, ISurf, R1, RN, state.dataDaylightingManager->DayltgHitObstructionHP, hit); + PierceSurface(state, ISurf, R1, RN, DayltgHitObstructionHP, hit); if (hit) { // Building element is hit (assumed opaque) ObTrans = 0.0; break; } } else if (surface.IsShadowing) { - PierceSurface(state, ISurf, R1, RN, state.dataDaylightingManager->DayltgHitObstructionHP, hit); + PierceSurface(state, ISurf, R1, RN, DayltgHitObstructionHP, hit); if (hit) { // Shading surface is hit // Get solar transmittance of the shading surface Real64 const Trans( @@ -5564,14 +5548,15 @@ void DayltgHitObstruction(EnergyPlusData &state, auto solarTransmittance = [=, &state, &R1, &RN, &hit, &ObTrans](SurfaceData const &surface) -> bool { if (!surface.IsShadowPossibleObstruction) return false; // Do Consider separate octree without filtered surfaces DataSurfaces::SurfaceClass const sClass(surface.Class); + Vector3 HP; if ((sClass == SurfaceClass::Wall || sClass == SurfaceClass::Roof || sClass == SurfaceClass::Floor) && (&surface != window_base_p)) { - PierceSurface(surface, R1, RN, state.dataDaylightingManager->DayltgHitObstructionHP, hit); + PierceSurface(surface, R1, RN, HP, hit); if (hit) { // Building element is hit (assumed opaque) ObTrans = 0.0; return true; } } else if (surface.IsShadowing) { - PierceSurface(surface, R1, RN, state.dataDaylightingManager->DayltgHitObstructionHP, hit); + PierceSurface(surface, R1, RN, HP, hit); if (hit) { // Shading surface is hit // Get solar transmittance of the shading surface Real64 const Trans( @@ -5613,11 +5598,9 @@ void DayltgHitInteriorObstruction(EnergyPlusData &state, // Preconditions assert(magnitude(R2 - R1) > 0.0); // Protect normalize() from divide by zero - auto &RN = state.dataDaylightingManager->RN; // Unit vector along ray - hit = false; - RN = (R2 - R1).normalize(); // Make unit vector - Real64 const d12(distance(R1, R2)); // Distance between R1 and R2 + Vector3 RN = (R2 - R1).normalize(); // Make unit vector + Real64 const d12(distance(R1, R2)); // Distance between R1 and R2 auto const &window(state.dataSurface->Surface(IWin)); int const window_Enclosure(window.SolarEnclIndex); @@ -5628,7 +5611,7 @@ void DayltgHitInteriorObstruction(EnergyPlusData &state, // Loop over potentially obstructing surfaces, which can be building elements, like walls, or shadowing surfaces, like overhangs if (state.dataSurface->TotSurfaces < octreeCrossover) { // Linear search through surfaces // Hit coordinates, if ray hits an obstruction - auto &DayltgHitInteriorObstructionHP = state.dataDaylightingManager->DayltgHitInteriorObstructionHP; + Vector3 DayltgHitInteriorObstructionHP; for (int ISurf = 1; ISurf <= state.dataSurface->TotSurfaces; ++ISurf) { auto const &surface = state.dataSurface->Surface(ISurf); @@ -5650,19 +5633,15 @@ void DayltgHitInteriorObstruction(EnergyPlusData &state, auto const *window_base_adjacent_p(&window_base_adjacent); // Lambda function for the octree to test for surface hit - auto surfaceHit = [=, &R1, &hit, &state](SurfaceData const &surface) -> bool { + auto surfaceHit = [=, &R1, &hit](SurfaceData const &surface) -> bool { DataSurfaces::SurfaceClass const sClass(surface.Class); + Vector3 HP; // Hit point if ((surface.IsShadowing) || // Shadowing surface ((surface.SolarEnclIndex == window_Enclosure) && // Surface is in same zone as window (sClass == SurfaceClass::Wall || sClass == SurfaceClass::Roof || sClass == SurfaceClass::Floor) && // Wall, ceiling/roof, or floor (&surface != window_base_p) && (&surface != window_base_adjacent_p))) // Exclude window's base or base-adjacent surfaces { - PierceSurface(surface, - R1, - RN, - d12, - state.dataDaylightingManager->DayltgHitInteriorObstructionHP, - hit); // Check if R2-R1 segment pierces surface + PierceSurface(surface, R1, RN, d12, HP, hit); // Check if R2-R1 segment pierces surface return hit; } else { return false; @@ -5699,8 +5678,9 @@ void DayltgHitBetWinObstruction(EnergyPlusData &state, SurfaceClass IType; // Surface type/class hit = false; - state.dataDaylightingManager->DayltgHitBetWinObstructionRN = (R2 - R1).normalize(); // Unit vector - Real64 const d12(distance(R1, R2)); // Distance between R1 and R2 (m) + Vector3 RN = (R2 - R1).normalize(); // Unit vector + + Real64 const d12(distance(R1, R2)); // Distance between R1 and R2 (m) auto const &window1(state.dataSurface->Surface(IWin1)); int const window1_iBaseSurf(window1.BaseSurf); @@ -5729,14 +5709,9 @@ void DayltgHitBetWinObstruction(EnergyPlusData &state, (ISurf != window1_iBaseSurf) && (ISurf != window2_iBaseSurf) && // Exclude windows' base surfaces (ISurf != window1_base_iExtBoundCond) && (ISurf != window2_base_iExtBoundCond))) // Exclude windows' base-adjacent surfaces { - PierceSurface(state, - ISurf, - R1, - state.dataDaylightingManager->DayltgHitBetWinObstructionRN, - d12, - state.dataDaylightingManager->DayltgHitBetWinObstructionHP, - hit); // Check if R2-R1 segment pierces surface - if (hit) break; // Segment pierces surface: Don't check the rest + Vector3 HP; + PierceSurface(state, ISurf, R1, RN, d12, HP, hit); // Check if R2-R1 segment pierces surface + if (hit) break; // Segment pierces surface: Don't check the rest } } @@ -5751,19 +5726,16 @@ void DayltgHitBetWinObstruction(EnergyPlusData &state, auto const *window2_base_adjacent_p(&window2_base_adjacent); // Lambda function for the octree to test for surface hit - auto surfaceHit = [=, &R1, &hit, &state](SurfaceData const &surface) -> bool { + auto surfaceHit = [=, &R1, &RN, &hit](SurfaceData const &surface) -> bool { DataSurfaces::SurfaceClass const sClass(surface.Class); + Vector3 HP; if ((surface.IsShadowing) || // Shadowing surface ((surface.SolarEnclIndex == window2_Enclosure) && // Surface is in same zone as window (sClass == SurfaceClass::Wall || sClass == SurfaceClass::Roof || sClass == SurfaceClass::Floor) && // Wall, ceiling/roof, or floor (&surface != window1_base_p) && (&surface != window2_base_p) && // Exclude windows' base surfaces (&surface != window1_base_adjacent_p) && (&surface != window2_base_adjacent_p))) // Exclude windows' base-adjacent surfaces { - PierceSurface(surface, - R1, - state.dataDaylightingManager->DayltgHitBetWinObstructionRN, - d12, - state.dataDaylightingManager->DayltgHitBetWinObstructionHP, + PierceSurface(surface, R1, RN, d12, HP, hit); // Check if R2-R1 segment pierces surface return hit; } else { @@ -5819,10 +5791,10 @@ void initDaylighting(EnergyPlusData &state, bool const initSurfaceHeatBalancefir auto &thisEnclDaylight = state.dataDaylightingData->enclDaylight(enclNum); for (int extWinNum = 1; extWinNum <= thisEnclDaylight.NumOfDayltgExtWins; ++extWinNum) { int IWin = thisEnclDaylight.DayltgExtWinSurfNums(extWinNum); - int IS = 1; + WinCover winCover = WinCover::Bare; if (state.dataSurface->SurfWinWindowModelType(IWin) != WindowModel::BSDF && (IS_SHADED(state.dataSurface->SurfWinShadingFlag(IWin)) || state.dataSurface->SurfWinSolarDiffusing(IWin))) { - IS = 2; + winCover = WinCover::Shaded; } int refPtCount = 0; for (int controlNum : state.dataDaylightingData->enclDaylight(enclNum).daylightControlIndexes) { @@ -5831,9 +5803,9 @@ void initDaylighting(EnergyPlusData &state, bool const initSurfaceHeatBalancefir for (int refPtNum = 1; refPtNum <= thisControl.TotalDaylRefPoints; ++refPtNum) { ++refPtCount; // Count reference points across each daylighting control in the same enclosure state.dataSurface->SurfaceWindow(IWin).IllumFromWinAtRefPtRep(refPtCount) = - thisControl.IllumFromWinAtRefPt(extWinNum, IS, refPtNum); + thisControl.IllumFromWinAtRefPt(extWinNum, refPtNum)[(int)winCover]; state.dataSurface->SurfaceWindow(IWin).LumWinFromRefPtRep(refPtCount) = - thisControl.SourceLumFromWinAtRefPt(extWinNum, IS, refPtNum); + thisControl.SourceLumFromWinAtRefPt(extWinNum, refPtNum)[(int)winCover]; } } } @@ -6088,9 +6060,9 @@ void DayltgInteriorIllum(EnergyPlusData &state, if (state.dataDaylightingManager->DayltgInteriorIllum_firstTime) { int const d1(max(maxval(state.dataHeatBal->Zone, &DataHeatBalance::ZoneData::NumSubSurfaces), maxval(state.dataDaylightingData->enclDaylight, &EnclDaylightCalc::NumOfDayltgExtWins))); - tmpIllumFromWinAtRefPt.allocate(d1, 2, state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); - tmpBackLumFromWinAtRefPt.allocate(d1, 2, state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); - tmpSourceLumFromWinAtRefPt.allocate(d1, 2, state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); + tmpIllumFromWinAtRefPt.allocate(d1, state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); + tmpBackLumFromWinAtRefPt.allocate(d1, state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); + tmpSourceLumFromWinAtRefPt.allocate(d1, state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); SetPnt.allocate(state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); state.dataDaylightingManager->DaylIllum.allocate(state.dataDaylightingManager->maxNumRefPtInAnyDaylCtrl); @@ -6099,9 +6071,14 @@ void DayltgInteriorIllum(EnergyPlusData &state, state.dataDaylightingManager->DayltgInteriorIllum_firstTime = false; } - tmpIllumFromWinAtRefPt = 0.0; - tmpBackLumFromWinAtRefPt = 0.0; - tmpSourceLumFromWinAtRefPt = 0.0; + + for (int iExtWin = 1; iExtWin <= (int)tmpIllumFromWinAtRefPt.size1(); ++iExtWin) { + for (int iRefPt = 1; iRefPt <= (int)tmpIllumFromWinAtRefPt.size2(); ++iRefPt) { + tmpIllumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + tmpBackLumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + tmpSourceLumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + } + } // Initialize reference point illuminance and window background luminance for (int IL = 1; IL <= NREFPT; ++IL) { @@ -6159,23 +6136,23 @@ void DayltgInteriorIllum(EnergyPlusData &state, // Daylight factors for current sun position auto const &illSkyCurr = thisDaylightControl.DaylIllFacSky(state.dataGlobal->HourOfDay, loop, IL, 1); auto const &illSkyPrev = thisDaylightControl.DaylIllFacSky(state.dataGlobal->PreviousHour, loop, IL, 1); - auto &dfskhr = state.dataDaylightingManager->DFSKHR(1); + auto &dfskhr = state.dataDaylightingManager->DFSKHR[(int)WinCover::Bare]; auto const &backSkyCurr = thisDaylightControl.DaylBackFacSky(state.dataGlobal->HourOfDay, loop, IL, 1); auto const &backSkyPrev = thisDaylightControl.DaylBackFacSky(state.dataGlobal->PreviousHour, loop, IL, 1); - auto &bfskhr = state.dataDaylightingManager->BFSKHR(1); + auto &bfskhr = state.dataDaylightingManager->BFSKHR[(int)WinCover::Bare]; auto const &sourceSkyCurr = thisDaylightControl.DaylSourceFacSky(state.dataGlobal->HourOfDay, loop, IL, 1); auto const &sourceSkyPrev = thisDaylightControl.DaylSourceFacSky(state.dataGlobal->PreviousHour, loop, IL, 1); - auto &sfskhr = state.dataDaylightingManager->SFSKHR(1); + auto &sfskhr = state.dataDaylightingManager->SFSKHR[(int)WinCover::Bare]; auto const &ill2SkyCurr = thisDaylightControl.DaylIllFacSky(state.dataGlobal->HourOfDay, loop, IL, 2); auto const &ill2SkyPrev = thisDaylightControl.DaylIllFacSky(state.dataGlobal->PreviousHour, loop, IL, 2); - auto &dfskhr2 = state.dataDaylightingManager->DFSKHR(2); + auto &dfskhr2 = state.dataDaylightingManager->DFSKHR[(int)WinCover::Shaded]; auto const &back2SkyCurr = thisDaylightControl.DaylBackFacSky(state.dataGlobal->HourOfDay, loop, IL, 2); auto const &back2SkyPrev = thisDaylightControl.DaylBackFacSky(state.dataGlobal->PreviousHour, loop, IL, 2); - auto &bfskhr2 = state.dataDaylightingManager->BFSKHR(2); + auto &bfskhr2 = state.dataDaylightingManager->BFSKHR[(int)WinCover::Shaded]; auto const &source2SkyCurr = thisDaylightControl.DaylSourceFacSky(state.dataGlobal->HourOfDay, loop, IL, 2); auto const &source2SkyPrev = thisDaylightControl.DaylSourceFacSky(state.dataGlobal->PreviousHour, loop, IL, 2); - auto &sfskhr2 = state.dataDaylightingManager->SFSKHR(2); + auto &sfskhr2 = state.dataDaylightingManager->SFSKHR[(int)WinCover::Shaded]; int SurfWinSlatsAngIndex = state.dataSurface->SurfWinSlatsAngIndex(IWin); int slatAngLo = SurfWinSlatsAngIndex + 1; @@ -6232,21 +6209,21 @@ void DayltgInteriorIllum(EnergyPlusData &state, } // for (iSky) // Sun daylight factor for bare/shaded window - state.dataDaylightingManager->DFSUHR(1) = + state.dataDaylightingManager->DFSUHR[(int)WinCover::Bare] = VTRatio * (wgtCurrHr * (thisDaylightControl.DaylIllFacSun(state.dataGlobal->HourOfDay, loop, IL, 1) + thisDaylightControl.DaylIllFacSunDisk(state.dataGlobal->HourOfDay, loop, IL, 1)) + wgtPrevHr * (thisDaylightControl.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, IL, 1) + thisDaylightControl.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, 1))); // Sun background luminance factor for bare/shaded window - state.dataDaylightingManager->BFSUHR(1) = + state.dataDaylightingManager->BFSUHR[(int)WinCover::Bare] = VTRatio * (wgtCurrHr * (thisDaylightControl.DaylBackFacSun(state.dataGlobal->HourOfDay, loop, IL, 1) + thisDaylightControl.DaylBackFacSunDisk(state.dataGlobal->HourOfDay, loop, IL, 1)) + wgtPrevHr * (thisDaylightControl.DaylBackFacSun(state.dataGlobal->PreviousHour, loop, IL, 1) + thisDaylightControl.DaylBackFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, 1))); // Sun source luminance factor for bare/shaded window - state.dataDaylightingManager->SFSUHR(1) = + state.dataDaylightingManager->SFSUHR[(int)WinCover::Bare] = VTRatio * (wgtCurrHr * (thisDaylightControl.DaylSourceFacSun(state.dataGlobal->HourOfDay, loop, IL, 1) + thisDaylightControl.DaylSourceFacSunDisk(state.dataGlobal->HourOfDay, loop, IL, 1)) + wgtPrevHr * (thisDaylightControl.DaylSourceFacSun(state.dataGlobal->PreviousHour, loop, IL, 1) + @@ -6257,28 +6234,28 @@ void DayltgInteriorIllum(EnergyPlusData &state, // ===Shaded window or window with diffusing glass=== if (!state.dataSurface->SurfWinMovableSlats(IWin)) { // Shade, screen, blind with fixed slats, or diffusing glass - state.dataDaylightingManager->DFSUHR(2) = + state.dataDaylightingManager->DFSUHR[(int)WinCover::Shaded] = VTRatio * (wgtCurrHr * thisDaylightControl.DaylIllFacSun(state.dataGlobal->HourOfDay, loop, IL, 2) + wgtPrevHr * thisDaylightControl.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, IL, 2)); - state.dataDaylightingManager->BFSUHR(2) = + state.dataDaylightingManager->BFSUHR[(int)WinCover::Shaded] = VTRatio * (wgtCurrHr * thisDaylightControl.DaylBackFacSun(state.dataGlobal->HourOfDay, loop, IL, 2) + wgtPrevHr * thisDaylightControl.DaylBackFacSun(state.dataGlobal->PreviousHour, loop, IL, 2)); - state.dataDaylightingManager->SFSUHR(2) = + state.dataDaylightingManager->SFSUHR[(int)WinCover::Shaded] = VTRatio * (wgtCurrHr * thisDaylightControl.DaylSourceFacSun(state.dataGlobal->HourOfDay, loop, IL, 2) + wgtPrevHr * thisDaylightControl.DaylSourceFacSun(state.dataGlobal->PreviousHour, loop, IL, 2)); if (!state.dataSurface->SurfWinSlatsBlockBeam(IWin)) { - state.dataDaylightingManager->DFSUHR(2) += + state.dataDaylightingManager->DFSUHR[(int)WinCover::Shaded] += VTRatio * (wgtCurrHr * thisDaylightControl.DaylIllFacSunDisk(state.dataGlobal->HourOfDay, loop, IL, 2) + wgtPrevHr * thisDaylightControl.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, 2)); - state.dataDaylightingManager->BFSUHR(2) += + state.dataDaylightingManager->BFSUHR[(int)WinCover::Shaded] += VTRatio * (wgtCurrHr * thisDaylightControl.DaylBackFacSunDisk(state.dataGlobal->HourOfDay, loop, IL, 2) + wgtPrevHr * thisDaylightControl.DaylBackFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, 2)); - state.dataDaylightingManager->SFSUHR(2) += + state.dataDaylightingManager->SFSUHR[(int)WinCover::Shaded] += VTRatio * (wgtCurrHr * thisDaylightControl.DaylSourceFacSunDisk(state.dataGlobal->HourOfDay, loop, IL, 2) + wgtPrevHr * thisDaylightControl.DaylSourceFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, 2)); } @@ -6310,9 +6287,12 @@ void DayltgInteriorIllum(EnergyPlusData &state, General::Interp(thisDaylightControl.DaylSourceFacSun(state.dataGlobal->PreviousHour, loop, IL, slatAngLo), thisDaylightControl.DaylSourceFacSun(state.dataGlobal->PreviousHour, loop, IL, slatAngHi), SurfWinSlatsAngInterpFac); - state.dataDaylightingManager->DFSUHR(2) = VTRatio * (wgtCurrHr * DaylIllFacSunNow + wgtPrevHr * DaylIllFacSunPrev); - state.dataDaylightingManager->BFSUHR(2) = VTRatio * (wgtCurrHr * DaylBackFacSunNow + wgtPrevHr * DaylBackFacSunPrev); - state.dataDaylightingManager->SFSUHR(2) = VTRatio * (wgtCurrHr * DaylSourceFacSunNow + wgtPrevHr * DaylSourceFacSunPrev); + state.dataDaylightingManager->DFSUHR[(int)WinCover::Shaded] = + VTRatio * (wgtCurrHr * DaylIllFacSunNow + wgtPrevHr * DaylIllFacSunPrev); + state.dataDaylightingManager->BFSUHR[(int)WinCover::Shaded] = + VTRatio * (wgtCurrHr * DaylBackFacSunNow + wgtPrevHr * DaylBackFacSunPrev); + state.dataDaylightingManager->SFSUHR[(int)WinCover::Shaded] = + VTRatio * (wgtCurrHr * DaylSourceFacSunNow + wgtPrevHr * DaylSourceFacSunPrev); // We add the contribution from the solar disk if slats do not block beam solar // TH CR 8010, DaylIllFacSunDisk needs to be interpolated @@ -6341,9 +6321,11 @@ void DayltgInteriorIllum(EnergyPlusData &state, General::Interp(thisDaylightControl.DaylSourceFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, slatAngLo), thisDaylightControl.DaylSourceFacSunDisk(state.dataGlobal->PreviousHour, loop, IL, slatAngHi), SurfWinSlatsAngInterpFac); - state.dataDaylightingManager->DFSUHR(2) += VTRatio * (wgtCurrHr * DaylIllFacSunDiskNow + wgtPrevHr * DaylIllFacSunDiskPrev); - state.dataDaylightingManager->BFSUHR(2) += VTRatio * (wgtCurrHr * DaylBackFacSunDiskNow + wgtPrevHr * DaylBackFacSunDiskPrev); - state.dataDaylightingManager->SFSUHR(2) += + state.dataDaylightingManager->DFSUHR[(int)WinCover::Shaded] += + VTRatio * (wgtCurrHr * DaylIllFacSunDiskNow + wgtPrevHr * DaylIllFacSunDiskPrev); + state.dataDaylightingManager->BFSUHR[(int)WinCover::Shaded] += + VTRatio * (wgtCurrHr * DaylBackFacSunDiskNow + wgtPrevHr * DaylBackFacSunDiskPrev); + state.dataDaylightingManager->SFSUHR[(int)WinCover::Shaded] += VTRatio * (wgtCurrHr * DaylSourceFacSunDiskNow + wgtPrevHr * DaylSourceFacSunDiskPrev); } } // End of check if window has blind with movable slats @@ -6372,32 +6354,34 @@ void DayltgInteriorIllum(EnergyPlusData &state, HorIllSkyFac = state.dataEnvrn->HISKF / ((1 - SkyWeight) * horIllSky2 + SkyWeight * horIllSky1); - for (int IS = 1; IS <= 2; ++IS) { - auto const &dfskhr = state.dataDaylightingManager->DFSKHR(IS); - auto const &bfskhr = state.dataDaylightingManager->BFSKHR(IS); - auto const &sfskhr = state.dataDaylightingManager->SFSKHR(IS); + for (int iWinCover = 0; iWinCover < (int)WinCover::Num; ++iWinCover) { + auto const &dfskhr = state.dataDaylightingManager->DFSKHR[iWinCover]; + auto const &bfskhr = state.dataDaylightingManager->BFSKHR[iWinCover]; + auto const &sfskhr = state.dataDaylightingManager->SFSKHR[iWinCover]; - if (IS == 2 && !ShadedOrDiffusingGlassWin) break; + // What is this? + if (iWinCover == (int)WinCover::Shaded && !ShadedOrDiffusingGlassWin) break; - thisDaylightControl.IllumFromWinAtRefPt(loop, IS, IL) = - state.dataDaylightingManager->DFSUHR(IS) * state.dataEnvrn->HISUNF + + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[iWinCover] = + state.dataDaylightingManager->DFSUHR[iWinCover] * state.dataEnvrn->HISUNF + HorIllSkyFac * (dfskhr.sky[iSky1] * SkyWeight * horIllSky1 + dfskhr.sky[iSky2] * (1.0 - SkyWeight) * horIllSky2); - thisDaylightControl.BackLumFromWinAtRefPt(loop, IS, IL) = - state.dataDaylightingManager->BFSUHR(IS) * state.dataEnvrn->HISUNF + + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[iWinCover] = + state.dataDaylightingManager->BFSUHR[iWinCover] * state.dataEnvrn->HISUNF + HorIllSkyFac * (bfskhr.sky[iSky1] * SkyWeight * horIllSky1 + bfskhr.sky[iSky2] * (1.0 - SkyWeight) * horIllSky2); - thisDaylightControl.SourceLumFromWinAtRefPt(loop, IS, IL) = - state.dataDaylightingManager->SFSUHR(IS) * state.dataEnvrn->HISUNF + + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[iWinCover] = + state.dataDaylightingManager->SFSUHR[iWinCover] * state.dataEnvrn->HISUNF + HorIllSkyFac * (sfskhr.sky[iSky1] * SkyWeight * horIllSky1 + sfskhr.sky[iSky2] * (1.0 - SkyWeight) * horIllSky2); - thisDaylightControl.SourceLumFromWinAtRefPt(loop, IS, IL) = max(thisDaylightControl.SourceLumFromWinAtRefPt(loop, IS, IL), 0.0); + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[iWinCover] = + max(thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[iWinCover], 0.0); // Added TH 1/21/2010 - save the original clear and dark (fully switched) states' // zone daylighting values, needed for switachable glazings - tmpIllumFromWinAtRefPt(loop, IS, IL) = thisDaylightControl.IllumFromWinAtRefPt(loop, IS, IL); - tmpBackLumFromWinAtRefPt(loop, IS, IL) = thisDaylightControl.BackLumFromWinAtRefPt(loop, IS, IL); - tmpSourceLumFromWinAtRefPt(loop, IS, IL) = thisDaylightControl.SourceLumFromWinAtRefPt(loop, IS, IL); - } // IS + tmpIllumFromWinAtRefPt(loop, IL)[iWinCover] = thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[iWinCover]; + tmpBackLumFromWinAtRefPt(loop, IL)[iWinCover] = thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[iWinCover]; + tmpSourceLumFromWinAtRefPt(loop, IL)[iWinCover] = thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[iWinCover]; + } // for for (iWinCover) } // End of reference point loop, IL } // End of first loop over exterior windows associated with this zone @@ -6429,8 +6413,8 @@ void DayltgInteriorIllum(EnergyPlusData &state, int IS = findWinShadingStatus(state, IWin); for (int IL = 1; IL <= NREFPT; ++IL) { - state.dataDaylightingManager->DaylIllum(IL) += thisDaylightControl.IllumFromWinAtRefPt(loop, IS, IL); - thisDaylightControl.BacLum(IL) += thisDaylightControl.BackLumFromWinAtRefPt(loop, IS, IL); + state.dataDaylightingManager->DaylIllum(IL) += thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[IS - 1]; + thisDaylightControl.BacLum(IL) += thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[IS - 1]; } } // End of second window loop over exterior windows associated with this zone @@ -6470,13 +6454,14 @@ void DayltgInteriorIllum(EnergyPlusData &state, if (state.dataSurface->SurfWinShadingFlag(IWin) == WinShadingType::GlassConditionallyLightened && state.dataSurface->WindowShadingControl(ICtrl).shadingControlType == WindowShadingControlType::MeetDaylIlumSetp && !previously_shaded(loop)) { - DILLSW(igroup) += thisDaylightControl.IllumFromWinAtRefPt(loop, IS, 1); + DILLSW(igroup) += thisDaylightControl.IllumFromWinAtRefPt(loop, 1)[IS - 1]; previously_shaded(loop) = true; } else { if (!previously_shaded(loop)) { - DILLUN(igroup) += thisDaylightControl.IllumFromWinAtRefPt(loop, IS, 1); + DILLUN(igroup) += thisDaylightControl.IllumFromWinAtRefPt(loop, 1)[IS - 1]; } else { - DILLUN(igroup) += thisDaylightControl.IllumFromWinAtRefPt(loop, 2, 1); // use the shaded state if previously shaded + DILLUN(igroup) += thisDaylightControl.IllumFromWinAtRefPt( + loop, 1)[(int)WinCover::Shaded]; // use the shaded state if previously shaded } } } @@ -6557,16 +6542,16 @@ void DayltgInteriorIllum(EnergyPlusData &state, // and need to adjusted for intermediate switched state at VisTransSelected: IS = 2 int IS = 1; VTRAT = state.dataSurface->SurfWinVisTransSelected(IWin) / (thisTVIS1 + 0.000001); - state.dataDaylightingManager->DaylIllum(IL) += (VTRAT - 1.0) * thisDaylightControl.IllumFromWinAtRefPt(loop, IS, IL); - thisDaylightControl.BacLum(IL) += (VTRAT - 1.0) * thisDaylightControl.BackLumFromWinAtRefPt(loop, IS, IL); + state.dataDaylightingManager->DaylIllum(IL) += (VTRAT - 1.0) * thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[IS - 1]; + thisDaylightControl.BacLum(IL) += (VTRAT - 1.0) * thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[IS - 1]; // 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 = WinShadingType::SwitchableGlazing = 2 IS = 2; VTRAT = state.dataSurface->SurfWinVisTransSelected(IWin) / (thisTVIS2 + 0.000001); - thisDaylightControl.IllumFromWinAtRefPt(loop, IS, IL) = VTRAT * tmpIllumFromWinAtRefPt(loop, IS, IL); - thisDaylightControl.BackLumFromWinAtRefPt(loop, IS, IL) = VTRAT * tmpBackLumFromWinAtRefPt(loop, IS, IL); - thisDaylightControl.SourceLumFromWinAtRefPt(loop, IS, IL) = VTRAT * tmpSourceLumFromWinAtRefPt(loop, IS, IL); + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[IS - 1] = VTRAT * tmpIllumFromWinAtRefPt(loop, IL)[IS - 1]; + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[IS - 1] = VTRAT * tmpBackLumFromWinAtRefPt(loop, IL)[IS - 1]; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[IS - 1] = VTRAT * tmpSourceLumFromWinAtRefPt(loop, IL)[IS - 1]; } // IL } // ASETIL < 1 } @@ -6602,15 +6587,16 @@ void DayltgInteriorIllum(EnergyPlusData &state, (currentFlag == WinShadingType::ExtShadeConditionallyOff) || (currentFlag == WinShadingType::IntBlindConditionallyOff) || (currentFlag == WinShadingType::ExtBlindConditionallyOff) || (currentFlag == WinShadingType::BGShadeConditionallyOff) || (currentFlag == WinShadingType::BGBlindConditionallyOff)) { - if (thisDaylightControl.SourceLumFromWinAtRefPt(loop, 1, 1) > state.dataSurface->WindowShadingControl(ICtrl).SetPoint2) { + if (thisDaylightControl.SourceLumFromWinAtRefPt(loop, 1)[(int)WinCover::Bare] > + state.dataSurface->WindowShadingControl(ICtrl).SetPoint2) { // shade on if luminance of this window is above setpoint state.dataSurface->SurfWinShadingFlag(IWin) = ShType; // update total illuminance and background luminance for (int IL = 1; IL <= NREFPT; ++IL) { - state.dataDaylightingManager->DaylIllum(IL) += - thisDaylightControl.IllumFromWinAtRefPt(loop, 2, IL) - thisDaylightControl.IllumFromWinAtRefPt(loop, 1, IL); - thisDaylightControl.BacLum(IL) += - thisDaylightControl.BackLumFromWinAtRefPt(loop, 2, IL) - thisDaylightControl.BackLumFromWinAtRefPt(loop, 1, IL); + state.dataDaylightingManager->DaylIllum(IL) += thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] - + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[(int)WinCover::Bare]; + thisDaylightControl.BacLum(IL) += thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] - + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Bare]; } } else { // shade off if luminance is below setpoint @@ -6642,9 +6628,9 @@ void DayltgInteriorIllum(EnergyPlusData &state, } if (GlareFlag) { - bool &blnCycle = state.dataDaylightingManager->blnCycle; - bool &GlareOK = state.dataDaylightingManager->GlareOK; - Real64 &tmpMult = state.dataDaylightingManager->tmpMult; + bool blnCycle; + bool GlareOK; + Real64 tmpMult; // Glare is too high at a ref pt. Loop through windows. count = 0; @@ -6684,9 +6670,11 @@ void DayltgInteriorIllum(EnergyPlusData &state, // 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 (int IL = 1; IL <= NREFPT; ++IL) { - for (int IS = 1; IS <= 2; ++IS) { - state.dataDaylightingManager->WDAYIL(IS, IL, igroup) = thisDaylightControl.IllumFromWinAtRefPt(loop, IS, IL); - state.dataDaylightingManager->WBACLU(IS, IL, igroup) = thisDaylightControl.BackLumFromWinAtRefPt(loop, IS, IL); + for (int iWinCover = 0; iWinCover < (int)WinCover::Num; ++iWinCover) { + state.dataDaylightingManager->WDAYIL(IL, igroup)[iWinCover] = + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[iWinCover]; + state.dataDaylightingManager->WBACLU(IL, igroup)[iWinCover] = + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[iWinCover]; } } @@ -6696,20 +6684,22 @@ void DayltgInteriorIllum(EnergyPlusData &state, if (state.dataSurface->SurfWinShadingFlag(IWin) != WinShadingType::SwitchableGlazing) { // for non switchable glazings or switchable glazings not switched yet (still in clear state) // SurfaceWindow(IWin)%ShadingFlag = WinShadingFlag::GlassConditionallyLightened - state.dataDaylightingManager->RDAYIL(IL, igroup) = state.dataDaylightingManager->DaylIllum(IL) - - state.dataDaylightingManager->WDAYIL(1, IL, igroup) + - state.dataDaylightingManager->WDAYIL(2, IL, igroup); - state.dataDaylightingManager->RBACLU(IL, igroup) = thisDaylightControl.BacLum(IL) - - state.dataDaylightingManager->WBACLU(1, IL, igroup) + - state.dataDaylightingManager->WBACLU(2, IL, igroup); + state.dataDaylightingManager->RDAYIL(IL, igroup) = + state.dataDaylightingManager->DaylIllum(IL) - + state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Bare] + + state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Shaded]; + state.dataDaylightingManager->RBACLU(IL, igroup) = + thisDaylightControl.BacLum(IL) - state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Bare] + + state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Shaded]; } else { // switchable glazings already in partially switched state when calc the RDAYIL(IL) & RBACLU(IL) - state.dataDaylightingManager->RDAYIL(IL, igroup) = state.dataDaylightingManager->DaylIllum(IL) - - state.dataDaylightingManager->WDAYIL(2, IL, igroup) + - tmpIllumFromWinAtRefPt(loop, 2, IL); - state.dataDaylightingManager->RBACLU(IL, igroup) = thisDaylightControl.BacLum(IL) - - state.dataDaylightingManager->WBACLU(2, IL, igroup) + - tmpBackLumFromWinAtRefPt(loop, 2, IL); + state.dataDaylightingManager->RDAYIL(IL, igroup) = + state.dataDaylightingManager->DaylIllum(IL) - + state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Shaded] + + tmpIllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + state.dataDaylightingManager->RBACLU(IL, igroup) = + thisDaylightControl.BacLum(IL) - state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Shaded] + + tmpBackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; } } @@ -6732,9 +6722,12 @@ void DayltgInteriorIllum(EnergyPlusData &state, // update ZoneDaylight(ZoneNum)%SourceLumFromWinAtRefPt(IL,2,loop) for use in DayltgGlare if (state.dataSurface->SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing) { for (int IL = 1; IL <= NREFPT; ++IL) { - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSourceLumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.BackLumFromWinAtRefPt(loop, 2, IL) = tmpBackLumFromWinAtRefPt(loop, 2, IL); + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpSourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpIllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpBackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; } int const IConst = state.dataSurface->SurfActiveConstruction(IWin); @@ -6824,9 +6817,12 @@ void DayltgInteriorIllum(EnergyPlusData &state, // RESET properties for fully dark state for (int IL = 1; IL <= NREFPT; ++IL) { - thisDaylightControl.IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.BackLumFromWinAtRefPt(loop, 2, IL) = tmpBackLumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSourceLumFromWinAtRefPt(loop, 2, IL); + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpIllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpBackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpSourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; } } @@ -6860,11 +6856,16 @@ void DayltgInteriorIllum(EnergyPlusData &state, // restore fully dark values for (int IL = 1; IL <= NREFPT; ++IL) { - state.dataDaylightingManager->WDAYIL(2, IL, igroup) = tmpIllumFromWinAtRefPt(loop, 2, IL); - state.dataDaylightingManager->WBACLU(2, IL, igroup) = tmpBackLumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.BackLumFromWinAtRefPt(loop, 2, IL) = tmpBackLumFromWinAtRefPt(loop, 2, IL); - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSourceLumFromWinAtRefPt(loop, 2, IL); + state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Shaded] = + tmpIllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Shaded] = + tmpBackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpIllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpBackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpSourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded]; } } @@ -6879,9 +6880,6 @@ void DayltgInteriorIllum(EnergyPlusData &state, if (GlareOK) { if (state.dataSurface->SurfWinShadingFlag(IWin) == WinShadingType::SwitchableGlazing && state.dataSurface->WindowShadingControl(ICtrl).shadingControlType == WindowShadingControlType::MeetDaylIlumSetp) { - Real64 &tmpSWSL1 = state.dataDaylightingManager->tmpSWSL1; - Real64 &tmpSWSL2 = state.dataDaylightingManager->tmpSWSL2; - Real64 &tmpSWFactor = state.dataDaylightingManager->tmpSWFactor; // 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 @@ -6889,30 +6887,32 @@ void DayltgInteriorIllum(EnergyPlusData &state, // Iteration to find the right switching factor meeting the glare index // get fully dark state values - tmpSWSL1 = tmpSourceLumFromWinAtRefPt(loop, 2, 1); - if (NREFPT > 1) tmpSWSL2 = tmpSourceLumFromWinAtRefPt(loop, 2, 2); + Real64 tmpSWSL1 = tmpSourceLumFromWinAtRefPt(loop, 1)[(int)WinCover::Shaded]; + Real64 tmpSWSL2 = (NREFPT > 1) ? tmpSourceLumFromWinAtRefPt(loop, 2)[(int)WinCover::Shaded] : 0.0; // use simple fixed step search in iteraction, can be improved in future - tmpSWFactor = 1.0 - tmpSWIterStep; + Real64 tmpSWFactor = 1.0 - tmpSWIterStep; while (tmpSWFactor > 0) { // calc new glare at new switching state for (int IL = 1; IL <= NREFPT; ++IL) { state.dataDaylightingManager->RDAYIL(IL, igroup) = - state.dataDaylightingManager->DaylIllum(IL) + (state.dataDaylightingManager->WDAYIL(1, IL, igroup) - - state.dataDaylightingManager->WDAYIL(2, IL, igroup)) * - (1.0 - tmpSWFactor); + state.dataDaylightingManager->DaylIllum(IL) + + (state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Bare] - + state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Shaded]) * + (1.0 - tmpSWFactor); state.dataDaylightingManager->RBACLU(IL, igroup) = - thisDaylightControl.BacLum(IL) + (state.dataDaylightingManager->WBACLU(1, IL, igroup) - - state.dataDaylightingManager->WBACLU(2, IL, igroup)) * - (1.0 - tmpSWFactor); + thisDaylightControl.BacLum(IL) + + (state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Bare] - + state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Shaded]) * + (1.0 - tmpSWFactor); BACL = max(SetPnt(IL) * state.dataDaylightingData->enclDaylight(enclNum).aveVisDiffReflect / Constant::Pi, state.dataDaylightingManager->RBACLU(IL, igroup)); // needs to update SourceLumFromWinAtRefPt(IL,2,loop) before re-calc DayltgGlare tmpMult = (thisTVIS1 - (thisTVIS1 - thisTVIS2) * tmpSWFactor) / thisTVIS2; if (IL == 1) { - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSWSL1 * tmpMult; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = tmpSWSL1 * tmpMult; } else { - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, IL) = tmpSWSL2 * tmpMult; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = tmpSWSL2 * tmpMult; } // Calc new glare DayltgGlare(state, IL, BACL, GLRNEW(IL), daylightCtrlNum); @@ -6950,22 +6950,24 @@ void DayltgInteriorIllum(EnergyPlusData &state, // Glare too high, use previous state and re-calc for (int IL = 1; IL <= NREFPT; ++IL) { state.dataDaylightingManager->RDAYIL(IL, igroup) = - state.dataDaylightingManager->DaylIllum(IL) + (state.dataDaylightingManager->WDAYIL(1, IL, igroup) - - state.dataDaylightingManager->WDAYIL(2, IL, igroup)) * - (1.0 - tmpSWFactor); + state.dataDaylightingManager->DaylIllum(IL) + + (state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Bare] - + state.dataDaylightingManager->WDAYIL(IL, igroup)[(int)WinCover::Shaded]) * + (1.0 - tmpSWFactor); state.dataDaylightingManager->RBACLU(IL, igroup) = - thisDaylightControl.BacLum(IL) + (state.dataDaylightingManager->WBACLU(1, IL, igroup) - - state.dataDaylightingManager->WBACLU(2, IL, igroup)) * - (1.0 - tmpSWFactor); + thisDaylightControl.BacLum(IL) + + (state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Bare] - + state.dataDaylightingManager->WBACLU(IL, igroup)[(int)WinCover::Shaded]) * + (1.0 - tmpSWFactor); BACL = max(SetPnt(IL) * state.dataDaylightingData->enclDaylight(enclNum).aveVisDiffReflect / Constant::Pi, state.dataDaylightingManager->RBACLU(IL, igroup)); // needs to update SourceLumFromWinAtRefPt(IL,2,IWin) before re-calc DayltgGlare tmpMult = (thisTVIS1 - (thisTVIS1 - thisTVIS2) * tmpSWFactor) / thisTVIS2; if (IL == 1) { - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, 1) = tmpSWSL1 * tmpMult; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, 1)[(int)WinCover::Shaded] = tmpSWSL1 * tmpMult; } else { - thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2, 2) = tmpSWSL2 * tmpMult; + thisDaylightControl.SourceLumFromWinAtRefPt(loop, 2)[(int)WinCover::Shaded] = tmpSWSL2 * tmpMult; } DayltgGlare(state, IL, BACL, GLRNEW(IL), daylightCtrlNum); } @@ -6979,8 +6981,10 @@ void DayltgInteriorIllum(EnergyPlusData &state, tmpMult = (thisTVIS1 - (thisTVIS1 - thisTVIS2) * tmpSWFactor) / thisTVIS2; // update report variables - thisDaylightControl.IllumFromWinAtRefPt(loop, 2, IL) = tmpIllumFromWinAtRefPt(loop, 2, IL) * tmpMult; - thisDaylightControl.BackLumFromWinAtRefPt(loop, 2, IL) = tmpBackLumFromWinAtRefPt(loop, 2, IL) * tmpMult; + thisDaylightControl.IllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpIllumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] * tmpMult; + thisDaylightControl.BackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] = + tmpBackLumFromWinAtRefPt(loop, IL)[(int)WinCover::Shaded] * tmpMult; } state.dataSurface->SurfWinSwitchingFactor(IWin) = tmpSWFactor; state.dataSurface->SurfWinVisTransSelected(IWin) = thisTVIS1 - (thisTVIS1 - thisTVIS2) * tmpSWFactor; @@ -7358,18 +7362,18 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, // I = sky type; // J = 1 for bare window, 2 and above for window with shade or blind. auto &ZSK = state.dataDaylightingManager->ZSK; - auto &U = state.dataDaylightingManager->U; - auto &DayltgInterReflectedIllumNearestHitPt = state.dataDaylightingManager->DayltgInterReflectedIllumNearestHitPt; - auto &DayltgInterReflectedIllumObsHitPt = state.dataDaylightingManager->DayltgInterReflectedIllumObsHitPt; - auto &DayltgInterReflectedIllumGroundHitPt = state.dataDaylightingManager->DayltgInterReflectedIllumGroundHitPt; + Vector3 U; // Unit vector in (PH,TH) direction + Vector3 nearestHitPt; // Hit point of ray on nearest obstruction (m) + Vector3 obsHitPt; // Coordinates of hit point on an obstruction (m) + Vector3 groundHitPt; // Coordinates of point that ray from window center hits the ground (m) auto &SkyObstructionMult = state.dataDaylightingManager->SkyObstructionMult; auto &FLFWSK = state.dataDaylightingManager->FLFWSK; auto &FLFWSU = state.dataDaylightingManager->FLFWSU; auto &FLFWSUdisk = state.dataDaylightingManager->FLFWSUdisk; auto &FLCWSK = state.dataDaylightingManager->FLCWSK; auto &FLCWSU = state.dataDaylightingManager->FLCWSU; - auto &TransMult = state.dataDaylightingManager->TransMult; - auto &DayltgInterReflectedIllumTransBmBmMult = state.dataDaylightingManager->DayltgInterReflectedIllumTransBmBmMult; + std::array transMult; + std::array transBmBmMult; auto &ObTransM = state.dataDaylightingManager->ObTransM; // 3=intermediate, 4=overcast @@ -7582,8 +7586,8 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, // Determine net transmittance of obstructions that the ray hits. ObTrans will be 1.0 // if no obstructions are hit. DayltgHitObstruction(state, IHR, IWin, state.dataSurface->SurfaceWindow(IWin).WinCenter, U, ObTrans); - ObTransM(IPH, ITH) = ObTrans; - SkyObstructionMult(IPH, ITH) = 1.0; + ObTransM[IPH][ITH] = ObTrans; + SkyObstructionMult[IPH][ITH] = 1.0; } // SKY AND GROUND RADIATION ON WINDOW @@ -7594,10 +7598,10 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, if (PH > 0.0) { // Contribution is from sky for (int iSky = (int)SkyType::Clear; iSky < (int)SkyType::Num; ++iSky) { - ZSK.sky[iSky] = DayltgSkyLuminance(state, static_cast(iSky), TH, PH) * COSB * DA * ObTransM(IPH, ITH); + ZSK.sky[iSky] = DayltgSkyLuminance(state, static_cast(iSky), TH, PH) * COSB * DA * ObTransM[IPH][ITH]; } } else { // PH <= 0.0; contribution is from ground - if (state.dataSurface->CalcSolRefl && ObTransM(IPH, ITH) > 1.e-6 && ISunPos == 1) { + if (state.dataSurface->CalcSolRefl && ObTransM[IPH][ITH] > 1.e-6 && ISunPos == 1) { // Calculate effect of obstructions on shading of sky diffuse reaching the ground point hit // by the ray. This effect is given by the ratio SkyObstructionMult = // (obstructed sky diffuse at ground point)/(unobstructed sky diffuse at ground point). @@ -7606,48 +7610,47 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, Alfa = std::acos(-U.z); Beta = std::atan2(U.y, U.x); HorDis = (state.dataSurface->SurfaceWindow(IWin).WinCenter.z - state.dataSurface->GroundLevelZ) * std::tan(Alfa); - DayltgInterReflectedIllumGroundHitPt.z = state.dataSurface->GroundLevelZ; - DayltgInterReflectedIllumGroundHitPt.x = state.dataSurface->SurfaceWindow(IWin).WinCenter.x + HorDis * std::cos(Beta); - DayltgInterReflectedIllumGroundHitPt.y = state.dataSurface->SurfaceWindow(IWin).WinCenter.y + HorDis * std::sin(Beta); + groundHitPt.z = state.dataSurface->GroundLevelZ; + groundHitPt.x = state.dataSurface->SurfaceWindow(IWin).WinCenter.x + HorDis * std::cos(Beta); + groundHitPt.y = state.dataSurface->SurfaceWindow(IWin).WinCenter.y + HorDis * std::sin(Beta); - SkyObstructionMult(IPH, ITH) = CalcObstrMultiplier( - state, DayltgInterReflectedIllumGroundHitPt, AltAngStepsForSolReflCalc, DataSurfaces::AzimAngStepsForSolReflCalc); + SkyObstructionMult[IPH][ITH] = + CalcObstrMultiplier(state, groundHitPt, AltAngStepsForSolReflCalc, DataSurfaces::AzimAngStepsForSolReflCalc); } // End of check if solar reflection calc is in effect auto const &gilsk = state.dataDaylightingManager->GILSK(IHR); for (int iSky = (int)SkyType::Clear; iSky < (int)SkyType::Num; ++iSky) { // Below, luminance of ground in cd/m2 is illuminance on ground in lumens/m2 // times ground reflectance, divided by pi, times obstruction multiplier. - ZSK.sky[iSky] = (gilsk.sky[iSky] * state.dataEnvrn->GndReflectanceForDayltg / Constant::Pi) * COSB * DA * ObTransM(IPH, ITH) * - SkyObstructionMult(IPH, ITH); + ZSK.sky[iSky] = (gilsk.sky[iSky] * state.dataEnvrn->GndReflectanceForDayltg / Constant::Pi) * COSB * DA * ObTransM[IPH][ITH] * + SkyObstructionMult[IPH][ITH]; } // Determine if sun illuminates the point that ray hits the ground. If the solar reflection // calculation has been requested (CalcSolRefl = .TRUE.) shading by obstructions, including // the building itself, is considered in determining whether sun hits the ground point. // Otherwise this shading is ignored and the sun always hits the ground point. SunObstructionMult = 1.0; - if (state.dataSurface->CalcSolRefl && ObTransM(IPH, ITH) > 1.e-6) { + if (state.dataSurface->CalcSolRefl && ObTransM[IPH][ITH] > 1.e-6 && ISunPos == 1) { // Sun reaches ground point if vector from this point to the sun is unobstructed hitObs = false; for (int ObsSurfNum : state.dataSurface->AllShadowPossObstrSurfaceList) { - PierceSurface(state, ObsSurfNum, DayltgInterReflectedIllumGroundHitPt, SUNCOS_IHR, DayltgInterReflectedIllumObsHitPt, hitObs); + PierceSurface(state, ObsSurfNum, groundHitPt, SUNCOS_IHR, obsHitPt, hitObs); if (hitObs) break; } if (hitObs) SunObstructionMult = 0.0; } ZSU = (state.dataDaylightingManager->GILSU(IHR) * state.dataEnvrn->GndReflectanceForDayltg / Constant::Pi) * COSB * DA * - ObTransM(IPH, ITH) * SunObstructionMult; + ObTransM[IPH][ITH] * SunObstructionMult; } // BEAM SOLAR AND SKY SOLAR REFLECTED FROM NEAREST OBSTRUCTION - if (state.dataSurface->CalcSolRefl && ObTransM(IPH, ITH) < 1.0) { + if (state.dataSurface->CalcSolRefl && ObTransM[IPH][ITH] < 1.0) { // Find obstruction whose hit point is closest to the center of the window - DayltgClosestObstruction( - state, state.dataSurface->SurfaceWindow(IWin).WinCenter, U, NearestHitSurfNum, DayltgInterReflectedIllumNearestHitPt); + DayltgClosestObstruction(state, state.dataSurface->SurfaceWindow(IWin).WinCenter, U, NearestHitSurfNum, nearestHitPt); if (NearestHitSurfNum > 0) { // Beam solar reflected from nearest obstruction. - DayltgSurfaceLumFromSun(state, IHR, U, NearestHitSurfNum, DayltgInterReflectedIllumNearestHitPt, LumAtHitPtFrSun); + DayltgSurfaceLumFromSun(state, IHR, U, NearestHitSurfNum, nearestHitPt, LumAtHitPtFrSun); ZSUObsRefl = LumAtHitPtFrSun * COSB * DA; ZSU += ZSUObsRefl; @@ -7761,12 +7764,7 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, for (int IntWinLoop = 1; IntWinLoop <= thisEnclDaylight.IntWinAdjEnclExtWin(IntWinAdjZoneExtWinNum).NumOfIntWindows; ++IntWinLoop) { IntWinNum = thisEnclDaylight.IntWinAdjEnclExtWin(IntWinAdjZoneExtWinNum).IntWinNum(IntWinLoop); - PierceSurface(state, - IntWinNum, - state.dataSurface->SurfaceWindow(IntWinNum).WinCenter, - SUNCOS_IHR, - DayltgInterReflectedIllumObsHitPt, - hitObs); + PierceSurface(state, IntWinNum, state.dataSurface->SurfaceWindow(IntWinNum).WinCenter, SUNCOS_IHR, obsHitPt, hitObs); if (hitObs) { // disk passes thru // cosine of incidence angle of light from sky or ground element for COSBintWin = SPH * std::sin(state.dataSurface->SurfWinPhi(IntWinNum)) + @@ -7841,16 +7839,16 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, if (state.dataSurface->SurfWinSolarDiffusing(IWin)) IConstShaded = state.dataSurface->Surface(IWin).Construction; // Transmittance of window including shade, screen or blind - DayltgInterReflectedIllumTransBmBmMult = 0.0; - TransMult = 0.0; + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); + std::fill(transMult.begin(), transMult.end(), 0.0); if (ShadeOn) { // Shade if (state.dataSurface->SurfWinOriginalClass(IWin) == SurfaceClass::TDD_Dome) { // Shaded visible transmittance of TDD for a single ray from sky/ground element - TransMult(1) = TransTDD(state, PipeNum, COSB, RadType::VisibleBeam) * state.dataSurface->SurfWinGlazedFrac(IWin); + transMult[1] = TransTDD(state, PipeNum, COSB, RadType::VisibleBeam) * state.dataSurface->SurfWinGlazedFrac(IWin); } else { // Shade only, no TDD // Calculate transmittance of the combined window and shading device for this sky/ground element - TransMult(1) = General::POLYF(COSB, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * + transMult[1] = General::POLYF(COSB, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); } @@ -7860,11 +7858,10 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, ReflGlDiffDiffFront = state.dataConstruction->Construct(IConst).ReflectVisDiffFront; ReflScDiffDiffBack = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).DifReflectVis; TransScBmDiffFront = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmDifTransVis; - TransMult(1) = TransScBmDiffFront * state.dataSurface->SurfWinGlazedFrac(IWin) * + transMult[1] = TransScBmDiffFront * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataConstruction->Construct(IConst).TransDiffVis / (1 - ReflGlDiffDiffFront * ReflScDiffDiffBack) * state.dataSurface->SurfWinLightWellEff(IWin); - DayltgInterReflectedIllumTransBmBmMult(1) = - state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmBmTransVis; + transBmBmMult[1] = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmBmTransVis; } else if (BlindOn) { // Blind: get beam-diffuse and beam-beam vis trans of blind+glazing system // PETER: As long as only interior blinds are allowed for TDDs, no need to change TransMult calculation @@ -7884,13 +7881,13 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, WindowManager::InterpProfAng(ProfAng, state.dataMaterial->Blind(BlNum).VisFrontBeamDiffRefl(JB, {1, 37})); ReflBlDiffDiffFront = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffRefl(JB); TransBlDiffDiffFront = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffTrans(JB); - TransMult(JB) = TVISBR * (TransBlBmDiffFront + ReflBlBmDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront / + transMult[JB] = TVISBR * (TransBlBmDiffFront + ReflBlBmDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront / (1.0 - ReflBlDiffDiffFront * ReflGlDiffDiffBack)); } else if (ShType == WinShadingType::ExtBlind) { // Exterior blind ReflGlDiffDiffFront = state.dataConstruction->Construct(IConst).ReflectVisDiffFront; ReflBlDiffDiffBack = state.dataMaterial->Blind(BlNum).VisBackDiffDiffRefl(JB); - TransMult(JB) = TransBlBmDiffFront * state.dataSurface->SurfWinGlazedFrac(IWin) * + transMult[JB] = TransBlBmDiffFront * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataConstruction->Construct(IConst).TransDiffVis / (1.0 - ReflGlDiffDiffFront * ReflBlDiffDiffBack) * state.dataSurface->SurfWinLightWellEff(IWin); @@ -7904,14 +7901,14 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, rfshB = WindowManager::InterpProfAng(ProfAng, state.dataMaterial->Blind(BlNum).VisFrontBeamDiffRefl(JB, {1, 37})); rbshd = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffRefl(JB); if (state.dataConstruction->Construct(IConst).TotGlassLayers == 2) { // 2 glass layers - TransMult(JB) = + transMult[JB] = t1 * (tfshBd * (1.0 + rfd2 * rbshd) + rfshB * rbd1 * tfshd) * td2 * state.dataSurface->SurfWinLightWellEff(IWin); } else { // 3 glass layers; blind between layers 2 and 3 t2 = General::POLYF(COSB, state.dataConstruction->Construct(IConst).tBareVisCoef(2)); td3 = state.dataConstruction->Construct(IConst).tBareVisDiff(3); rfd3 = state.dataConstruction->Construct(IConst).rfBareVisDiff(3); rbd2 = state.dataConstruction->Construct(IConst).rbBareVisDiff(2); - TransMult(JB) = t1 * t2 * (tfshBd * (1.0 + rfd3 * rbshd) + rfshB * (rbd2 * tfshd + td2 * rbd1 * td2 * tfshd)) * td3 * + transMult[JB] = t1 * t2 * (tfshBd * (1.0 + rfd3 * rbshd) + rfshB * (rbd2 * tfshd + td2 * rbd1 * td2 * tfshd)) * td3 * state.dataSurface->SurfWinLightWellEff(IWin); } } @@ -7921,27 +7918,26 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, } else { SlatAng = state.dataMaterial->Blind(BlNum).SlatAngle * Constant::DegToRadians; } - DayltgInterReflectedIllumTransBmBmMult(JB) = - TVISBR * WindowManager::BlindBeamBeamTrans(ProfAng, - SlatAng, - state.dataMaterial->Blind(BlNum).SlatWidth, - state.dataMaterial->Blind(BlNum).SlatSeparation, - state.dataMaterial->Blind(BlNum).SlatThickness); + transBmBmMult[JB] = TVISBR * WindowManager::BlindBeamBeamTrans(ProfAng, + SlatAng, + state.dataMaterial->Blind(BlNum).SlatWidth, + state.dataMaterial->Blind(BlNum).SlatSeparation, + state.dataMaterial->Blind(BlNum).SlatThickness); } // End of loop over slat angles } else { // Diffusing glass - TransMult(1) = General::POLYF(COSB, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * + transMult[1] = General::POLYF(COSB, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); } // End of check if shade, blind or diffusing glass if (state.dataSurface->SurfWinOriginalClass(IWin) == SurfaceClass::TDD_Dome) { // No beam is transmitted. This takes care of all types of screens and blinds. - DayltgInterReflectedIllumTransBmBmMult = 0.0; + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); } // Daylighting shelf simplification: No beam makes it past end of shelf, all light is diffuse - if (InShelfSurf > 0) { // Inside daylighting shelf - DayltgInterReflectedIllumTransBmBmMult = 0.0; // No beam, diffuse only + if (InShelfSurf > 0) { // Inside daylighting shelf + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); } // DayltgInterReflectedIllumTransBmBmMult is used in the following for windows with blinds or screens to get contribution from light @@ -7957,27 +7953,27 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, for (int iSky = (int)SkyType::Clear; iSky < (int)SkyType::Num; ++iSky) { - wlumsk.sky[iSky] += ZSK.sky[iSky] * TransMult(JB) / Constant::Pi; - flfwsk.sky[iSky] += ZSK.sky[iSky] * TransMult(JB) * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); - flcwsk.sky[iSky] += ZSK.sky[iSky] * TransMult(JB) * state.dataSurface->SurfWinFractionUpgoing(IWin); + wlumsk.sky[iSky] += ZSK.sky[iSky] * transMult[JB] / Constant::Pi; + flfwsk.sky[iSky] += ZSK.sky[iSky] * transMult[JB] * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); + flcwsk.sky[iSky] += ZSK.sky[iSky] * transMult[JB] * state.dataSurface->SurfWinFractionUpgoing(IWin); if (BlindOn || ScreenOn) { if (PH > 0.0) { - flfwsk.sky[iSky] += ZSK.sky[iSky] * DayltgInterReflectedIllumTransBmBmMult(JB); + flfwsk.sky[iSky] += ZSK.sky[iSky] * transBmBmMult[JB]; } else { - flcwsk.sky[iSky] += ZSK.sky[iSky] * DayltgInterReflectedIllumTransBmBmMult(JB); + flcwsk.sky[iSky] += ZSK.sky[iSky] * transBmBmMult[JB]; } } } - state.dataDaylightingManager->WLUMSU(IHR, JB + 1) += ZSU * TransMult(JB) / Constant::Pi; - FLFWSU(JB + 1) += ZSU * TransMult(JB) * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); - FLCWSU(JB + 1) += ZSU * TransMult(JB) * state.dataSurface->SurfWinFractionUpgoing(IWin); + state.dataDaylightingManager->WLUMSU(IHR, JB + 1) += ZSU * transMult[JB] / Constant::Pi; + FLFWSU(JB + 1) += ZSU * transMult[JB] * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); + FLCWSU(JB + 1) += ZSU * transMult[JB] * state.dataSurface->SurfWinFractionUpgoing(IWin); if (BlindOn || ScreenOn) { if (PH > 0.0) { - FLFWSU(JB + 1) += ZSU * DayltgInterReflectedIllumTransBmBmMult(JB); + FLFWSU(JB + 1) += ZSU * transBmBmMult[JB]; } else { - FLCWSU(JB + 1) += ZSU * DayltgInterReflectedIllumTransBmBmMult(JB); + FLCWSU(JB + 1) += ZSU * transBmBmMult[JB]; } } } @@ -8082,8 +8078,8 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, // -- Window with shade, screen, blind or diffusing glass if (ShadeOn || BlindOn || ScreenOn || state.dataSurface->SurfWinSolarDiffusing(IWin)) { - DayltgInterReflectedIllumTransBmBmMult = 0.0; - TransMult = 0.0; + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); + std::fill(transMult.begin(), transMult.end(), 0.0); // TH 7/7/2010 moved from inside the loop: DO JB = 1,MaxSlatAngs if (BlindOn) @@ -8095,15 +8091,15 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, if (ShadeOn || ScreenOn || state.dataSurface->SurfWinSolarDiffusing(IWin)) { // Shade or screen on or diffusing glass if (state.dataSurface->SurfWinOriginalClass(IWin) == SurfaceClass::TDD_Dome) { // Shaded visible transmittance of TDD for collimated beam from the sun - TransMult(1) = TransTDD(state, PipeNum, COSBSun, RadType::VisibleBeam) * state.dataSurface->SurfWinGlazedFrac(IWin); + transMult[1] = TransTDD(state, PipeNum, COSBSun, RadType::VisibleBeam) * state.dataSurface->SurfWinGlazedFrac(IWin); } else { if (ScreenOn) { - TransMult(1) = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmBmTransVis * + transMult[1] = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).BmBmTransVis * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); } else { int IConstShaded = state.dataSurface->SurfWinActiveShadedConstruction(IWin); if (state.dataSurface->SurfWinSolarDiffusing(IWin)) IConstShaded = state.dataSurface->Surface(IWin).Construction; - TransMult(1) = General::POLYF(COSBSun, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * + transMult[1] = General::POLYF(COSBSun, state.dataConstruction->Construct(IConstShaded).TransVisBeamCoef) * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); } } @@ -8126,11 +8122,11 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, ReflBlDiffDiffFront = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffRefl(JB); TransBlDiffDiffFront = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffTrans(JB); - TransMult(JB) = TVISBSun * (TransBlBmDiffFront + ReflBlBmDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront / + transMult[JB] = TVISBSun * (TransBlBmDiffFront + ReflBlBmDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront / (1.0 - ReflBlDiffDiffFront * ReflGlDiffDiffBack)); } else if (ShType == WinShadingType::ExtBlind) { // Exterior blind - TransMult(JB) = TransBlBmDiffFront * + transMult[JB] = TransBlBmDiffFront * (state.dataConstruction->Construct(IConst).TransDiffVis / (1.0 - ReflGlDiffDiffFront * state.dataMaterial->Blind(BlNum).VisBackDiffDiffRefl(JB))) * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); @@ -8140,11 +8136,11 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, tfshBd = WindowManager::InterpProfAng(ProfAng, state.dataMaterial->Blind(BlNum).VisFrontBeamDiffTrans(JB, {1, 37})); rfshB = WindowManager::InterpProfAng(ProfAng, state.dataMaterial->Blind(BlNum).VisFrontBeamDiffRefl(JB, {1, 37})); if (state.dataConstruction->Construct(IConst).TotGlassLayers == 2) { // 2 glass layers - TransMult(JB) = + transMult[JB] = t1 * (tfshBd * (1.0 + rfd2 * rbshd) + rfshB * rbd1 * tfshd) * td2 * state.dataSurface->SurfWinLightWellEff(IWin); } else { // 3 glass layers; blind between layers 2 and 3 t2 = General::POLYF(COSBSun, state.dataConstruction->Construct(IConst).tBareVisCoef(2)); - TransMult(JB) = t1 * t2 * (tfshBd * (1.0 + rfd3 * rbshd) + rfshB * (rbd2 * tfshd + td2 * rbd1 * td2 * tfshd)) * td3 * + transMult[JB] = t1 * t2 * (tfshBd * (1.0 + rfd3 * rbshd) + rfshB * (rbd2 * tfshd + td2 * rbd1 * td2 * tfshd)) * td3 * state.dataSurface->SurfWinLightWellEff(IWin); } } @@ -8153,29 +8149,29 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, } else { SlatAng = state.dataMaterial->Blind(BlNum).SlatAngle * Constant::DegToRadians; } - DayltgInterReflectedIllumTransBmBmMult(JB) = - TVISBSun * WindowManager::BlindBeamBeamTrans(ProfAng, - SlatAng, - state.dataMaterial->Blind(BlNum).SlatWidth, - state.dataMaterial->Blind(BlNum).SlatSeparation, - state.dataMaterial->Blind(BlNum).SlatThickness); + transBmBmMult[JB] = TVISBSun * WindowManager::BlindBeamBeamTrans(ProfAng, + SlatAng, + state.dataMaterial->Blind(BlNum).SlatWidth, + state.dataMaterial->Blind(BlNum).SlatSeparation, + state.dataMaterial->Blind(BlNum).SlatThickness); } // ShadeOn/ScreenOn/BlindOn/Diffusing glass if (state.dataSurface->SurfWinOriginalClass(IWin) == SurfaceClass::TDD_Dome) { - DayltgInterReflectedIllumTransBmBmMult = 0.0; // No beam, diffuse only + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); // No beam, diffuse only } // Daylighting shelf simplification: No beam makes it past end of shelf, all light is diffuse - if (InShelfSurf > 0) { // Inside daylighting shelf - DayltgInterReflectedIllumTransBmBmMult = 0.0; // No beam, diffuse only (Not sure if this really works) - // SurfaceWindow(IWin)%FractionUpgoing is already set to 1.0 earlier + if (InShelfSurf > 0) { // Inside daylighting shelf + std::fill( + transBmBmMult.begin(), transBmBmMult.end(), 0.0); // No beam, diffuse only + // SurfaceWindow(IWin)%FractionUpgoing is already set to 1.0 earlier } - state.dataDaylightingManager->WLUMSU(IHR, JB + 1) += ZSU1 * TransMult(JB) / Constant::Pi; - state.dataDaylightingManager->WLUMSUdisk(IHR, JB + 1) = ZSU1 * DayltgInterReflectedIllumTransBmBmMult(JB) / Constant::Pi; - FLFWSU(JB + 1) += ZSU1 * TransMult(JB) * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); - FLFWSUdisk(JB + 1) = ZSU1 * DayltgInterReflectedIllumTransBmBmMult(JB); - FLCWSU(JB + 1) += ZSU1 * TransMult(JB) * state.dataSurface->SurfWinFractionUpgoing(IWin); + state.dataDaylightingManager->WLUMSU(IHR, JB + 1) += ZSU1 * transMult[JB] / Constant::Pi; + state.dataDaylightingManager->WLUMSUdisk(IHR, JB + 1) = ZSU1 * transBmBmMult[JB] / Constant::Pi; + FLFWSU(JB + 1) += ZSU1 * transMult[JB] * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); + FLFWSUdisk(JB + 1) = ZSU1 * transBmBmMult[JB]; + FLCWSU(JB + 1) += ZSU1 * transMult[JB] * state.dataSurface->SurfWinFractionUpgoing(IWin); } // End of loop over slat angles } // End of window with shade or blind } // COSBSun > 0 @@ -8206,8 +8202,8 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, // -- Window with shade, blind or diffusing glass if (ShadeOn || BlindOn || ScreenOn || state.dataSurface->SurfWinSolarDiffusing(IWin)) { - DayltgInterReflectedIllumTransBmBmMult = 0.0; - TransMult = 0.0; + std::fill(transBmBmMult.begin(), transBmBmMult.end(), 0.0); + std::fill(transMult.begin(), transMult.end(), 0.0); for (int JB = 1; JB <= Material::MaxSlatAngs; ++JB) { if (!state.dataSurface->SurfWinMovableSlats(IWin) && JB > 1) break; @@ -8215,12 +8211,12 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, if (ShadeOn || state.dataSurface->SurfWinSolarDiffusing(IWin)) { // Shade on or diffusing glass int IConstShaded = state.dataSurface->SurfWinActiveShadedConstruction(IWin); if (state.dataSurface->SurfWinSolarDiffusing(IWin)) IConstShaded = state.dataSurface->Surface(IWin).Construction; - TransMult(1) = state.dataConstruction->Construct(IConstShaded).TransDiffVis * state.dataSurface->SurfWinGlazedFrac(IWin) * + transMult[1] = state.dataConstruction->Construct(IConstShaded).TransDiffVis * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); } else if (ScreenOn) { // Exterior screen on TransScDiffDiffFront = state.dataMaterial->Screens(state.dataSurface->SurfWinScreenNumber(IWin)).DifDifTransVis; - TransMult(1) = TransScDiffDiffFront * + transMult[1] = TransScDiffDiffFront * (state.dataConstruction->Construct(IConst).TransDiffVis / (1.0 - ReflGlDiffDiffFront * ReflScDiffDiffBack)) * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); @@ -8228,11 +8224,11 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, TransBlDiffDiffFront = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffTrans(JB); if (ShType == WinShadingType::IntBlind) { // Interior blind ReflBlDiffDiffFront = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffRefl(JB); - TransMult(JB) = TVisSunRefl * (TransBlDiffDiffFront + ReflBlDiffDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront / + transMult[JB] = TVisSunRefl * (TransBlDiffDiffFront + ReflBlDiffDiffFront * ReflGlDiffDiffBack * TransBlDiffDiffFront / (1.0 - ReflBlDiffDiffFront * ReflGlDiffDiffBack)); } else if (ShType == WinShadingType::ExtBlind) { // Exterior blind - TransMult(JB) = TransBlDiffDiffFront * + transMult[JB] = TransBlDiffDiffFront * (state.dataConstruction->Construct(IConst).TransDiffVis / (1.0 - ReflGlDiffDiffFront * state.dataMaterial->Blind(BlNum).VisBackDiffDiffRefl(JB))) * state.dataSurface->SurfWinGlazedFrac(IWin) * state.dataSurface->SurfWinLightWellEff(IWin); @@ -8242,19 +8238,19 @@ void DayltgInterReflectedIllum(EnergyPlusData &state, tfshBd = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffTrans(JB); rfshB = state.dataMaterial->Blind(BlNum).VisFrontDiffDiffRefl(JB); if (state.dataConstruction->Construct(IConst).TotGlassLayers == 2) { // 2 glass layers - TransMult(JB) = + transMult[JB] = t1 * (tfshBd * (1.0 + rfd2 * rbshd) + rfshB * rbd1 * tfshd) * td2 * state.dataSurface->SurfWinLightWellEff(IWin); } else { // 3 glass layers; blind between layers 2 and 3 t2 = state.dataConstruction->Construct(IConst).tBareVisDiff(2); - TransMult(JB) = t1 * t2 * (tfshBd * (1.0 + rfd3 * rbshd) + rfshB * (rbd2 * tfshd + td2 * rbd1 * td2 * tfshd)) * td3 * + transMult[JB] = t1 * t2 * (tfshBd * (1.0 + rfd3 * rbshd) + rfshB * (rbd2 * tfshd + td2 * rbd1 * td2 * tfshd)) * td3 * state.dataSurface->SurfWinLightWellEff(IWin); } } // End of check of interior/exterior/between-glass blind } // ShadeOn/BlindOn - state.dataDaylightingManager->WLUMSU(IHR, JB + 1) += ZSU1refl * TransMult(JB) / Constant::Pi; - FLFWSU(JB + 1) += ZSU1refl * TransMult(JB) * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); - FLCWSU(JB + 1) += ZSU1refl * TransMult(JB) * state.dataSurface->SurfWinFractionUpgoing(IWin); + state.dataDaylightingManager->WLUMSU(IHR, JB + 1) += ZSU1refl * transMult[JB] / Constant::Pi; + FLFWSU(JB + 1) += ZSU1refl * transMult[JB] * (1.0 - state.dataSurface->SurfWinFractionUpgoing(IWin)); + FLCWSU(JB + 1) += ZSU1refl * transMult[JB] * state.dataSurface->SurfWinFractionUpgoing(IWin); } // End of loop over slat angles } // End of check if window has shade, blind or diffusing glass } // End of check if ZSU1refl > 0.0 @@ -8297,11 +8293,8 @@ void ComplexFenestrationLuminances(EnergyPlusData &state, // AUTHOR Simon Vidanovic // DATE WRITTEN June 2013 - auto &ComplexFenestrationLuminancesObsHitPt = - state.dataDaylightingManager->ComplexFenestrationLuminancesObsHitPt; // Coordinates of hit point on an obstruction (m) - auto &ComplexFenestrationLuminancesGroundHitPt = - state.dataDaylightingManager - ->ComplexFenestrationLuminancesGroundHitPt; // Coordinates of point that ray from window center hits the ground (m) + Vector3 obsHitPt; // Coordinates of hit point on an obstruction (m) + Vector3 groundHitPt; // Coordinates of point that ray from window center hits the ground (m) int CurCplxFenState = state.dataSurface->SurfaceWindow(IWin).ComplexFen.CurrentState; auto &complexWinGeom = state.dataBSDFWindow->ComplexWind(IWin).Geom(CurCplxFenState); @@ -8382,10 +8375,9 @@ void ComplexFenestrationLuminances(EnergyPlusData &state, if (state.dataSurface->CalcSolRefl) { // Sun reaches ground point if vector from this point to the sun is unobstructed for (int ObsSurfNum : state.dataSurface->AllShadowPossObstrSurfaceList) { - ComplexFenestrationLuminancesGroundHitPt = complexWinRefPoint.GndPt(iGndElem, WinEl); + groundHitPt = complexWinRefPoint.GndPt(iGndElem, WinEl); bool hitObs = false; - PierceSurface( - state, ObsSurfNum, ComplexFenestrationLuminancesGroundHitPt, SUNCOS_IHR, ComplexFenestrationLuminancesObsHitPt, hitObs); + PierceSurface(state, ObsSurfNum, groundHitPt, SUNCOS_IHR, obsHitPt, hitObs); if (hitObs) { SunObstrMultiplier = 0.0; break; @@ -8430,11 +8422,10 @@ void ComplexFenestrationLuminances(EnergyPlusData &state, if (state.dataSurface->CalcSolRefl) { // Sun reaches ground point if vector from this point to the sun is unobstructed for (int ObsSurfNum : state.dataSurface->AllShadowPossObstrSurfaceList) { - ComplexFenestrationLuminancesGroundHitPt = complexWinIllumMap.GndPt(iGndElem, WinEl); + groundHitPt = complexWinIllumMap.GndPt(iGndElem, WinEl); bool hitObs = false; - PierceSurface( - state, ObsSurfNum, ComplexFenestrationLuminancesGroundHitPt, SUNCOS_IHR, ComplexFenestrationLuminancesObsHitPt, hitObs); + PierceSurface(state, ObsSurfNum, groundHitPt, SUNCOS_IHR, obsHitPt, hitObs); if (hitObs) { SunObstrMultiplier = 0.0; break; @@ -8790,20 +8781,11 @@ void DayltgDirectSunDiskComplexFenestration(EnergyPlusData &state, } LambdaTrn = state.dataBSDFWindow->ComplexWind(iWin).Geom(CurCplxFenState).Trn.Lamda(iTrnElem); - state.dataDaylightingManager->DayltgDirectSunDiskComplexFenestrationV = - state.dataBSDFWindow->ComplexWind(iWin).Geom(CurCplxFenState).sTrn(iTrnElem); - state.dataDaylightingManager->DayltgDirectSunDiskComplexFenestrationV = - -state.dataDaylightingManager->DayltgDirectSunDiskComplexFenestrationV; - + Vector3 V = -state.dataBSDFWindow->ComplexWind(iWin).Geom(CurCplxFenState).sTrn(iTrnElem); // Window center - state.dataDaylightingManager->DayltgDirectSunDiskComplexFenestrationRWin = state.dataSurface->Surface(iWin).Centroid; + Vector3 RWin = state.dataSurface->Surface(iWin).Centroid; - DayltgHitObstruction(state, - iHour, - iWin, - state.dataDaylightingManager->DayltgDirectSunDiskComplexFenestrationRWin, - state.dataDaylightingManager->DayltgDirectSunDiskComplexFenestrationV, - TransBeam); + DayltgHitObstruction(state, iHour, iWin, RWin, V, TransBeam); WinLumSunDisk += (14700.0 * std::sqrt(0.000068 * PosFac) * double(NumEl) / std::pow(WindowSolidAngleDaylightPoint, 0.8)) * dirTrans * LambdaTrn * TransBeam; @@ -8943,15 +8925,15 @@ void ProfileAngle(EnergyPlusData &state, if (std::abs(ElevWin) < 0.1) { // Near-vertical window ProfileAng = AzimWin - AzimSun; // CR7952 allow sign changes. } else { - auto &WinNorm = state.dataDaylightingManager->WinNorm; // Window outward normal unit vector - auto &SunPrime = state.dataDaylightingManager->SunPrime; // Projection of sun vector onto plane (perpendicular to window plane) determined - // by WinNorm and vector along baseline of window - auto &WinNormCrossBase = state.dataDaylightingManager->WinNormCrossBase; // Cross product of WinNorm and vector along window baseline - WinNorm = state.dataSurface->Surface(SurfNum).OutNormVec; + + Vector3 WinNorm = state.dataSurface->Surface(SurfNum).OutNormVec; // Window outward normal unit vector ThWin = AzimWin - Constant::PiOvr2; - Real64 const sin_ElevWin(std::sin(ElevWin)); - WinNormCrossBase = {-sin_ElevWin * std::cos(ThWin), sin_ElevWin * std::sin(ThWin), std::cos(ElevWin)}; - SunPrime = CosDirSun - WinNormCrossBase * dot(CosDirSun, WinNormCrossBase); + Real64 const sin_ElevWin = std::sin(ElevWin); + // Cross product of WinNorm and vector along window baseline + Vector3 WinNormCrossBase = {-sin_ElevWin * std::cos(ThWin), sin_ElevWin * std::sin(ThWin), std::cos(ElevWin)}; + // Projection of sun vector onto plane (perpendicular to window plane) determined + // by WinNorm and vector along baseline of window + Vector3 SunPrime = CosDirSun - WinNormCrossBase * dot(CosDirSun, WinNormCrossBase); ProfileAng = std::abs(std::acos(dot(WinNorm, SunPrime) / SunPrime.magnitude())); // CR7952 correct sign of result for vertical slats if ((AzimWin - AzimSun) < 0.0) ProfileAng = -1.0 * ProfileAng; @@ -8982,8 +8964,8 @@ void DayltgClosestObstruction(EnergyPlusData &state, // = 0 if no obstruction is hit. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - auto &HitPt = state.dataDaylightingManager->HitPt; // Hit point on an obstruction (m) - bool hit; // True iff obstruction is hit + Vector3 HitPt; // Hit point on an obstruction (m) + bool hit; // True iff obstruction is hit NearestHitSurfNum = 0; Real64 NearestHitDistance_sq(std::numeric_limits::max()); // Distance squared from receiving point to nearest hit point for a ray (m^2) @@ -9019,9 +9001,10 @@ void DayltgClosestObstruction(EnergyPlusData &state, // Lambda function for the octree to test for surface hit auto surfaceHit = [=, &state, &RecPt, &RayVec, &hit, &NearestHitDistance_sq, &nearestHitSurface, &NearestHitPt](SurfaceData const &surface) { if (surface.IsShadowPossibleObstruction) { + Vector3 HitPt; // Determine if this ray hits the surface and, if so, get the distance from the receiving point to the hit - PierceSurface(surface, RecPt, RayVec, state.dataDaylightingManager->HitPt, hit); // Check if ray pierces surface - if (hit) { // Ray pierces surface + PierceSurface(surface, RecPt, RayVec, HitPt, hit); // Check if ray pierces surface + if (hit) { // Ray pierces surface // If obstruction is a window and its base surface is the nearest obstruction hit so far set nearestHitSurface to this window // Note that in this case NearestHitDistance_sq has already been calculated, so does not have to be recalculated if ((surface.Class == SurfaceClass::Window) && (surface.BaseSurf > 0) && @@ -9077,25 +9060,25 @@ void DayltgSurfaceLumFromSun(EnergyPlusData &state, // beam normal illuminance (cd/m2) // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - auto &DayltgSurfaceLumFromSunReflNorm = state.dataDaylightingManager->DayltgSurfaceLumFromSunReflNorm; // Unit normal to reflecting surface (m) - auto &DayltgSurfaceLumFromSunObsHitPt = state.dataDaylightingManager->DayltgSurfaceLumFromSunObsHitPt; // Hit point on obstruction (m) - bool hitObs; // True iff obstruction is hit - Real64 CosIncAngAtHitPt; // Cosine of angle of incidence of sun at HitPt - Real64 DiffVisRefl; // Diffuse visible reflectance of ReflSurfNum + Vector3 SurfaceLumFromSunReflNorm; // Unit normal to reflecting surface (m) + Vector3 SurfaceLumFromSunObsHitPt; // Hit point on obstruction (m) + bool hitObs; // True iff obstruction is hit + Real64 CosIncAngAtHitPt; // Cosine of angle of incidence of sun at HitPt + Real64 DiffVisRefl; // Diffuse visible reflectance of ReflSurfNum LumAtReflHitPtFrSun = 0.0; // Skip daylighting shelves since reflection from these is separately calculated if (state.dataSurface->SurfDaylightingShelfInd(ReflSurfNum) > 0) return; // Normal to reflecting surface in hemisphere containing window element - DayltgSurfaceLumFromSunReflNorm = state.dataSurface->Surface(ReflSurfNum).OutNormVec; + SurfaceLumFromSunReflNorm = state.dataSurface->Surface(ReflSurfNum).OutNormVec; if (state.dataSurface->Surface(ReflSurfNum).IsShadowing) { - if (dot(DayltgSurfaceLumFromSunReflNorm, Ray) > 0.0) { - DayltgSurfaceLumFromSunReflNorm *= -1.0; + if (dot(SurfaceLumFromSunReflNorm, Ray) > 0.0) { + SurfaceLumFromSunReflNorm *= -1.0; } } // Cosine of angle of incidence of sun at HitPt if sun were to reach HitPt Vector3 const SUNCOS_IHR(state.dataSurface->SurfSunCosHourly(IHR)); - CosIncAngAtHitPt = dot(DayltgSurfaceLumFromSunReflNorm, SUNCOS_IHR); + CosIncAngAtHitPt = dot(SurfaceLumFromSunReflNorm, SUNCOS_IHR); // Require that the sun be in front of this surface relative to window element if (CosIncAngAtHitPt <= 0.0) return; // Sun is in back of reflecting surface // Sun reaches ReflHitPt if vector from ReflHitPt to sun is unobstructed @@ -9103,7 +9086,7 @@ void DayltgSurfaceLumFromSun(EnergyPlusData &state, for (int ObsSurfNum : state.dataSurface->AllShadowPossObstrSurfaceList) { // Exclude as a possible obstructor ReflSurfNum and its base surface (if it has one) if (ObsSurfNum == ReflSurfNum || ObsSurfNum == state.dataSurface->Surface(ReflSurfNum).BaseSurf) continue; - PierceSurface(state, ObsSurfNum, ReflHitPt, SUNCOS_IHR, DayltgSurfaceLumFromSunObsHitPt, hitObs); + PierceSurface(state, ObsSurfNum, ReflHitPt, SUNCOS_IHR, SurfaceLumFromSunObsHitPt, hitObs); if (hitObs) break; } if (hitObs) return; // Obstruction was hit, blocking s auto surfaceHit = [&state, &GroundHitPtun @@ -9232,8 +9215,8 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) Real64 wgtThisHr = state.dataGlobal->WeightNow; Real64 wgtPrevHr = state.dataGlobal->WeightPreviousHour; - auto &dfskhr = DFSKHR(1); - auto &dfskhr2 = DFSKHR(2); + auto &dfskhr = DFSKHR[(int)WinCover::Bare]; + auto &dfskhr2 = DFSKHR[(int)WinCover::Shaded]; int SurfWinSlatsAngIndex = state.dataSurface->SurfWinSlatsAngIndex(IWin); int slatAngLo = SurfWinSlatsAngIndex + 1; @@ -9275,10 +9258,11 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) } // End of check if window is shaded or has diffusing glass } // for (iSky) - DayltgInteriorMapIllumDFSUHR(1) = VTRatio * (wgtThisHr * (thisMap.DaylIllFacSun(state.dataGlobal->HourOfDay, loop, ILB, 1) + - thisMap.DaylIllFacSunDisk(state.dataGlobal->HourOfDay, loop, ILB, 1)) + - wgtPrevHr * (thisMap.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, ILB, 1) + - thisMap.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, ILB, 1))); + DayltgInteriorMapIllumDFSUHR[(int)WinCover::Bare] = + VTRatio * (wgtThisHr * (thisMap.DaylIllFacSun(state.dataGlobal->HourOfDay, loop, ILB, 1) + + thisMap.DaylIllFacSunDisk(state.dataGlobal->HourOfDay, loop, ILB, 1)) + + wgtPrevHr * (thisMap.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, ILB, 1) + + thisMap.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, ILB, 1))); if ((state.dataSurface->SurfWinWindowModelType(IWin) != WindowModel::BSDF) && (IS_SHADED(state.dataSurface->SurfWinShadingFlag(IWin)) || state.dataSurface->SurfWinSolarDiffusing(IWin))) { @@ -9286,11 +9270,12 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) // ===Shaded window=== if (!state.dataSurface->SurfWinMovableSlats(IWin)) { // Shade, screen, blind with fixed slats, or diffusing glass - DayltgInteriorMapIllumDFSUHR(2) = VTRatio * (wgtThisHr * thisMap.DaylIllFacSun(state.dataGlobal->HourOfDay, loop, ILB, 2) + - wgtPrevHr * thisMap.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, ILB, 2)); + DayltgInteriorMapIllumDFSUHR[(int)WinCover::Shaded] = + VTRatio * (wgtThisHr * thisMap.DaylIllFacSun(state.dataGlobal->HourOfDay, loop, ILB, 2) + + wgtPrevHr * thisMap.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, ILB, 2)); if (!state.dataSurface->SurfWinSlatsBlockBeam(IWin)) { - DayltgInteriorMapIllumDFSUHR(2) += + DayltgInteriorMapIllumDFSUHR[(int)WinCover::Shaded] += VTRatio * (wgtThisHr * thisMap.DaylIllFacSunDisk(state.dataGlobal->HourOfDay, loop, ILB, 2) + wgtPrevHr * thisMap.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, ILB, 2)); } @@ -9306,7 +9291,7 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) Real64 DaylIllFacSunPrev = General::Interp(thisMap.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, ILB, slatAngLo), thisMap.DaylIllFacSun(state.dataGlobal->PreviousHour, loop, ILB, slatAngHi), SurfWinSlatsAngInterpFac); - DFSUHR(2) = VTRatio * (wgtThisHr * DaylIllFacSunNow + wgtPrevHr * DaylIllFacSunPrev); + DFSUHR[(int)WinCover::Shaded] = VTRatio * (wgtThisHr * DaylIllFacSunNow + wgtPrevHr * DaylIllFacSunPrev); // We add the contribution from the solar disk if slats do not block beam solar // TH CR 8010, DaylIllFacSunDisk needs to be interpolated @@ -9319,7 +9304,7 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) General::Interp(thisMap.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, ILB, slatAngLo), thisMap.DaylIllFacSunDisk(state.dataGlobal->PreviousHour, loop, ILB, slatAngHi), SurfWinSlatsAngInterpFac); - DFSUHR(2) += VTRatio * (wgtThisHr * DaylIllFacSunDiskNow + wgtPrevHr * DaylIllFacSunDiskPrev); + DFSUHR[(int)WinCover::Shaded] += VTRatio * (wgtThisHr * DaylIllFacSunDiskNow + wgtPrevHr * DaylIllFacSunDiskPrev); } } // End of check if window has blind with movable slats } // End of check if window is shaded or has diffusing glass @@ -9341,13 +9326,15 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) HorIllSkyFac = state.dataEnvrn->HISKF / ((1.0 - SkyWeight) * DayltgInteriorMapIllumHorIllSky.sky[iSky2] + SkyWeight * DayltgInteriorMapIllumHorIllSky.sky[iSky1]); - for (int IS = 1; IS <= 2; ++IS) { - if (IS == 2 && state.dataSurface->SurfWinWindowModelType(IWin) == WindowModel::BSDF) break; - if (IS == 2 && NOT_SHADED(state.dataSurface->SurfWinShadingFlag(IWin)) && !state.dataSurface->SurfWinSolarDiffusing(IWin)) break; - auto const &dfskhr = DFSKHR(IS); + for (int iWinCover = 0; iWinCover < (int)WinCover::Num; ++iWinCover) { + if (iWinCover == (int)WinCover::Shaded) { + if (state.dataSurface->SurfWinWindowModelType(IWin) == WindowModel::BSDF) break; + if (NOT_SHADED(state.dataSurface->SurfWinShadingFlag(IWin)) && !state.dataSurface->SurfWinSolarDiffusing(IWin)) break; + } + auto const &dfskhr = DFSKHR[iWinCover]; - thisMap.IllumFromWinAtMapPt(loop, IS, ILB) = - DayltgInteriorMapIllumDFSUHR(IS) * state.dataEnvrn->HISUNF + + thisMap.IllumFromWinAtMapPt(loop, ILB)[iWinCover] = + DayltgInteriorMapIllumDFSUHR[iWinCover] * state.dataEnvrn->HISUNF + HorIllSkyFac * (dfskhr.sky[iSky1] * SkyWeight * DayltgInteriorMapIllumHorIllSky.sky[iSky1] + dfskhr.sky[iSky2] * (1.0 - SkyWeight) * DayltgInteriorMapIllumHorIllSky.sky[iSky2]); } @@ -9384,7 +9371,7 @@ void DayltgInteriorMapIllum(EnergyPlusData &state) for (int IL = 1; IL <= NREFPT; ++IL) { // Determine if illuminance contribution is from bare or shaded window - daylight_illum(IL) += VTMULT * thisMap.IllumFromWinAtMapPt(loop, IS, IL); + daylight_illum(IL) += VTMULT * thisMap.IllumFromWinAtMapPt(loop, IL)[IS - 1]; } } // End of second window loop @@ -9460,9 +9447,9 @@ void ReportIllumMap(EnergyPlusData &state, int const MapNum) ++rCount; illumMap.pointsHeader += format(" RefPt{}=({:.2R}:{:.2R}:{:.2R}),", rCount, - thisDaylightControl.DaylRefPtAbsCoord(1, R), - thisDaylightControl.DaylRefPtAbsCoord(2, R), - thisDaylightControl.DaylRefPtAbsCoord(3, R)); + thisDaylightControl.DaylRefPtAbsCoord(R).x, + thisDaylightControl.DaylRefPtAbsCoord(R).y, + thisDaylightControl.DaylRefPtAbsCoord(R).z); } } } @@ -9489,8 +9476,8 @@ void ReportIllumMap(EnergyPlusData &state, int const MapNum) for (int X = 1; X <= illumMap.Xnum; ++X) { const std::string AddXorYString = format("{}({:.2R};{:.2R})=", state.dataDaylightingData->MapColSep, - state.dataDaylightingData->IllumMapCalc(MapNum).MapRefPtAbsCoord(1, RefPt), - state.dataDaylightingData->IllumMapCalc(MapNum).MapRefPtAbsCoord(2, RefPt)); + state.dataDaylightingData->IllumMapCalc(MapNum).MapRefPtAbsCoord(RefPt).x, + state.dataDaylightingData->IllumMapCalc(MapNum).MapRefPtAbsCoord(RefPt).y); if (illumMap.HeaderXLineLengthNeeded) linelen += int(len(AddXorYString)); mapLine += AddXorYString; ++RefPt; @@ -9513,7 +9500,7 @@ void ReportIllumMap(EnergyPlusData &state, int const MapNum) // Write Y scale prefix and illuminance values RefPt = 1; for (int Y = 1; Y <= illumMap.Ynum; ++Y) { - mapLine = format("({:.2R};{:.2R})=", illumMapCalc.MapRefPtAbsCoord(1, RefPt), illumMapCalc.MapRefPtAbsCoord(2, RefPt)); + mapLine = format("({:.2R};{:.2R})=", illumMapCalc.MapRefPtAbsCoord(RefPt).x, illumMapCalc.MapRefPtAbsCoord(RefPt).y); for (int R = RefPt; R <= RefPt + illumMap.Xnum - 1; ++R) { int IllumOut = nint(illumMapCalc.DaylIllumAtMapPtHr(R)); std::string String; @@ -9855,12 +9842,16 @@ void DayltgSetupAdjZoneListsAndPointers(EnergyPlusData &state) thisDaylightControl.SolidAngAtRefPt = 0.0; thisDaylightControl.SolidAngAtRefPtWtd.allocate(enclExtWin(enclNum), thisDaylightControl.TotalDaylRefPoints); thisDaylightControl.SolidAngAtRefPtWtd = 0.0; - thisDaylightControl.IllumFromWinAtRefPt.allocate(enclExtWin(enclNum), 2, thisDaylightControl.TotalDaylRefPoints); - thisDaylightControl.IllumFromWinAtRefPt = 0.0; - thisDaylightControl.BackLumFromWinAtRefPt.allocate(enclExtWin(enclNum), 2, thisDaylightControl.TotalDaylRefPoints); - thisDaylightControl.BackLumFromWinAtRefPt = 0.0; - thisDaylightControl.SourceLumFromWinAtRefPt.allocate(enclExtWin(enclNum), 2, thisDaylightControl.TotalDaylRefPoints); - thisDaylightControl.SourceLumFromWinAtRefPt = 0.0; + thisDaylightControl.IllumFromWinAtRefPt.allocate(enclExtWin(enclNum), thisDaylightControl.TotalDaylRefPoints); + thisDaylightControl.BackLumFromWinAtRefPt.allocate(enclExtWin(enclNum), thisDaylightControl.TotalDaylRefPoints); + thisDaylightControl.SourceLumFromWinAtRefPt.allocate(enclExtWin(enclNum), thisDaylightControl.TotalDaylRefPoints); + for (int iExtWin = 1; iExtWin <= enclExtWin(enclNum); ++iExtWin) { + for (int iRefPt = 1; iRefPt <= thisDaylightControl.TotalDaylRefPoints; ++iRefPt) { + thisDaylightControl.IllumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + thisDaylightControl.BackLumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + thisDaylightControl.SourceLumFromWinAtRefPt(iExtWin, iRefPt) = {0.0, 0.0}; + } + } } int enclExtWinCtr = 0; @@ -9887,20 +9878,23 @@ void DayltgSetupAdjZoneListsAndPointers(EnergyPlusData &state) thisEnclDaylight.DayltgExtWinSurfNums(enclExtWinCtr) = SurfNumAdj; // If no daylighting in the adjacent enclosure, set up variables anyway: - if (state.dataViewFactor->EnclSolInfo(adjEnclNum).TotalEnclosureDaylRefPoints == 0) { - if (!state.dataSurface->SurfWinSurfDayLightInit(SurfNumAdj)) { - state.dataSurface->SurfaceWindow(SurfNumAdj).SolidAngAtRefPt.allocate(thisEnclNumRefPoints); - state.dataSurface->SurfaceWindow(SurfNumAdj).SolidAngAtRefPt = 0.0; - state.dataSurface->SurfaceWindow(SurfNumAdj).SolidAngAtRefPtWtd.allocate(thisEnclNumRefPoints); - state.dataSurface->SurfaceWindow(SurfNumAdj).SolidAngAtRefPtWtd = 0.0; - state.dataSurface->SurfaceWindow(SurfNumAdj).IllumFromWinAtRefPt.allocate(2, thisEnclNumRefPoints); - state.dataSurface->SurfaceWindow(SurfNumAdj).IllumFromWinAtRefPt = 0.0; - state.dataSurface->SurfaceWindow(SurfNumAdj).BackLumFromWinAtRefPt.allocate(2, thisEnclNumRefPoints); - state.dataSurface->SurfaceWindow(SurfNumAdj).BackLumFromWinAtRefPt = 0.0; - state.dataSurface->SurfaceWindow(SurfNumAdj).SourceLumFromWinAtRefPt.allocate(2, thisEnclNumRefPoints); - state.dataSurface->SurfaceWindow(SurfNumAdj).SourceLumFromWinAtRefPt = 0.0; - state.dataSurface->SurfWinSurfDayLightInit(SurfNumAdj) = true; + if (state.dataViewFactor->EnclSolInfo(adjEnclNum).TotalEnclosureDaylRefPoints == 0 && + !state.dataSurface->SurfWinSurfDayLightInit(SurfNumAdj)) { + auto &surfWinAdj = state.dataSurface->SurfaceWindow(SurfNumAdj); + surfWinAdj.SolidAngAtRefPt.allocate(thisEnclNumRefPoints); + surfWinAdj.SolidAngAtRefPt = 0.0; + surfWinAdj.SolidAngAtRefPtWtd.allocate(thisEnclNumRefPoints); + surfWinAdj.SolidAngAtRefPtWtd = 0.0; + surfWinAdj.IllumFromWinAtRefPt.allocate(thisEnclNumRefPoints); + surfWinAdj.BackLumFromWinAtRefPt.allocate(thisEnclNumRefPoints); + surfWinAdj.SourceLumFromWinAtRefPt.allocate(thisEnclNumRefPoints); + + for (int iRefPt = 1; iRefPt < (int)surfWinAdj.IllumFromWinAtRefPt.size(); ++iRefPt) { + surfWinAdj.IllumFromWinAtRefPt(iRefPt) = {0.0, 0.0}; + surfWinAdj.BackLumFromWinAtRefPt(iRefPt) = {0.0, 0.0}; + surfWinAdj.SourceLumFromWinAtRefPt(iRefPt) = {0.0, 0.0}; } + state.dataSurface->SurfWinSurfDayLightInit(SurfNumAdj) = true; } } } @@ -9934,8 +9928,8 @@ void DayltgSetupAdjZoneListsAndPointers(EnergyPlusData &state) // size these for the maximum of the shade deployment order state.dataDaylightingManager->DILLSW.allocate(maxShadeDeployOrderExtWinsSize); state.dataDaylightingManager->DILLUN.allocate(maxShadeDeployOrderExtWinsSize); - state.dataDaylightingManager->WDAYIL.allocate(2, state.dataDaylightingData->maxRefPointsPerControl, maxShadeDeployOrderExtWinsSize); - state.dataDaylightingManager->WBACLU.allocate(2, state.dataDaylightingData->maxRefPointsPerControl, maxShadeDeployOrderExtWinsSize); + state.dataDaylightingManager->WDAYIL.allocate(state.dataDaylightingData->maxRefPointsPerControl, maxShadeDeployOrderExtWinsSize); + state.dataDaylightingManager->WBACLU.allocate(state.dataDaylightingData->maxRefPointsPerControl, maxShadeDeployOrderExtWinsSize); state.dataDaylightingManager->RDAYIL.allocate(state.dataDaylightingData->maxRefPointsPerControl, maxShadeDeployOrderExtWinsSize); state.dataDaylightingManager->RBACLU.allocate(state.dataDaylightingData->maxRefPointsPerControl, maxShadeDeployOrderExtWinsSize); @@ -9961,8 +9955,12 @@ void DayltgSetupAdjZoneListsAndPointers(EnergyPlusData &state) int numMapRefPts = illumMapCalc.TotalMapRefPoints; if (numMapRefPts > 0) { - illumMapCalc.IllumFromWinAtMapPt.allocate(numExtWin, 2, numMapRefPts); - illumMapCalc.IllumFromWinAtMapPt = 0.0; + illumMapCalc.IllumFromWinAtMapPt.allocate(numExtWin, numMapRefPts); + for (int iExtWin = 1; iExtWin <= numExtWin; ++iExtWin) { + for (int iRefPt = 1; iRefPt <= numMapRefPts; ++iRefPt) { + illumMapCalc.IllumFromWinAtMapPt(iExtWin, iRefPt) = {0.0, 0.0}; + } + } illumMapCalc.DaylIllFacSky.allocate(Constant::HoursInDay, numExtWin, numMapRefPts, numSlatAngs); illumMapCalc.DaylIllFacSun.allocate(Constant::HoursInDay, numExtWin, numMapRefPts, numSlatAngs); @@ -9985,10 +9983,6 @@ void DayltgSetupAdjZoneListsAndPointers(EnergyPlusData &state) state.dataDaylightingManager->FLFWSU.dimension(numSlatAngs); state.dataDaylightingManager->FLFWSUdisk.dimension(numSlatAngs); state.dataDaylightingManager->FLCWSU.dimension(numSlatAngs); - state.dataDaylightingManager->TransMult.dimension(state.dataSurface->actualMaxSlatAngs); - state.dataDaylightingManager->DayltgInterReflectedIllumTransBmBmMult.dimension(state.dataSurface->actualMaxSlatAngs); - state.dataDaylightingManager->TransBmBmMult.dimension(state.dataSurface->actualMaxSlatAngs); - state.dataDaylightingManager->TransBmBmMultRefl.dimension(state.dataSurface->actualMaxSlatAngs); state.dataDaylightingManager->FLCWSK.dimension(numSlatAngs, Illums()); state.dataDaylightingManager->FLFWSK.dimension(numSlatAngs, Illums()); @@ -10188,27 +10182,6 @@ void CalcMinIntWinSolidAngs(EnergyPlusData &state) // For each Daylighting:Detailed zone finds the minimum solid angle subtended // by interior windows through which daylight can pass from adjacent zones with // exterior windows. - - bool is_Triangle; // True if window is a triangle - bool is_Rectangle; // True if window is a rectangle - Real64 IntWinSolidAng; // Approximation to solid angle subtended by an interior window - // from a point a distance SQRT(zone floor area) away. - auto &W1 = state.dataDaylightingManager->CalcMinIntWinSolidAngsW1; // Window vertices - auto &W2 = state.dataDaylightingManager->CalcMinIntWinSolidAngsW2; - auto &W3 = state.dataDaylightingManager->CalcMinIntWinSolidAngsW3; - auto &WC = state.dataDaylightingManager->CalcMinIntWinSolidAngsWC; // Center point of window - auto &W21 = state.dataDaylightingManager->CalcMinIntWinSolidAngsW21; // Unit vectors from window vertex 2 to 1 and 2 to 3 - auto &W23 = state.dataDaylightingManager->CalcMinIntWinSolidAngsW23; - auto &RREF = state.dataDaylightingManager->CalcMinIntWinSolidAngsRREF; // Location of a reference point in absolute coordinate system - auto &Ray = state.dataDaylightingManager->CalcMinIntWinSolidAngsRay; // Unit vector along ray from reference point to window center - auto &REFWC = state.dataDaylightingManager->CalcMinIntWinSolidAngsREFWC; // Vector from reference point to center of window - auto &WNORM = state.dataDaylightingManager->CalcMinIntWinSolidAngsWNORM; // Unit vector normal to window (pointing away from room) - Real64 HW; // Window height and width (m) - Real64 WW; - Real64 DIS; // Distance from ref point to window center (m) - Real64 COSB; // Cosine of angle between ray from ref pt to center of window - // and window outward normal - for (int enclNum = 1; enclNum <= state.dataViewFactor->NumOfSolarEnclosures; ++enclNum) { auto &thisEnclDaylight = state.dataDaylightingData->enclDaylight(enclNum); thisEnclDaylight.MinIntWinSolidAng = 2.0 * Constant::Pi; @@ -10236,9 +10209,11 @@ void CalcMinIntWinSolidAngs(EnergyPlusData &state) auto &thisDaylightControl = state.dataDaylightingData->daylightControl(controlNum); for (int IL = 1; IL <= thisDaylightControl.TotalDaylRefPoints; ++IL) { // Reference point in absolute coordinate system - RREF = thisDaylightControl.DaylRefPtAbsCoord({1, 3}, IL); - is_Triangle = (surf.Sides == 3); - is_Rectangle = (surf.Sides == 4); + Vector3 RREF = thisDaylightControl.DaylRefPtAbsCoord(IL); + bool is_Triangle = (surf.Sides == 3); + bool is_Rectangle = (surf.Sides == 4); + + Vector3 W1, W2, W3; if (is_Rectangle) { // Vertices of window numbered counter-clockwise starting at upper left as viewed // from inside of room. Assumes original vertices are numbered counter-clockwise from @@ -10253,31 +10228,29 @@ void CalcMinIntWinSolidAngs(EnergyPlusData &state) } // Unit vectors from window vertex 2 to 1 and 2 to 3, center point of window, // and vector from ref pt to center of window - W21 = W1 - W2; - W23 = W3 - W2; - HW = W21.magnitude(); - WW = W23.magnitude(); - if (is_Rectangle) { - WC = W2 + (W23 + W21) / 2.0; - } else if (is_Triangle) { - WC = W2 + (W23 + W21) / 3.0; - } + Vector3 W21 = W1 - W2; + Vector3 W23 = W3 - W2; + Real64 HW = W21.magnitude(); + Real64 WW = W23.magnitude(); + Vector3 WC = + (is_Rectangle) ? (W2 + (W23 + W21) / 2.0) : (is_Triangle ? (W2 + (W23 + W21) / 3.0) : (W2 + (W23 + W21) / 3.0)); + // Vector from ref point to center of window - REFWC = WC - RREF; + Vector3 REFWC = WC - RREF; W21 /= HW; W23 /= WW; // Unit vector normal to window (pointing away from room) - WNORM = surf.OutNormVec; + Vector3 WNORM = surf.OutNormVec; // Distance from ref point to center of window - DIS = REFWC.magnitude(); + Real64 DIS = REFWC.magnitude(); // Unit vector from ref point to center of window - Ray = REFWC / DIS; + Vector3 Ray = REFWC / DIS; // Cosine of angle between ray from ref pt to center of window and window outward normal - COSB = dot(WNORM, Ray); + Real64 COSB = dot(WNORM, Ray); if (COSB > 0.01765) { // 0 <= B < 89 deg // Above test avoids case where ref point cannot receive daylight directly from the // interior window - IntWinSolidAng = COSB * surf.Area / (pow_2(DIS) + 0.001); + Real64 IntWinSolidAng = COSB * surf.Area / (pow_2(DIS) + 0.001); thisEnclDaylight.MinIntWinSolidAng = min(thisEnclDaylight.MinIntWinSolidAng, IntWinSolidAng); } } // for (IL) diff --git a/src/EnergyPlus/DaylightingManager.hh b/src/EnergyPlus/DaylightingManager.hh index 748dc2cdb60..9cf95022c8b 100644 --- a/src/EnergyPlus/DaylightingManager.hh +++ b/src/EnergyPlus/DaylightingManager.hh @@ -82,8 +82,10 @@ namespace Dayltg { constexpr int octreeCrossover(100); // Octree surface count crossover constexpr int NTH(18); // Number of azimuth steps for sky integration constexpr int NPH(8); // Number of altitude steps for sky integration - constexpr int NPHMAX(10); // Number of sky/ground integration steps in altitude - constexpr int NTHMAX(16); // Number of sky/ground integration steps in azimuth + + // It's crazy having both NPH and NPHMAX + constexpr int NPHMAX(10); // Number of sky/ground integration steps in altitude + constexpr int NTHMAX(16); // Number of sky/ground integration steps in azimuth void DayltgAveInteriorReflectance(EnergyPlusData &state, int const enclNum); // Enclosure number @@ -539,57 +541,6 @@ struct DaylightingManagerData : BaseGlobalStruct bool MySunIsUpFlag = false; bool CalcDayltgCoeffsMapPointsMySunIsUpFlag = false; - - // static variables extracted from functions - Vector3 AR; // Inside surface area sum for floor/wall/ceiling (m2) - Vector3 ARH; // Inside surface area*reflectance sum for floor/wall/ceiling (m2) - Vector3 AP; // Zone inside surface floor/wall/ceiling area without a selected floor/wall/ceiling (m2) - Vector3 ARHP; // Zone inside surface floor/wall/ceiling area*reflectance without a selected floor/wall/ceiling (m2) - Vector3 W2; // Second vertex of window - Vector3 W3; // Third vertex of window - Vector3 W21; // Vector from window vertex 2 to window vertex 1 - Vector3 W23; // Vector from window vertex 2 to window vertex 3 - Vector3 RREF; // Location of a reference point in absolute coordinate system - Vector3 RREF2; // Location of virtual reference point in absolute coordinate system - Vector3 RWIN; // Center of a window element in absolute coordinate system - Vector3 RWIN2; // Center of a window element for TDD:DOME (if exists) in abs coord sys - Vector3 Ray; // Unit vector along ray from reference point to window element - Vector3 WNORM2; // Unit vector normal to TDD:DOME (if exists) - Vector3 VIEWVC; // View vector in absolute coordinate system - Vector3 U2; // Second vertex of window for TDD:DOME (if exists) - Vector3 U21; // Vector from window vertex 2 to window vertex 1 for TDD:DOME (if exists) - Vector3 U23; // Vector from window vertex 2 to window vertex 3 for TDD:DOME (if exists) - Vector3 VIEWVC2; // Virtual view vector in absolute coordinate system - - Vector3 W1; // First vertex of window (where vertices are numbered - Vector3 WC; // Center point of window - Vector3 REFWC; // Vector from reference point to center of window - Vector3 WNORM; // Unit vector normal to window (pointing away from room) - Vector3 W2REF; // Vector from window origin to project of ref. pt. on window plane - Vector3 REFD; // Vector from ref pt to center of win in TDD:DIFFUSER coord sys (if exists) - Vector3 VIEWVD; // Virtual view vector in TDD:DIFFUSER coord sys (if exists) - Vector3 U1; // First vertex of window for TDD:DOME (if exists) - Vector3 U3; // Third vertex of window for TDD:DOME (if exists) - Vector3 RayVector; - - Vector3 HitPtIntWin; // Intersection point on an interior window for ray from ref pt to ext win (m) - Vector3 GroundHitPt; // Coordinates of point that ray hits ground (m) - Vector3 URay; // Unit vector in (Phi,Theta) direction - Vector3 ObsHitPt; // Coordinates of hit point on an obstruction (m) - - Vector3 WNorm; // unit vector from window (point towards outside) - Vector3 RayNorm; // unit vector along ray from window to reference point - Vector3 InterPoint; // Intersection point - Vector3 RWin; // window element center point (same as centroid) - Vector3 V; // vector array - - Vector3 NearestHitPt; // Hit point of ray on nearest obstruction - Vector3 ReflNorm; // Normal vector to reflecting surface - Vector3 SunVecMir; // Sun ray mirrored in reflecting surface - Vector3 HitPtRefl; // Point that ray hits reflecting surface - Vector3 HitPtObs; // Hit point on obstruction - Vector3 HitPtIntWinDisk; // Intersection point on an interior window for ray from ref pt to sun (m) - int AltSteps_last = 0; Array1D cos_Phi; // cos( Phi ) table Array1D sin_Phi; // sin( Phi ) table @@ -600,112 +551,62 @@ struct DaylightingManagerData : BaseGlobalStruct // int IConstShaded = 0; // The shaded window construction for switchable windows Real64 VTDark = 0.0; // Visible transmittance (VT) of electrochromic (EC) windows in fully dark state // Real64 VTMULT = 1.0; // VT multiplier for EC windows // I don't think this is used anywhere - - Vector3 WinNorm; // Window outward normal unit vector - Vector3 - SunPrime; // Projection of sun vector onto plane (perpendicular to window plane) determined by WinNorm and vector along baseline of window - Vector3 WinNormCrossBase; // Cross product of WinNorm and vector along window baseline - Dayltg::Illums XEDIRSK; // Illuminance contribution from luminance element, sky-related - Dayltg::Illums XAVWLSK; // Luminance of window element, sky-related - Vector3 RAYCOS; // Unit vector from reference point to sun - Vector3 HP; // Hit coordinates, if ray hits - Vector3 DayltgHitObstructionHP; // Hit coordinates, if ray hits an obstruction - Vector3 DayltgHitInteriorObstructionHP; // Hit coordinates, if ray hits an obstruction - Vector3 RN; // Unit vector along ray - Vector3 DayltgHitBetWinObstructionHP; // Hit coordinates, if ray hits an obstruction surface (m) - Vector3 DayltgHitBetWinObstructionRN; // Unit vector along ray from R1 to R2 - Vector2 DFSUHR; // Sun daylight factor for bare/shaded window - Vector2 BFSUHR; // Sun background luminance factor for bare/shaded window - Vector2 SFSUHR; // Sun source luminance factor for bare/shaded window - Dayltg::Illums HorIllSky; // Horizontal illuminance for different sky types - Dayltg::Illums TDDTransVisDiff; // Weighted diffuse visible transmittance for each sky type - Vector3 HitPt; // Hit point on an obstruction (m) - Vector3 DayltgSurfaceLumFromSunReflNorm; // Unit normal to reflecting surface (m) - Vector3 DayltgSurfaceLumFromSunObsHitPt; // Hit point on obstruction (m) - Vector3 U; // Unit vector in (PH,TH) direction - Vector3 DayltgInterReflectedIllumNearestHitPt; // Hit point of ray on nearest obstruction (m) - Vector3 DayltgInterReflectedIllumObsHitPt; // Coordinates of hit point on an obstruction (m) - Vector3 DayltgInterReflectedIllumGroundHitPt; // Coordinates of point that ray from window center hits the ground (m) - Vector3 DayltgInterReflectedIllumURay; // Unit vector in (Phi,Theta) direction - Vector3 ComplexFenestrationLuminancesObsHitPt; // Coordinates of hit point on an obstruction (m) - Vector3 ComplexFenestrationLuminancesGroundHitPt; // Coordinates of point that ray from window center hits the ground (m) - Dayltg::Illums ZSK; // Sky-related and sun-related illuminance on window from sky/ground + std::array DFSUHR; // Sun daylight factor for bare/shaded window + std::array BFSUHR; // Sun background luminance factor for bare/shaded window + std::array SFSUHR; // Sun source luminance factor for bare/shaded window + Dayltg::Illums HorIllSky; // Horizontal illuminance for different sky types + Dayltg::Illums TDDTransVisDiff; // Weighted diffuse visible transmittance for each sky type + Dayltg::Illums ZSK; // Sky-related and sun-related illuminance on window from sky/ground Dayltg::Illums FFSKTot; - Dayltg::Illums WinLumSK; // Sky related window luminance - Dayltg::Illums EDirSky; // Sky related direct illuminance - Vector3 DayltgDirectSunDiskComplexFenestrationV; // temporary vector - Vector3 DayltgDirectSunDiskComplexFenestrationRWin; // Window center - Vector2 DayltgInteriorMapIllumDFSUHR; // Sun daylight factor for bare/shaded window - Dayltg::Illums DayltgInteriorMapIllumHorIllSky; // Horizontal illuminance for different sky types - Vector3 CalcMinIntWinSolidAngsW1; // Window vertices - Vector3 CalcMinIntWinSolidAngsW2; - Vector3 CalcMinIntWinSolidAngsW3; - Vector3 CalcMinIntWinSolidAngsWC; // Center point of window - Vector3 CalcMinIntWinSolidAngsW21; // Unit vectors from window vertex 2 to 1 and 2 to 3 - Vector3 CalcMinIntWinSolidAngsW23; - Vector3 CalcMinIntWinSolidAngsRREF; // Location of a reference point in absolute coordinate system - Vector3 CalcMinIntWinSolidAngsRay; // Unit vector along ray from reference point to window center - Vector3 CalcMinIntWinSolidAngsREFWC; // Vector from reference point to center of window - Vector3 CalcMinIntWinSolidAngsWNORM; // Unit vector normal to window (pointing away from room) - - Array1D DayltgInteriorMapIllumDFSKHR = - Array1D(2); // Sky daylight factor for sky type (first index), bare/shaded window (second index) - Array1D DayltgInteriorMapIllumBFSKHR = - Array1D(2); // Sky background luminance factor for sky type (first index), bare/shaded window (second index) - Array1D DayltgInteriorMapIllumSFSKHR = - Array1D(2); // Sky source luminance factor for sky type (first index), bare/shaded window (second index) + Dayltg::Illums WinLumSK; // Sky related window luminance + Dayltg::Illums EDirSky; // Sky related direct illuminance + std::array DayltgInteriorMapIllumDFSUHR; // Sun daylight factor for bare/shaded window + Dayltg::Illums DayltgInteriorMapIllumHorIllSky; // Horizontal illuminance for different sky types + + // Sky daylight factor for sky type (first index), bare/shaded window (second index) + std::array DayltgInteriorMapIllumDFSKHR; + // Sky background luminance factor for sky type (first index), bare/shaded window (second index) + std::array DayltgInteriorMapIllumBFSKHR; + // Sky source luminance factor for sky type (first index), bare/shaded window (second index) + std::array DayltgInteriorMapIllumSFSKHR; + Array1D BACLUM; Array1D DayltgInteriorMapIllumGLRNDX; Array1D daylight_illum; - Array1D FLFWSU; // Sun-related downgoing luminous flux, excluding entering beam - Array1D FLFWSUdisk; // Sun-related downgoing luminous flux, due to entering beam - Array1D FLCWSU; // Sun-related upgoing luminous flux - Array1D TransMult; // Transmittance multiplier - Array1D DayltgInterReflectedIllumTransBmBmMult; // Isolated blind beam-beam transmittance - Array1D TransBmBmMult; // Beam-beam transmittance of isolated blind - Array1D TransBmBmMultRefl; // As above but for beam reflected from exterior obstruction - Array1D PH = Array1D(Dayltg::NPH); // Altitude of sky element (radians) - Array1D TH = Array1D(Dayltg::NTH); // Azimuth of sky element (radians) - Array1D SPHCPH = Array1D(Dayltg::NPH); // Sine times cosine of altitude of sky element - Array1D SetPnt; // Illuminance setpoint at reference points (lux) - Array1D GLRNDX; // Glare index at reference point - Array1D GLRNEW; // New glare index at reference point - Array1D FLCWSK; // Sky-related upgoing luminous flux - Array2D SkyObstructionMult = - Array2D(Dayltg::NPHMAX, - Dayltg::NTHMAX); // Ratio of obstructed to unobstructed sky diffuse at a ground point for each (TH,PH) direction - Array1D FLFWSK; // Sky-related downgoing luminous flux - Array2D ObTransM = Array2D(Dayltg::NPHMAX, Dayltg::NTHMAX); // ObTrans value for each (TH,PH) direction - Array1D SFSKHR = - Array1D(2); // Sky source luminance factor for sky type (second index), bare/shaded window (first index) - Array1D DFSKHR = Array1D(2); // Sky daylight factor for sky type (second index), bare/shaded window (first index) - Array1D BFSKHR = - Array1D(2); // Sky background luminance factor for sky type (second index), bare/shaded window (first index) - Array3D tmpIllumFromWinAtRefPt; - Array3D tmpBackLumFromWinAtRefPt; - Array3D tmpSourceLumFromWinAtRefPt; + Array1D FLFWSU; // Sun-related downgoing luminous flux, excluding entering beam + Array1D FLFWSUdisk; // Sun-related downgoing luminous flux, due to entering beam + Array1D FLCWSU; // Sun-related upgoing luminous flux + std::array PH; // Altitude of sky element (radians) + std::array TH; // Azimuth of sky element (radians) + std::array SPHCPH; // Sine times cosine of altitude of sky element + Array1D SetPnt; // Illuminance setpoint at reference points (lux) + Array1D GLRNDX; // Glare index at reference point + Array1D GLRNEW; // New glare index at reference point + Array1D FLCWSK; // Sky-related upgoing luminous flux + // Ratio of obstructed to unobstructed sky diffuse at a ground point for each (TH,PH) direction + std::array, Dayltg::NPHMAX + 1> SkyObstructionMult; + Array1D FLFWSK; // Sky-related downgoing luminous flux + std::array, Dayltg::NPHMAX + 1> ObTransM; // ObTrans value for each (TH,PH) direction + std::array SFSKHR; // Sky source luminance factor for sky type, bare/shaded window + std::array DFSKHR; // Sky daylight factor for sky type, bare/shaded window + std::array BFSKHR; // Sky background luminance factor for sky type, bare/shaded window + + Array2D> tmpIllumFromWinAtRefPt; + Array2D> tmpBackLumFromWinAtRefPt; + Array2D> tmpSourceLumFromWinAtRefPt; Array1D_bool FirstTimeMaps; Array1D_bool EnvrnPrint; Array1D_string SavedMnDy; Array1D XValue; Array1D YValue; Array2D IllumValue; - - Real64 tmpSWSL1 = 0.0; - Real64 tmpSWSL2 = 0.0; - Real64 tmpSWFactor = 0.0; // new switching factor to meet glare criteria - Real64 tmpMult = 0.0; - - bool GlareOK = false; - bool blnCycle = false; - Array1D DILLSW; // Illuminance a ref point from a group of windows that can be switched together, Array1D DILLUN; // and from those that aren't (lux) Array1D_bool previously_shaded; // array of flags to indicate that previously groups would have already shaded this window - Array3D WDAYIL; // Illuminance from window at reference point (second index) - // for shade open/closed (first index), the number of shade deployment groups (third index) - Array3D WBACLU; // Background illuminance from window at reference point (second index) - // for shade open/closed (first index), the number of shade deployment groups (third index) + Array2D> WDAYIL; // Illuminance from window at reference point (second index) + // the number of shade deployment groups (third index) + Array2D> WBACLU; // Background illuminance from window at reference point (second index) + // the number of shade deployment groups (third index) Array2D RDAYIL; // Illuminance from window at reference point after closing shade Array2D RBACLU; // Background illuminance from window at reference point after closing shade Array1D TVIS1; // Visible transmittance at normal incidence of unswitched glazing @@ -769,52 +670,6 @@ struct DaylightingManagerData : BaseGlobalStruct this->RefErrIndex.deallocate(); this->MySunIsUpFlag = false; this->CalcDayltgCoeffsMapPointsMySunIsUpFlag = false; - // seems like a reasonable initialization for the Vector variables - this->AR = 0.0; - this->ARH = 0.0; - this->AP = 0.0; - this->ARHP = 0.0; - this->W2 = 0.0; - this->W3 = 0.0; - this->W21 = 0.0; - this->W23 = 0.0; - this->RREF = 0.0; - this->RREF2 = 0.0; - this->RWIN = 0.0; - this->RWIN2 = 0.0; - this->Ray = 0.0; - this->WNORM2 = 0.0; - this->VIEWVC = 0.0; - this->U2 = 0.0; - this->U21 = 0.0; - this->U23 = 0.0; - this->VIEWVC2 = 0.0; - this->W1 = 0.0; - this->WC = 0.0; - this->REFWC = 0.0; - this->WNORM = 0.0; - this->W2REF = 0.0; - this->REFD = 0.0; - this->VIEWVD = 0.0; - this->U1 = 0.0; - this->U3 = 0.0; - this->RayVector = 0.0; - this->HitPtIntWin = 0.0; - this->GroundHitPt = 0.0; - this->URay = 0.0; - this->ObsHitPt = 0.0; - this->WNorm = 0.0; - this->RayNorm = 0.0; - this->InterPoint = 0.0; - this->RWin = 0.0; - this->V = 0.0; - this->NearestHitPt = 0.0; - this->ReflNorm = 0.0; - this->SunVecMir = 0.0; - this->HitPtRefl = 0.0; - this->HitPtObs = 0.0; - this->HitPtIntWinDisk = 0.0; - this->AltSteps_last = 0; this->AzimSteps_last = 0; this->cos_Phi = Array1D(DataSurfaces::AltAngStepsForSolReflCalc / 2); // cos( Phi ) table @@ -826,32 +681,17 @@ struct DaylightingManagerData : BaseGlobalStruct this->VTDark = 0.0; // this->VTMULT = 1.0; - this->DayltgInteriorMapIllumDFSKHR = Array1D(2); - this->DayltgInteriorMapIllumBFSKHR = Array1D(2); - this->DayltgInteriorMapIllumSFSKHR = Array1D(2); this->BACLUM.clear(); this->DayltgInteriorMapIllumGLRNDX.clear(); this->daylight_illum.clear(); this->FLFWSU.clear(); this->FLFWSUdisk.clear(); this->FLCWSU.clear(); - this->TransMult.clear(); - this->DayltgInterReflectedIllumTransBmBmMult.clear(); - this->TransBmBmMult.clear(); - this->TransBmBmMultRefl.clear(); - this->PH = Array1D(Dayltg::NPH); - this->TH = Array1D(Dayltg::NTH); - this->SPHCPH = Array1D(Dayltg::NPH); this->SetPnt.clear(); this->GLRNDX.clear(); this->GLRNEW.clear(); this->FLCWSK.clear(); - this->SkyObstructionMult = Array2D(Dayltg::NPHMAX, Dayltg::NTHMAX); this->FLFWSK.clear(); - this->ObTransM = Array2D(Dayltg::NPHMAX, Dayltg::NTHMAX); - this->SFSKHR = Array1D(2); - this->DFSKHR = Array1D(2); - this->BFSKHR = Array1D(2); this->tmpIllumFromWinAtRefPt.clear(); this->tmpBackLumFromWinAtRefPt.clear(); this->tmpSourceLumFromWinAtRefPt.clear(); @@ -861,14 +701,6 @@ struct DaylightingManagerData : BaseGlobalStruct this->XValue.clear(); this->YValue.clear(); this->IllumValue.clear(); - - this->tmpSWSL1 = 0.0; - this->tmpSWSL2 = 0.0; - this->tmpSWFactor = 0.0; - this->tmpMult = 0.0; - this->GlareOK = false; - this->blnCycle = false; - this->DILLSW.clear(); this->DILLUN.clear(); this->previously_shaded.clear(); diff --git a/src/EnergyPlus/EarthTube.cc b/src/EnergyPlus/EarthTube.cc index e7d3ef62e98..bc000b42e08 100644 --- a/src/EnergyPlus/EarthTube.cc +++ b/src/EnergyPlus/EarthTube.cc @@ -96,9 +96,12 @@ enum class SoilType Num }; +int totEarthTube = 0; + constexpr std::array(Ventilation::Num)> ventilationNamesUC = {"NATURAL", "INTAKE", "EXHAUST"}; constexpr std::array(SoilType::Num)> soilTypeNamesUC = { "HEAVYANDSATURATED", "HEAVYANDDAMP", "HEAVYANDDRY", "LIGHTANDDRY"}; +constexpr std::array(EarthTubeModelType::Num)> solutionTypeNamesUC = {"BASIC", "VERTICAL"}; void ManageEarthTube(EnergyPlusData &state) { @@ -121,6 +124,8 @@ void ManageEarthTube(EnergyPlusData &state) if (state.dataEarthTube->EarthTubeSys.empty()) return; + initEarthTubeVertical(state); + CalcEarthTube(state); ReportEarthTube(state); @@ -152,12 +157,53 @@ void GetEarthTube(EnergyPlusData &state, bool &ErrorsFound) // If errors found i // Following used for reporting state.dataEarthTube->ZnRptET.allocate(state.dataGlobal->NumOfZones); - constexpr std::string_view cCurrentModuleObject = "ZoneEarthtube"; - int TotEarthTube = state.dataInputProcessing->inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); + std::string_view cCurrentModuleObject = "ZoneEarthtube:Parameters"; + int totEarthTubePars = state.dataInputProcessing->inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); + + state.dataEarthTube->EarthTubePars.allocate(totEarthTubePars); + + for (Loop = 1; Loop <= totEarthTubePars; ++Loop) { + auto &thisEarthTubePars = state.dataEarthTube->EarthTubePars(Loop); + state.dataInputProcessing->inputProcessor->getObjectItem(state, + cCurrentModuleObject, + Loop, + state.dataIPShortCut->cAlphaArgs, + NumAlpha, + state.dataIPShortCut->rNumericArgs, + NumNumber, + IOStat, + state.dataIPShortCut->lNumericFieldBlanks, + state.dataIPShortCut->lAlphaFieldBlanks, + state.dataIPShortCut->cAlphaFieldNames, + state.dataIPShortCut->cNumericFieldNames); + + thisEarthTubePars.nameParameters = state.dataIPShortCut->cAlphaArgs(1); + // Check to make sure name is unique + for (int otherParams = 1; otherParams < Loop; ++otherParams) { + if (UtilityRoutines::SameString(thisEarthTubePars.nameParameters, state.dataEarthTube->EarthTubePars(otherParams).nameParameters)) { + ShowSevereError(state, + format("{}: {} = {} is not a unique name.", + cCurrentModuleObject, + state.dataIPShortCut->cAlphaFieldNames(1), + state.dataIPShortCut->cAlphaArgs(1))); + ShowContinueError(state, format("Check the other {} names for a duplicate.", cCurrentModuleObject)); + ErrorsFound = true; + } + } + + thisEarthTubePars.numNodesAbove = state.dataIPShortCut->rNumericArgs(1); + thisEarthTubePars.numNodesBelow = state.dataIPShortCut->rNumericArgs(2); + thisEarthTubePars.dimBoundAbove = state.dataIPShortCut->rNumericArgs(3); + thisEarthTubePars.dimBoundBelow = state.dataIPShortCut->rNumericArgs(4); + thisEarthTubePars.width = state.dataIPShortCut->rNumericArgs(5); + } + + cCurrentModuleObject = "ZoneEarthtube"; + totEarthTube = state.dataInputProcessing->inputProcessor->getNumObjectsFound(state, cCurrentModuleObject); - state.dataEarthTube->EarthTubeSys.allocate(TotEarthTube); + state.dataEarthTube->EarthTubeSys.allocate(totEarthTube); - for (Loop = 1; Loop <= TotEarthTube; ++Loop) { + for (Loop = 1; Loop <= totEarthTube; ++Loop) { auto &thisEarthTube = state.dataEarthTube->EarthTubeSys(Loop); state.dataInputProcessing->inputProcessor->getObjectItem(state, cCurrentModuleObject, @@ -337,6 +383,8 @@ void GetEarthTube(EnergyPlusData &state, bool &ErrorsFound) // If errors found i ErrorsFound = true; } if (thisEarthTube.z <= (thisEarthTube.r1 + thisEarthTube.r2 + thisEarthTube.r3)) { + // Note that code in initEarthTubeVertical assumes that this check remains in place--if this ever gets changed, + // code in initEarthTubeVertical must be modified ShowSevereError(state, format("{}: {}={}, {} must be greater than 3*{} + {} entered value={:.2R} ref sum={:.2R}", cCurrentModuleObject, @@ -382,6 +430,46 @@ void GetEarthTube(EnergyPlusData &state, bool &ErrorsFound) // If errors found i thisEarthTube.VelocityTermCoef = state.dataIPShortCut->rNumericArgs(17); thisEarthTube.VelocitySQTermCoef = state.dataIPShortCut->rNumericArgs(18); + // cAlphaArgs(5)--Model type: basic or vertical + // only process cAlphaArgs(6) if cAlphaArgs(5) is "Vertical" + if (state.dataIPShortCut->cAlphaArgs(5).empty()) { + thisEarthTube.ModelType = EarthTubeModelType::Basic; + } else { + thisEarthTube.ModelType = static_cast(getEnumValue(solutionTypeNamesUC, state.dataIPShortCut->cAlphaArgs(5))); + if (thisEarthTube.ModelType == EarthTubeModelType::Invalid) { + ShowSevereError(state, + format("{}: {}={}, {} invalid={}", + cCurrentModuleObject, + state.dataIPShortCut->cAlphaFieldNames(1), + state.dataIPShortCut->cAlphaArgs(1), + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5))); + ErrorsFound = true; + } + } + + if (thisEarthTube.ModelType == EarthTubeModelType::Vertical) { + thisEarthTube.r3 = 0.0; // Vertical model does not use this parameter--reset to zero (keep because r3=0 necessary so Rs=0 in calc routine) + // Process the parameters based on the name (link via index) + thisEarthTube.vertParametersPtr = 0; + for (int parIndex = 1; parIndex <= totEarthTubePars; ++parIndex) { + if (UtilityRoutines::SameString(state.dataIPShortCut->cAlphaArgs(6), state.dataEarthTube->EarthTubePars(parIndex).nameParameters)) { + thisEarthTube.vertParametersPtr = parIndex; + break; + } + } + if (thisEarthTube.vertParametersPtr == 0) { // didn't find a match + ShowSevereError(state, + format("{}: {}={}, Parameter Object {} was not found in the input file.", + cCurrentModuleObject, + state.dataIPShortCut->cAlphaFieldNames(1), + state.dataIPShortCut->cAlphaArgs(1), + state.dataIPShortCut->cAlphaArgs(6))); + ShowContinueError(state, "Check this name and make sure one of the earth tube parameters objects matches it."); + ErrorsFound = true; + } + } + if (thisEarthTube.ZonePtr > 0) { if (RepVarSet(thisEarthTube.ZonePtr)) { RepVarSet(thisEarthTube.ZonePtr) = false; @@ -487,7 +575,7 @@ void GetEarthTube(EnergyPlusData &state, bool &ErrorsFound) // If errors found i SetupOutputVariable(state, "Earth Tube Ground Interface Temperature", OutputProcessor::Unit::C, - thisEarthTube.GroundTempz1z2t, + thisEarthTube.GroundTempt, OutputProcessor::SOVTimeStepType::System, OutputProcessor::SOVStoreType::State, zone.Name); @@ -543,6 +631,195 @@ void CheckEarthTubesInZones(EnergyPlusData &state, } } +void initEarthTubeVertical(EnergyPlusData &state) +{ + if (state.dataEarthTube->initFirstTime) { + state.dataEarthTube->initFirstTime = false; + for (int etNum = 1; etNum <= totEarthTube; ++etNum) { + auto &thisEarthTube = state.dataEarthTube->EarthTubeSys(etNum); + if (thisEarthTube.ModelType != EarthTubeModelType::Vertical) continue; // Skip earth tubes that do not use vertical solution + auto &thisEarthTubeParams = state.dataEarthTube->EarthTubePars(thisEarthTube.vertParametersPtr); + thisEarthTube.totNodes = thisEarthTubeParams.numNodesAbove + thisEarthTubeParams.numNodesBelow + 1; + thisEarthTube.aCoeff.resize(thisEarthTube.totNodes); + thisEarthTube.bCoeff.resize(thisEarthTube.totNodes); + thisEarthTube.cCoeff.resize(thisEarthTube.totNodes); + thisEarthTube.cCoeff0.resize(thisEarthTube.totNodes); + thisEarthTube.dCoeff.resize(thisEarthTube.totNodes); + thisEarthTube.cPrime.resize(thisEarthTube.totNodes); + thisEarthTube.dPrime.resize(thisEarthTube.totNodes); + thisEarthTube.cPrime0.resize(thisEarthTube.totNodes); + thisEarthTube.tCurrent.resize(thisEarthTube.totNodes); + thisEarthTube.tLast.resize(thisEarthTube.totNodes); + thisEarthTube.depthNode.resize(thisEarthTube.totNodes); + thisEarthTube.tUndist.resize(thisEarthTube.totNodes); + Real64 thickBase = (thisEarthTube.z - 3.0 * thisEarthTube.r1); + Real64 thickTop = thickBase * thisEarthTubeParams.dimBoundAbove / float(thisEarthTubeParams.numNodesAbove); + Real64 thickBottom = thickBase * thisEarthTubeParams.dimBoundBelow / float(thisEarthTubeParams.numNodesBelow); + Real64 thickEarthTube = 4.0 * thisEarthTube.r1; + Real64 deltat = state.dataGlobal->TimeStepZone; + Real64 thermDiff = thisEarthTube.SoilThermDiff / Constant::HoursInDay; // convert to "per hour" from "per day" + + // Node equations determine the _Coeff terms--see Engineering Referenve for details on these equation types + // Note that node numbers are shifted for c++ arrays that go from 0 to numNodes-1. + // Node Type 1 (Top Node) + Real64 commonTerm = thermDiff * deltat / (thickTop * thickTop); + thisEarthTube.aCoeff[0] = 0.0; // no a0 value + thisEarthTube.bCoeff[0] = 1.0 + 3.0 * commonTerm; + thisEarthTube.cCoeff[0] = -1.0 * commonTerm; + thisEarthTube.dMult0 = 2.0 * commonTerm; // does not include temperatures (upper boundary or previous time step)--added later + // Node Type 2 (Generic Top Section Node) + for (int nodeNum = 1; nodeNum <= thisEarthTubeParams.numNodesAbove - 2; ++nodeNum) { + thisEarthTube.aCoeff[nodeNum] = -1.0 * commonTerm; + thisEarthTube.bCoeff[nodeNum] = 1.0 + 2.0 * commonTerm; + thisEarthTube.cCoeff[nodeNum] = -1.0 * commonTerm; + } + // Node Type 3 (Last Top Section Node) + int thisNode = thisEarthTubeParams.numNodesAbove - 1; + Real64 commonTerm2 = 2.0 * thermDiff * deltat / (thickTop + thickEarthTube) / thickTop; + thisEarthTube.aCoeff[thisNode] = -1.0 * commonTerm; + thisEarthTube.bCoeff[thisNode] = 1.0 + commonTerm + commonTerm2; + thisEarthTube.cCoeff[thisNode] = -1.0 * commonTerm2; + // Node Type 4 (Earth Tube Node) + thisNode = thisEarthTubeParams.numNodesAbove; + commonTerm = 2.0 * thermDiff * deltat / (thickTop + thickEarthTube) / thickEarthTube; + commonTerm2 = 2.0 * thermDiff * deltat / (thickBottom + thickEarthTube) / thickEarthTube; + thisEarthTube.aCoeff[thisNode] = -1.0 * commonTerm; + thisEarthTube.bCoeff[thisNode] = 1.0 + commonTerm + commonTerm2; // does not include earth tube air flow term--added later + thisEarthTube.cCoeff[thisNode] = -1.0 * commonTerm2; + // Node Type 5 (First Bottom Section Node) + thisNode = thisEarthTubeParams.numNodesAbove + 1; + commonTerm = thermDiff * deltat / (thickBottom * thickBottom); + commonTerm2 = 2.0 * thermDiff * deltat / (thickBottom + thickEarthTube) / thickBottom; + thisEarthTube.aCoeff[thisNode] = -1.0 * commonTerm2; + thisEarthTube.bCoeff[thisNode] = 1.0 + commonTerm + commonTerm2; + thisEarthTube.cCoeff[thisNode] = -1.0 * commonTerm; + // Node Type 6 (Generic Bottom Section Node) + for (int nodeNum = thisNode + 1; nodeNum <= thisEarthTube.totNodes - 2; ++nodeNum) { + thisEarthTube.aCoeff[nodeNum] = -1.0 * commonTerm; + thisEarthTube.bCoeff[nodeNum] = 1.0 + 2.0 * commonTerm; + thisEarthTube.cCoeff[nodeNum] = -1.0 * commonTerm; + } + // Node Type 7 (Last Bottom Section Node, i.e. Last Node) + thisNode = thisEarthTube.totNodes - 1; // shifted due to c++ arrays that go from 0 to numNodes-1 + thisEarthTube.aCoeff[thisNode] = -1.0 * commonTerm; + thisEarthTube.bCoeff[thisNode] = 1.0 + 3.0 * commonTerm; + thisEarthTube.cCoeff[thisNode] = 0.0; // no cN value + thisEarthTube.dMultN = 2.0 * commonTerm; // does not include previous temperature and earth tube air flow terms--added later + + // Initialize node temperatures using undisturbed temperature equation and node depths + // First, nodes above the earth tube + thisEarthTube.depthNode[thisEarthTubeParams.numNodesAbove - 1] = thisEarthTube.z - 0.5 * (thickEarthTube + thickTop); + for (int nodeNum = thisEarthTubeParams.numNodesAbove - 2; nodeNum >= 0; --nodeNum) { + thisEarthTube.depthNode[nodeNum] = thisEarthTube.depthNode[nodeNum + 1] - thickTop; + } + // Now, the earth tube node + thisEarthTube.depthNode[thisEarthTubeParams.numNodesAbove] = thisEarthTube.z; + // Finally the nodes below the earth tube + thisEarthTube.depthNode[thisEarthTubeParams.numNodesAbove + 1] = thisEarthTube.z + 0.5 * (thickEarthTube + thickBottom); + for (int nodeNumBelow = 2; nodeNumBelow <= thisEarthTubeParams.numNodesBelow; ++nodeNumBelow) { + int nodeNum = thisEarthTubeParams.numNodesAbove + nodeNumBelow; + thisEarthTube.depthNode[nodeNum] = thisEarthTube.depthNode[nodeNum - 1] + thickBottom; + } + thisEarthTube.depthUpperBound = thisEarthTube.depthNode[0] - 0.5 * thickTop; + thisEarthTube.depthLowerBound = thisEarthTube.depthNode[thisEarthTube.totNodes - 1] + 0.5 * thickBottom; + + // Calculate constant part of air flow term at earth tube node. Note that diffusiity/conductivity = 1/(density*specific_heat) + thisEarthTube.airFlowCoeff = state.dataGlobal->TimeStepZone * thermDiff / thisEarthTube.SoilThermCond / thickEarthTube / + thisEarthTubeParams.width / thisEarthTube.PipeLength; + + // Calculate some initial values in the Thomas algorithm. This includes c' when effectiveness is zero (entire c'). + // For any other effectiveness, c' will be the same as c' when effectiveness for is zero for the nodes above the earth + // tube. So, the c' for effectiveness of zero (cPrime0) can be reused as needed. + for (int nodeNum = 0; nodeNum <= thisEarthTube.totNodes - 1; ++nodeNum) { + thisEarthTube.cCoeff0[nodeNum] = thisEarthTube.cCoeff[nodeNum]; + } + thisEarthTube.initCPrime0(); + + auto &zone = state.dataHeatBal->Zone(thisEarthTube.ZonePtr); + for (int nodeNum = 1; nodeNum <= thisEarthTube.totNodes; ++nodeNum) { + SetupOutputVariable(state, + format("Earth Tube Node Temperature {}", nodeNum), + OutputProcessor::Unit::C, + thisEarthTube.tCurrent[nodeNum - 1], + OutputProcessor::SOVTimeStepType::Zone, + OutputProcessor::SOVStoreType::State, + zone.Name); + SetupOutputVariable(state, + format("Earth Tube Undisturbed Ground Temperature {}", nodeNum), + OutputProcessor::Unit::C, + thisEarthTube.tUndist[nodeNum - 1], + OutputProcessor::SOVTimeStepType::Zone, + OutputProcessor::SOVStoreType::State, + zone.Name); + } + SetupOutputVariable(state, + "Earth Tube Upper Boundary Ground Temperature", + OutputProcessor::Unit::C, + thisEarthTube.tUpperBound, + OutputProcessor::SOVTimeStepType::Zone, + OutputProcessor::SOVStoreType::State, + zone.Name); + SetupOutputVariable(state, + "Earth Tube Lower Boundary Ground Temperature", + OutputProcessor::Unit::C, + thisEarthTube.tLowerBound, + OutputProcessor::SOVTimeStepType::Zone, + OutputProcessor::SOVStoreType::State, + zone.Name); + } + } // ...end of firstTimeInits block + + Real64 timeElapsedLoc = + state.dataGlobal->HourOfDay + state.dataGlobal->TimeStep * state.dataGlobal->TimeStepZone + state.dataHVACGlobal->SysTimeElapsed; + if (state.dataEarthTube->timeElapsed != + timeElapsedLoc) { // time changed, update last with "current", avoids duplicate initializations and improper updates + if (state.dataGlobal->BeginDayFlag || state.dataGlobal->BeginEnvrnFlag) { + // update all of the undisturbed temperatures (only need to do this once per day because the equation only changes as the day changes + for (int etNum = 1; etNum <= totEarthTube; ++etNum) { + auto &thisEarthTube = state.dataEarthTube->EarthTubeSys(etNum); + if (thisEarthTube.ModelType != EarthTubeModelType::Vertical) continue; // Skip earth tubes that do not use vertical solution + thisEarthTube.tUpperBound = thisEarthTube.calcUndisturbedGroundTemperature(state, thisEarthTube.depthUpperBound); + thisEarthTube.tLowerBound = thisEarthTube.calcUndisturbedGroundTemperature(state, thisEarthTube.depthLowerBound); + for (int nodeNum = 0; nodeNum <= thisEarthTube.totNodes - 1; ++nodeNum) { + thisEarthTube.tUndist[nodeNum] = thisEarthTube.calcUndisturbedGroundTemperature(state, thisEarthTube.depthNode[nodeNum]); + } + } + } // ...end of BeginDayFlag block + + if (state.dataGlobal->BeginEnvrnFlag || + (!state.dataGlobal->WarmupFlag && state.dataGlobal->BeginDayFlag && state.dataGlobal->DayOfSim == 1)) { + for (int etNum = 1; etNum <= totEarthTube; ++etNum) { + auto &thisEarthTube = state.dataEarthTube->EarthTubeSys(etNum); + if (thisEarthTube.ModelType != EarthTubeModelType::Vertical) continue; // Skip earth tubes that do not use vertical solution + for (int nodeNum = 0; nodeNum <= thisEarthTube.totNodes - 1; ++nodeNum) { + thisEarthTube.tLast[nodeNum] = thisEarthTube.tUndist[nodeNum]; + thisEarthTube.tCurrent[nodeNum] = thisEarthTube.tLast[nodeNum]; + } + } + } + + for (int etNum = 1; etNum <= totEarthTube; ++etNum) { + auto &thisEarthTube = state.dataEarthTube->EarthTubeSys(etNum); + if (thisEarthTube.ModelType != EarthTubeModelType::Vertical) continue; // Skip earth tubes that do not use vertical solution + for (int nodeNum = 0; nodeNum <= thisEarthTube.totNodes - 1; ++nodeNum) { + thisEarthTube.tLast[nodeNum] = thisEarthTube.tCurrent[nodeNum]; + } + } + } + state.dataEarthTube->timeElapsed = timeElapsedLoc; +} + +void EarthTubeData::initCPrime0() +{ + // Calculate c' for when effectiveness is zero. Will use these values when there is no air flow through the earth tube + // and also use the values in the top portion of the solution (before the earth tube node) since these will not change. + this->cPrime0[0] = this->cCoeff0[0] / this->bCoeff[0]; + for (int i = 1; i <= this->totNodes - 2; ++i) { + this->cPrime0[i] = this->cCoeff0[i] / (this->bCoeff[i] - this->aCoeff[i] * this->cPrime0[i - 1]); + } + cPrime0[this->totNodes - 1] = 0.0; +} + void CalcEarthTube(EnergyPlusData &state) { @@ -554,8 +831,8 @@ void CalcEarthTube(EnergyPlusData &state) // This subroutine simulates the components making up the EarthTube unit. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - Real64 Process1; // Variable Used in the Middle of the Calculation - Real64 GroundTempz1z2t; // Average Ground Temperature between Depth z1 and z2 at time t + Real64 Process1; // Variable Used in the Middle of the Calculation + Real64 GroundTempt; // Ground Temperature between Depth z at time t Real64 AirThermCond; // Thermal Conductivity of Air (W/mC) Real64 AirKinemVisco; // Kinematic Viscosity of Air (m2/s) @@ -577,6 +854,7 @@ void CalcEarthTube(EnergyPlusData &state) Real64 EVF; int numEarthTubes = (int)state.dataEarthTube->EarthTubeSys.size(); + Real64 outTdb = state.dataEnvrn->OutDryBulbTemp; for (int Loop = 1; Loop <= numEarthTubes; ++Loop) { auto &thisEarthTube = state.dataEarthTube->EarthTubeSys(Loop); int NZ = thisEarthTube.ZonePtr; @@ -587,23 +865,24 @@ void CalcEarthTube(EnergyPlusData &state) thisZoneHB.EAMFLxHumRat = 0.0; thisEarthTube.FanPower = 0.0; - // Skip this if the zone is below the minimum temperature limit - if (state.dataZoneTempPredictorCorrector->zoneHeatBalance(NZ).MAT < thisEarthTube.MinTemperature) continue; - // Skip this if the zone is above the maximum temperature limit - if (state.dataZoneTempPredictorCorrector->zoneHeatBalance(NZ).MAT > thisEarthTube.MaxTemperature) continue; - // Skip if below the temperature difference limit - if (std::abs(state.dataZoneTempPredictorCorrector->zoneHeatBalance(NZ).MAT - state.dataEnvrn->OutDryBulbTemp) < thisEarthTube.DelTemperature) - continue; + // Don't simulate for Basic Solution if the zone is below the minimum temperature limit, above the maximum temperature limit + // or below the temperature difference limit + bool tempShutDown = thisZoneHB.MAT < thisEarthTube.MinTemperature || thisZoneHB.MAT > thisEarthTube.MaxTemperature || + std::abs(thisZoneHB.MAT - outTdb) < thisEarthTube.DelTemperature; + // check for Basic model and some temperature limit preventing the earth tube from running + if ((thisEarthTube.ModelType == EarthTubeModelType::Basic) && (tempShutDown)) continue; - AirDensity = - Psychrometrics::PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, state.dataEnvrn->OutDryBulbTemp, state.dataEnvrn->OutHumRat); + AirDensity = Psychrometrics::PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, outTdb, state.dataEnvrn->OutHumRat); AirSpecHeat = Psychrometrics::PsyCpAirFnW(state.dataEnvrn->OutHumRat); - EVF = thisEarthTube.DesignLevel * ScheduleManager::GetCurrentScheduleValue(state, thisEarthTube.SchedPtr); + if (tempShutDown) { + EVF = 0.0; + } else { + EVF = thisEarthTube.DesignLevel * ScheduleManager::GetCurrentScheduleValue(state, thisEarthTube.SchedPtr); + } thisZoneHB.MCPE = EVF * AirDensity * AirSpecHeat * (thisEarthTube.ConstantTermCoef + - std::abs(state.dataEnvrn->OutDryBulbTemp - state.dataZoneTempPredictorCorrector->zoneHeatBalance(NZ).MAT) * - thisEarthTube.TemperatureTermCoef + + std::abs(outTdb - state.dataZoneTempPredictorCorrector->zoneHeatBalance(NZ).MAT) * thisEarthTube.TemperatureTermCoef + state.dataEnvrn->WindSpeed * (thisEarthTube.VelocityTermCoef + state.dataEnvrn->WindSpeed * thisEarthTube.VelocitySQTermCoef)); thisZoneHB.EAMFL = thisZoneHB.MCPE / AirSpecHeat; @@ -614,18 +893,16 @@ void CalcEarthTube(EnergyPlusData &state) AverPipeAirVel = EVF / Constant::Pi / pow_2(thisEarthTube.r1); AirMassFlowRate = EVF * AirDensity; - // Calculation of Average Ground Temperature between Depth z1 and z2 at time t - GroundTempz1z2t = thisEarthTube.AverSoilSurTemp - - thisEarthTube.ApmlSoilSurTemp * std::exp(-thisEarthTube.z * std::sqrt(Constant::Pi / 365.0 / thisEarthTube.SoilThermDiff)) * - std::cos(2.0 * Constant::Pi / 365.0 * - (state.dataEnvrn->DayOfYear - thisEarthTube.SoilSurPhaseConst - - thisEarthTube.z / 2.0 * std::sqrt(365.0 / Constant::Pi / thisEarthTube.SoilThermDiff))); - thisEarthTube.GroundTempz1z2t = GroundTempz1z2t; + if (thisEarthTube.ModelType == EarthTubeModelType::Basic) { + // Calculation of Ground Temperature at Depth z at time t for Basic model + GroundTempt = thisEarthTube.calcUndisturbedGroundTemperature(state, thisEarthTube.z); + thisEarthTube.GroundTempt = GroundTempt; + } // Calculation of Convective Heat Transfer Coefficient at Inner Pipe Surface - AirThermCond = 0.02442 + 0.6992 * state.dataEnvrn->OutDryBulbTemp / 10000.0; - AirKinemVisco = (0.1335 + 0.000925 * state.dataEnvrn->OutDryBulbTemp) / 10000.0; - AirThermDiffus = (0.0014 * state.dataEnvrn->OutDryBulbTemp + 0.1872) / 10000.0; + AirThermCond = 0.02442 + 0.6992 * outTdb / 10000.0; + AirKinemVisco = (0.1335 + 0.000925 * outTdb) / 10000.0; + AirThermDiffus = (0.0014 * outTdb + 0.1872) / 10000.0; Re = 2.0 * thisEarthTube.r1 * AverPipeAirVel / AirKinemVisco; Pr = AirKinemVisco / AirThermDiffus; if (Re <= 2300.0) { @@ -643,36 +920,142 @@ void CalcEarthTube(EnergyPlusData &state) // Calculation of Thermal Resistance and Overall Heat Transfer Coefficient Rc = 1.0 / 2.0 / Constant::Pi / thisEarthTube.r1 / PipeHeatTransCoef; Rp = std::log((thisEarthTube.r1 + thisEarthTube.r2) / thisEarthTube.r1) / 2.0 / Constant::Pi / thisEarthTube.PipeThermCond; - Rs = std::log((thisEarthTube.r1 + thisEarthTube.r2 + thisEarthTube.r3) / (thisEarthTube.r1 + thisEarthTube.r2)) / 2.0 / Constant::Pi / - thisEarthTube.SoilThermCond; + if (thisEarthTube.r3 > 0.0) { + Rs = std::log((thisEarthTube.r1 + thisEarthTube.r2 + thisEarthTube.r3) / (thisEarthTube.r1 + thisEarthTube.r2)) / 2.0 / Constant::Pi / + thisEarthTube.SoilThermCond; + } else { // for the Vertical solution .r3 was reset to zero for this + Rs = 0.0; + } Rt = Rc + Rp + Rs; OverallHeatTransCoef = 1.0 / Rt; - if (AirMassFlowRate * AirSpecHeat == 0.0) { - thisEarthTube.InsideAirTemp = GroundTempz1z2t; + switch (thisEarthTube.ModelType) { + case EarthTubeModelType::Vertical: { + // First calculate term that will need to be added at the diagonal for flow and then solve the matrix for new temperatures + Real64 eff; // effectiveness + if (AirMassFlowRate > 0.0) { + // Calculate the NTU parameter: NTU = UA/[(Mdot*Cp)min] where Mdot*Cp is for the air side + // where: U = OverallHeatTransCoef + // A = 2*Pi*r1*TubeLength + Real64 NTU = + OverallHeatTransCoef * 2.0 * Constant::Pi * thisEarthTube.r1 * thisEarthTube.PipeLength / (AirMassFlowRate * AirSpecHeat); + + // Effectiveness is 1 - e(-NTU) + Real64 constexpr maxExpPower(50.0); // Maximum power after which EXP argument would be zero for DP variables + if (NTU > maxExpPower) { + eff = 1.0; + } else { + eff = 1.0 - std::exp(-NTU); + } + } else { // if no flow, then eff is zero + eff = 0.0; + } - } else { + Real64 airFlowTerm = AirMassFlowRate * AirSpecHeat * eff * thisEarthTube.airFlowCoeff; + thisEarthTube.calcVerticalEarthTube(state, airFlowTerm); + + int nodeET = state.dataEarthTube->EarthTubePars(thisEarthTube.vertParametersPtr).numNodesAbove; + if (eff <= 0.0) { // no flow--air temperature leaving earth tube is the same as what went in + thisEarthTube.InsideAirTemp = outTdb; + } else if (eff >= 1.0) { // effectiveness is one so leaving temperature is the same as the ground node temperatre + thisEarthTube.InsideAirTemp = thisEarthTube.tCurrent[nodeET]; + } else { // the temperature is between the inlet and ground temperatures + thisEarthTube.InsideAirTemp = outTdb - eff * (outTdb - thisEarthTube.tCurrent[nodeET]); + } + + } break; + case EarthTubeModelType::Basic: { // Basic model + if (AirMassFlowRate * AirSpecHeat == 0.0) { + thisEarthTube.InsideAirTemp = GroundTempt; - // Calculation of Pipe Outlet Air Temperature - if (state.dataEnvrn->OutDryBulbTemp > GroundTempz1z2t) { - Process1 = (std::log(std::abs(state.dataEnvrn->OutDryBulbTemp - GroundTempz1z2t)) * AirMassFlowRate * AirSpecHeat - - OverallHeatTransCoef * thisEarthTube.PipeLength) / - (AirMassFlowRate * AirSpecHeat); - thisEarthTube.InsideAirTemp = std::exp(Process1) + GroundTempz1z2t; - } else if (state.dataEnvrn->OutDryBulbTemp == GroundTempz1z2t) { - thisEarthTube.InsideAirTemp = GroundTempz1z2t; } else { - Process1 = (std::log(std::abs(state.dataEnvrn->OutDryBulbTemp - GroundTempz1z2t)) * AirMassFlowRate * AirSpecHeat - - OverallHeatTransCoef * thisEarthTube.PipeLength) / - (AirMassFlowRate * AirSpecHeat); - thisEarthTube.InsideAirTemp = GroundTempz1z2t - std::exp(Process1); + + // Calculation of Pipe Outlet Air Temperature + if (outTdb > GroundTempt) { + Process1 = + (std::log(std::abs(outTdb - GroundTempt)) * AirMassFlowRate * AirSpecHeat - OverallHeatTransCoef * thisEarthTube.PipeLength) / + (AirMassFlowRate * AirSpecHeat); + thisEarthTube.InsideAirTemp = std::exp(Process1) + GroundTempt; + } else if (outTdb == GroundTempt) { + thisEarthTube.InsideAirTemp = GroundTempt; + } else { + Process1 = + (std::log(std::abs(outTdb - GroundTempt)) * AirMassFlowRate * AirSpecHeat - OverallHeatTransCoef * thisEarthTube.PipeLength) / + (AirMassFlowRate * AirSpecHeat); + thisEarthTube.InsideAirTemp = GroundTempt - std::exp(Process1); + } } + } break; + default: { // should never get here + assert(false); + } break; } thisEarthTube.CalcEarthTubeHumRat(state, NZ); } } +Real64 EarthTubeData::calcUndisturbedGroundTemperature(EnergyPlusData &state, Real64 depth) +{ + return this->AverSoilSurTemp - + this->ApmlSoilSurTemp * std::exp(-depth * std::sqrt(Constant::Pi / 365.0 / this->SoilThermDiff)) * + std::cos(2.0 * Constant::Pi / 365.0 * + (state.dataEnvrn->DayOfYear - this->SoilSurPhaseConst - depth / 2.0 * std::sqrt(365.0 / Constant::Pi / this->SoilThermDiff))); +} + +void EarthTubeData::calcVerticalEarthTube(EnergyPlusData &state, Real64 airFlowTerm) +{ + // Perform matrix calculations to model the earth tube using the vertical solution. + // At this point, temperatures have already been shifted so tLast is correct and + // undisturbed ground temperature have also been calculated. We need to assign/update + // vectors of coefficients and then perform the Thomas algorithm. + // Note that airFlowTerm is mdot_a*cp_a*eff*deltat/rho_soil/cp_soil/nodethickness_et/width/length + + int nodeET = state.dataEarthTube->EarthTubePars(this->vertParametersPtr).numNodesAbove; + int nodeLast = this->totNodes - 1; // minus one because c++ arrays start at 0 + + // First, calculate cPrime in the forward sweep. + // If airFlowTerm is zero, there is no flow so we can use can use cPrime0 for cPrime. + if (airFlowTerm <= 0.0) { + for (int nodeNum = 0; nodeNum <= nodeLast; ++nodeNum) { + this->cPrime[nodeNum] = this->cPrime0[nodeNum]; + } + } else { // there is positive flow so calculate cPrime + this->cPrime[0] = this->cCoeff[0] / this->bCoeff[0]; + for (int nodeNum = 1; nodeNum <= nodeLast; ++nodeNum) { + Real64 addTerm = 0.0; + if (nodeNum == nodeET) addTerm = airFlowTerm; + this->cPrime[nodeNum] = this->cCoeff[nodeNum] / (this->bCoeff[nodeNum] + addTerm - this->aCoeff[nodeNum] * this->cPrime[nodeNum - 1]); + } + } + + // Second, set-up dCoeff + this->dCoeff[0] = this->tLast[0] + this->dMult0 * this->tUpperBound; + for (int nodeNum = 1; nodeNum <= nodeLast - 1; ++nodeNum) { + if (nodeNum != nodeET) { + this->dCoeff[nodeNum] = this->tLast[nodeNum]; + } else { + this->dCoeff[nodeNum] = this->tLast[nodeNum] + airFlowTerm * state.dataEnvrn->OutDryBulbTemp; + } + } + this->dCoeff[nodeLast] = this->tLast[nodeLast] + this->dMultN * this->tLowerBound; + + // Third, calculate dPrime in the forward sweep. + this->dPrime[0] = this->dCoeff[0] / this->bCoeff[0]; + for (int nodeNum = 1; nodeNum <= nodeLast; ++nodeNum) { + Real64 addTerm = 0.0; + if (nodeNum == nodeET) addTerm = airFlowTerm; + this->dPrime[nodeNum] = (this->dCoeff[nodeNum] - this->aCoeff[nodeNum] * this->dPrime[nodeNum - 1]) / + (this->bCoeff[nodeNum] + addTerm - this->aCoeff[nodeNum] * this->cPrime[nodeNum - 1]); + } + + // Finally, obtain the solution (tCurrent) by back substitution. + this->tCurrent[nodeLast] = this->dPrime[nodeLast]; + for (int nodeNum = nodeLast - 1; nodeNum >= 0; --nodeNum) { + this->tCurrent[nodeNum] = this->dPrime[nodeNum] - this->cPrime[nodeNum] * this->tCurrent[nodeNum + 1]; + } +} + void EarthTubeData::CalcEarthTubeHumRat(EnergyPlusData &state, int const NZ) { // Zone number (index) diff --git a/src/EnergyPlus/EarthTube.hh b/src/EnergyPlus/EarthTube.hh index b81de87fef6..80a28b9a1c4 100644 --- a/src/EnergyPlus/EarthTube.hh +++ b/src/EnergyPlus/EarthTube.hh @@ -73,6 +73,14 @@ namespace EarthTube { Num }; + enum class EarthTubeModelType + { + Invalid = -1, + Basic, + Vertical, + Num + }; + struct EarthTubeData { int ZonePtr = 0; @@ -85,7 +93,7 @@ namespace EarthTube { Real64 FanPressure = 0.0; Real64 FanEfficiency = 0.0; Real64 FanPower = 0.0; - Real64 GroundTempz1z2t = 0.0; // ground temp between z1 and z2 at time t + Real64 GroundTempt = 0.0; // ground temp at the depth of the earth tube midpoint at time t Real64 InsideAirTemp = 0.0; Real64 AirTemp = 0.0; Real64 HumRat = 0.0; // Humidity ratio of air leaving EarthTube and entering zone @@ -105,6 +113,37 @@ namespace EarthTube { Real64 TemperatureTermCoef = 0.0; Real64 VelocityTermCoef = 0.0; Real64 VelocitySQTermCoef = 0.0; + EarthTubeModelType ModelType = EarthTubeModelType::Basic; // Type of modeling technique: Basic or Vertical + int vertParametersPtr = 0; // Pointer to EarthTubeParameters structure + int totNodes = 0; // Total number of nodes in Vertical solution (nodes above + nodes below + 1 for earth tube itself) + std::vector aCoeff; // Verticel solution: original a-coefficients of the main A matrix (tridiagonal--coefficient before the diagonal) + std::vector bCoeff; // Verticel solution: original b-coefficients of the main A matrix (tridiagonal--coefficient on the diagonal) + std::vector cCoeff; // Verticel solution: original c-coefficients of the main A matrix (tridiagonal--coefficient after the diagonal) + std::vector cCoeff0; // Verticel solution: original c-coefficients of the main A matrix (tridiagonal--coefficient after the diagonal) + // when effectiveness is zero + std::vector dCoeff; // Vertical solution: original coefficients of the b matrix (in Ax = b) + std::vector cPrime; // c' of the forward sweep in the Thomas Algorithm for solving a triagonal matrix + std::vector dPrime; // d' of the forward sweep in the Thomas Algorithm for solving a triagonal matrix + std::vector + cPrime0; // c' of the forward sweep in the Thomas Algorithm for solving a triagonal matrix when effectiveness is zero (no flow) + std::vector tCurrent; // Current time step nodal temperatures + std::vector tLast; // Last time step nodal temperatures + std::vector depthNode; // depth of the node + Real64 dMult0 = 0.0; // multiplier for term in equation to determine dCoeff at top node + Real64 dMultN = 0.0; // multiplier for term in equation to determine dCoeff at bottom node + Real64 depthUpperBound = 0.0; // depth at the upper boundary of the solution space for the vertical solution + Real64 depthLowerBound = 0.0; // depth at the lower boundary of the solution space for the vertical solution + std::vector tUndist; // temperature of undisturbed soil at the depths of the modes + Real64 tUpperBound = 0.0; // temperature of undisturbed soil at the upper boundary + Real64 tLowerBound = 0.0; // temperature of undisturbed soil at the lower boundary + Real64 airFlowCoeff = 0.0; // constant portion of the air flow term that gets added to the bCoeff and dCoeff vectors at the earth tube node + + void initCPrime0(); // initialize c' for when effectiveness is zero + + Real64 calcUndisturbedGroundTemperature(EnergyPlusData &state, Real64 depth); // depth at which temperature is to be calculated + + void calcVerticalEarthTube(EnergyPlusData &state, Real64 airFlowTerm); // constant portion of term that accounts for air flow in earth tube + void CalcEarthTubeHumRat(EnergyPlusData &state, int NZ); // Zone number (index) }; @@ -129,6 +168,16 @@ namespace EarthTube { Real64 EarthTubeHumRat = 0.0; // Humidity Ratio {kg/kg} of EarthTube, air leaving tube and entering zone }; + struct EarthTubeParameters + { + std::string nameParameters; // Name of the parameters (referenced by earth tube object) + int numNodesAbove; // Number of nodes above the earth tube (converted from integer in input) + int numNodesBelow; // Number of nodes below the earth tube (converted from integer in input) + Real64 dimBoundAbove; // Dimensionless location of upper boundary of solution space (multiplied by earth tube depth - radius) + Real64 dimBoundBelow; // Dimensionless location of lower boundary of solution space (multiplied by earth tube depth - radius) + Real64 width; // Dimensionless width of solution space (multiplied by earth tube radius) + }; + void ManageEarthTube(EnergyPlusData &state); void GetEarthTube(EnergyPlusData &state, bool &ErrorsFound); // If errors found in input @@ -139,6 +188,8 @@ namespace EarthTube { bool &ErrorsFound // Found a problem ); + void initEarthTubeVertical(EnergyPlusData &state); + void CalcEarthTube(EnergyPlusData &state); void ReportEarthTube(EnergyPlusData &state); @@ -148,8 +199,12 @@ namespace EarthTube { struct EarthTubeData : BaseGlobalStruct { bool GetInputFlag = true; + bool initFirstTime = true; + Real64 timeElapsed = + 0.0; // keeps track so that certain initializations only happen once even if earth tubes are called multiple times per time step EPVector EarthTubeSys; EPVector ZnRptET; + EPVector EarthTubePars; void clear_state() override { diff --git a/src/EnergyPlus/EcoRoofManager.cc b/src/EnergyPlus/EcoRoofManager.cc index d63f0c918be..2538ec5cbc0 100644 --- a/src/EnergyPlus/EcoRoofManager.cc +++ b/src/EnergyPlus/EcoRoofManager.cc @@ -209,7 +209,8 @@ namespace EcoRoofManager { state.dataHeatBalSurf->SurfHConvExt(SurfNum), state.dataHeatBalSurf->SurfHSkyExt(SurfNum), state.dataHeatBalSurf->SurfHGrdExt(SurfNum), - state.dataHeatBalSurf->SurfHAirExt(SurfNum)); + state.dataHeatBalSurf->SurfHAirExt(SurfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); } // Long Wave Radiation (W/m^2) - original equation shown in comment // Real64 Latm = 1.0 * Sigma * 1.0 * state.dataSurface->Surface(SurfNum).ViewFactorGround * pow_4(state.dataEnvrn->GroundTempKelvin) + diff --git a/src/EnergyPlus/Furnaces.cc b/src/EnergyPlus/Furnaces.cc index 9cd36092326..5576aae6870 100644 --- a/src/EnergyPlus/Furnaces.cc +++ b/src/EnergyPlus/Furnaces.cc @@ -588,10 +588,6 @@ namespace Furnaces { thisFurnace.CoolingCoilSensDemand, thisFurnace.CoolingCoilLatentDemand, thisFurnace.OpMode, - thisFurnace.WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, thisFurnace.CoolPartLoadRatio, FirstHVACIteration); @@ -601,10 +597,6 @@ namespace Furnaces { thisFurnace.HeatingCoilSensDemand, Dummy, thisFurnace.OpMode, - thisFurnace.WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, thisFurnace.HeatPartLoadRatio, FirstHVACIteration); @@ -4524,26 +4516,15 @@ namespace Furnaces { } // Set the heat pump cooling coil convergence thisFurnace.CoolingConvergenceTolerance = Numbers(3); - // Set the heatpump cycling rate - thisFurnace.MaxONOFFCyclesperHour = Numbers(4); - - // Set the heat pump time constant - thisFurnace.HPTimeConstant = Numbers(5); - - // Set the heat pump on-cycle power use fraction - thisFurnace.OnCyclePowerFraction = Numbers(6); - - // Set the heat pump fan delay time - thisFurnace.FanDelayTime = Numbers(7); // Set the heatpump design supplemental heating capacity // Get from coil module. // Set the heatpump max outlet temperature - thisFurnace.DesignMaxOutletTemp = Numbers(8); + thisFurnace.DesignMaxOutletTemp = Numbers(4); // Set maximum supply air temperature for supplemental heating coil - thisFurnace.MaxOATSuppHeat = Numbers(9); + thisFurnace.MaxOATSuppHeat = Numbers(5); // set minimum outdoor temperature for compressor operation SetMinOATCompressor(state, FurnaceNum, cCurrentModuleObject, ErrorsFound); @@ -5127,7 +5108,6 @@ namespace Furnaces { thisFurnace.MaxCoolAirMassFlow = thisFurnace.MaxCoolAirVolFlow * state.dataEnvrn->StdRhoAir; thisFurnace.MaxHeatAirMassFlow = thisFurnace.MaxHeatAirVolFlow * state.dataEnvrn->StdRhoAir; thisFurnace.MaxNoCoolHeatAirMassFlow = thisFurnace.MaxNoCoolHeatAirVolFlow * state.dataEnvrn->StdRhoAir; - thisFurnace.WSHPRuntimeFrac = 0.0; thisFurnace.CompPartLoadRatio = 0.0; thisFurnace.CoolingCoilSensDemand = 0.0; thisFurnace.CoolingCoilLatentDemand = 0.0; @@ -6118,10 +6098,6 @@ namespace Furnaces { thisFurnace.CoolingCoilSensDemand, thisFurnace.CoolingCoilLatentDemand, 0, - 0.0, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, FirstHVACIteration); // CoolPartLoadRatio @@ -6132,10 +6108,6 @@ namespace Furnaces { thisFurnace.HeatingCoilSensDemand, dummy, 0.0, - 0.0, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, FirstHVACIteration); @@ -6155,9 +6127,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, 0, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, 1, @@ -6199,9 +6168,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, 0, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, 1, @@ -6929,7 +6895,6 @@ namespace Furnaces { // Set the input parameters for CalcFurnaceOutput thisFurnace.CompPartLoadRatio = 0.0; // compressor off - thisFurnace.WSHPRuntimeFrac = 0.0; CalcFurnaceOutput(state, FurnaceNum, @@ -6949,7 +6914,6 @@ namespace Furnaces { state.dataLoopNodes->Node(FurnaceInletNode).MassFlowRate = thisFurnace.MdotFurnace; thisFurnace.CompPartLoadRatio = 1.0; // compressor ON - thisFurnace.WSHPRuntimeFrac = 1.0; // Set fan part-load fraction equal to 1 while getting full load result state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; @@ -7410,7 +7374,6 @@ namespace Furnaces { PartLoadRatio = 0.0; thisFurnace.CompPartLoadRatio = 0.0; // compressor off - thisFurnace.WSHPRuntimeFrac = 0.0; // SetAverageAirFlow calculates the operating mass flow rate based on PLR and the user specified inputs // for MaxCoolAirMassFlow and MaxNoCoolHeatAirMassFlow. @@ -7453,7 +7416,6 @@ namespace Furnaces { OnOffAirFlowRatio = 1.0; PartLoadRatio = 1.0; thisFurnace.CompPartLoadRatio = 1.0; // compressor ON - thisFurnace.WSHPRuntimeFrac = 1.0; // Get full load result (coils simulated full ON) CalcFurnaceOutput(state, @@ -7644,7 +7606,6 @@ namespace Furnaces { state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; OnOffAirFlowRatio = 1.0; thisFurnace.CompPartLoadRatio = 1.0; // compressor ON - thisFurnace.WSHPRuntimeFrac = 1.0; // Get full load result (coils simulated full ON) CalcFurnaceOutput(state, @@ -8190,7 +8151,6 @@ namespace Furnaces { thisFurnace.CoolingCoilSensDemand = 0.0; thisFurnace.CompPartLoadRatio = 0.0; // compressor off thisFurnace.InitHeatPump = true; // initialization call to Calc Furnace - thisFurnace.WSHPRuntimeFrac = 0.0; CoolPartLoadRatio = 0.0; // Get no load result in order to calculate the effect of the fan and the mixed air equipment @@ -8211,7 +8171,6 @@ namespace Furnaces { // Set the input parameters for CalcFurnaceOutput thisFurnace.CoolingCoilSensDemand = 1.0; thisFurnace.CompPartLoadRatio = 1.0; // compressor ON - thisFurnace.WSHPRuntimeFrac = 1.0; CoolPartLoadRatio = 1.0; // Get full load result in order to estimate the operating part load ratio for continuous fan operation @@ -8258,7 +8217,6 @@ namespace Furnaces { } else if (ZoneSensLoadMetFanONCompOFF < TotalZoneSensLoad) { CoolPartLoadRatio = 0.0; thisFurnace.CompPartLoadRatio = 0.0; // compressor OFF - thisFurnace.WSHPRuntimeFrac = 0.0; thisFurnace.CoolingCoilSensDemand = 0.0; CalcFurnaceOutput(state, FurnaceNum, @@ -8392,7 +8350,6 @@ namespace Furnaces { thisFurnace.CoolingCoilSensDemand = 0.0; thisFurnace.CompPartLoadRatio = 0.0; // compressor off thisFurnace.InitHeatPump = true; // initialization call to Calc Furnace - thisFurnace.WSHPRuntimeFrac = 0.0; HeatPartLoadRatio = 0.0; // Get no load result in order to calculate the effect of the fan and the mixed air equipment @@ -8413,7 +8370,6 @@ namespace Furnaces { // Set the input parameters for CalcFurnaceOutput thisFurnace.HeatingCoilSensDemand = 1.0; thisFurnace.CompPartLoadRatio = 1.0; // compressor ON - thisFurnace.WSHPRuntimeFrac = 1.0; HeatPartLoadRatio = 1.0; // Get full load result in order to estimate the operating part load ratio for continuous fan operation @@ -8463,7 +8419,6 @@ namespace Furnaces { HeatPartLoadRatio = 0.0; ZoneSensLoadMet = ZoneSensLoadMetFanONCompOFF; thisFurnace.CompPartLoadRatio = 0.0; // compressor ON - thisFurnace.WSHPRuntimeFrac = 0.0; CalcFurnaceOutput(state, FurnaceNum, FirstHVACIteration, @@ -8703,8 +8658,7 @@ namespace Furnaces { auto &thisFurnace = state.dataFurnaces->Furnace(FurnaceNum); auto &inletNode = state.dataLoopNodes->Node(thisFurnace.FurnaceInletNodeNum); int CoolingCoilType_Num = thisFurnace.CoolingCoilType_Num; - Real64 QActual = 0.0; // heating coil load met or delivered - Real64 WSHPRuntimeFrac = thisFurnace.WSHPRuntimeFrac; // Compressor runtime fraction + Real64 QActual = 0.0; // heating coil load met or delivered state.dataFurnaces->ModifiedHeatCoilLoad = 0.0; state.dataFurnaces->CoolHeatPLRRat = CoolingHeatingPLRRatio; @@ -8827,10 +8781,6 @@ namespace Furnaces { thisFurnace.CoolingCoilSensDemand, thisFurnace.CoolingCoilLatentDemand, FanOpMode, - WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, CoolPartLoadRatio, FirstHVACIteration); // CoolPartLoadRatio @@ -8842,10 +8792,6 @@ namespace Furnaces { thisFurnace.HeatingCoilSensDemand, Dummy, FanOpMode, - WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, HeatPartLoadRatio, FirstHVACIteration); // HeatPartLoadRatio @@ -8860,10 +8806,6 @@ namespace Furnaces { thisFurnace.CoolingCoilSensDemand, thisFurnace.CoolingCoilLatentDemand, FanOpMode, - WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, CoolPartLoadRatio, FirstHVACIteration); // CoolPartLoadRatio @@ -8875,10 +8817,6 @@ namespace Furnaces { thisFurnace.HeatingCoilSensDemand, Dummy, FanOpMode, - WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, HeatPartLoadRatio, FirstHVACIteration); // HeatPartLoadRatio @@ -8908,10 +8846,6 @@ namespace Furnaces { thisFurnace.DesignMassFlowRate, FanOpMode, FirstHVACIteration, - WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, thisFurnace.InitHeatPump, thisFurnace.CoolingCoilSensDemand, thisFurnace.CoolingCoilLatentDemand, @@ -8924,10 +8858,6 @@ namespace Furnaces { thisFurnace.DesignMassFlowRate, FanOpMode, FirstHVACIteration, - WSHPRuntimeFrac, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, thisFurnace.InitHeatPump, thisFurnace.HeatingCoilSensDemand, Dummy, @@ -9104,7 +9034,6 @@ namespace Furnaces { Real64 SensibleLoadMet; // Sensible cooling load met (furnace outlet with respect to control zone temp) Real64 LatentLoadMet; // Latent cooling load met (furnace outlet with respect to control zone humidity ratio) Real64 OnOffAirFlowRatio; // Ratio of compressor ON air mass flow to AVERAGE air mass flow over time step - Real64 RuntimeFrac; // heat pump runtime fraction Real64 CoolingHeatingPLRRatio; // ratio of cooling PLR to heating PLR, used for cycling fan RH control bool HXUnitOn; // flag to enable HX based on zone moisture load @@ -9138,10 +9067,7 @@ namespace Furnaces { // OnOffAirFlowRatio = Par(8) if (state.dataFurnaces->Furnace(FurnaceNum).FurnaceType_Num == DataHVACGlobals::UnitarySys_HeatPump_WaterToAir) { - bool errFlag = false; - HeatPumpRunFrac(state, FurnaceNum, PartLoadRatio, errFlag, RuntimeFrac); state.dataFurnaces->Furnace(FurnaceNum).CompPartLoadRatio = PartLoadRatio; - state.dataFurnaces->Furnace(FurnaceNum).WSHPRuntimeFrac = RuntimeFrac; } if (par9_HXOnFlag == 1.0) { @@ -9218,8 +9144,6 @@ namespace Furnaces { Real64 HeatCoilLoad; // Heating coil load for gas heater Real64 ZoneSensLoadMet; // Sensible cooling load met (furnace outlet with respect to control zone temp) Real64 ZoneLatLoadMet; // Latent cooling load met (furnace outlet with respect to control zone humidity ratio) - bool errFlag; - Real64 RuntimeFrac; Real64 Dummy; Real64 HPCoilSensDemand; Real64 OnOffAirFlowRatio; @@ -9236,39 +9160,40 @@ namespace Furnaces { // Real64 ZoneSensLoadMetFanONCompOFF = Par[7]; // Real64 par9_HXUnitOne = Par[8]; + int CoilIndex; if (par6_loadTypeFlag == 1.0) { CoolPartLoadRatio = PartLoadRatio; HeatPartLoadRatio = 0.0; HeatCoilLoad = 0.0; + CoilIndex = state.dataFurnaces->Furnace(FurnaceNum).CoolingCoilIndex; } else { CoolPartLoadRatio = 0.0; HeatPartLoadRatio = PartLoadRatio; + CoilIndex = state.dataFurnaces->Furnace(FurnaceNum).HeatingCoilIndex; } - // calculate the run time fraction - HeatPumpRunFrac(state, FurnaceNum, PartLoadRatio, errFlag, RuntimeFrac); - - // update the fan part load factor - // see 'Note' under INITIAL CALCULATIONS - if (par6_loadTypeFlag == 1.0) { - if (RuntimeFrac > 0.0) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = CoolPartLoadRatio / RuntimeFrac; - } else { - state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; - } - } else { - if (RuntimeFrac > 0.0) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / RuntimeFrac; - // Else IF(RuntimeFrac == 0.0d0)THEN - // OnOffFanPartLoadFraction = 0.0 - } else { - state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; - } + // Get child component RuntimeFrac + Real64 RuntimeFrac; + switch (state.dataFurnaces->Furnace(FurnaceNum).WatertoAirHPType) { + case DataHVACGlobals::WatertoAir_Simple: { + RuntimeFrac = state.dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(CoilIndex).RunFrac; + break; + } + case DataHVACGlobals::WatertoAir_ParEst: { + RuntimeFrac = state.dataWaterToAirHeatPump->WatertoAirHP(CoilIndex).RunFrac; + break; } + case DataHVACGlobals::WatertoAir_VarSpeedEquationFit: { + RuntimeFrac = state.dataVariableSpeedCoils->VarSpeedCoil(CoilIndex).RunFrac; + break; + } + default: + RuntimeFrac = 1.0; // Programming error. Assert failure? + } + state.dataFurnaces->OnOffFanPartLoadFractionSave = state.dataHVACGlobal->OnOffFanPartLoadFraction; // update fan and compressor run times state.dataFurnaces->Furnace(FurnaceNum).CompPartLoadRatio = PartLoadRatio; - state.dataFurnaces->Furnace(FurnaceNum).WSHPRuntimeFrac = RuntimeFrac; // Calculate the heating coil demand as (the zone sensible load - load met by fan heat and mixed air) // Note; The load met by fan heat and mixed air is calculated as mdot(zoneinletenthalpy-zoneoutletenthalpy) @@ -9373,107 +9298,6 @@ namespace Furnaces { state.dataFurnaces->OnOffAirFlowRatioSave = OnOffAirFlowRatio; } - void HeatPumpRunFrac(EnergyPlusData &state, - int const FurnaceNum, // Furnace Index Number - Real64 const PLR, // part load ratio - bool &errFlag, // part load factor out of range flag - Real64 &RuntimeFrac // the required run time fraction to meet part load - ) - { - // SUBROUTINE INFORMATION: - // AUTHOR Kenneth Tang - // DATE WRITTEN Apr 2004 - - // PURPOSE OF THIS SUBROUTINE: - // This subroutine calculates the PLF based on the PLR. Parameters required are - // thermostat cycling rate (Nmax), heat pump time constant (tau), and the fraction - // of on-cycle power use (pr) - - // REFERENCES: - // (1) Henderson, H. I., K. Rengarajan.1996. A Model to predict the latent capacity - // of air conditioners and heat pumps at part-load conditions with constant fan - // operation. ASHRAE Transactions 102 (1): 266-274 - - // (2) Henderson, H.I. Jr., Y.J. Huang and Danny Parker. 1999. Residential Equipment - // Part Load Curves for Use in DOE-2. Environmental Energy Technologies Division, - // Ernest Orlando Lawrence Berkeley National Laboratory. - - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - Real64 PartLoadFactor; // Part load factor - Real64 PLF2; // (i+1)th term of part load factor - Real64 A; // Variable for simplify equation - - Real64 Nmax = state.dataFurnaces->Furnace(FurnaceNum).MaxONOFFCyclesperHour; - Real64 tau = state.dataFurnaces->Furnace(FurnaceNum).HPTimeConstant; - Real64 pr = state.dataFurnaces->Furnace(FurnaceNum).OnCyclePowerFraction; - - // Initialize - errFlag = false; - Real64 error = 1.0; - int NumIteration = 0; - - // Initial guess for part load fraction - Real64 PLF1 = 1.0; - - // Calculate PLF using successive substitution until convergence is achieved - while (true) { - ++NumIteration; - - if (PLR == 1) { - // Set part load fraction, PLF1=1.0 if PLR=1.0 and exit loop - PLF1 = 1.0; - goto LOOPPLF_exit; - } - - if (NumIteration > 100) { - // Exit loop if interation exceed 100 - errFlag = true; - PLF1 = 1.0; - goto LOOPPLF_exit; - } - - if (error < 0.00001) { - // Exit loop if convergence is achieved - goto LOOPPLF_exit; - - } else { - // Calculate PLF - A = 4.0 * tau * (Nmax / 3600.0) * (1 - PLR / PLF1); - if (A < 1.5e-3) { - // A safety check to prevent PLF2 = 1 - A * (1 - Exp(-1 / A)) - // from "float underflow error". Occurs when PLR is very close to 1.0, - // small A value, thus Exp(-1/A) = 0 - PLF2 = 1 - A; - } else { - PLF2 = 1.0 - A * (1.0 - std::exp(-1.0 / A)); - } - error = std::abs((PLF2 - PLF1) / PLF1); - PLF1 = PLF2; - } - } - LOOPPLF_exit:; - - // Adjust PLF for the off cycle power consumption if - // on-cycle power use is specified by the user - if (pr > 0.0) { - PartLoadFactor = PLR / ((PLR / PLF1) + (1 - PLR / PLF1) * pr); - } else { - PartLoadFactor = PLF1; - } - - if (PartLoadFactor <= 0.0) { - PartLoadFactor = 0.0; - RuntimeFrac = 0.0; - errFlag = true; - } else { - RuntimeFrac = PLR / PartLoadFactor; - } - - if (RuntimeFrac > 1.0) { - RuntimeFrac = 1.0; - } - } - // Beginning of Reporting subroutines for the Furnace Module // ***************************************************************************** @@ -10505,9 +10329,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10522,9 +10343,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10544,9 +10362,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10557,20 +10372,8 @@ namespace Furnaces { false, OnOffAirFlowRatio); } else { - VariableSpeedCoils::SimVariableSpeedCoils(state, - BlankString, - thisFurnace.CoolingCoilIndex, - thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRatio); } } @@ -10581,9 +10384,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10598,9 +10398,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10620,9 +10417,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10637,9 +10431,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, 0.0, 1, @@ -10672,9 +10463,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10689,9 +10477,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10711,9 +10496,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10724,20 +10506,8 @@ namespace Furnaces { false, OnOffAirFlowRatio); } else { - VariableSpeedCoils::SimVariableSpeedCoils(state, - BlankString, - thisFurnace.CoolingCoilIndex, - thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRatio); } } @@ -10748,9 +10518,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10765,9 +10532,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10786,9 +10550,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10803,9 +10564,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, 0.0, 1, @@ -10842,9 +10600,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10859,9 +10614,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10881,9 +10633,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10894,20 +10643,8 @@ namespace Furnaces { false, OnOffAirFlowRatio); } else { - VariableSpeedCoils::SimVariableSpeedCoils(state, - BlankString, - thisFurnace.CoolingCoilIndex, - thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRatio); } } @@ -10919,9 +10656,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10936,9 +10670,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10957,9 +10688,6 @@ namespace Furnaces { BlankString, thisFurnace.CoolingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -10974,9 +10702,6 @@ namespace Furnaces { BlankString, thisFurnace.HeatingCoilIndex, thisFurnace.OpMode, - thisFurnace.MaxONOFFCyclesperHour, - thisFurnace.HPTimeConstant, - thisFurnace.FanDelayTime, CompressorOp, 0.0, 1, diff --git a/src/EnergyPlus/Furnaces.hh b/src/EnergyPlus/Furnaces.hh index 3f5c68bcca6..0ff1758b119 100644 --- a/src/EnergyPlus/Furnaces.hh +++ b/src/EnergyPlus/Furnaces.hh @@ -142,48 +142,41 @@ namespace Furnaces { // ratio (CoolingCoilLoad - FurnaceCoolingOutput)/CoolingCoilLoad Real64 HeatingConvergenceTolerance; // Convergence tolerance for heating, // ratio (HeatingCoilLoad - HeatPumpheatingOutput)/HeatingCoilLoad - Real64 DesignHeatingCapacity; // Nominal Capacity of Heating Coil [W] - Real64 DesignCoolingCapacity; // Nominal Capacity of Cooling Coil [W] - Real64 CoolingCoilSensDemand; // Sensible demand on Cooling Coil [W] - Real64 HeatingCoilSensDemand; // Sensible demand on Heating Coil [W] - Real64 CoolingCoilLatentDemand; // Latent demand on Cooling Coil [W] - Real64 DesignSuppHeatingCapacity; // Nominal Capacity of Supplemental Heating Coil [W] - Real64 DesignFanVolFlowRate; // Vol Flow through the Furnace being Simulated [m**3/Sec] - bool DesignFanVolFlowRateEMSOverrideOn; // if true, then EMS is calling to override autosize fan flow - Real64 DesignFanVolFlowRateEMSOverrideValue; // EMS value for override of fan flow rate autosize [m3/s] - Real64 DesignMassFlowRate; // Design mass flow rate through furnace [kg/s] - Real64 MaxCoolAirVolFlow; // supply air volumetric flow rate during cooling operation [m3/s] - bool MaxCoolAirVolFlowEMSOverrideOn; // if true, EMS is calling to override autosize flow during cooling - Real64 MaxCoolAirVolFlowEMSOverrideValue; // EMS value for override of flow during cooling [m3/s] - Real64 MaxHeatAirVolFlow; // supply air volumetric flow rate during cooling operation [m3/s] - bool MaxHeatAirVolFlowEMSOverrideOn; // if true, EMS is calling to override autosize flow during heating - Real64 MaxHeatAirVolFlowEMSOverrideValue; // EMS value for override of flow during heating operation [m3/s] - Real64 MaxNoCoolHeatAirVolFlow; // supply air volumetric flow rate when no cooling or heating [m3/s] - bool MaxNoCoolHeatAirVolFlowEMSOverrideOn; // if true, EMS is calling to override autosize no heatcool rate - Real64 MaxNoCoolHeatAirVolFlowEMSOverrideValue; // EMS value for override of flow during no heat cool [m3/s] - Real64 MaxCoolAirMassFlow; // supply air mass flow rate during cooling operation [kg/s] - Real64 MaxHeatAirMassFlow; // supply air mass flow rate during heating operation [kg/s] - Real64 MaxNoCoolHeatAirMassFlow; // supply air mass flow rate when no cooling or heating [kg/s] - Real64 MaxHeatCoilFluidFlow; // water or steam mass flow rate for heating coil [kg/s] - Real64 MaxSuppCoilFluidFlow; // water or steam mass flow rate for supplemental heating coil [kg/s] - Real64 ControlZoneMassFlowFrac; // Fraction of furnace flow to control zone - Real64 DesignMaxOutletTemp; // Maximum supply air temperature from furnace heater [C] - Real64 MdotFurnace; // Mass flow rate through furnace [kg/s] - Real64 FanPartLoadRatio; // Part load ratio of furnace fan (mdot actual/mdot design) - Real64 CompPartLoadRatio; // Part load ratio of furnace compressor (load / steady-state output) - Real64 WSHPRuntimeFrac; // Runtime fraction of water source heat pump - Real64 CoolPartLoadRatio; // Cooling part load ratio - Real64 HeatPartLoadRatio; // Heating part load ratio - Real64 MinOATCompressorCooling; // Minimum outdoor operating temperature for heat pump compressor - Real64 MinOATCompressorHeating; // Minimum outdoor operating temperature for heat pump compressor - Real64 MaxOATSuppHeat; // Maximum outdoor dry-bulb temperature for - int CondenserNodeNum; // Node number of outdoor condenser/compressor - Real64 MaxONOFFCyclesperHour; // Maximum ON/OFF Cycling Rate [cycles/hr] - Real64 HPTimeConstant; // Heat Pump Time Constant [s] - Real64 OnCyclePowerFraction; // Fraction of on-cycle power use [~] - // supplemental heating coil operation - Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to - // shut off after compressor cycle off [s] + Real64 DesignHeatingCapacity; // Nominal Capacity of Heating Coil [W] + Real64 DesignCoolingCapacity; // Nominal Capacity of Cooling Coil [W] + Real64 CoolingCoilSensDemand; // Sensible demand on Cooling Coil [W] + Real64 HeatingCoilSensDemand; // Sensible demand on Heating Coil [W] + Real64 CoolingCoilLatentDemand; // Latent demand on Cooling Coil [W] + Real64 DesignSuppHeatingCapacity; // Nominal Capacity of Supplemental Heating Coil [W] + Real64 DesignFanVolFlowRate; // Vol Flow through the Furnace being Simulated [m**3/Sec] + bool DesignFanVolFlowRateEMSOverrideOn; // if true, then EMS is calling to override autosize fan flow + Real64 DesignFanVolFlowRateEMSOverrideValue; // EMS value for override of fan flow rate autosize [m3/s] + Real64 DesignMassFlowRate; // Design mass flow rate through furnace [kg/s] + Real64 MaxCoolAirVolFlow; // supply air volumetric flow rate during cooling operation [m3/s] + bool MaxCoolAirVolFlowEMSOverrideOn; // if true, EMS is calling to override autosize flow during cooling + Real64 MaxCoolAirVolFlowEMSOverrideValue; // EMS value for override of flow during cooling [m3/s] + Real64 MaxHeatAirVolFlow; // supply air volumetric flow rate during cooling operation [m3/s] + bool MaxHeatAirVolFlowEMSOverrideOn; // if true, EMS is calling to override autosize flow during heating + Real64 MaxHeatAirVolFlowEMSOverrideValue; // EMS value for override of flow during heating operation [m3/s] + Real64 MaxNoCoolHeatAirVolFlow; // supply air volumetric flow rate when no cooling or heating [m3/s] + bool MaxNoCoolHeatAirVolFlowEMSOverrideOn; // if true, EMS is calling to override autosize no heatcool rate + Real64 MaxNoCoolHeatAirVolFlowEMSOverrideValue; // EMS value for override of flow during no heat cool [m3/s] + Real64 MaxCoolAirMassFlow; // supply air mass flow rate during cooling operation [kg/s] + Real64 MaxHeatAirMassFlow; // supply air mass flow rate during heating operation [kg/s] + Real64 MaxNoCoolHeatAirMassFlow; // supply air mass flow rate when no cooling or heating [kg/s] + Real64 MaxHeatCoilFluidFlow; // water or steam mass flow rate for heating coil [kg/s] + Real64 MaxSuppCoilFluidFlow; // water or steam mass flow rate for supplemental heating coil [kg/s] + Real64 ControlZoneMassFlowFrac; // Fraction of furnace flow to control zone + Real64 DesignMaxOutletTemp; // Maximum supply air temperature from furnace heater [C] + Real64 MdotFurnace; // Mass flow rate through furnace [kg/s] + Real64 FanPartLoadRatio; // Part load ratio of furnace fan (mdot actual/mdot design) + Real64 CompPartLoadRatio; // Part load ratio of furnace compressor (load / steady-state output) + Real64 CoolPartLoadRatio; // Cooling part load ratio + Real64 HeatPartLoadRatio; // Heating part load ratio + Real64 MinOATCompressorCooling; // Minimum outdoor operating temperature for heat pump compressor + Real64 MinOATCompressorHeating; // Minimum outdoor operating temperature for heat pump compressor + Real64 MaxOATSuppHeat; // Maximum outdoor dry-bulb temperature for + int CondenserNodeNum; // Node number of outdoor condenser/compressor bool Humidistat; // Humidistat control (heatcool units only and not heatpump) bool InitHeatPump; // Heat pump initialization flag (for error reporting) DehumidificationControlMode DehumidControlType_Num; // 0 = None, 1=MultiMode, 2=CoolReheat @@ -266,9 +259,8 @@ namespace Furnaces { MaxHeatAirVolFlowEMSOverrideValue(0.0), MaxNoCoolHeatAirVolFlow(0.0), MaxNoCoolHeatAirVolFlowEMSOverrideOn(false), MaxNoCoolHeatAirVolFlowEMSOverrideValue(0.0), MaxCoolAirMassFlow(0.0), MaxHeatAirMassFlow(0.0), MaxNoCoolHeatAirMassFlow(0.0), MaxHeatCoilFluidFlow(0.0), MaxSuppCoilFluidFlow(0.0), ControlZoneMassFlowFrac(0.0), DesignMaxOutletTemp(9999.0), MdotFurnace(0.0), - FanPartLoadRatio(0.0), CompPartLoadRatio(0.0), WSHPRuntimeFrac(0.0), CoolPartLoadRatio(0.0), HeatPartLoadRatio(0.0), - MinOATCompressorCooling(0.0), MinOATCompressorHeating(0.0), MaxOATSuppHeat(0.0), CondenserNodeNum(0), MaxONOFFCyclesperHour(0.0), - HPTimeConstant(0.0), OnCyclePowerFraction(0.0), FanDelayTime(0.0), Humidistat(false), InitHeatPump(false), + FanPartLoadRatio(0.0), CompPartLoadRatio(0.0), CoolPartLoadRatio(0.0), HeatPartLoadRatio(0.0), MinOATCompressorCooling(0.0), + MinOATCompressorHeating(0.0), MaxOATSuppHeat(0.0), CondenserNodeNum(0), Humidistat(false), InitHeatPump(false), DehumidControlType_Num(DehumidificationControlMode::None), LatentMaxIterIndex(0), LatentRegulaFalsiFailedIndex(0), LatentRegulaFalsiFailedIndex2(0), SensibleMaxIterIndex(0), SensibleRegulaFalsiFailedIndex(0), WSHPHeatMaxIterIndex(0), WSHPHeatRegulaFalsiFailedIndex(0), DXHeatingMaxIterIndex(0), DXHeatingRegulaFalsiFailedIndex(0), HeatingMaxIterIndex(0), @@ -412,13 +404,6 @@ namespace Furnaces { Real64 &OnOffAirFlowRatio // ratio of compressor ON airflow to AVERAGE airflow over timestep ); - void HeatPumpRunFrac(EnergyPlusData &state, - int const FurnaceNum, // Furnace Index Number - Real64 const PLR, // part load ratio - bool &errFlag, // part load factor out of range flag - Real64 &RuntimeFrac // the required run time fraction to meet part load - ); - // Beginning of Reporting subroutines for the Furnace Module // ***************************************************************************** diff --git a/src/EnergyPlus/HVACDXHeatPumpSystem.cc b/src/EnergyPlus/HVACDXHeatPumpSystem.cc index 870d1706623..bf19e276006 100644 --- a/src/EnergyPlus/HVACDXHeatPumpSystem.cc +++ b/src/EnergyPlus/HVACDXHeatPumpSystem.cc @@ -196,9 +196,6 @@ namespace HVACDXHeatPumpSystem { CompName, DXHeatPumpSystem(DXSystemNum).HeatPumpCoilIndex, DXHeatPumpSystem(DXSystemNum).FanOpMode, - state.dataHVACDXHeatPumpSys->MaxONOFFCyclesperHour, - state.dataHVACDXHeatPumpSys->HPTimeConstant, - state.dataHVACDXHeatPumpSys->FanDelayTime, CompressorOperation::On, DXHeatPumpSystem(DXSystemNum).PartLoadFrac, DXHeatPumpSystem(DXSystemNum).SpeedNum, @@ -583,19 +580,16 @@ namespace HVACDXHeatPumpSystem { bool SensibleLoad; // True if there is a sensible cooling load on this system int FanOpMode; // Supply air fan operating mode // added variables to call variable speed DX coils - int SpeedNum; // speed number of variable speed DX cooling coil - Real64 QZnReq; // Zone load (W), input to variable-speed DX coil - Real64 QLatReq; // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant; // Heat pump time constant [s] - Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to - Real64 OnOffAirFlowRatio; // ratio of compressor on flow to average flow over time step - Real64 TempSpeedOut; // output at one speed level - Real64 TempSpeedReqst; // request capacity at one speed level - int NumOfSpeeds; // maximum number of speed - int VSCoilIndex; // variable-speed coil index - int I; // interation increment - Real64 SpeedRatio; // speed ratio between two neighboring speeds + int SpeedNum; // speed number of variable speed DX cooling coil + Real64 QZnReq; // Zone load (W), input to variable-speed DX coil + Real64 QLatReq; // Zone latent load, input to variable-speed DX coil + Real64 OnOffAirFlowRatio; // ratio of compressor on flow to average flow over time step + Real64 TempSpeedOut; // output at one speed level + Real64 TempSpeedReqst; // request capacity at one speed level + int NumOfSpeeds; // maximum number of speed + int VSCoilIndex; // variable-speed coil index + int I; // interation increment + Real64 SpeedRatio; // speed ratio between two neighboring speeds auto &DXHeatPumpSystem = state.dataHVACDXHeatPumpSys->DXHeatPumpSystem(DXSystemNum); @@ -615,9 +609,6 @@ namespace HVACDXHeatPumpSystem { SpeedNum = 1; QZnReq = 0.0; QLatReq = 0.0; - MaxONOFFCyclesperHour = 4.0; // default number - HPTimeConstant = 0.0; - FanDelayTime = 0.0; OnOffAirFlowRatio = 1.0; TempSpeedOut = 0.0; TempSpeedReqst = 0.0; @@ -788,9 +779,6 @@ namespace HVACDXHeatPumpSystem { SpeedNum = 1; QZnReq = 0.0; QLatReq = 0.0; - MaxONOFFCyclesperHour = 4.0; // default number - HPTimeConstant = 0.0; - FanDelayTime = 0.0; OnOffAirFlowRatio = 1.0; SpeedRatio = 0.0; @@ -798,9 +786,6 @@ namespace HVACDXHeatPumpSystem { CompName, DXHeatPumpSystem.HeatPumpCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOperation::On, PartLoadFrac, SpeedNum, @@ -826,9 +811,6 @@ namespace HVACDXHeatPumpSystem { CompName, VSCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOperation::On, PartLoadFrac, SpeedNum, @@ -874,9 +856,6 @@ namespace HVACDXHeatPumpSystem { CompName, VSCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOperation::On, PartLoadFrac, SpeedNum, @@ -898,9 +877,6 @@ namespace HVACDXHeatPumpSystem { CompName, VSCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOperation::On, PartLoadFrac, SpeedNum, @@ -923,9 +899,6 @@ namespace HVACDXHeatPumpSystem { CompName, VSCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOperation::On, PartLoadFrac, SpeedNum, @@ -1000,9 +973,6 @@ namespace HVACDXHeatPumpSystem { CompName, VSCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOperation::On, PartLoadFrac, SpeedNum, @@ -1115,9 +1085,6 @@ namespace HVACDXHeatPumpSystem { "", CoilIndex, FanOpMode, - state.dataHVACDXHeatPumpSys->MaximumONOFFCyclesperHour, - state.dataHVACDXHeatPumpSys->TimeConstant, - state.dataHVACDXHeatPumpSys->HeatPumpFanDelayTime, CompressorOperation::On, PartLoadRatio, state.dataHVACDXHeatPumpSys->SpeedNum, @@ -1153,9 +1120,6 @@ namespace HVACDXHeatPumpSystem { "", CoilIndex, FanOpMode, - state.dataHVACDXHeatPumpSys->MaxONOFFCyclesperHr, - state.dataHVACDXHeatPumpSys->HPTimeConst, - state.dataHVACDXHeatPumpSys->HPFanDelayTime, CompressorOperation::On, state.dataHVACDXHeatPumpSys->SpeedPartLoadRatio, state.dataHVACDXHeatPumpSys->SpeedNumber, diff --git a/src/EnergyPlus/HVACDXHeatPumpSystem.hh b/src/EnergyPlus/HVACDXHeatPumpSystem.hh index 230ae298fb7..f3ca7296b28 100644 --- a/src/EnergyPlus/HVACDXHeatPumpSystem.hh +++ b/src/EnergyPlus/HVACDXHeatPumpSystem.hh @@ -180,31 +180,22 @@ struct HVACDXHeatPumpSystemData : BaseGlobalStruct Array1D_bool CheckEquipName; Array1D DXHeatPumpSystem; - Real64 QZnReq = 0.001; // Zone load (W), input to variable-speed DX coil - Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant = 0.0; // Heat pump time constant [s] - Real64 FanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to - Real64 OnOffAirFlowRatio = 1.0; // ratio of compressor on flow to average flow over time step - bool ErrorsFound = false; // If errors detected in input - int TotalArgs = 0; // Total number of alpha and numeric arguments (max) for a certain object in the input file + Real64 QZnReq = 0.001; // Zone load (W), input to variable-speed DX coil + Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil + Real64 OnOffAirFlowRatio = 1.0; // ratio of compressor on flow to average flow over time step + bool ErrorsFound = false; // If errors detected in input + int TotalArgs = 0; // Total number of alpha and numeric arguments (max) for a certain object in the input file bool MySetPointCheckFlag = true; - int SpeedNum = 1; // speed number of variable speed DX cooling coil - Real64 QZnReqr = 0.001; // Zone load (W), input to variable-speed DX coil - Real64 QLatReqr = 0.0; // Zone latent load, input to variable-speed DX coil - Real64 MaximumONOFFCyclesperHour = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 TimeConstant = 0.0; // Heat pump time constant [s] - Real64 HeatPumpFanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to - Real64 OnandOffAirFlowRatio = 1.0; // ratio of compressor on flow to average flow over time step - Real64 SpeedRatio = 0.0; // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - int SpeedNumber = 1; // speed number of variable speed DX cooling coil - Real64 QZoneReq = 0.001; // Zone load (W), input to variable-speed DX coil - Real64 QLatentReq = 0.0; // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHr = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConst = 0.0; // Heat pump time constant [s] - Real64 HPFanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to - Real64 AirFlowOnOffRatio = 1.0; // ratio of compressor on flow to average flow over time step - Real64 SpeedPartLoadRatio = 1.0; // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) + int SpeedNum = 1; // speed number of variable speed DX cooling coil + Real64 QZnReqr = 0.001; // Zone load (W), input to variable-speed DX coil + Real64 QLatReqr = 0.0; // Zone latent load, input to variable-speed DX coil + Real64 OnandOffAirFlowRatio = 1.0; // ratio of compressor on flow to average flow over time step + Real64 SpeedRatio = 0.0; // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) + int SpeedNumber = 1; // speed number of variable speed DX cooling coil + Real64 QZoneReq = 0.001; // Zone load (W), input to variable-speed DX coil + Real64 QLatentReq = 0.0; // Zone latent load, input to variable-speed DX coil + Real64 AirFlowOnOffRatio = 1.0; // ratio of compressor on flow to average flow over time step + Real64 SpeedPartLoadRatio = 1.0; // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) void clear_state() override { @@ -215,9 +206,6 @@ struct HVACDXHeatPumpSystemData : BaseGlobalStruct this->DXHeatPumpSystem.deallocate(); this->QZnReq = 0.001; this->QLatReq = 0.0; - this->MaxONOFFCyclesperHour = 4.0; - this->HPTimeConstant = 0.0; - this->FanDelayTime = 0.0; this->OnOffAirFlowRatio = 1.0; this->ErrorsFound = false; this->TotalArgs = 0; @@ -225,17 +213,11 @@ struct HVACDXHeatPumpSystemData : BaseGlobalStruct this->SpeedNum = 1; this->QZnReq = 0.001; this->QLatReq = 0.0; - this->MaxONOFFCyclesperHour = 4.0; - this->HPTimeConstant = 0.0; - this->FanDelayTime = 0.0; this->OnOffAirFlowRatio = 1.0; this->SpeedRatio = 0.0; this->SpeedNumber = 1; this->QZoneReq = 0.001; this->QLatentReq = 0.0; - this->MaxONOFFCyclesperHr = 4.0; - this->HPTimeConst = 0.0; - this->HPFanDelayTime = 0.0; this->AirFlowOnOffRatio = 1.0; this->SpeedPartLoadRatio = 1.0; } diff --git a/src/EnergyPlus/HVACHXAssistedCoolingCoil.cc b/src/EnergyPlus/HVACHXAssistedCoolingCoil.cc index 8215ff6bd50..23f365debe4 100644 --- a/src/EnergyPlus/HVACHXAssistedCoolingCoil.cc +++ b/src/EnergyPlus/HVACHXAssistedCoolingCoil.cc @@ -997,21 +997,15 @@ namespace HVACHXAssistedCoolingCoil { PartLoadRatio, OnOffAirFlow); } else if (thisHXCoil.CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingAirToAirVariableSpeed) { - Real64 QZnReq(-1.0); // Zone load (W), input to variable-speed DX coil - Real64 QLatReq(0.0); // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour(4.0); // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant(0.0); // Heat pump time constant [s] - Real64 FanDelayTime(0.0); // Fan delay time, time delay for the HP's fan to - Real64 OnOffAirFlowRatio(1.0); // ratio of compressor on flow to average flow over time step + Real64 QZnReq(-1.0); // Zone load (W), input to variable-speed DX coil + Real64 QLatReq(0.0); // Zone latent load, input to variable-speed DX coil + Real64 OnOffAirFlowRatio(1.0); // ratio of compressor on flow to average flow over time step DataHVACGlobals::CompressorOperation CompressorOn = CompressorOp; if (PartLoadRatio == 0.0) CompressorOn = DataHVACGlobals::CompressorOperation::Off; VariableSpeedCoils::SimVariableSpeedCoils(state, thisHXCoil.CoolingCoilName, thisHXCoil.CoolingCoilIndex, FanOpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOn, PartLoadRatio, thisHXCoil.DXCoilNumOfSpeeds, diff --git a/src/EnergyPlus/HVACUnitaryBypassVAV.cc b/src/EnergyPlus/HVACUnitaryBypassVAV.cc index 70728a84104..4a889f74d4c 100644 --- a/src/EnergyPlus/HVACUnitaryBypassVAV.cc +++ b/src/EnergyPlus/HVACUnitaryBypassVAV.cc @@ -2323,9 +2323,6 @@ namespace HVACUnitaryBypassVAV { case DataHVACGlobals::CoilType::CoolingAirToAirVariableSpeed: { Real64 QZnReq(0.0); // Zone load (W), input to variable-speed DX coil Real64 QLatReq(0.0); // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour(4.0); // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant(0.0); // Heat pump time constant [s] - Real64 FanDelayTime(0.0); // Fan delay time, time delay for the HP's fan to Real64 LocalOnOffAirFlowRatio(1.0); // ratio of compressor on flow to average flow over time step Real64 LocalPartLoadFrac(0.0); Real64 SpeedRatio(0.0); @@ -2338,9 +2335,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::Off, LocalPartLoadFrac, SpeedNum, @@ -2363,9 +2357,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -2396,9 +2387,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::Off, LocalPartLoadFrac, SpeedNum, @@ -2432,9 +2420,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -2464,9 +2449,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -2506,9 +2488,6 @@ namespace HVACUnitaryBypassVAV { "", CoilIndex, FanOpMode, - thisCBVAV.MaxONOFFCyclesperHourCycling, - thisCBVAV.HPTimeConstantCycling, - thisCBVAV.FanDelayTimeCycling, DataHVACGlobals::CompressorOperation::On, partLoadRatio, SpeedNum, @@ -2584,9 +2563,6 @@ namespace HVACUnitaryBypassVAV { "", thisCBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - thisCBVAV.MaxONOFFCyclesperHourCycling, - thisCBVAV.HPTimeConstantCycling, - thisCBVAV.FanDelayTimeCycling, DataHVACGlobals::CompressorOperation::On, PartLoadRatio, speedNum, @@ -2978,12 +2954,10 @@ namespace HVACUnitaryBypassVAV { DataHVACGlobals::ContFanCycCoil); state.dataHVACUnitaryBypassVAV->SaveCompressorPLR = state.dataDXCoils->DXCoilPartLoadRatio(cBVAV.DXCoolCoilIndexNum); } else if (cBVAV.CoolCoilType == DataHVACGlobals::CoilType::CoolingAirToAirVariableSpeed) { - Real64 QZnReq = 0.0; // Zone load (W), input to variable-speed DX coil - Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant = 0.0; // Heat pump time constant [s] - Real64 FanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to + // Real64 PartLoadFrac(0.0); Real64 LocalPartLoadFrac = 0.0; + Real64 QZnReq = 0.0; // Zone load (W), input to variable-speed DX coil + Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil Real64 SpeedRatio = 0.0; int SpeedNum = 1; // Get no load result @@ -2991,9 +2965,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::Off, LocalPartLoadFrac, SpeedNum, @@ -3025,11 +2996,8 @@ namespace HVACUnitaryBypassVAV { 0.0, OnOffAirFlowRatio); } else if (cBVAV.CoolCoilType == DataHVACGlobals::CoilType::CoolingAirToAirVariableSpeed) { - Real64 QZnReq = 0.0; // Zone load (W), input to variable-speed DX coil - Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant = 0.0; // Heat pump time constant [s] - Real64 FanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to + Real64 QZnReq = 0.0; // Zone load (W), input to variable-speed DX coil + Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil Real64 LocalPartLoadFrac = 0.0; Real64 SpeedRatio = 0.0; int SpeedNum = 1; @@ -3038,9 +3006,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.DXCoolCoilName, cBVAV.CoolCoilCompIndex, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::Off, LocalPartLoadFrac, SpeedNum, @@ -3140,9 +3105,6 @@ namespace HVACUnitaryBypassVAV { case DataHVACGlobals::CoilType::HeatingAirToAirVariableSpeed: { Real64 QZnReq = 0.0; // Zone load (W), input to variable-speed DX coil Real64 QLatReq = 0.0; // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant = 0.0; // Heat pump time constant [s] - Real64 FanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to Real64 LocalOnOffAirFlowRatio = 1.0; // ratio of compressor on flow to average flow over time step Real64 LocalPartLoadFrac = 0.0; Real64 SpeedRatio = 0.0; @@ -3155,9 +3117,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::Off, LocalPartLoadFrac, SpeedNum, @@ -3182,9 +3141,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -3216,9 +3172,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::Off, LocalPartLoadFrac, SpeedNum, @@ -3242,9 +3195,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -3262,9 +3212,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -3286,9 +3233,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -3364,9 +3308,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, @@ -3435,9 +3376,6 @@ namespace HVACUnitaryBypassVAV { cBVAV.HeatCoilName, cBVAV.DXHeatCoilIndexNum, DataHVACGlobals::ContFanCycCoil, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, LocalPartLoadFrac, SpeedNum, diff --git a/src/EnergyPlus/HVACUnitaryBypassVAV.hh b/src/EnergyPlus/HVACUnitaryBypassVAV.hh index 433544ce9bc..a2c5d144ed1 100644 --- a/src/EnergyPlus/HVACUnitaryBypassVAV.hh +++ b/src/EnergyPlus/HVACUnitaryBypassVAV.hh @@ -106,8 +106,6 @@ namespace HVACUnitaryBypassVAV { struct CBVAVData { - // Members - // input data std::string Name; // Name of unit std::string UnitType; // Type of unit std::string Sched; // Availability schedule name @@ -146,9 +144,6 @@ namespace HVACUnitaryBypassVAV { Real64 HeatingSpeedRatio = 1.0; // Fan speed ratio in heating mode Real64 CoolingSpeedRatio = 1.0; // Fan speed ratio in cooling mode Real64 NoHeatCoolSpeedRatio = 1.0; // Fan speed ratio when no cooling or heating - Real64 MaxONOFFCyclesperHourCycling = 4.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstantCycling = 0.0; // Heat pump time constant [s] - Real64 FanDelayTimeCycling = 0.0; // Fan delay time, time delay for the HP's fan to bool CheckFanFlow = true; // Check fan volumetric flow versus system flow in init routine. std::string DXCoolCoilName; // Name of DX cooling coil DataHVACGlobals::CoilType CoolCoilType = DataHVACGlobals::CoilType::Invalid; @@ -324,6 +319,7 @@ namespace HVACUnitaryBypassVAV { struct HVACUnitaryBypassVAVData : BaseGlobalStruct { + // TODO: Try to eliminate these global-ish variables. Just use data stored right in the component instances. int NumCBVAV = 0; // Number of CBVAV systems in input file Real64 CompOnMassFlow = 0.0; // System air mass flow rate w/ compressor ON Real64 OACompOnMassFlow = 0.0; // OA mass flow rate w/ compressor ON @@ -341,7 +337,8 @@ struct HVACUnitaryBypassVAVData : BaseGlobalStruct EPVector CBVAV; bool GetInputFlag = true; // Flag set to make sure you get input once - bool MyOneTimeFlag = true; // Initialization flag + bool MyOneTimeFlag = true; // Initialization flag + // TODO: Get rid of these arrays, make them bools in the data structure and probably get rid of one time flag Array1D_bool MyEnvrnFlag; // Used for initializations each begin environment flag Array1D_bool MySizeFlag; // Used for sizing CBVAV inputs one time Array1D_bool MyPlantScanFlag; // Used for initializations plant component for heating coils diff --git a/src/EnergyPlus/HeatBalanceSurfaceManager.cc b/src/EnergyPlus/HeatBalanceSurfaceManager.cc index 124d72bb845..3ccdd5a1640 100644 --- a/src/EnergyPlus/HeatBalanceSurfaceManager.cc +++ b/src/EnergyPlus/HeatBalanceSurfaceManager.cc @@ -1314,6 +1314,7 @@ void AllocateSurfaceHeatBalArrays(EnergyPlusData &state) state.dataHeatBalSurf->SurfHAirExt.dimension(state.dataSurface->TotSurfaces, 0.0); state.dataHeatBalSurf->SurfHSkyExt.dimension(state.dataSurface->TotSurfaces, 0.0); state.dataHeatBalSurf->SurfHGrdExt.dimension(state.dataSurface->TotSurfaces, 0.0); + state.dataHeatBalSurf->SurfHSrdSurfExt.dimension(state.dataSurface->TotSurfaces, 0.0); state.dataHeatBalSurf->SurfTempIn.dimension(state.dataSurface->TotSurfaces, 0.0); state.dataHeatBalSurf->SurfTempInsOld.dimension(state.dataSurface->TotSurfaces, 0.0); @@ -6791,6 +6792,9 @@ void CalcHeatBalanceOutsideSurf(EnergyPlusData &state, // set ground surfaces average temperature GetGroundSurfacesTemperatureAverage(state); + // set surrounding surfaces average temperature + GetSurroundingSurfacesTemperatureAverage(state); + auto &Surface = state.dataSurface->Surface; if (state.dataHeatBal->AnyInternalHeatSourceInInput) { @@ -7195,7 +7199,8 @@ void CalcHeatBalanceOutsideSurf(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(SurfNum), state.dataHeatBalSurf->SurfHSkyExt(SurfNum), state.dataHeatBalSurf->SurfHGrdExt(SurfNum), - state.dataHeatBalSurf->SurfHAirExt(SurfNum)); + state.dataHeatBalSurf->SurfHAirExt(SurfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); if (state.dataEnvrn->IsRain) { // Raining: since wind exposed, outside surface gets wet @@ -7300,7 +7305,8 @@ void CalcHeatBalanceOutsideSurf(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(SurfNum), state.dataHeatBalSurf->SurfHSkyExt(SurfNum), state.dataHeatBalSurf->SurfHGrdExt(SurfNum), - state.dataHeatBalSurf->SurfHAirExt(SurfNum)); + state.dataHeatBalSurf->SurfHAirExt(SurfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); TempExt = state.dataSurface->SurfOutDryBulbTemp(SurfNum); @@ -7371,7 +7377,8 @@ void CalcHeatBalanceOutsideSurf(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(SurfNum), state.dataHeatBalSurf->SurfHSkyExt(SurfNum), state.dataHeatBalSurf->SurfHGrdExt(SurfNum), - state.dataHeatBalSurf->SurfHAirExt(SurfNum)); + state.dataHeatBalSurf->SurfHAirExt(SurfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); } break; default: { // for interior or other zone surfaces @@ -8131,7 +8138,8 @@ void CalcHeatBalanceInsideSurf2(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(SurfNum), state.dataHeatBalSurf->SurfHSkyExt(SurfNum), state.dataHeatBalSurf->SurfHGrdExt(SurfNum), - state.dataHeatBalSurf->SurfHAirExt(SurfNum)); + state.dataHeatBalSurf->SurfHAirExt(SurfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); if (state.dataEnvrn->IsRain) { // Raining: since wind exposed, outside window surface gets wet state.dataHeatBalSurf->SurfHConvExt(SurfNum) = 1000.0; // Reset SurfHcExt because of wetness @@ -8149,7 +8157,8 @@ void CalcHeatBalanceInsideSurf2(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(SurfNum), state.dataHeatBalSurf->SurfHSkyExt(SurfNum), state.dataHeatBalSurf->SurfHGrdExt(SurfNum), - state.dataHeatBalSurf->SurfHAirExt(SurfNum)); + state.dataHeatBalSurf->SurfHAirExt(SurfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); } } else { // Interior Surface @@ -8830,7 +8839,8 @@ void CalcHeatBalanceInsideSurf2CTFOnly(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(surfNum), state.dataHeatBalSurf->SurfHSkyExt(surfNum), state.dataHeatBalSurf->SurfHGrdExt(surfNum), - state.dataHeatBalSurf->SurfHAirExt(surfNum)); + state.dataHeatBalSurf->SurfHAirExt(surfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(surfNum)); if (state.dataEnvrn->IsRain) { // Raining: since wind exposed, outside window surface gets wet state.dataHeatBalSurf->SurfHConvExt(surfNum) = 1000.0; // Reset SurfHcExt because of wetness @@ -8848,7 +8858,8 @@ void CalcHeatBalanceInsideSurf2CTFOnly(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvExt(surfNum), state.dataHeatBalSurf->SurfHSkyExt(surfNum), state.dataHeatBalSurf->SurfHGrdExt(surfNum), - state.dataHeatBalSurf->SurfHAirExt(surfNum)); + state.dataHeatBalSurf->SurfHAirExt(surfNum), + state.dataHeatBalSurf->SurfHSrdSurfExt(surfNum)); } } else { // Interior Surface @@ -9214,6 +9225,7 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, Real64 TSky = state.dataEnvrn->SkyTemp; Real64 TGround = state.dataEnvrn->OutDryBulbTemp; + Real64 TSrdSurfs = 0.0; if (surface.SurfHasSurroundingSurfProperty) { int SrdSurfsNum = surface.SurfSurroundingSurfacesNum; @@ -9223,6 +9235,7 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, if (state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).GroundTempSchNum != 0) { TGround = ScheduleManager::GetCurrentScheduleValue(state, state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).GroundTempSchNum); } + TSrdSurfs = state.dataSurface->Surface(SurfNum).SrdSurfTemp; } if (surface.UseSurfPropertyGndSurfTemp) { TGround = state.dataSurface->GroundSurfsProperty(surface.SurfPropertyGndSurfIndex).SurfsTempAvg; @@ -9252,15 +9265,16 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, // *SurfQsrcHist(1,SurfNum) & //+Construct(ConstrNum)%CTFSourceIn[0] & TDDs cannot be radiant systems // *SurfQsrcHist(1,SurfNum) & - TH11 = (state.dataHeatBal->SurfWinQRadSWwinAbs(SurfNum, 1) / 2.0 + state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + + TH11 = (state.dataHeatBal->SurfWinQRadSWwinAbs(SurfNum, 1) / 2.0 + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + - state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + F1 * (state.dataHeatBal->SurfWinQRadSWwinAbs(SurfNum2, 1) / 2.0 + state.dataHeatBal->SurfQdotRadIntGainsInPerArea(SurfNum2) + state.dataHeatBalSurf->SurfHConvInt(SurfNum2) * state.dataZoneTempPredictorCorrector->zoneHeatBalance(ZoneNum2).MAT + state.dataHeatBalSurf->SurfQdotRadNetLWInPerArea(SurfNum2))) / (Ueff + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) - + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) - F1 * Ueff); // Instead of SurfOpaqQRadSWOutAbs(SurfNum) | ODB used to approx ground surface temp | Use TDD:DIFFUSER surface | Use // TDD:DIFFUSER surface | Use TDD:DIFFUSER surface and zone | Use TDD:DIFFUSER surface @@ -9270,23 +9284,23 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, if (surface.OSCMPtr == 0) { if (construct.SourceSinkPresent) { TH11 = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + construct.CTFCross[0] * state.dataHeatBalSurf->SurfTempIn(SurfNum) + construct.CTFSourceOut[0] * state.dataHeatBalSurf->SurfQsrcHist(SurfNum, 1)) / (construct.CTFOutside[0] + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum)); // ODB used to approx ground surface temp + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); // ODB used to approx ground surface temp } else { TH11 = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + construct.CTFCross[0] * state.dataHeatBalSurf->SurfTempIn(SurfNum)) / (construct.CTFOutside[0] + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum)); // ODB used to approx ground surface temp + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); // ODB used to approx ground surface temp } // Outside Heat Balance case: Other Side Conditions Model } else { //( Surface(SurfNum)%OSCMPtr > 0 ) THEN @@ -9315,7 +9329,7 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, if (surface.OSCMPtr == 0) { if (construct.SourceSinkPresent) { TH11 = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + @@ -9325,11 +9339,12 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvInt(SurfNum) * state.dataZoneTempPredictorCorrector->zoneHeatBalance(ZoneNum).MAT + state.dataHeatBalSurf->SurfQdotRadNetLWInPerArea(SurfNum))) / (construct.CTFOutside[0] + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) - + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) - F1 * construct.CTFCross[0]); // ODB used to approx ground surface temp | MAT use here is problem for room air models } else { TH11 = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + @@ -9338,7 +9353,8 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, state.dataHeatBalSurf->SurfHConvInt(SurfNum) * state.dataZoneTempPredictorCorrector->zoneHeatBalance(ZoneNum).MAT + state.dataHeatBalSurf->SurfQdotRadNetLWInPerArea(SurfNum))) / (construct.CTFOutside[0] + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) - + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) - F1 * construct.CTFCross[0]); // ODB used to approx ground surface temp | MAT use here is problem for room air models } // Outside Heat Balance case: Other Side Conditions Model @@ -9373,24 +9389,25 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, } else if ((MovInsulPresent) && (!QuickConductionSurf)) { F2 = HMovInsul / (HMovInsul + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum)); + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); TH11 = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + construct.CTFCross[0] * state.dataHeatBalSurf->SurfTempIn(SurfNum) + + construct.CTFCross[0] * state.dataHeatBalSurf->SurfTempIn(SurfNum) + F2 * (state.dataHeatBalSurf->SurfQRadSWOutMvIns(SurfNum) + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround)) / + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs)) / (construct.CTFOutside[0] + HMovInsul - F2 * HMovInsul); // ODB used to approx ground surface temp // Outside heat balance case: Movable insulation, quick conduction } else if ((MovInsulPresent) && (QuickConductionSurf)) { F2 = HMovInsul / (HMovInsul + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + - state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum)); + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum)); TH11 = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + F1 * (state.dataHeatBalSurf->SurfCTFConstInPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWInAbs(SurfNum) + state.dataHeatBal->SurfQdotRadIntGainsInPerArea(SurfNum) + state.dataHeatBalSurf->SurfHConvInt(SurfNum) * state.dataZoneTempPredictorCorrector->zoneHeatBalance(ZoneNum).MAT + @@ -9398,34 +9415,16 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, F2 * (state.dataHeatBalSurf->SurfQRadSWOutMvIns(SurfNum) + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfQAdditionalHeatSourceOutside(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround)) / + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs)) / (construct.CTFOutside[0] + HMovInsul - F2 * HMovInsul - F1 * construct.CTFCross[0]); // ODB used to approx ground surface temp } // ...end of outside heat balance cases IF-THEN block // multiply out linearized radiation coeffs for reporting - Real64 const HExtSurf_fac(-(state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * (TH11 - TSky) + - state.dataHeatBalSurf->SurfHAirExt(SurfNum) * (TH11 - TempExt) + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * (TH11 - TGround))); - Real64 QRadLWOutSrdSurfsRep; - QRadLWOutSrdSurfsRep = 0; - // Report LWR from surrounding surfaces for current exterior surf temp - // Current exterior surf temp would be used for the next step LWR calculation. - if (surface.SurfHasSurroundingSurfProperty) { - int SrdSurfsNum = surface.SurfSurroundingSurfacesNum; - for (int SrdSurfNum = 1; SrdSurfNum <= state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).TotSurroundingSurface; SrdSurfNum++) { - Real64 SrdSurfViewFac = state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).SurroundingSurfs(SrdSurfNum).ViewFactor; - Real64 SrdSurfTempAbs = ScheduleManager::GetCurrentScheduleValue( - state, state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).SurroundingSurfs(SrdSurfNum).TempSchNum) + - Constant::KelvinConv; - QRadLWOutSrdSurfsRep += - Constant::StefanBoltzmann * - dynamic_cast(state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(1))) - ->AbsorpThermal * - SrdSurfViewFac * (pow_4(SrdSurfTempAbs) - pow_4(TH11 + Constant::KelvinConv)); - } - } - state.dataHeatBalSurf->SurfQdotRadOutRepPerArea(SurfNum) = HExtSurf_fac + QRadLWOutSrdSurfsRep; + Real64 const HExtSurf_fac( + -(state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * (TH11 - TSky) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) * (TH11 - TempExt) + + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * (TH11 - TGround) + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * (TH11 - TSrdSurfs))); + state.dataHeatBalSurf->SurfQdotRadOutRepPerArea(SurfNum) = HExtSurf_fac; // Set the radiant system heat balance coefficients if this surface is also a radiant system if (construct.SourceSinkPresent) { @@ -9445,11 +9444,12 @@ void CalcOutsideSurfTemp(EnergyPlusData &state, } else { Real64 const RadSysDiv(1.0 / (construct.CTFOutside[0] + state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum) + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) + - state.dataHeatBalSurf->SurfHGrdExt(SurfNum))); + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum))); state.dataHeatBalFanSys->RadSysToHBConstCoef(SurfNum) = (-state.dataHeatBalSurf->SurfCTFConstOutPart(SurfNum) + state.dataHeatBalSurf->SurfOpaqQRadSWOutAbs(SurfNum) + - state.dataHeatBalSurf->SurfQRadLWOutSrdSurfs(SurfNum) + + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * TSrdSurfs + (state.dataHeatBalSurf->SurfHConvExt(SurfNum) + state.dataHeatBalSurf->SurfHAirExt(SurfNum)) * TempExt + state.dataHeatBalSurf->SurfHSkyExt(SurfNum) * TSky + state.dataHeatBalSurf->SurfHGrdExt(SurfNum) * TGround) * RadSysDiv; // ODB used to approx ground surface temp @@ -9777,4 +9777,28 @@ void ReSetGroundSurfacesViewFactor(EnergyPlusData &state, int const SurfNum) GndSurfsProperty.GndSurfs(1).ViewFactor = GndSurfsProperty.SurfsViewFactorSum; } +void GetSurroundingSurfacesTemperatureAverage(EnergyPlusData &state) +{ + // returns surrounding surfaces average temperature (deg C) + // surrounding surfaces viewed by an exterior surface + // surrounding surfaces temperature weighed using view factors + + if (!state.dataGlobal->AnyLocalEnvironmentsInModel) { + return; + } + + for (auto &surface : state.dataSurface->Surface) { + if (!surface.SurfHasSurroundingSurfProperty) continue; + // local vars + Real64 SrdSurfaceTemp = 0.0; + Real64 SrdSurfaceTempSum = 0.0; + auto &SrdSurfsProperty = state.dataSurface->SurroundingSurfsProperty(surface.SurfSurroundingSurfacesNum); + for (int SrdSurfNum = 1; SrdSurfNum <= SrdSurfsProperty.TotSurroundingSurface; SrdSurfNum++) { + SrdSurfaceTemp = + ScheduleManager::GetCurrentScheduleValue(state, SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).TempSchNum) + Constant::KelvinConv; + SrdSurfaceTempSum += SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).ViewFactor * pow_4(SrdSurfaceTemp); + } + surface.SrdSurfTemp = root_4(SrdSurfaceTempSum / surface.ViewFactorSrdSurfs) - Constant::KelvinConv; + } +} } // namespace EnergyPlus::HeatBalanceSurfaceManager diff --git a/src/EnergyPlus/HeatBalanceSurfaceManager.hh b/src/EnergyPlus/HeatBalanceSurfaceManager.hh index 8afa27c7a2a..17079c8dbda 100644 --- a/src/EnergyPlus/HeatBalanceSurfaceManager.hh +++ b/src/EnergyPlus/HeatBalanceSurfaceManager.hh @@ -215,6 +215,8 @@ namespace HeatBalanceSurfaceManager { void ReSetGroundSurfacesViewFactor(EnergyPlusData &state, int const SurfNum); + void GetSurroundingSurfacesTemperatureAverage(EnergyPlusData &state); + } // namespace HeatBalanceSurfaceManager struct HeatBalSurfMgr : BaseGlobalStruct diff --git a/src/EnergyPlus/IntegratedHeatPump.cc b/src/EnergyPlus/IntegratedHeatPump.cc index 7192779361c..5aa0b214a79 100644 --- a/src/EnergyPlus/IntegratedHeatPump.cc +++ b/src/EnergyPlus/IntegratedHeatPump.cc @@ -77,9 +77,6 @@ void SimIHP(EnergyPlusData &state, std::string_view CompName, // Coil Name int &CompIndex, // Index for Component name int const CyclingScheme, // Continuous fan OR cycling compressor - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to DataHVACGlobals::CompressorOperation const CompressorOp, // compressor on/off. 0 = off; 1= on Real64 const PartLoadFrac, // part load fraction int const SpeedNum, // compressor speed number @@ -150,98 +147,17 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::SpaceClg: if (!IsCallbyWH) // process when called from air loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -250,20 +166,7 @@ void SimIHP(EnergyPlusData &state, LatentLoad, OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); ihp.AirFlowSavInAirLoop = airMassFlowRate; } @@ -273,112 +176,18 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::SpaceHtg: if (!IsCallbyWH) // process when called from air loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -394,112 +203,18 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::DedicatedWaterHtg: if (IsCallbyWH) // process when called from water loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -516,98 +231,17 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::SCWHMatchSC: if (!IsCallbyWH) // process when called from air loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -616,20 +250,7 @@ void SimIHP(EnergyPlusData &state, LatentLoad, OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); ihp.AirFlowSavInAirLoop = airMassFlowRate; } @@ -640,98 +261,17 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::SCWHMatchWH: if (IsCallbyWH) // process when called from water loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -740,20 +280,7 @@ void SimIHP(EnergyPlusData &state, LatentLoad, OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); ihp.AirFlowSavInWaterLoop = airMassFlowRate; } @@ -763,84 +290,16 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::SpaceClgDedicatedWaterHtg: if (!IsCallbyWH) // process when called from air loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -852,9 +311,6 @@ void SimIHP(EnergyPlusData &state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -863,20 +319,7 @@ void SimIHP(EnergyPlusData &state, LatentLoad, OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); ihp.AirFlowSavInAirLoop = airMassFlowRate; } @@ -887,98 +330,17 @@ void SimIHP(EnergyPlusData &state, case IHPOperationMode::SHDWHElecHeatOn: if (!IsCallbyWH) // process when called from air loop { - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -990,9 +352,6 @@ void SimIHP(EnergyPlusData &state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, CompressorOp, PartLoadFrac, SpeedNum, @@ -1008,118 +367,14 @@ void SimIHP(EnergyPlusData &state, break; case IHPOperationMode::Idle: default: // clear up - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CyclingScheme, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - CompressorOp, - 0.0, - 1, - 0.0, - 0.0, - 0.0, - OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHCoolCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHHeatCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHDWHWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SCCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.SHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); + SimVariableSpeedCoils(state, std::string(), ihp.DWHCoilIndex, CyclingScheme, CompressorOp, 0.0, 1, 0.0, 0.0, 0.0, OnOffAirFlowRat); ihp.TankSourceWaterMassFlowRate = 0.0; ihp.AirFlowSavInAirLoop = 0.0; ihp.AirFlowSavInWaterLoop = 0.0; @@ -2357,8 +1612,7 @@ void ClearCoils(EnergyPlusData &state, int const DXCoilNum) { using VariableSpeedCoils::SimVariableSpeedCoils; - Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); // place holder to calling clear up function - int CycFanCycCoil(1); // fan cycl manner place holder + int CycFanCycCoil(1); // fan cycl manner place holder // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataIntegratedHP->GetCoilsInputFlag) { // First time subroutine has been entered @@ -2376,118 +1630,22 @@ void ClearCoils(EnergyPlusData &state, int const DXCoilNum) auto &ihp = state.dataIntegratedHP->IntegratedHeatPumps(DXCoilNum); // clear up - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHCoolCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCDWHWHCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHHeatCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHDWHWHCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCWHCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.SCCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.SHCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); - SimVariableSpeedCoils(state, - std::string(), - ihp.DWHCoilIndex, - CycFanCycCoil, - EMP1, - EMP2, - EMP3, - DataHVACGlobals::CompressorOperation::On, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SCDWHCoolCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SCDWHWHCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SHDWHHeatCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SHDWHWHCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SCWHCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SCCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.SHCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); + SimVariableSpeedCoils( + state, std::string(), ihp.DWHCoilIndex, CycFanCycCoil, DataHVACGlobals::CompressorOperation::On, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); } IHPOperationMode GetCurWorkMode(EnergyPlusData &state, int const DXCoilNum) diff --git a/src/EnergyPlus/IntegratedHeatPump.hh b/src/EnergyPlus/IntegratedHeatPump.hh index fefc70f8e77..253f3cb8795 100644 --- a/src/EnergyPlus/IntegratedHeatPump.hh +++ b/src/EnergyPlus/IntegratedHeatPump.hh @@ -252,9 +252,6 @@ namespace IntegratedHeatPump { std::string_view CompName, // Coil Name int &CompIndex, // Index for Component name int const CyclingScheme, // Continuous fan OR cycling compressor - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to DataHVACGlobals::CompressorOperation CompressorOp, // compressor on/off. 0 = off; 1= on Real64 const PartLoadFrac, int const SpeedNum, // compressor speed number diff --git a/src/EnergyPlus/OutputReportTabular.cc b/src/EnergyPlus/OutputReportTabular.cc index 016353b4647..78798f7a909 100644 --- a/src/EnergyPlus/OutputReportTabular.cc +++ b/src/EnergyPlus/OutputReportTabular.cc @@ -2872,7 +2872,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) // + gatherTotalsBEPS(5)*sourceFactorSteam & !steam // ) / largeConversionFactor - GetFuelFactorInfo(state, "NaturalGas", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::NaturalGas, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorNaturalGas = curSourceFactor; ort->fuelfactorsused(2) = true; @@ -2885,7 +2885,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(2) = ffScheduleIndex; } - GetFuelFactorInfo(state, "FuelOilNo2", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::FuelOilNo2, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorFuelOil2 = curSourceFactor; ort->fuelfactorsused(7) = true; @@ -2898,7 +2898,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(11) = ffScheduleIndex; } - GetFuelFactorInfo(state, "FuelOilNo1", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::FuelOilNo1, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorFuelOil1 = curSourceFactor; ort->fuelfactorsused(6) = true; @@ -2911,7 +2911,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(10) = ffScheduleIndex; } - GetFuelFactorInfo(state, "Coal", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::Coal, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorCoal = curSourceFactor; ort->fuelfactorsused(5) = true; @@ -2924,7 +2924,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(9) = ffScheduleIndex; } - GetFuelFactorInfo(state, "Electricity", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::Electricity, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorElectric = curSourceFactor; ort->fuelfactorsused(1) = true; @@ -2937,7 +2937,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(1) = ffScheduleIndex; } - GetFuelFactorInfo(state, "Gasoline", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::Gasoline, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorGasoline = curSourceFactor; ort->fuelfactorsused(3) = true; @@ -2950,7 +2950,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(6) = ffScheduleIndex; } - GetFuelFactorInfo(state, "Propane", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::Propane, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorPropane = curSourceFactor; ort->fuelfactorsused(8) = true; @@ -2963,7 +2963,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(12) = ffScheduleIndex; } - GetFuelFactorInfo(state, "Diesel", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::Diesel, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorDiesel = curSourceFactor; ort->fuelfactorsused(4) = true; @@ -2976,7 +2976,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(8) = ffScheduleIndex; } - GetFuelFactorInfo(state, "DistrictCooling", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::DistrictCooling, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->ffUsed(3) = true; } @@ -2986,7 +2986,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(3) = ffScheduleIndex; } - GetFuelFactorInfo(state, "DistrictHeating", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::DistrictHeating, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->ffUsed(4) = true; } @@ -2996,7 +2996,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(4) = ffScheduleIndex; } - GetFuelFactorInfo(state, "Steam", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::Steam, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->ffUsed(5) = true; } @@ -3006,7 +3006,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(5) = ffScheduleIndex; } - GetFuelFactorInfo(state, "OtherFuel1", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::OtherFuel1, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorOtherFuel1 = curSourceFactor; ort->fuelfactorsused(11) = true; // should be source number @@ -3019,7 +3019,7 @@ void GetInputFuelAndPollutionFactors(EnergyPlusData &state) ort->ffSchedIndex(13) = ffScheduleIndex; } - GetFuelFactorInfo(state, "OtherFuel2", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + GetFuelFactorInfo(state, Constant::eFuel::OtherFuel2, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); if (fuelFactorUsed) { ort->sourceFactorOtherFuel2 = curSourceFactor; ort->fuelfactorsused(12) = true; // should be source number diff --git a/src/EnergyPlus/OutputReports.cc b/src/EnergyPlus/OutputReports.cc index 500d6240d9e..0560a8967da 100644 --- a/src/EnergyPlus/OutputReports.cc +++ b/src/EnergyPlus/OutputReports.cc @@ -439,9 +439,9 @@ static void DXFDaylightingReferencePoints(EnergyPlusData &state, InputOutputFile Format_709, normalizeName(thisDaylightControl.ZoneName), state.dataSurfColor->DXFcolorno[static_cast(curcolorno)], - thisDaylightControl.DaylRefPtAbsCoord(1, refpt), - thisDaylightControl.DaylRefPtAbsCoord(2, refpt), - thisDaylightControl.DaylRefPtAbsCoord(3, refpt), + thisDaylightControl.DaylRefPtAbsCoord(refpt).x, + thisDaylightControl.DaylRefPtAbsCoord(refpt).y, + thisDaylightControl.DaylRefPtAbsCoord(refpt).z, 0.2); curcolorno = DataSurfaceColors::ColorNo::DaylSensor2; // ref pts 2 and later are this color } @@ -784,9 +784,9 @@ void DXFOut(EnergyPlusData &state, Format_709, normalizeName(state.dataHeatBal->Zone(zones).Name), DXFcolorno[static_cast(curcolorno)], - state.dataDaylightingData->IllumMapCalc(mapnum).MapRefPtAbsCoord(1, refpt), - state.dataDaylightingData->IllumMapCalc(mapnum).MapRefPtAbsCoord(2, refpt), - state.dataDaylightingData->IllumMapCalc(mapnum).MapRefPtAbsCoord(3, refpt), + state.dataDaylightingData->IllumMapCalc(mapnum).MapRefPtAbsCoord(refpt).x, + state.dataDaylightingData->IllumMapCalc(mapnum).MapRefPtAbsCoord(refpt).y, + state.dataDaylightingData->IllumMapCalc(mapnum).MapRefPtAbsCoord(refpt).z, 0.05); } } diff --git a/src/EnergyPlus/PhotovoltaicThermalCollectors.cc b/src/EnergyPlus/PhotovoltaicThermalCollectors.cc index d02795b869b..9a55f4033ae 100644 --- a/src/EnergyPlus/PhotovoltaicThermalCollectors.cc +++ b/src/EnergyPlus/PhotovoltaicThermalCollectors.cc @@ -1114,6 +1114,7 @@ namespace PhotovoltaicThermalCollectors { Real64 HrAir(0.0); Real64 HcExt(0.0); Real64 HrSky(0.0); + Real64 HrSrdSurf(0.0); Convect::InitExtConvCoeff(state, this->SurfNum, @@ -1124,7 +1125,8 @@ namespace PhotovoltaicThermalCollectors { HcExt, HrSky, HrGround, - HrAir); + HrAir, + HrSrdSurf); Real64 WetBulbInlet(0.0); Real64 DewPointInlet(0.0); diff --git a/src/EnergyPlus/PollutionModule.cc b/src/EnergyPlus/PollutionModule.cc index 554361bc026..aa2d8b65696 100644 --- a/src/EnergyPlus/PollutionModule.cc +++ b/src/EnergyPlus/PollutionModule.cc @@ -50,6 +50,7 @@ // EnergyPlus Headers #include #include +#include #include #include #include @@ -275,1804 +276,1820 @@ void GetPollutionFactorInput(EnergyPlusData &state) state.dataIPShortCut->cAlphaFieldNames, state.dataIPShortCut->cNumericFieldNames); - FuelType.FuelTypeNames(Loop) = state.dataIPShortCut->cAlphaArgs(1); - - { - std::string const &SELECT_CASE_var = FuelType.FuelTypeNames(Loop); - if (SELECT_CASE_var == "NATURALGAS") { - if (Pollution.NatGasCoef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.NatGasCoef.FuelFactorUsed = true; - // Natural Gas Coeffs - Pollution.NatGasCoef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.NatGasCoef.SourceSched, - ErrorsFound); - } - Pollution.NatGasCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.NatGasCoef.CO2Sched, - ErrorsFound); - } - Pollution.NatGasCoef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.NatGasCoef.COSched, - ErrorsFound); - } - Pollution.NatGasCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.NatGasCoef.CH4Sched, - ErrorsFound); - } - Pollution.NatGasCoef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.NatGasCoef.NOxSched, - ErrorsFound); - } - Pollution.NatGasCoef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.NatGasCoef.N2OSched, - ErrorsFound); - } - Pollution.NatGasCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.NatGasCoef.SO2Sched, - ErrorsFound); - } - Pollution.NatGasCoef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.NatGasCoef.PMSched, - ErrorsFound); - } - Pollution.NatGasCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.NatGasCoef.PM10Sched, - ErrorsFound); - } - Pollution.NatGasCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.NatGasCoef.PM25Sched, - ErrorsFound); - } - Pollution.NatGasCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.NatGasCoef.NH3Sched, - ErrorsFound); - } - Pollution.NatGasCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.NatGasCoef.NMVOCSched, - ErrorsFound); - } - Pollution.NatGasCoef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.NatGasCoef.HgSched, - ErrorsFound); - } - Pollution.NatGasCoef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.NatGasCoef.PbSched, - ErrorsFound); - } - Pollution.NatGasCoef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.NatGasCoef.WaterSched, - ErrorsFound); - } - Pollution.NatGasCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.NatGasCoef.NucHiSched, - ErrorsFound); - } - Pollution.NatGasCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "NaturalGas", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.NatGasCoef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "FUELOILNO2") { - if (Pollution.FuelOil2Coef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.FuelOil2Coef.FuelFactorUsed = true; - // FuelOilNo2 Coeffs - Pollution.FuelOil2Coef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.FuelOil2Coef.SourceSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.FuelOil2Coef.CO2Sched, - ErrorsFound); - } - Pollution.FuelOil2Coef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.FuelOil2Coef.COSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.FuelOil2Coef.CH4Sched, - ErrorsFound); - } - Pollution.FuelOil2Coef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.FuelOil2Coef.NOxSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.FuelOil2Coef.N2OSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.FuelOil2Coef.SO2Sched, - ErrorsFound); - } - Pollution.FuelOil2Coef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.FuelOil2Coef.PMSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.FuelOil2Coef.PM10Sched, - ErrorsFound); - } - Pollution.FuelOil2Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.FuelOil2Coef.PM25Sched, - ErrorsFound); - } - Pollution.FuelOil2Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.FuelOil2Coef.NH3Sched, - ErrorsFound); - } - Pollution.FuelOil2Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.FuelOil2Coef.NMVOCSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.FuelOil2Coef.HgSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.FuelOil2Coef.PbSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.FuelOil2Coef.WaterSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.FuelOil2Coef.NucHiSched, - ErrorsFound); - } - Pollution.FuelOil2Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#2", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.FuelOil2Coef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "FUELOILNO1") { - if (Pollution.FuelOil1Coef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.FuelOil1Coef.FuelFactorUsed = true; - // FuelOilNo1 Coeffs - Pollution.FuelOil1Coef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.FuelOil1Coef.SourceSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.FuelOil1Coef.CO2Sched, - ErrorsFound); - } - Pollution.FuelOil1Coef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.FuelOil1Coef.COSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.FuelOil1Coef.CH4Sched, - ErrorsFound); - } - Pollution.FuelOil1Coef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.FuelOil1Coef.NOxSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.FuelOil1Coef.N2OSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.FuelOil1Coef.SO2Sched, - ErrorsFound); - } - Pollution.FuelOil1Coef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.FuelOil1Coef.PMSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.FuelOil1Coef.PM10Sched, - ErrorsFound); - } - Pollution.FuelOil1Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.FuelOil1Coef.PM25Sched, - ErrorsFound); - } - Pollution.FuelOil1Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.FuelOil1Coef.NH3Sched, - ErrorsFound); - } - Pollution.FuelOil1Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.FuelOil1Coef.NMVOCSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.FuelOil1Coef.HgSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.FuelOil1Coef.PbSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.FuelOil1Coef.WaterSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.FuelOil1Coef.NucHiSched, - ErrorsFound); - } - Pollution.FuelOil1Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Fuel Oil#1", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.FuelOil1Coef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "COAL") { - if (Pollution.CoalCoef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.CoalCoef.FuelFactorUsed = true; - // Coal - Pollution.CoalCoef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.CoalCoef.SourceSched, - ErrorsFound); - } - Pollution.CoalCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.CoalCoef.CO2Sched, - ErrorsFound); - } - Pollution.CoalCoef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.CoalCoef.COSched, - ErrorsFound); - } - Pollution.CoalCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.CoalCoef.CH4Sched, - ErrorsFound); - } - Pollution.CoalCoef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.CoalCoef.NOxSched, - ErrorsFound); - } - Pollution.CoalCoef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.CoalCoef.N2OSched, - ErrorsFound); - } - Pollution.CoalCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.CoalCoef.SO2Sched, - ErrorsFound); - } - Pollution.CoalCoef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.CoalCoef.PMSched, - ErrorsFound); - } - Pollution.CoalCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.CoalCoef.PM10Sched, - ErrorsFound); - } - Pollution.CoalCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.CoalCoef.PM25Sched, - ErrorsFound); - } - Pollution.CoalCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.CoalCoef.NH3Sched, - ErrorsFound); - } - Pollution.CoalCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.CoalCoef.NMVOCSched, - ErrorsFound); - } - Pollution.CoalCoef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.CoalCoef.HgSched, - ErrorsFound); - } - Pollution.CoalCoef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.CoalCoef.PbSched, - ErrorsFound); - } - Pollution.CoalCoef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.CoalCoef.WaterSched, - ErrorsFound); - } - Pollution.CoalCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.CoalCoef.NucHiSched, - ErrorsFound); - } - Pollution.CoalCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Coal", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.CoalCoef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "ELECTRICITY") { - if (Pollution.ElecCoef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.ElecCoef.FuelFactorUsed = true; - // Electric Coeffs - Pollution.ElecCoef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.ElecCoef.SourceSched, - ErrorsFound); - } - Pollution.ElecCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.ElecCoef.CO2Sched, - ErrorsFound); - } - Pollution.ElecCoef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.ElecCoef.COSched, - ErrorsFound); - } - Pollution.ElecCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.ElecCoef.CH4Sched, - ErrorsFound); - } - Pollution.ElecCoef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.ElecCoef.NOxSched, - ErrorsFound); - } - Pollution.ElecCoef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.ElecCoef.N2OSched, - ErrorsFound); - } - Pollution.ElecCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.ElecCoef.SO2Sched, - ErrorsFound); - } - Pollution.ElecCoef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.ElecCoef.PMSched, - ErrorsFound); - } - Pollution.ElecCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.ElecCoef.PM10Sched, - ErrorsFound); - } - Pollution.ElecCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.ElecCoef.PM25Sched, - ErrorsFound); - } - Pollution.ElecCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.ElecCoef.NH3Sched, - ErrorsFound); - } - Pollution.ElecCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.ElecCoef.NMVOCSched, - ErrorsFound); - } - Pollution.ElecCoef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.ElecCoef.HgSched, - ErrorsFound); - } - Pollution.ElecCoef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.ElecCoef.PbSched, - ErrorsFound); - } - Pollution.ElecCoef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.ElecCoef.WaterSched, - ErrorsFound); - } - Pollution.ElecCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.ElecCoef.NucHiSched, - ErrorsFound); - } - Pollution.ElecCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Electricity", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.ElecCoef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "GASOLINE") { - if (Pollution.GasolineCoef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.GasolineCoef.FuelFactorUsed = true; - // Gasoline Coeffs - Pollution.GasolineCoef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.GasolineCoef.SourceSched, - ErrorsFound); - } - Pollution.GasolineCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.GasolineCoef.CO2Sched, - ErrorsFound); - } - Pollution.GasolineCoef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.GasolineCoef.COSched, - ErrorsFound); - } - Pollution.GasolineCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.GasolineCoef.CH4Sched, - ErrorsFound); - } - Pollution.GasolineCoef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.GasolineCoef.NOxSched, - ErrorsFound); - } - Pollution.GasolineCoef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.GasolineCoef.N2OSched, - ErrorsFound); - } - Pollution.GasolineCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.GasolineCoef.SO2Sched, - ErrorsFound); - } - Pollution.GasolineCoef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.GasolineCoef.PMSched, - ErrorsFound); - } - Pollution.GasolineCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.GasolineCoef.PM10Sched, - ErrorsFound); - } - Pollution.GasolineCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.GasolineCoef.PM25Sched, - ErrorsFound); - } - Pollution.GasolineCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.GasolineCoef.NH3Sched, - ErrorsFound); - } - Pollution.GasolineCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.GasolineCoef.NMVOCSched, - ErrorsFound); - } - Pollution.GasolineCoef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.GasolineCoef.HgSched, - ErrorsFound); - } - Pollution.GasolineCoef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.GasolineCoef.PbSched, - ErrorsFound); - } - Pollution.GasolineCoef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.GasolineCoef.WaterSched, - ErrorsFound); - } - Pollution.GasolineCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.GasolineCoef.NucHiSched, - ErrorsFound); - } - Pollution.GasolineCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Gasoline", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.GasolineCoef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "PROPANE") { - if (Pollution.PropaneCoef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.PropaneCoef.FuelFactorUsed = true; - // Propane Coeffs - Pollution.PropaneCoef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.PropaneCoef.SourceSched, - ErrorsFound); - } - Pollution.PropaneCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.PropaneCoef.CO2Sched, - ErrorsFound); - } - Pollution.PropaneCoef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.PropaneCoef.COSched, - ErrorsFound); - } - Pollution.PropaneCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.PropaneCoef.CH4Sched, - ErrorsFound); - } - Pollution.PropaneCoef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.PropaneCoef.NOxSched, - ErrorsFound); - } - Pollution.PropaneCoef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.PropaneCoef.N2OSched, - ErrorsFound); - } - Pollution.PropaneCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.PropaneCoef.SO2Sched, - ErrorsFound); - } - Pollution.PropaneCoef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.PropaneCoef.PMSched, - ErrorsFound); - } - Pollution.PropaneCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.PropaneCoef.PM10Sched, - ErrorsFound); - } - Pollution.PropaneCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.PropaneCoef.PM25Sched, - ErrorsFound); - } - Pollution.PropaneCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.PropaneCoef.NH3Sched, - ErrorsFound); - } - Pollution.PropaneCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.PropaneCoef.NMVOCSched, - ErrorsFound); - } - Pollution.PropaneCoef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.PropaneCoef.HgSched, - ErrorsFound); - } - Pollution.PropaneCoef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.PropaneCoef.PbSched, - ErrorsFound); - } - Pollution.PropaneCoef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.PropaneCoef.WaterSched, - ErrorsFound); - } - Pollution.PropaneCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.PropaneCoef.NucHiSched, - ErrorsFound); - } - Pollution.PropaneCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Propane", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.PropaneCoef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "DIESEL") { - if (Pollution.DieselCoef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.DieselCoef.FuelFactorUsed = true; - // Diesel Coeffs - Pollution.DieselCoef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.DieselCoef.SourceSched, - ErrorsFound); - } - Pollution.DieselCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.DieselCoef.CO2Sched, - ErrorsFound); - } - Pollution.DieselCoef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.DieselCoef.COSched, - ErrorsFound); - } - Pollution.DieselCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.DieselCoef.CH4Sched, - ErrorsFound); - } - Pollution.DieselCoef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.DieselCoef.NOxSched, - ErrorsFound); - } - Pollution.DieselCoef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.DieselCoef.N2OSched, - ErrorsFound); - } - Pollution.DieselCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.DieselCoef.SO2Sched, - ErrorsFound); - } - Pollution.DieselCoef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.DieselCoef.PMSched, - ErrorsFound); - } - Pollution.DieselCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.DieselCoef.PM10Sched, - ErrorsFound); - } - Pollution.DieselCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.DieselCoef.PM25Sched, - ErrorsFound); - } - Pollution.DieselCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.DieselCoef.NH3Sched, - ErrorsFound); - } - Pollution.DieselCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.DieselCoef.NMVOCSched, - ErrorsFound); - } - Pollution.DieselCoef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.DieselCoef.HgSched, - ErrorsFound); - } - Pollution.DieselCoef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.DieselCoef.PbSched, - ErrorsFound); - } - Pollution.DieselCoef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.DieselCoef.WaterSched, - ErrorsFound); - } - Pollution.DieselCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.DieselCoef.NucHiSched, - ErrorsFound); - } - Pollution.DieselCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "Diesel", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.DieselCoef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "OTHERFUEL1") { - if (Pollution.OtherFuel1Coef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.OtherFuel1Coef.FuelFactorUsed = true; - // OtherFuel1 Coeffs - Pollution.OtherFuel1Coef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.OtherFuel1Coef.SourceSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.OtherFuel1Coef.CO2Sched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.OtherFuel1Coef.COSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.OtherFuel1Coef.CH4Sched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.OtherFuel1Coef.NOxSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.OtherFuel1Coef.N2OSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.OtherFuel1Coef.SO2Sched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.OtherFuel1Coef.PMSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.OtherFuel1Coef.PM10Sched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.OtherFuel1Coef.PM25Sched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.OtherFuel1Coef.NH3Sched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.OtherFuel1Coef.NMVOCSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.OtherFuel1Coef.HgSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.OtherFuel1Coef.PbSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.OtherFuel1Coef.WaterSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.OtherFuel1Coef.NucHiSched, - ErrorsFound); - } - Pollution.OtherFuel1Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel1", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.OtherFuel1Coef.NucLoSched, - ErrorsFound); - } - - } else if (SELECT_CASE_var == "OTHERFUEL2") { - if (Pollution.OtherFuel2Coef.FuelFactorUsed) { - ShowWarningError( - state, format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); - continue; - } - Pollution.OtherFuel2Coef.FuelFactorUsed = true; - // OtherFuel2 Coeffs - Pollution.OtherFuel2Coef.Source = state.dataIPShortCut->rNumericArgs(1); - if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(2), - state.dataIPShortCut->cAlphaArgs(2), - Pollution.OtherFuel2Coef.SourceSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); - if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(3), - state.dataIPShortCut->cAlphaArgs(3), - Pollution.OtherFuel2Coef.CO2Sched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.CO = state.dataIPShortCut->rNumericArgs(3); - if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(4), - state.dataIPShortCut->cAlphaArgs(4), - Pollution.OtherFuel2Coef.COSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); - if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(5), - state.dataIPShortCut->cAlphaArgs(5), - Pollution.OtherFuel2Coef.CH4Sched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.NOx = state.dataIPShortCut->rNumericArgs(5); - if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(6), - state.dataIPShortCut->cAlphaArgs(6), - Pollution.OtherFuel2Coef.NOxSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.N2O = state.dataIPShortCut->rNumericArgs(6); - if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(7), - state.dataIPShortCut->cAlphaArgs(7), - Pollution.OtherFuel2Coef.N2OSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); - if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(8), - state.dataIPShortCut->cAlphaArgs(8), - Pollution.OtherFuel2Coef.SO2Sched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.PM = state.dataIPShortCut->rNumericArgs(8); - if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(9), - state.dataIPShortCut->cAlphaArgs(9), - Pollution.OtherFuel2Coef.PMSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); - if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(10), - state.dataIPShortCut->cAlphaArgs(10), - Pollution.OtherFuel2Coef.PM10Sched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); - if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(11), - state.dataIPShortCut->cAlphaArgs(11), - Pollution.OtherFuel2Coef.PM25Sched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); - if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(12), - state.dataIPShortCut->cAlphaArgs(12), - Pollution.OtherFuel2Coef.NH3Sched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); - if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(13), - state.dataIPShortCut->cAlphaArgs(13), - Pollution.OtherFuel2Coef.NMVOCSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.Hg = state.dataIPShortCut->rNumericArgs(13); - if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(14), - state.dataIPShortCut->cAlphaArgs(14), - Pollution.OtherFuel2Coef.HgSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.Pb = state.dataIPShortCut->rNumericArgs(14); - if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(15), - state.dataIPShortCut->cAlphaArgs(15), - Pollution.OtherFuel2Coef.PbSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.Water = state.dataIPShortCut->rNumericArgs(15); - if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(16), - state.dataIPShortCut->cAlphaArgs(16), - Pollution.OtherFuel2Coef.WaterSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); - if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(17), - state.dataIPShortCut->cAlphaArgs(17), - Pollution.OtherFuel2Coef.NucHiSched, - ErrorsFound); - } - Pollution.OtherFuel2Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); - if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { - CheckFFSchedule(state, - cCurrentModuleObject, - "OtherFuel2", - state.dataIPShortCut->cAlphaFieldNames(18), - state.dataIPShortCut->cAlphaArgs(18), - Pollution.OtherFuel2Coef.NucLoSched, - ErrorsFound); - } + FuelType.FuelTypeNames(Loop) = + static_cast(getEnumValue(Constant::eFuelNamesUC, UtilityRoutines::makeUPPER(state.dataIPShortCut->cAlphaArgs(1)))); - } else { - ShowSevereError(state, format("Illegal FuelType for Pollution Calc Entered={}", FuelType.FuelTypeNames(Loop))); - ErrorsFound = true; + switch (FuelType.FuelTypeNames(Loop)) { + case Constant::eFuel::NaturalGas: { + if (Pollution.NatGasCoef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.NatGasCoef.FuelFactorUsed = true; + // Natural Gas Coeffs + Pollution.NatGasCoef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.NatGasCoef.SourceSched, + ErrorsFound); + } + Pollution.NatGasCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.NatGasCoef.CO2Sched, + ErrorsFound); + } + Pollution.NatGasCoef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.NatGasCoef.COSched, + ErrorsFound); + } + Pollution.NatGasCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.NatGasCoef.CH4Sched, + ErrorsFound); + } + Pollution.NatGasCoef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.NatGasCoef.NOxSched, + ErrorsFound); + } + Pollution.NatGasCoef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.NatGasCoef.N2OSched, + ErrorsFound); + } + Pollution.NatGasCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.NatGasCoef.SO2Sched, + ErrorsFound); + } + Pollution.NatGasCoef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.NatGasCoef.PMSched, + ErrorsFound); + } + Pollution.NatGasCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.NatGasCoef.PM10Sched, + ErrorsFound); + } + Pollution.NatGasCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.NatGasCoef.PM25Sched, + ErrorsFound); + } + Pollution.NatGasCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.NatGasCoef.NH3Sched, + ErrorsFound); + } + Pollution.NatGasCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.NatGasCoef.NMVOCSched, + ErrorsFound); + } + Pollution.NatGasCoef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.NatGasCoef.HgSched, + ErrorsFound); + } + Pollution.NatGasCoef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.NatGasCoef.PbSched, + ErrorsFound); + } + Pollution.NatGasCoef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.NatGasCoef.WaterSched, + ErrorsFound); + } + Pollution.NatGasCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.NatGasCoef.NucHiSched, + ErrorsFound); + } + Pollution.NatGasCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "NaturalGas", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.NatGasCoef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::FuelOilNo2: { + if (Pollution.FuelOil2Coef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.FuelOil2Coef.FuelFactorUsed = true; + // FuelOilNo2 Coeffs + Pollution.FuelOil2Coef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.FuelOil2Coef.SourceSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.FuelOil2Coef.CO2Sched, + ErrorsFound); + } + Pollution.FuelOil2Coef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.FuelOil2Coef.COSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.FuelOil2Coef.CH4Sched, + ErrorsFound); + } + Pollution.FuelOil2Coef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.FuelOil2Coef.NOxSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.FuelOil2Coef.N2OSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.FuelOil2Coef.SO2Sched, + ErrorsFound); + } + Pollution.FuelOil2Coef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.FuelOil2Coef.PMSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.FuelOil2Coef.PM10Sched, + ErrorsFound); + } + Pollution.FuelOil2Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.FuelOil2Coef.PM25Sched, + ErrorsFound); + } + Pollution.FuelOil2Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.FuelOil2Coef.NH3Sched, + ErrorsFound); + } + Pollution.FuelOil2Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.FuelOil2Coef.NMVOCSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.FuelOil2Coef.HgSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.FuelOil2Coef.PbSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.FuelOil2Coef.WaterSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.FuelOil2Coef.NucHiSched, + ErrorsFound); + } + Pollution.FuelOil2Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#2", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.FuelOil2Coef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::FuelOilNo1: { + if (Pollution.FuelOil1Coef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.FuelOil1Coef.FuelFactorUsed = true; + // FuelOilNo1 Coeffs + Pollution.FuelOil1Coef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.FuelOil1Coef.SourceSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.FuelOil1Coef.CO2Sched, + ErrorsFound); + } + Pollution.FuelOil1Coef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.FuelOil1Coef.COSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.FuelOil1Coef.CH4Sched, + ErrorsFound); + } + Pollution.FuelOil1Coef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.FuelOil1Coef.NOxSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.FuelOil1Coef.N2OSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.FuelOil1Coef.SO2Sched, + ErrorsFound); + } + Pollution.FuelOil1Coef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.FuelOil1Coef.PMSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.FuelOil1Coef.PM10Sched, + ErrorsFound); + } + Pollution.FuelOil1Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.FuelOil1Coef.PM25Sched, + ErrorsFound); + } + Pollution.FuelOil1Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.FuelOil1Coef.NH3Sched, + ErrorsFound); + } + Pollution.FuelOil1Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.FuelOil1Coef.NMVOCSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.FuelOil1Coef.HgSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.FuelOil1Coef.PbSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.FuelOil1Coef.WaterSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.FuelOil1Coef.NucHiSched, + ErrorsFound); + } + Pollution.FuelOil1Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Fuel Oil#1", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.FuelOil1Coef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::Coal: { + if (Pollution.CoalCoef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.CoalCoef.FuelFactorUsed = true; + // Coal + Pollution.CoalCoef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.CoalCoef.SourceSched, + ErrorsFound); + } + Pollution.CoalCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.CoalCoef.CO2Sched, + ErrorsFound); + } + Pollution.CoalCoef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.CoalCoef.COSched, + ErrorsFound); + } + Pollution.CoalCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.CoalCoef.CH4Sched, + ErrorsFound); + } + Pollution.CoalCoef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.CoalCoef.NOxSched, + ErrorsFound); + } + Pollution.CoalCoef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.CoalCoef.N2OSched, + ErrorsFound); + } + Pollution.CoalCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.CoalCoef.SO2Sched, + ErrorsFound); + } + Pollution.CoalCoef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.CoalCoef.PMSched, + ErrorsFound); + } + Pollution.CoalCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.CoalCoef.PM10Sched, + ErrorsFound); + } + Pollution.CoalCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.CoalCoef.PM25Sched, + ErrorsFound); + } + Pollution.CoalCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.CoalCoef.NH3Sched, + ErrorsFound); + } + Pollution.CoalCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.CoalCoef.NMVOCSched, + ErrorsFound); + } + Pollution.CoalCoef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.CoalCoef.HgSched, + ErrorsFound); + } + Pollution.CoalCoef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.CoalCoef.PbSched, + ErrorsFound); + } + Pollution.CoalCoef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.CoalCoef.WaterSched, + ErrorsFound); + } + Pollution.CoalCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.CoalCoef.NucHiSched, + ErrorsFound); + } + Pollution.CoalCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Coal", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.CoalCoef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::Electricity: { + if (Pollution.ElecCoef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.ElecCoef.FuelFactorUsed = true; + // Electric Coeffs + Pollution.ElecCoef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.ElecCoef.SourceSched, + ErrorsFound); + } + Pollution.ElecCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.ElecCoef.CO2Sched, + ErrorsFound); + } + Pollution.ElecCoef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.ElecCoef.COSched, + ErrorsFound); + } + Pollution.ElecCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.ElecCoef.CH4Sched, + ErrorsFound); + } + Pollution.ElecCoef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.ElecCoef.NOxSched, + ErrorsFound); + } + Pollution.ElecCoef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.ElecCoef.N2OSched, + ErrorsFound); + } + Pollution.ElecCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.ElecCoef.SO2Sched, + ErrorsFound); + } + Pollution.ElecCoef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.ElecCoef.PMSched, + ErrorsFound); + } + Pollution.ElecCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.ElecCoef.PM10Sched, + ErrorsFound); + } + Pollution.ElecCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.ElecCoef.PM25Sched, + ErrorsFound); + } + Pollution.ElecCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.ElecCoef.NH3Sched, + ErrorsFound); + } + Pollution.ElecCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.ElecCoef.NMVOCSched, + ErrorsFound); + } + Pollution.ElecCoef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.ElecCoef.HgSched, + ErrorsFound); + } + Pollution.ElecCoef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.ElecCoef.PbSched, + ErrorsFound); + } + Pollution.ElecCoef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.ElecCoef.WaterSched, + ErrorsFound); + } + Pollution.ElecCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.ElecCoef.NucHiSched, + ErrorsFound); + } + Pollution.ElecCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Electricity", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.ElecCoef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::Gasoline: { + if (Pollution.GasolineCoef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.GasolineCoef.FuelFactorUsed = true; + // Gasoline Coeffs + Pollution.GasolineCoef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.GasolineCoef.SourceSched, + ErrorsFound); + } + Pollution.GasolineCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.GasolineCoef.CO2Sched, + ErrorsFound); + } + Pollution.GasolineCoef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.GasolineCoef.COSched, + ErrorsFound); + } + Pollution.GasolineCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.GasolineCoef.CH4Sched, + ErrorsFound); + } + Pollution.GasolineCoef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.GasolineCoef.NOxSched, + ErrorsFound); + } + Pollution.GasolineCoef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.GasolineCoef.N2OSched, + ErrorsFound); + } + Pollution.GasolineCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.GasolineCoef.SO2Sched, + ErrorsFound); + } + Pollution.GasolineCoef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.GasolineCoef.PMSched, + ErrorsFound); + } + Pollution.GasolineCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.GasolineCoef.PM10Sched, + ErrorsFound); + } + Pollution.GasolineCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.GasolineCoef.PM25Sched, + ErrorsFound); + } + Pollution.GasolineCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.GasolineCoef.NH3Sched, + ErrorsFound); + } + Pollution.GasolineCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.GasolineCoef.NMVOCSched, + ErrorsFound); + } + Pollution.GasolineCoef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.GasolineCoef.HgSched, + ErrorsFound); + } + Pollution.GasolineCoef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.GasolineCoef.PbSched, + ErrorsFound); + } + Pollution.GasolineCoef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.GasolineCoef.WaterSched, + ErrorsFound); + } + Pollution.GasolineCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.GasolineCoef.NucHiSched, + ErrorsFound); + } + Pollution.GasolineCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Gasoline", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.GasolineCoef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::Propane: { + if (Pollution.PropaneCoef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.PropaneCoef.FuelFactorUsed = true; + // Propane Coeffs + Pollution.PropaneCoef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.PropaneCoef.SourceSched, + ErrorsFound); + } + Pollution.PropaneCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.PropaneCoef.CO2Sched, + ErrorsFound); + } + Pollution.PropaneCoef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.PropaneCoef.COSched, + ErrorsFound); + } + Pollution.PropaneCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.PropaneCoef.CH4Sched, + ErrorsFound); } + Pollution.PropaneCoef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.PropaneCoef.NOxSched, + ErrorsFound); + } + Pollution.PropaneCoef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.PropaneCoef.N2OSched, + ErrorsFound); + } + Pollution.PropaneCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.PropaneCoef.SO2Sched, + ErrorsFound); + } + Pollution.PropaneCoef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.PropaneCoef.PMSched, + ErrorsFound); + } + Pollution.PropaneCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.PropaneCoef.PM10Sched, + ErrorsFound); + } + Pollution.PropaneCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.PropaneCoef.PM25Sched, + ErrorsFound); + } + Pollution.PropaneCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.PropaneCoef.NH3Sched, + ErrorsFound); + } + Pollution.PropaneCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.PropaneCoef.NMVOCSched, + ErrorsFound); + } + Pollution.PropaneCoef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.PropaneCoef.HgSched, + ErrorsFound); + } + Pollution.PropaneCoef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.PropaneCoef.PbSched, + ErrorsFound); + } + Pollution.PropaneCoef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.PropaneCoef.WaterSched, + ErrorsFound); + } + Pollution.PropaneCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.PropaneCoef.NucHiSched, + ErrorsFound); + } + Pollution.PropaneCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Propane", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.PropaneCoef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::Diesel: { + if (Pollution.DieselCoef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", + cCurrentModuleObject, + Constant::eFuelNames[static_cast(FuelType.FuelTypeNames(Loop))])); + continue; + } + Pollution.DieselCoef.FuelFactorUsed = true; + // Diesel Coeffs + Pollution.DieselCoef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.DieselCoef.SourceSched, + ErrorsFound); + } + Pollution.DieselCoef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.DieselCoef.CO2Sched, + ErrorsFound); + } + Pollution.DieselCoef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.DieselCoef.COSched, + ErrorsFound); + } + Pollution.DieselCoef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.DieselCoef.CH4Sched, + ErrorsFound); + } + Pollution.DieselCoef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.DieselCoef.NOxSched, + ErrorsFound); + } + Pollution.DieselCoef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.DieselCoef.N2OSched, + ErrorsFound); + } + Pollution.DieselCoef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.DieselCoef.SO2Sched, + ErrorsFound); + } + Pollution.DieselCoef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.DieselCoef.PMSched, + ErrorsFound); + } + Pollution.DieselCoef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.DieselCoef.PM10Sched, + ErrorsFound); + } + Pollution.DieselCoef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.DieselCoef.PM25Sched, + ErrorsFound); + } + Pollution.DieselCoef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.DieselCoef.NH3Sched, + ErrorsFound); + } + Pollution.DieselCoef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.DieselCoef.NMVOCSched, + ErrorsFound); + } + Pollution.DieselCoef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.DieselCoef.HgSched, + ErrorsFound); + } + Pollution.DieselCoef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.DieselCoef.PbSched, + ErrorsFound); + } + Pollution.DieselCoef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.DieselCoef.WaterSched, + ErrorsFound); + } + Pollution.DieselCoef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.DieselCoef.NucHiSched, + ErrorsFound); + } + Pollution.DieselCoef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "Diesel", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.DieselCoef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::OtherFuel1: { + if (Pollution.OtherFuel1Coef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); + continue; + } + Pollution.OtherFuel1Coef.FuelFactorUsed = true; + // OtherFuel1 Coeffs + Pollution.OtherFuel1Coef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.OtherFuel1Coef.SourceSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.OtherFuel1Coef.CO2Sched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.OtherFuel1Coef.COSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.OtherFuel1Coef.CH4Sched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.OtherFuel1Coef.NOxSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.OtherFuel1Coef.N2OSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.OtherFuel1Coef.SO2Sched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.OtherFuel1Coef.PMSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.OtherFuel1Coef.PM10Sched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.OtherFuel1Coef.PM25Sched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.OtherFuel1Coef.NH3Sched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.OtherFuel1Coef.NMVOCSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.OtherFuel1Coef.HgSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.OtherFuel1Coef.PbSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.OtherFuel1Coef.WaterSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.OtherFuel1Coef.NucHiSched, + ErrorsFound); + } + Pollution.OtherFuel1Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel1", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.OtherFuel1Coef.NucLoSched, + ErrorsFound); + } + } break; + case Constant::eFuel::OtherFuel2: { + if (Pollution.OtherFuel2Coef.FuelFactorUsed) { + ShowWarningError(state, + format("{}: {} already entered. Previous entry will be used.", cCurrentModuleObject, FuelType.FuelTypeNames(Loop))); + continue; + } + Pollution.OtherFuel2Coef.FuelFactorUsed = true; + // OtherFuel2 Coeffs + Pollution.OtherFuel2Coef.Source = state.dataIPShortCut->rNumericArgs(1); + if (!state.dataIPShortCut->lAlphaFieldBlanks(2)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(2), + state.dataIPShortCut->cAlphaArgs(2), + Pollution.OtherFuel2Coef.SourceSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.CO2 = state.dataIPShortCut->rNumericArgs(2); + if (!state.dataIPShortCut->lAlphaFieldBlanks(3)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(3), + state.dataIPShortCut->cAlphaArgs(3), + Pollution.OtherFuel2Coef.CO2Sched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.CO = state.dataIPShortCut->rNumericArgs(3); + if (!state.dataIPShortCut->lAlphaFieldBlanks(4)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(4), + state.dataIPShortCut->cAlphaArgs(4), + Pollution.OtherFuel2Coef.COSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.CH4 = state.dataIPShortCut->rNumericArgs(4); + if (!state.dataIPShortCut->lAlphaFieldBlanks(5)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(5), + state.dataIPShortCut->cAlphaArgs(5), + Pollution.OtherFuel2Coef.CH4Sched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.NOx = state.dataIPShortCut->rNumericArgs(5); + if (!state.dataIPShortCut->lAlphaFieldBlanks(6)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(6), + state.dataIPShortCut->cAlphaArgs(6), + Pollution.OtherFuel2Coef.NOxSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.N2O = state.dataIPShortCut->rNumericArgs(6); + if (!state.dataIPShortCut->lAlphaFieldBlanks(7)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(7), + state.dataIPShortCut->cAlphaArgs(7), + Pollution.OtherFuel2Coef.N2OSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.SO2 = state.dataIPShortCut->rNumericArgs(7); + if (!state.dataIPShortCut->lAlphaFieldBlanks(8)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(8), + state.dataIPShortCut->cAlphaArgs(8), + Pollution.OtherFuel2Coef.SO2Sched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.PM = state.dataIPShortCut->rNumericArgs(8); + if (!state.dataIPShortCut->lAlphaFieldBlanks(9)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(9), + state.dataIPShortCut->cAlphaArgs(9), + Pollution.OtherFuel2Coef.PMSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.PM10 = state.dataIPShortCut->rNumericArgs(9); + if (!state.dataIPShortCut->lAlphaFieldBlanks(10)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(10), + state.dataIPShortCut->cAlphaArgs(10), + Pollution.OtherFuel2Coef.PM10Sched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.PM25 = state.dataIPShortCut->rNumericArgs(10); + if (!state.dataIPShortCut->lAlphaFieldBlanks(11)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(11), + state.dataIPShortCut->cAlphaArgs(11), + Pollution.OtherFuel2Coef.PM25Sched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.NH3 = state.dataIPShortCut->rNumericArgs(11); + if (!state.dataIPShortCut->lAlphaFieldBlanks(12)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(12), + state.dataIPShortCut->cAlphaArgs(12), + Pollution.OtherFuel2Coef.NH3Sched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.NMVOC = state.dataIPShortCut->rNumericArgs(12); + if (!state.dataIPShortCut->lAlphaFieldBlanks(13)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(13), + state.dataIPShortCut->cAlphaArgs(13), + Pollution.OtherFuel2Coef.NMVOCSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.Hg = state.dataIPShortCut->rNumericArgs(13); + if (!state.dataIPShortCut->lAlphaFieldBlanks(14)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(14), + state.dataIPShortCut->cAlphaArgs(14), + Pollution.OtherFuel2Coef.HgSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.Pb = state.dataIPShortCut->rNumericArgs(14); + if (!state.dataIPShortCut->lAlphaFieldBlanks(15)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(15), + state.dataIPShortCut->cAlphaArgs(15), + Pollution.OtherFuel2Coef.PbSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.Water = state.dataIPShortCut->rNumericArgs(15); + if (!state.dataIPShortCut->lAlphaFieldBlanks(16)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(16), + state.dataIPShortCut->cAlphaArgs(16), + Pollution.OtherFuel2Coef.WaterSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.NucHi = state.dataIPShortCut->rNumericArgs(16); + if (!state.dataIPShortCut->lAlphaFieldBlanks(17)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(17), + state.dataIPShortCut->cAlphaArgs(17), + Pollution.OtherFuel2Coef.NucHiSched, + ErrorsFound); + } + Pollution.OtherFuel2Coef.NucLo = state.dataIPShortCut->rNumericArgs(17); + if (!state.dataIPShortCut->lAlphaFieldBlanks(18)) { + CheckFFSchedule(state, + cCurrentModuleObject, + "OtherFuel2", + state.dataIPShortCut->cAlphaFieldNames(18), + state.dataIPShortCut->cAlphaArgs(18), + Pollution.OtherFuel2Coef.NucLoSched, + ErrorsFound); + } + } break; + default: { + ShowSevereError(state, format("Illegal FuelType for Pollution Calc Entered={}", FuelType.FuelTypeNames(Loop))); + ErrorsFound = true; + } break; } } // End of the NumEnergyTypes Do Loop @@ -2181,2103 +2198,2095 @@ void SetupPollutionMeterReporting(EnergyPlusData &state) auto &FuelType = state.dataPollutionModule->FuelType; for (Loop = 1; Loop <= static_cast(PollFactor::Num); ++Loop) { - if (FuelType.FuelTypeNames(Loop).empty()) continue; - - { - std::string const &SELECT_CASE_var = FuelType.FuelTypeNames(Loop); - if (SELECT_CASE_var == "NATURALGAS") { - // Pollutants from Natural Gas - SetupOutputVariable(state, - "Environmental Impact NaturalGas Source Energy", - OutputProcessor::Unit::J, - Pollution.NatGasComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.NatGasComp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.NatGasComp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "NaturalGasEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact NaturalGas Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.NatGasComp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "NaturalGasEmissions", - {}, - ""); - - } else if (SELECT_CASE_var == "FUELOILNO2") { - // Pollutants from FuelOilNo2 - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 Source Energy", - OutputProcessor::Unit::J, - Pollution.FuelOil2Comp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.FuelOil2Comp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil2Comp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "FuelOilNo2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo2 Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.FuelOil2Comp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "FuelOilNo2Emissions", - {}, - ""); - - } else if (SELECT_CASE_var == "FUELOILNO1") { - // Pollutants from FuelOilNo1 - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 Source Energy", - OutputProcessor::Unit::J, - Pollution.FuelOil1Comp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.FuelOil1Comp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.FuelOil1Comp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "FuelOilNo1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact FuelOilNo1 Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.FuelOil1Comp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "FuelOilNo1Emissions", - {}, - ""); - - } else if (SELECT_CASE_var == "COAL") { - // Pollutants from Coal - SetupOutputVariable(state, - "Environmental Impact Coal Source Energy", - OutputProcessor::Unit::J, - Pollution.CoalComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.CoalComp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.CoalComp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "CoalEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Coal Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.CoalComp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "CoalEmissions", - {}, - ""); - - } else if (SELECT_CASE_var == "ELECTRICITY") { - // Pollutants from Electricity - SetupOutputVariable(state, - "Environmental Impact Electricity Source Energy", - OutputProcessor::Unit::J, - Pollution.ElecComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.ElecComp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.ElecComp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Electricity Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.ElecComp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "ElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Purchased Electricity Source Energy", - OutputProcessor::Unit::J, - Pollution.ElecPurchComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "PurchasedElectricityEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Surplus Sold Electricity Source", - OutputProcessor::Unit::J, - Pollution.ElecSurplusSoldComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "SoldElectricityEmissions", - {}, - ""); - } else if (SELECT_CASE_var == "GASOLINE") { - // Pollutants from Gasoline - SetupOutputVariable(state, - "Environmental Impact Gasoline Source Energy", - OutputProcessor::Unit::J, - Pollution.GasolineComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.GasolineComp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.GasolineComp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "GasolineEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Gasoline Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.GasolineComp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "GasolineEmissions", - {}, - ""); - - } else if (SELECT_CASE_var == "PROPANE") { - // Pollutants from Propane - SetupOutputVariable(state, - "Environmental Impact Propane Source Energy", - OutputProcessor::Unit::J, - Pollution.PropaneComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.PropaneComp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.PropaneComp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "PropaneEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Propane Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.PropaneComp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "PropaneEmissions", - {}, - ""); - - } else if (SELECT_CASE_var == "DIESEL") { - // Pollutants from Diesel - SetupOutputVariable(state, - "Environmental Impact Diesel Source Energy", - OutputProcessor::Unit::J, - Pollution.DieselComp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.DieselComp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.DieselComp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "DieselEmissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact Diesel Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.DieselComp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "DieselEmissions", - {}, - ""); - - } else if (SELECT_CASE_var == "OTHERFUEL1") { - // Pollutants from OtherFuel1 - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 Source Energy", - OutputProcessor::Unit::J, - Pollution.OtherFuel1Comp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.OtherFuel1Comp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel1Comp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "OtherFuel1Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel1 Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.OtherFuel1Comp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "OtherFuel1Emissions", - {}, - ""); - - } else if (SELECT_CASE_var == "OTHERFUEL2") { - // Pollutants from OtherFuel2 - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 Source Energy", - OutputProcessor::Unit::J, - Pollution.OtherFuel2Comp.Source, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Source", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 CO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.CO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO2", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 CO Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.COPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CO", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 CH4 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.CH4Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "CH4", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 NOx Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.NOxPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NOx", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 N2O Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.N2OPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "N2O", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 SO2 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.SO2Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "SO2", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 PM Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.PMPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 PM10 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.PM10Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM10", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 PM2.5 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.PM25Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "PM2.5", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 NH3 Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.NH3Pollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NH3", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 NMVOC Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.NMVOCPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "NMVOC", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 Hg Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.HgPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Hg", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 Pb Emissions Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.PbPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Pb", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 Water Consumption Volume", - OutputProcessor::Unit::L, - Pollution.OtherFuel2Comp.WaterPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "WaterEnvironmentalFactors", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 Nuclear High Level Waste Mass", - OutputProcessor::Unit::kg, - Pollution.OtherFuel2Comp.NucHiPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear High", - "OtherFuel2Emissions", - {}, - ""); - SetupOutputVariable(state, - "Environmental Impact OtherFuel2 Nuclear Low Level Waste Volume", - OutputProcessor::Unit::m3, - Pollution.OtherFuel2Comp.NucLoPollution, - OutputProcessor::SOVTimeStepType::System, - OutputProcessor::SOVStoreType::Summed, - "Site", - {}, - "Nuclear Low", - "OtherFuel2Emissions", - {}, - ""); - } + // if (FuelType.FuelTypeNames(Loop).empty()) continue; + + switch (FuelType.FuelTypeNames(Loop)) { + case Constant::eFuel::NaturalGas: { // Pollutants from Natural Gas + SetupOutputVariable(state, + "Environmental Impact NaturalGas Source Energy", + OutputProcessor::Unit::J, + Pollution.NatGasComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.NatGasComp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.NatGasComp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "NaturalGasEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact NaturalGas Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.NatGasComp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "NaturalGasEmissions", + {}, + ""); + } break; + case Constant::eFuel::FuelOilNo2: { // Pollutants from FuelOilNo2 + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 Source Energy", + OutputProcessor::Unit::J, + Pollution.FuelOil2Comp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.FuelOil2Comp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil2Comp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "FuelOilNo2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo2 Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.FuelOil2Comp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "FuelOilNo2Emissions", + {}, + ""); + } break; + case Constant::eFuel::FuelOilNo1: { // Pollutants from FuelOilNo1 + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 Source Energy", + OutputProcessor::Unit::J, + Pollution.FuelOil1Comp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.FuelOil1Comp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.FuelOil1Comp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "FuelOilNo1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact FuelOilNo1 Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.FuelOil1Comp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "FuelOilNo1Emissions", + {}, + ""); + } break; + case Constant::eFuel::Coal: { // Pollutants from Coal + SetupOutputVariable(state, + "Environmental Impact Coal Source Energy", + OutputProcessor::Unit::J, + Pollution.CoalComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.CoalComp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.CoalComp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "CoalEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Coal Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.CoalComp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "CoalEmissions", + {}, + ""); + } break; + case Constant::eFuel::Electricity: { // Pollutants from Electricity + SetupOutputVariable(state, + "Environmental Impact Electricity Source Energy", + OutputProcessor::Unit::J, + Pollution.ElecComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.ElecComp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.ElecComp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Electricity Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.ElecComp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "ElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Purchased Electricity Source Energy", + OutputProcessor::Unit::J, + Pollution.ElecPurchComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "PurchasedElectricityEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Surplus Sold Electricity Source", + OutputProcessor::Unit::J, + Pollution.ElecSurplusSoldComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "SoldElectricityEmissions", + {}, + ""); + } break; + case Constant::eFuel::Gasoline: { // Pollutants from Gasoline + SetupOutputVariable(state, + "Environmental Impact Gasoline Source Energy", + OutputProcessor::Unit::J, + Pollution.GasolineComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.GasolineComp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.GasolineComp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "GasolineEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Gasoline Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.GasolineComp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "GasolineEmissions", + {}, + ""); + } break; + case Constant::eFuel::Propane: { // Pollutants from Propane + SetupOutputVariable(state, + "Environmental Impact Propane Source Energy", + OutputProcessor::Unit::J, + Pollution.PropaneComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.PropaneComp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.PropaneComp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "PropaneEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Propane Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.PropaneComp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "PropaneEmissions", + {}, + ""); + } break; + case Constant::eFuel::Diesel: { // Pollutants from Diesel + SetupOutputVariable(state, + "Environmental Impact Diesel Source Energy", + OutputProcessor::Unit::J, + Pollution.DieselComp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.DieselComp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.DieselComp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "DieselEmissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact Diesel Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.DieselComp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "DieselEmissions", + {}, + ""); + } break; + case Constant::eFuel::OtherFuel1: { // Pollutants from OtherFuel1 + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 Source Energy", + OutputProcessor::Unit::J, + Pollution.OtherFuel1Comp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.OtherFuel1Comp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel1Comp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "OtherFuel1Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel1 Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.OtherFuel1Comp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "OtherFuel1Emissions", + {}, + ""); + } break; + case Constant::eFuel::OtherFuel2: { // Pollutants from OtherFuel2 + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 Source Energy", + OutputProcessor::Unit::J, + Pollution.OtherFuel2Comp.Source, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Source", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 CO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.CO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO2", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 CO Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.COPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CO", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 CH4 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.CH4Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "CH4", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 NOx Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.NOxPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NOx", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 N2O Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.N2OPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "N2O", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 SO2 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.SO2Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "SO2", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 PM Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.PMPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 PM10 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.PM10Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM10", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 PM2.5 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.PM25Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "PM2.5", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 NH3 Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.NH3Pollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NH3", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 NMVOC Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.NMVOCPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "NMVOC", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 Hg Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.HgPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Hg", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 Pb Emissions Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.PbPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Pb", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 Water Consumption Volume", + OutputProcessor::Unit::L, + Pollution.OtherFuel2Comp.WaterPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "WaterEnvironmentalFactors", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 Nuclear High Level Waste Mass", + OutputProcessor::Unit::kg, + Pollution.OtherFuel2Comp.NucHiPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear High", + "OtherFuel2Emissions", + {}, + ""); + SetupOutputVariable(state, + "Environmental Impact OtherFuel2 Nuclear Low Level Waste Volume", + OutputProcessor::Unit::m3, + Pollution.OtherFuel2Comp.NucLoPollution, + OutputProcessor::SOVTimeStepType::System, + OutputProcessor::SOVStoreType::Summed, + "Site", + {}, + "Nuclear Low", + "OtherFuel2Emissions", + {}, + ""); + } break; + default: + break; } } // End of the NumEnergyTypes Do Loop @@ -6278,11 +6287,11 @@ void ReadEnergyMeters(EnergyPlusData &state) // ***************************************************************************** void GetFuelFactorInfo(EnergyPlusData &state, - std::string const &fuelName, // input fuel name (standard from Tabular reports) - bool &fuelFactorUsed, // return value true if user has entered this fuel - Real64 &fuelSourceFactor, // if used, the source factor - bool &fuelFactorScheduleUsed, // if true, schedules for this fuel are used - int &ffScheduleIndex // if schedules for this fuel are used, return schedule index + Constant::eFuel const &fuelName, // input fuel name (standard from Tabular reports) + bool &fuelFactorUsed, // return value true if user has entered this fuel + Real64 &fuelSourceFactor, // if used, the source factor + bool &fuelFactorScheduleUsed, // if true, schedules for this fuel are used + int &ffScheduleIndex // if schedules for this fuel are used, return schedule index ) { @@ -6331,182 +6340,180 @@ void GetFuelFactorInfo(EnergyPlusData &state, fuelFactorScheduleUsed = false; ffScheduleIndex = 0; - { - auto const &SELECT_CASE_var(fuelName); - - if ((SELECT_CASE_var == "NaturalGas") || (SELECT_CASE_var == "Gas")) { - if (Pollution.NatGasCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.NatGasCoef.Source; - if (Pollution.NatGasCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.NatGasCoef.SourceSched; - } + switch (fuelName) { + case Constant::eFuel::NaturalGas: { + if (Pollution.NatGasCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.NatGasCoef.Source; + if (Pollution.NatGasCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.084; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.NatGasCoef.SourceSched; } - - } else if (SELECT_CASE_var == "Electricity") { - if (Pollution.ElecCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.ElecCoef.Source; - if (Pollution.ElecCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.ElecCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.084; + } + } break; + case Constant::eFuel::Electricity: { + if (Pollution.ElecCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.ElecCoef.Source; + if (Pollution.ElecCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 3.167; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.ElecCoef.SourceSched; } - - } else if (SELECT_CASE_var == "FuelOilNo2") { - if (Pollution.FuelOil2Coef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.FuelOil2Coef.Source; - if (Pollution.FuelOil2Coef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.FuelOil2Coef.SourceSched; - } + } else { + fuelSourceFactor = 3.167; + } + } break; + case Constant::eFuel::FuelOilNo2: { + if (Pollution.FuelOil2Coef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.FuelOil2Coef.Source; + if (Pollution.FuelOil2Coef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.05; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.FuelOil2Coef.SourceSched; } - - } else if (SELECT_CASE_var == "FuelOilNo1") { - if (Pollution.FuelOil1Coef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.FuelOil1Coef.Source; - if (Pollution.FuelOil1Coef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.FuelOil1Coef.SourceSched; - } + } else { + fuelSourceFactor = 1.05; + } + } break; + case Constant::eFuel::FuelOilNo1: { + if (Pollution.FuelOil1Coef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.FuelOil1Coef.Source; + if (Pollution.FuelOil1Coef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.05; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.FuelOil1Coef.SourceSched; } - - } else if (SELECT_CASE_var == "Coal") { - if (Pollution.CoalCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.CoalCoef.Source; - if (Pollution.CoalCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.CoalCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.05; + } + } break; + case Constant::eFuel::Coal: { + if (Pollution.CoalCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.CoalCoef.Source; + if (Pollution.CoalCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.05; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.CoalCoef.SourceSched; } - - } else if (SELECT_CASE_var == "Gasoline") { - if (Pollution.GasolineCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.GasolineCoef.Source; - if (Pollution.GasolineCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.GasolineCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.05; + } + } break; + case Constant::eFuel::Gasoline: { + if (Pollution.GasolineCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.GasolineCoef.Source; + if (Pollution.GasolineCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.05; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.GasolineCoef.SourceSched; } - - } else if (SELECT_CASE_var == "Propane") { - if (Pollution.PropaneCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.PropaneCoef.Source; - if (Pollution.PropaneCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.PropaneCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.05; + } + } break; + case Constant::eFuel::Propane: { + if (Pollution.PropaneCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.PropaneCoef.Source; + if (Pollution.PropaneCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.05; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.PropaneCoef.SourceSched; } - - } else if (SELECT_CASE_var == "Diesel") { - if (Pollution.DieselCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.DieselCoef.Source; - if (Pollution.DieselCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.DieselCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.05; + } + } break; + case Constant::eFuel::Diesel: { + if (Pollution.DieselCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.DieselCoef.Source; + if (Pollution.DieselCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.05; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.DieselCoef.SourceSched; } - - } else if (SELECT_CASE_var == "OtherFuel1") { - if (Pollution.OtherFuel1Coef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.OtherFuel1Coef.Source; - if (Pollution.OtherFuel1Coef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.OtherFuel1Coef.SourceSched; - } + } else { + fuelSourceFactor = 1.05; + } + } break; + case Constant::eFuel::OtherFuel1: { + if (Pollution.OtherFuel1Coef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.OtherFuel1Coef.Source; + if (Pollution.OtherFuel1Coef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.0; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.OtherFuel1Coef.SourceSched; } - - } else if (SELECT_CASE_var == "OtherFuel2") { - if (Pollution.OtherFuel2Coef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.OtherFuel2Coef.Source; - if (Pollution.OtherFuel2Coef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.OtherFuel2Coef.SourceSched; - } + } else { + fuelSourceFactor = 1.0; + } + } break; + case Constant::eFuel::OtherFuel2: { + if (Pollution.OtherFuel2Coef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.OtherFuel2Coef.Source; + if (Pollution.OtherFuel2Coef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.0; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.OtherFuel2Coef.SourceSched; } - - } else if (SELECT_CASE_var == "DistrictHeating") { - if (Pollution.NatGasCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.NatGasCoef.Source / Pollution.PurchHeatEffic; - if (Pollution.NatGasCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.NatGasCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.0; + } + } break; + case Constant::eFuel::DistrictHeating: { + if (Pollution.NatGasCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.NatGasCoef.Source / Pollution.PurchHeatEffic; + if (Pollution.NatGasCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 1.084 / Pollution.PurchHeatEffic; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.NatGasCoef.SourceSched; } - - } else if (SELECT_CASE_var == "DistrictCooling") { - if (Pollution.ElecCoef.FuelFactorUsed) { - fuelFactorUsed = true; - fuelSourceFactor = Pollution.ElecCoef.Source / Pollution.PurchCoolCOP; - if (Pollution.ElecCoef.SourceSched == 0) { - fuelFactorScheduleUsed = false; - } else { - fuelFactorScheduleUsed = true; - ffScheduleIndex = Pollution.ElecCoef.SourceSched; - } + } else { + fuelSourceFactor = 1.084 / Pollution.PurchHeatEffic; + } + } break; + case Constant::eFuel::DistrictCooling: { + if (Pollution.ElecCoef.FuelFactorUsed) { + fuelFactorUsed = true; + fuelSourceFactor = Pollution.ElecCoef.Source / Pollution.PurchCoolCOP; + if (Pollution.ElecCoef.SourceSched == 0) { + fuelFactorScheduleUsed = false; } else { - fuelSourceFactor = 3.167 / Pollution.PurchCoolCOP; + fuelFactorScheduleUsed = true; + ffScheduleIndex = Pollution.ElecCoef.SourceSched; } - - } else if (SELECT_CASE_var == "Steam") { - fuelSourceFactor = 0.3 / Pollution.SteamConvEffic; - } else { + fuelSourceFactor = 3.167 / Pollution.PurchCoolCOP; } + } break; + case Constant::eFuel::Steam: { + fuelSourceFactor = 0.3 / Pollution.SteamConvEffic; + } break; + default: { + } break; } } diff --git a/src/EnergyPlus/PollutionModule.hh b/src/EnergyPlus/PollutionModule.hh index a2692fee4fa..0cc471e1c4d 100644 --- a/src/EnergyPlus/PollutionModule.hh +++ b/src/EnergyPlus/PollutionModule.hh @@ -53,6 +53,7 @@ // EnergyPlus Headers #include +#include #include #include @@ -343,7 +344,7 @@ namespace PollutionModule { { // Members // FuelType Names - Array1D_string FuelTypeNames; + Array1D FuelTypeNames; // Fuel Types used with the Pollution Factors Real64 Elec; Real64 NatGas; @@ -394,15 +395,15 @@ namespace PollutionModule { // Default Constructor FuelTypeProps() - : FuelTypeNames({1, static_cast(PollFactor::Num)}), Elec(0.0), NatGas(0.0), FuelOil1(0.0), FuelOil2(0.0), Coal(0.0), Gasoline(0.0), - Propane(0.0), Diesel(0.0), OtherFuel1(0.0), OtherFuel2(0.0), ElecPurch(0.0), ElecSold(0.0), ElecFacilityIndex(0), - DieselFacilityIndex(0), PurchCoolFacilityIndex(0), PurchHeatFacilityIndex(0), NatGasFacilityIndex(0), GasolineFacilityIndex(0), - CoalFacilityIndex(0), FuelOil1FacilityIndex(0), FuelOil2FacilityIndex(0), PropaneFacilityIndex(0), OtherFuel1FacilityIndex(0), - OtherFuel2FacilityIndex(0), ElecProducedFacilityIndex(0), SteamFacilityIndex(0), ElecPurchasedFacilityIndex(0), - ElecSurplusSoldFacilityIndex(0), ElecFacility(0.0), DieselFacility(0.0), PurchCoolFacility(0.0), PurchHeatFacility(0.0), - NatGasFacility(0.0), GasolineFacility(0.0), CoalFacility(0.0), FuelOil1Facility(0.0), FuelOil2Facility(0.0), PropaneFacility(0.0), - OtherFuel1Facility(0.0), OtherFuel2Facility(0.0), ElecProducedFacility(0.0), SteamFacility(0.0), ElecPurchasedFacility(0.0), - ElecSurplusSoldFacility(0.0) + : FuelTypeNames({1, static_cast(PollFactor::Num)}, Constant::eFuel::Invalid), Elec(0.0), NatGas(0.0), FuelOil1(0.0), FuelOil2(0.0), + Coal(0.0), Gasoline(0.0), Propane(0.0), Diesel(0.0), OtherFuel1(0.0), OtherFuel2(0.0), ElecPurch(0.0), ElecSold(0.0), + ElecFacilityIndex(0), DieselFacilityIndex(0), PurchCoolFacilityIndex(0), PurchHeatFacilityIndex(0), NatGasFacilityIndex(0), + GasolineFacilityIndex(0), CoalFacilityIndex(0), FuelOil1FacilityIndex(0), FuelOil2FacilityIndex(0), PropaneFacilityIndex(0), + OtherFuel1FacilityIndex(0), OtherFuel2FacilityIndex(0), ElecProducedFacilityIndex(0), SteamFacilityIndex(0), + ElecPurchasedFacilityIndex(0), ElecSurplusSoldFacilityIndex(0), ElecFacility(0.0), DieselFacility(0.0), PurchCoolFacility(0.0), + PurchHeatFacility(0.0), NatGasFacility(0.0), GasolineFacility(0.0), CoalFacility(0.0), FuelOil1Facility(0.0), FuelOil2Facility(0.0), + PropaneFacility(0.0), OtherFuel1Facility(0.0), OtherFuel2Facility(0.0), ElecProducedFacility(0.0), SteamFacility(0.0), + ElecPurchasedFacility(0.0), ElecSurplusSoldFacility(0.0) { } }; @@ -431,11 +432,11 @@ namespace PollutionModule { void ReadEnergyMeters(EnergyPlusData &state); void GetFuelFactorInfo(EnergyPlusData &state, - std::string const &fuelName, // input fuel name (standard from Tabular reports) - bool &fuelFactorUsed, // return value true if user has entered this fuel - Real64 &fuelSourceFactor, // if used, the source factor - bool &fuelFactorScheduleUsed, // if true, schedules for this fuel are used - int &ffScheduleIndex // if schedules for this fuel are used, return schedule index + Constant::eFuel const &fuelName, // input fuel name (standard from Tabular reports) + bool &fuelFactorUsed, // return value true if user has entered this fuel + Real64 &fuelSourceFactor, // if used, the source factor + bool &fuelFactorScheduleUsed, // if true, schedules for this fuel are used + int &ffScheduleIndex // if schedules for this fuel are used, return schedule index ); void GetEnvironmentalImpactFactorInfo(EnergyPlusData &state, diff --git a/src/EnergyPlus/SolarShading.cc b/src/EnergyPlus/SolarShading.cc index 6a293726776..af9309b0c20 100644 --- a/src/EnergyPlus/SolarShading.cc +++ b/src/EnergyPlus/SolarShading.cc @@ -10495,22 +10495,17 @@ void SkyDifSolarShading(EnergyPlusData &state) // sky or ground. for (int SurfNum = 1; SurfNum <= state.dataSurface->TotSurfaces; ++SurfNum) { + auto &surface = state.dataSurface->Surface(SurfNum); if (!state.dataSysVars->DetailedSkyDiffuseAlgorithm || !state.dataSurface->ShadingTransmittanceVaries || state.dataHeatBal->SolarDistribution == DataHeatBalance::Shadowing::Minimal) { - state.dataSurface->Surface(SurfNum).ViewFactorSkyIR *= state.dataSolarShading->SurfDifShdgRatioIsoSky(SurfNum); + surface.ViewFactorSkyIR *= state.dataSolarShading->SurfDifShdgRatioIsoSky(SurfNum); } else { - state.dataSurface->Surface(SurfNum).ViewFactorSkyIR *= state.dataSolarShading->SurfDifShdgRatioIsoSkyHRTS(1, 1, SurfNum); + surface.ViewFactorSkyIR *= state.dataSolarShading->SurfDifShdgRatioIsoSkyHRTS(1, 1, SurfNum); } - state.dataSurface->Surface(SurfNum).ViewFactorGroundIR = 1.0 - state.dataSurface->Surface(SurfNum).ViewFactorSkyIR; + surface.ViewFactorGroundIR = 1.0 - surface.ViewFactorSkyIR; - if (state.dataSurface->Surface(SurfNum).SurfHasSurroundingSurfProperty) { - Real64 SrdSurfsViewFactor = 0.0; - int SrdSurfsNum = state.dataSurface->Surface(SurfNum).SurfSurroundingSurfacesNum; - auto &SrdSurfsProperty = state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum); - for (int SrdSurfNum = 1; SrdSurfNum <= SrdSurfsProperty.TotSurroundingSurface; SrdSurfNum++) { - SrdSurfsViewFactor += SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).ViewFactor; - } - state.dataSurface->Surface(SurfNum).ViewFactorGroundIR = 1.0 - state.dataSurface->Surface(SurfNum).ViewFactorSkyIR - SrdSurfsViewFactor; + if (surface.SurfHasSurroundingSurfProperty) { + surface.ViewFactorGroundIR = 1.0 - surface.ViewFactorSkyIR - surface.ViewFactorSrdSurfs; } } diff --git a/src/EnergyPlus/SurfaceGeometry.cc b/src/EnergyPlus/SurfaceGeometry.cc index 2e8c2149639..9585cb187e4 100644 --- a/src/EnergyPlus/SurfaceGeometry.cc +++ b/src/EnergyPlus/SurfaceGeometry.cc @@ -8397,6 +8397,11 @@ namespace SurfaceGeometry { if (SurfLocalEnv.SurroundingSurfsPtr != 0) { surface.SurfHasSurroundingSurfProperty = true; surface.SurfSurroundingSurfacesNum = SurfLocalEnv.SurroundingSurfsPtr; + surface.ViewFactorSrdSurfs = + state.dataSurface->SurroundingSurfsProperty(surface.SurfSurroundingSurfacesNum).SurfsViewFactorSum; + if (surface.ViewFactorSrdSurfs == 0.0) { + surface.SurfHasSurroundingSurfProperty = false; + } } if (SurfLocalEnv.GroundSurfsPtr != 0) { surface.IsSurfPropertyGndSurfacesDefined = true; @@ -8512,6 +8517,7 @@ namespace SurfaceGeometry { SrdSurfsProp.SurroundingSurfs(SurfLoop).Name = state.dataIPShortCut->cAlphaArgs(SurfLoop * 2 + 2); SrdSurfsProp.SurroundingSurfs(SurfLoop).ViewFactor = state.dataIPShortCut->rNumericArgs(SurfLoop + 2); SrdSurfsProp.SurroundingSurfs(SurfLoop).TempSchNum = GetScheduleIndex(state, state.dataIPShortCut->cAlphaArgs(SurfLoop * 2 + 3)); + SrdSurfsProp.SurfsViewFactorSum += SrdSurfsProp.SurroundingSurfs(SurfLoop).ViewFactor; } } } @@ -15788,30 +15794,33 @@ namespace SurfaceGeometry { } if (SignFlag != PrevSignFlag) { - if (state.dataHeatBal->SolarDistribution != DataHeatBalance::Shadowing::Minimal && surfaceTmp.ExtSolar) { - if (state.dataGlobal->DisplayExtraWarnings) { - ShowWarningError(state, - format("CheckConvexity: Zone=\"{}\", Surface=\"{}\" is non-convex.", - state.dataHeatBal->Zone(surfaceTmp.Zone).Name, - surfaceTmp.Name)); - int Np1 = n + 1; - if (Np1 > NSides) { - Np1 -= NSides; - } - int Np2 = n + 2; - if (Np2 > NSides) { - Np2 -= NSides; - } - ShowContinueError(state, format("...vertex {} to vertex {} to vertex {}", n, Np1, Np2)); - ShowContinueError(state, format("...vertex {}=[{:.2R},{:.2R},{:.2R}]", n, X(n), Y(n), Z(n))); - ShowContinueError(state, format("...vertex {}=[{:.2R},{:.2R},{:.2R}]", Np1, X(n + 1), Y(n + 1), Z(n + 1))); - ShowContinueError(state, format("...vertex {}=[{:.2R},{:.2R},{:.2R}]", Np2, X(n + 2), Y(n + 2), Z(n + 2))); - // ShowContinueError(state, format("...theta angle=[{:.6R}]", Theta)); - // ShowContinueError(state, format("...last theta angle=[{:.6R}]", LastTheta)); - } + if (state.dataGlobal->DisplayExtraWarnings && surfaceTmp.ExtSolar && + (state.dataHeatBal->SolarDistribution != DataHeatBalance::Shadowing::Minimal) && + // Warn only once + surfaceTmp.IsConvex) { + ShowWarningError(state, + format("CheckConvexity: Zone=\"{}\", Surface=\"{}\" is non-convex.", + state.dataHeatBal->Zone(surfaceTmp.Zone).Name, + surfaceTmp.Name)); + int Np1 = n + 1; + if (Np1 > NSides) { + Np1 -= NSides; + } + int Np2 = n + 2; + if (Np2 > NSides) { + Np2 -= NSides; + } + ShowContinueError(state, format("...vertex {} to vertex {} to vertex {}", n, Np1, Np2)); + ShowContinueError(state, format("...vertex {}=[{:.2R},{:.2R},{:.2R}]", n, X(n), Y(n), Z(n))); + ShowContinueError(state, format("...vertex {}=[{:.2R},{:.2R},{:.2R}]", Np1, X(n + 1), Y(n + 1), Z(n + 1))); + ShowContinueError(state, format("...vertex {}=[{:.2R},{:.2R},{:.2R}]", Np2, X(n + 2), Y(n + 2), Z(n + 2))); + // ShowContinueError(state, format("...theta angle=[{:.6R}]", Theta)); + // ShowContinueError(state, format("...last theta angle=[{:.6R}]", LastTheta)); } surfaceTmp.IsConvex = false; - break; + // #10103 - We do not want to break early, because we do want to consistently remove colinear vertices + // to avoid potential vertex size mismatch fatal errors + // break; } PrevSignFlag = SignFlag; LastTheta = Theta; diff --git a/src/EnergyPlus/TranspiredCollector.cc b/src/EnergyPlus/TranspiredCollector.cc index ed13881f66f..e07780e611b 100644 --- a/src/EnergyPlus/TranspiredCollector.cc +++ b/src/EnergyPlus/TranspiredCollector.cc @@ -1029,6 +1029,7 @@ namespace TranspiredCollector { Array1D HAirARR; Array1D HPlenARR; Array1D LocalWindArr; + Array1D HSrdSurfARR; // working variables Real64 RhoAir; // density of air @@ -1167,6 +1168,7 @@ namespace TranspiredCollector { HPlenARR.dimension(NumSurfs, 0.0); // ALLOCATE(TsoARR(NumSurfs)) // TsoARR = 0.0 + HSrdSurfARR.dimension(NumSurfs, 0.0); Roughness = state.dataTranspiredCollector->UTSC(UTSCNum).CollRoughness; SolAbs = state.dataTranspiredCollector->UTSC(UTSCNum).SolAbsorp; @@ -1178,8 +1180,17 @@ namespace TranspiredCollector { HMovInsul = 0.0; HExt = 0.0; LocalWindArr(ThisSurf) = state.dataSurface->SurfOutWindSpeed(SurfPtr); - Convect::InitExtConvCoeff( - state, SurfPtr, HMovInsul, Roughness, AbsExt, TempExt, HExt, HSkyARR(ThisSurf), HGroundARR(ThisSurf), HAirARR(ThisSurf)); + Convect::InitExtConvCoeff(state, + SurfPtr, + HMovInsul, + Roughness, + AbsExt, + TempExt, + HExt, + HSkyARR(ThisSurf), + HGroundARR(ThisSurf), + HAirARR(ThisSurf), + HSrdSurfARR(ThisSurf)); ConstrNum = state.dataSurface->Surface(SurfPtr).Construction; AbsThermSurf = dynamic_cast(state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(1))) @@ -1731,6 +1742,7 @@ namespace TranspiredCollector { Array1D HPlenARR; Array1D HExtARR; Array1D LocalWindArr; + Array1D HSrdSurfARR; // local working variables Real64 Tamb; // outdoor drybulb @@ -1775,6 +1787,7 @@ namespace TranspiredCollector { LocalWindArr.dimension(NumSurfs, 0.0); HPlenARR.dimension(NumSurfs, 0.0); HExtARR.dimension(NumSurfs, 0.0); + HSrdSurfARR.dimension(NumSurfs, 0.0); for (int ThisSurf = 1; ThisSurf <= NumSurfs; ++ThisSurf) { int SurfPtr = SurfPtrARR(ThisSurf); @@ -1790,7 +1803,8 @@ namespace TranspiredCollector { HExtARR(ThisSurf), HSkyARR(ThisSurf), HGroundARR(ThisSurf), - HAirARR(ThisSurf)); + HAirARR(ThisSurf), + HSrdSurfARR(ThisSurf)); int ConstrNum = state.dataSurface->Surface(SurfPtr).Construction; Real64 AbsThermSurf = dynamic_cast(state.dataMaterial->Material(state.dataConstruction->Construct(ConstrNum).LayerPoint(1))) @@ -1846,6 +1860,7 @@ namespace TranspiredCollector { HPlenARR.deallocate(); Real64 HExt = sum(HExtARR * Area) / A; // dummy for call to InitExteriorConvectionCoeff HExtARR.deallocate(); + HSrdSurfARR.deallocate(); if (state.dataEnvrn->IsRain) HExt = 1000.0; diff --git a/src/EnergyPlus/UnitarySystem.cc b/src/EnergyPlus/UnitarySystem.cc index 1e1ba4fcdae..abfa9a1c5e1 100644 --- a/src/EnergyPlus/UnitarySystem.cc +++ b/src/EnergyPlus/UnitarySystem.cc @@ -780,7 +780,6 @@ namespace UnitarySystems { state.dataLoopNodes->Node(this->m_OAMixerNodes[0]).MassFlowRateMin = 0.0; state.dataLoopNodes->Node(this->m_OAMixerNodes[0]).MassFlowRateMinAvail = 0.0; } - this->m_WSHPRuntimeFrac = 0.0; this->m_CompPartLoadRatio = 0.0; this->m_CoolingCoilSensDemand = 0.0; this->m_CoolingCoilLatentDemand = 0.0; @@ -2463,9 +2462,6 @@ namespace UnitarySystems { blankString, this->m_CoolingCoilIndex, 0, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, 1, @@ -2831,9 +2827,6 @@ namespace UnitarySystems { blankString, this->m_HeatingCoilIndex, 0, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, 1, @@ -3059,10 +3052,6 @@ namespace UnitarySystems { this->m_CoolingCoilSensDemand, this->m_CoolingCoilLatentDemand, 0.0, - 0.0, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, FirstHVACIteration); @@ -3102,10 +3091,6 @@ namespace UnitarySystems { this->MaxCoolAirMassFlow, this->m_FanOpMode, FirstHVACIteration, - 0.0, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, 0.0, 0.0, @@ -3165,10 +3150,6 @@ namespace UnitarySystems { this->m_HeatingCoilSensDemand, dummy, 0.0, - 0.0, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, FirstHVACIteration); @@ -3186,10 +3167,6 @@ namespace UnitarySystems { this->m_CoolingCoilSensDemand, this->m_CoolingCoilLatentDemand, 0.0, - 0.0, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, 0.0, FirstHVACIteration); @@ -6637,10 +6614,6 @@ namespace UnitarySystems { errFlag = false; } - this->m_MaxONOFFCyclesperHour = input_data.maximum_cycling_rate; // Set the heatpump cycling rate - this->m_HPTimeConstant = input_data.heat_pump_time_constant; // Set the heat pump time constant - this->m_OnCyclePowerFraction = input_data.fraction_of_on_cycle_power_use; // Set the heat pump on-cycle power use fraction - this->m_FanDelayTime = input_data.heat_pump_fan_delay_time; // Set the heat pump fan delay time this->m_AncillaryOnPower = input_data.ancillary_on_cycle_electric_power; this->m_AncillaryOffPower = input_data.ancillary_off_cycle_electric_power; this->m_MaxHROutletWaterTemp = input_data.maximum_temperature_for_heat_recovery; @@ -7235,12 +7208,6 @@ namespace UnitarySystems { thisSys.input_specs.heat_conv_tol = ip->getRealFieldValue(fields, objectSchemaProps, "heating_convergence_tolerance"); thisSys.input_specs.cool_conv_tol = ip->getRealFieldValue(fields, objectSchemaProps, "cooling_convergence_tolerance"); } else if (getPTUnitType == 3) { - thisSys.input_specs.maximum_cycling_rate = ip->getRealFieldValue(fields, objectSchemaProps, "maximum_cycling_rate"); - thisSys.input_specs.heat_pump_time_constant = ip->getRealFieldValue(fields, objectSchemaProps, "heat_pump_time_constant"); - thisSys.input_specs.fraction_of_on_cycle_power_use = - ip->getRealFieldValue(fields, objectSchemaProps, "fraction_of_on_cycle_power_use"); - thisSys.input_specs.heat_pump_fan_delay_time = - ip->getRealFieldValue(fields, objectSchemaProps, "heat_pump_fan_delay_time"); thisSys.input_specs.outdoor_dry_bulb_temperature_sensor_node_name = ip->getAlphaFieldValue(fields, objectSchemaProps, "outdoor_dry_bulb_temperature_sensor_node_name"); thisSys.input_specs.heat_pump_coil_water_flow_mode = @@ -7693,18 +7660,6 @@ namespace UnitarySystems { thisSys.input_specs.outdoor_dry_bulb_temperature_sensor_node_name = UtilityRoutines::makeUPPER(fields.at("outdoor_dry_bulb_temperature_sensor_node_name").get()); } - if (fields.find("maximum_cycling_rate") != fields.end()) { // not required field, has default - thisSys.input_specs.maximum_cycling_rate = fields.at("maximum_cycling_rate").get(); - } - if (fields.find("heat_pump_time_constant") != fields.end()) { // not required field, has default - thisSys.input_specs.heat_pump_time_constant = fields.at("heat_pump_time_constant").get(); - } - if (fields.find("fraction_of_on_cycle_power_use") != fields.end()) { // not required field, has default - thisSys.input_specs.fraction_of_on_cycle_power_use = fields.at("fraction_of_on_cycle_power_use").get(); - } - if (fields.find("heat_pump_fan_delay_time") != fields.end()) { // not required field, has default - thisSys.input_specs.heat_pump_fan_delay_time = fields.at("heat_pump_fan_delay_time").get(); - } if (fields.find("ancillary_on_cycle_electric_power") != fields.end()) { // not required field, has default thisSys.input_specs.ancillary_on_cycle_electric_power = fields.at("ancillary_on_cycle_electric_power").get(); } @@ -8450,7 +8405,6 @@ namespace UnitarySystems { this->m_HeatingSpeedRatio = 1; } } - this->m_WSHPRuntimeFrac = HeatPLR; } else { // Cooling or moisture load HeatPLR = 0.0; CoolPLR = 1.0; @@ -8474,7 +8428,6 @@ namespace UnitarySystems { this->m_CoolingSpeedRatio = 1; } } - this->m_WSHPRuntimeFrac = CoolPLR; } this->calcUnitarySystemToLoad(state, AirLoopNum, @@ -8592,8 +8545,6 @@ namespace UnitarySystems { Real64 HeatCoilLoad = 0.0; Real64 SupHeaterLoad = 0.0; - this->m_WSHPRuntimeFrac = 0.0; - this->setOnOffMassFlowRate(state, OnOffAirFlowRatio, PartLoadRatio); if (!state.dataUnitarySystems->HeatingLoad && !state.dataUnitarySystems->CoolingLoad && state.dataUnitarySystems->MoistureLoad >= 0.0) return; @@ -8735,7 +8686,6 @@ namespace UnitarySystems { CoolPLR = 0.0; HeatPLR = 1.0; this->m_HeatingCoilSensDemand = ZoneLoad; - this->m_WSHPRuntimeFrac = HeatPLR; if (this->m_NumOfSpeedHeating > 0) { this->m_HeatingSpeedRatio = 1.0; this->m_HeatingCycRatio = 1.0; @@ -8772,7 +8722,6 @@ namespace UnitarySystems { this->m_CoolingCoilSensDemand = 0.0; } this->m_CoolingCoilLatentDemand = std::abs(state.dataUnitarySystems->MoistureLoad); - this->m_WSHPRuntimeFrac = CoolPLR; if (this->m_NumOfSpeedCooling > 0) { this->m_CoolingSpeedRatio = 1.0; this->m_CoolingCycRatio = 1.0; @@ -8846,7 +8795,6 @@ namespace UnitarySystems { case DataHVACGlobals::ThermostatType::SingleHeating: { if (state.dataUnitarySystems->HeatingLoad && SensOutputOn < ZoneLoad) { this->m_HeatingPartLoadFrac = 1.0; - this->m_WSHPRuntimeFrac = 1.0; if (state.dataUnitarySystems->MoistureLoad >= 0.0 || state.dataUnitarySystems->MoistureLoad < LatOutputOn) return; } if (!state.dataUnitarySystems->HeatingLoad && @@ -8856,7 +8804,6 @@ namespace UnitarySystems { case DataHVACGlobals::ThermostatType::SingleCooling: { if (state.dataUnitarySystems->CoolingLoad && SensOutputOn > ZoneLoad) { this->m_CoolingPartLoadFrac = 1.0; - this->m_WSHPRuntimeFrac = 1.0; if (state.dataUnitarySystems->MoistureLoad >= 0.0 || state.dataUnitarySystems->MoistureLoad < LatOutputOn) return; } if (!state.dataUnitarySystems->CoolingLoad && @@ -8867,12 +8814,10 @@ namespace UnitarySystems { case DataHVACGlobals::ThermostatType::DualSetPointWithDeadBand: { if (state.dataUnitarySystems->HeatingLoad && SensOutputOn < ZoneLoad) { this->m_HeatingPartLoadFrac = 1.0; - this->m_WSHPRuntimeFrac = 1.0; if (state.dataUnitarySystems->MoistureLoad >= 0.0 || state.dataUnitarySystems->MoistureLoad > LatOutputOn) return; } if (state.dataUnitarySystems->CoolingLoad && SensOutputOn > ZoneLoad) { this->m_CoolingPartLoadFrac = 1.0; - this->m_WSHPRuntimeFrac = 1.0; return; } if (!state.dataUnitarySystems->HeatingLoad && !state.dataUnitarySystems->CoolingLoad && @@ -9756,7 +9701,6 @@ namespace UnitarySystems { this->m_CoolingSpeedNum = this->m_NumOfSpeedCooling; this->m_CoolingSpeedRatio = 1.0; this->m_CoolingCycRatio = 1.0; - this->m_WSHPRuntimeFrac = CoolPLR; if (this->m_CoolingSpeedNum > 0) { this->m_HeatingPartLoadFrac = 0.0; this->m_HeatingSpeedNum = 0; @@ -11828,9 +11772,6 @@ namespace UnitarySystems { CompName, CompIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, CoilPLR, this->m_CoolingSpeedNum, @@ -11845,13 +11786,6 @@ namespace UnitarySystems { } } break; case DataHVACGlobals::Coil_CoolingWaterToAirHPSimple: { - // WSHP coils do not have a PLF curve and do not adjust fan performance - bool errFlag = false; - this->heatPumpRunFrac(PartLoadRatio, errFlag, this->m_WSHPRuntimeFrac); - if (PartLoadRatio > 0.0 && this->m_WSHPRuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil && - this->m_sysType != SysType::PackagedWSHP) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / this->m_WSHPRuntimeFrac; - } WaterToAirHeatPumpSimple::SimWatertoAirHPSimple(state, blankString, @@ -11859,22 +11793,12 @@ namespace UnitarySystems { this->m_CoolingCoilSensDemand, this->m_CoolingCoilLatentDemand, this->m_FanOpMode, - this->m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, PartLoadRatio, FirstHVACIteration); this->m_CoolCompPartLoadRatio = (CompressorOn == DataHVACGlobals::CompressorOperation::On) ? PartLoadRatio : 0.0; } break; case DataHVACGlobals::Coil_CoolingWaterToAirHP: { - bool errFlag = false; - this->heatPumpRunFrac(PartLoadRatio, errFlag, this->m_WSHPRuntimeFrac); - - if (PartLoadRatio > 0.0 && this->m_WSHPRuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / this->m_WSHPRuntimeFrac; - } WaterToAirHeatPump::SimWatertoAirHP(state, blankString, @@ -11882,10 +11806,6 @@ namespace UnitarySystems { this->MaxCoolAirMassFlow, this->m_FanOpMode, FirstHVACIteration, - this->m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, this->m_CoolingCoilSensDemand, this->m_CoolingCoilLatentDemand, @@ -12042,9 +11962,6 @@ namespace UnitarySystems { CompName, this->m_HeatingCoilIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, HeatPLR, this->m_HeatingSpeedNum, @@ -12059,12 +11976,6 @@ namespace UnitarySystems { } } break; case DataHVACGlobals::Coil_HeatingWaterToAirHPSimple: { - // WSHP coils do not have a PLF curve and do not adjust fan performance - bool errFlag = false; - this->heatPumpRunFrac(PartLoadRatio, errFlag, this->m_WSHPRuntimeFrac); - if (PartLoadRatio > 0.0 && this->m_WSHPRuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil && - this->m_sysType != SysType::PackagedWSHP) { // used to match up to PTUnit results - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / this->m_WSHPRuntimeFrac; } WaterToAirHeatPumpSimple::SimWatertoAirHPSimple(state, @@ -12073,22 +11984,12 @@ namespace UnitarySystems { this->m_HeatingCoilSensDemand, dummy, this->m_FanOpMode, - this->m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, PartLoadRatio, FirstHVACIteration); this->m_HeatCompPartLoadRatio = PartLoadRatio * double(CompressorOn); } break; case DataHVACGlobals::Coil_HeatingWaterToAirHP: { - bool errFlag; // returned flag from called routine - this->heatPumpRunFrac(PartLoadRatio, errFlag, this->m_WSHPRuntimeFrac); - - if (PartLoadRatio > 0.0 && this->m_WSHPRuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / this->m_WSHPRuntimeFrac; - } WaterToAirHeatPump::SimWatertoAirHP(state, blankString, @@ -12096,10 +11997,6 @@ namespace UnitarySystems { this->MaxHeatAirMassFlow, this->m_FanOpMode, FirstHVACIteration, - this->m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, this->m_HeatingCoilSensDemand, dummy, @@ -12351,7 +12248,6 @@ namespace UnitarySystems { Real64 CycRatio = 0.0; Real64 PartLoadFrac = 0.0; int DehumidMode = 0; - Real64 m_WSHPRuntimeFrac = 0.0; Real64 dummy = 0.0; Real64 SensLoad = 0.0; int SolFla = 0; @@ -12609,9 +12505,6 @@ namespace UnitarySystems { "", this->m_CoolingCoilIndex, FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOp, CycRatio, SpeedNum, @@ -12660,10 +12553,6 @@ namespace UnitarySystems { ReqOutput, dummy, FanOpMode, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, PartLoadFrac, FirstHVACIteration); @@ -12677,10 +12566,6 @@ namespace UnitarySystems { this->MaxCoolAirMassFlow, FanOpMode, FirstHVACIteration, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, ReqOutput, dummy, @@ -12742,7 +12627,6 @@ namespace UnitarySystems { if (doIt) { // CoilSystem:Cooling:DX PartLoadFrac = 1.0; CompressorOp = DataHVACGlobals::CompressorOperation::On; - m_WSHPRuntimeFrac = 1.0; if (CoilType_Num == DataHVACGlobals::CoilDX_CoolingSingleSpeed) { // COIL:DX:COOLINGBYPASSFACTOREMPIRICAL @@ -12825,9 +12709,6 @@ namespace UnitarySystems { "", this->m_CoolingCoilIndex, FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOp, CycRatio, SpeedNum, @@ -12914,10 +12795,6 @@ namespace UnitarySystems { ReqOutput, dummy, FanOpMode, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::On, PartLoadFrac, FirstHVACIteration); @@ -12932,10 +12809,6 @@ namespace UnitarySystems { this->MaxCoolAirMassFlow, FanOpMode, FirstHVACIteration, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, ReqOutput, dummy, @@ -13884,9 +13757,6 @@ namespace UnitarySystems { CompName, this->m_CoolingCoilIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::On, CycRatio, this->m_CoolingSpeedNum, @@ -13904,9 +13774,6 @@ namespace UnitarySystems { CompName, this->m_CoolingCoilIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::On, 1.0, speedNum, @@ -14060,11 +13927,7 @@ namespace UnitarySystems { auto f = [&state, this, FirstHVACIteration, DesOutHumRat, ReqOutput](Real64 const PartLoadRatio) { UnitarySys &thisSys = state.dataUnitarySystems->unitarySys[this->m_UnitarySysNum]; - bool errFlag = false; - Real64 RuntimeFrac = 0.0; // heat pump runtime fraction - thisSys.heatPumpRunFrac(PartLoadRatio, errFlag, RuntimeFrac); thisSys.m_CompPartLoadRatio = PartLoadRatio; - thisSys.m_WSHPRuntimeFrac = RuntimeFrac; Real64 dummy = 0.0; if (thisSys.m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHPSimple) { WaterToAirHeatPumpSimple::SimWatertoAirHPSimple(state, @@ -14073,10 +13936,6 @@ namespace UnitarySystems { ReqOutput, dummy, thisSys.m_FanOpMode, - RuntimeFrac, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, PartLoadRatio, FirstHVACIteration); @@ -14087,10 +13946,6 @@ namespace UnitarySystems { thisSys.MaxCoolAirMassFlow, thisSys.m_FanOpMode, FirstHVACIteration, - RuntimeFrac, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, thisSys.m_InitHeatPump, ReqOutput, dummy, @@ -14260,13 +14115,12 @@ namespace UnitarySystems { Real64 FullOutput = 0; // Sensible capacity (outlet - inlet) when the compressor is on Real64 ReqOutput = 0; // Sensible capacity (outlet - inlet) required to meet load or set point temperature - Real64 m_WSHPRuntimeFrac = 0.0; // Run time fraction of water to air hp - Real64 OutdoorDryBulb = 0.0; // local variable for OutDryBulbTemp - Real64 OutdoorHumRat = 0.0; // local variable for OutHumRat - Real64 OutdoorPressure = 0.0; // local variable for OutBaroPress - Real64 OutdoorWetBulb = 0.0; // local variable for OutWetBulbTemp - Real64 mdot = 0.0; // water coil water flow rate [kg/s] - Real64 maxPartLoadFrac = 0.0; // calculated maximum water side PLR for RegulaFalsi call (when plant limits flow max PLR != 1) + Real64 OutdoorDryBulb = 0.0; // local variable for OutDryBulbTemp + Real64 OutdoorHumRat = 0.0; // local variable for OutHumRat + Real64 OutdoorPressure = 0.0; // local variable for OutBaroPress + Real64 OutdoorWetBulb = 0.0; // local variable for OutWetBulbTemp + Real64 mdot = 0.0; // water coil water flow rate [kg/s] + Real64 maxPartLoadFrac = 0.0; // calculated maximum water side PLR for RegulaFalsi call (when plant limits flow max PLR != 1) // Set local variables // Retrieve the load on the controlled zone @@ -14358,7 +14212,6 @@ namespace UnitarySystems { // Get no load result PartLoadFrac = 0.0; - m_WSHPRuntimeFrac = 0.0; CompressorOp = DataHVACGlobals::CompressorOperation::Off; switch (this->m_HeatingCoilType_Num) { @@ -14425,19 +14278,8 @@ namespace UnitarySystems { case DataHVACGlobals::Coil_HeatingWaterToAirHPVSEquationFit: { int SpeedNum = 0; this->m_HeatingCoilSensDemand = ReqOutput; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - this->m_HeatingCoilIndex, - FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - dummy); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", this->m_HeatingCoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, dummy); } break; case DataHVACGlobals::Coil_HeatingGasOrOtherFuel: case DataHVACGlobals::Coil_HeatingElectric: @@ -14466,10 +14308,6 @@ namespace UnitarySystems { ReqOutput, dummy, FanOpMode, - this->m_CompPartLoadRatio, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::Off, PartLoadFrac, FirstHVACIteration); @@ -14483,10 +14321,6 @@ namespace UnitarySystems { this->MaxHeatAirMassFlow, FanOpMode, FirstHVACIteration, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, ReqOutput, dummy, @@ -14509,7 +14343,6 @@ namespace UnitarySystems { // Get full load result PartLoadFrac = 1.0; - m_WSHPRuntimeFrac = 1.0; CompressorOp = DataHVACGlobals::CompressorOperation::On; switch (this->m_HeatingCoilType_Num) { @@ -14613,19 +14446,8 @@ namespace UnitarySystems { this->m_HeatingPartLoadFrac = PartLoadFrac; for (int SpeedNum = 1; SpeedNum <= this->m_NumOfSpeedHeating; ++SpeedNum) { this->m_HeatingSpeedNum = SpeedNum; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - this->m_HeatingCoilIndex, - FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - dummy); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", this->m_HeatingCoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, dummy); OutletTemp = state.dataLoopNodes->Node(OutletNode).Temp; if (OutletTemp > DesOutTemp && SensibleLoad) break; } @@ -14667,10 +14489,6 @@ namespace UnitarySystems { ReqOutput, dummy, FanOpMode, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::On, PartLoadFrac, FirstHVACIteration); @@ -14684,10 +14502,6 @@ namespace UnitarySystems { this->MaxHeatAirMassFlow, FanOpMode, FirstHVACIteration, - m_WSHPRuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, ReqOutput, dummy, @@ -14849,20 +14663,9 @@ namespace UnitarySystems { auto f = [&state, this, FirstHVACIteration, DesOutTemp, ReqOutput](Real64 const PartLoadRatio) { Real64 OutletAirTemp; // outlet air humidity ratio [kg/kg] - bool errFlag; - Real64 RuntimeFrac; Real64 dummy; - this->heatPumpRunFrac(PartLoadRatio, errFlag, RuntimeFrac); - - if (RuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / RuntimeFrac; - } else { - state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; - } - this->m_CompPartLoadRatio = PartLoadRatio; - this->m_WSHPRuntimeFrac = RuntimeFrac; dummy = 0.0; if (this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHPSimple) { @@ -14872,10 +14675,6 @@ namespace UnitarySystems { ReqOutput, dummy, this->m_FanOpMode, - RuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, DataHVACGlobals::CompressorOperation::On, PartLoadRatio, FirstHVACIteration); @@ -14886,10 +14685,6 @@ namespace UnitarySystems { this->MaxHeatAirMassFlow, this->m_FanOpMode, FirstHVACIteration, - RuntimeFrac, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, this->m_InitHeatPump, ReqOutput, dummy, @@ -15531,9 +15326,6 @@ namespace UnitarySystems { CompName, CompIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, PartLoadFrac, SpeedNumber, @@ -15548,9 +15340,6 @@ namespace UnitarySystems { CompName, CompIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, PartLoadFrac, SpeedNumber, @@ -15565,9 +15354,6 @@ namespace UnitarySystems { CompName, CompIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, PartLoadFrac, SpeedNumber, @@ -15582,9 +15368,6 @@ namespace UnitarySystems { CompName, CompIndex, this->m_FanOpMode, - this->m_MaxONOFFCyclesperHour, - this->m_HPTimeConstant, - this->m_FanDelayTime, CompressorOn, PartLoadFrac, SpeedNumber, @@ -16194,112 +15977,6 @@ namespace UnitarySystems { this->m_HeatRecoveryMassFlowRate = HeatRecMassFlowRate; } - void UnitarySys::heatPumpRunFrac(Real64 const PLR, // part load ratio - bool &errFlag, // part load factor out of range flag - Real64 &RuntimeFrac // the required run time fraction to meet part load - ) - { - - // SUBROUTINE INFORMATION: - // AUTHOR Kenneth Tang - // DATE WRITTEN Apr 2004 - - // PURPOSE OF THIS SUBROUTINE: - // This subroutine calculates the PLF based on the PLR. Parameters required are - // thermostat cycling rate (Nmax), heat pump time constant (tau), and the fraction - // of on-cycle power use (pr) - - // REFERENCES: - // (1) Henderson, H. I., K. Rengarajan.1996. A Model to predict the latent capacity - // of air conditioners and heat pumps at part-load conditions with constant fan - // operation. ASHRAE Transactions 102 (1): 266-274 - - // (2) Henderson, H.I. Jr., Y.J. Huang and Danny Parker. 1999. Residential Equipment - // Part Load Curves for Use in DOE-2. Environmental Energy Technologies Division, - // Ernest OrlanDO Lawrence Berkeley National Laboratory. - - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - Real64 PartLoadFactor; // Part load factor - Real64 Nmax; // Maximum cycling rate [cycles/hr] - Real64 tau; // Heat pump time constant [s] - Real64 pr; // On-cycle power use fraction [~] - Real64 error; // Calculation error - Real64 PLF1; // ith term of part load factor - Real64 PLF2; // (i+1)th term of part load factor - Real64 A; // Variable for simplIFy equation - int NumIteration; // Iteration Counter - - Nmax = this->m_MaxONOFFCyclesperHour; - tau = this->m_HPTimeConstant; - pr = this->m_OnCyclePowerFraction; - - // Initialize - errFlag = false; - error = 1; - NumIteration = 0; - - // Initial guess for part load fraction - PLF1 = 1; - - // Calculate PLF using successive substitution until convergence - // is achieved - while (true) { - ++NumIteration; - - if (PLR == 1) { - // Set part load fraction, PLF1=1.0 IF PLR=1.0 and EXIT loop - PLF1 = 1; - break; - } - - if (NumIteration > 100) { - // EXIT loop IF interation exceed 100 - errFlag = true; - PLF1 = 1; - break; - } - - if (error < 0.00001) { - // EXIT loop IF convergence is achieved - break; - - } else { - // Calculate PLF - A = 4.0 * tau * (Nmax / 3600.0) * (1 - PLR / PLF1); - if (A < 1.5e-3) { - // A safety check to prevent PLF2 = 1 - A * (1 - Exp(-1 / A)) - // from "float underflow error". Occurs when PLR is very close to 1.0, - // small A value, thus Exp(-1/A) = 0 - PLF2 = 1.0 - A; - } else { - PLF2 = 1.0 - A * (1.0 - std::exp(-1.0 / A)); - } - error = std::abs((PLF2 - PLF1) / PLF1); - PLF1 = PLF2; - } - } - - // Adjust PLF for the off cycle power consumption IF - // on-cycle power use is specified by the user - if (pr > 0.0) { - PartLoadFactor = PLR / ((PLR / PLF1) + (1.0 - PLR / PLF1) * pr); - } else { - PartLoadFactor = PLF1; - } - - if (PartLoadFactor <= 0.0) { - PartLoadFactor = 0; - RuntimeFrac = 0; - errFlag = true; - } else { - RuntimeFrac = PLR / PartLoadFactor; - } - - if (RuntimeFrac > 1.0) { - RuntimeFrac = 1.0; - } - } - Real64 UnitarySys::calcUnitarySystemLoadResidual(EnergyPlusData &state, Real64 const PartLoadRatio, // DX cooling coil part load ratio int UnitarySysNum, @@ -16375,7 +16052,6 @@ namespace UnitarySystems { Real64 OutletAirTemp(0.0); // outlet air temperature [C] Real64 dummy; - Real64 RuntimeFrac; Real64 OnOffAirFlowRatio; Real64 SensLoad; @@ -16395,22 +16071,9 @@ namespace UnitarySystems { case DataHVACGlobals::Coil_CoolingWaterToAirHPVSEquationFit: { dummy = 0.0; SensLoad = -1.0; - RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - CoilIndex, - FanOpMode, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - dummy, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", CoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, dummy, OnOffAirFlowRatio); OutletAirTemp = state.dataLoopNodes->Node(thisSys.CoolCoilOutletNodeNum).Temp; } break; @@ -16475,20 +16138,8 @@ namespace UnitarySystems { SensLoad = 1.0; LatLoad = -1.0; // can't call only the calc routine with these coil types since Init sets air flow rate based on speed num and cycling ratio - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - CoilIndex, - FanOpMode, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - LatLoad, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", CoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, LatLoad, OnOffAirFlowRatio); OutletAirTemp = state.dataLoopNodes->Node(heatingCoilOutletNode).Temp; } break; case DataHVACGlobals::Coil_HeatingElectric_MultiStage: { @@ -16532,7 +16183,6 @@ namespace UnitarySystems { Real64 OutletAirHumRat(0.0); // outlet air humidity ratio Real64 SensLoad; Real64 LatLoad; - Real64 RuntimeFrac; Real64 OnOffAirFlowRatio; UnitarySys &thisSys = state.dataUnitarySystems->unitarySys[UnitarySysNum]; switch (thisSys.m_CoolingCoilType_Num) { @@ -16550,22 +16200,9 @@ namespace UnitarySystems { case DataHVACGlobals::Coil_CoolingWaterToAirHPVSEquationFit: { SensLoad = -1.0; LatLoad = 0.0; - RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - CoilIndex, - FanOpMode, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - LatLoad, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", CoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, LatLoad, OnOffAirFlowRatio); OutletAirHumRat = state.dataLoopNodes->Node(thisSys.CoolCoilOutletNodeNum).HumRat; } break; default: { @@ -16635,20 +16272,8 @@ namespace UnitarySystems { Real64 dummy = 0.0; OnOffAirFlowRatio = 1.0; Real64 SensLoad = -1.0; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - CoilIndex, - FanOpMode, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - dummy, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", CoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, dummy, OnOffAirFlowRatio); OutletAirTemp = state.dataLoopNodes->Node(thisSys.CoolCoilOutletNodeNum).Temp; } break; default: { @@ -16704,20 +16329,8 @@ namespace UnitarySystems { SensLoad = -1.0; LatLoad = 0.0; OnOffAirFlowRatio = 1.0; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - CoilIndex, - FanOpMode, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - LatLoad, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", CoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, LatLoad, OnOffAirFlowRatio); OutletAirHumRat = state.dataLoopNodes->Node(thisSys.CoolCoilOutletNodeNum).HumRat; } break; default: { @@ -16780,20 +16393,8 @@ namespace UnitarySystems { SensLoad = -1.0; LatLoad = 0.0; OnOffAirFlowRatio = 1.0; - VariableSpeedCoils::SimVariableSpeedCoils(state, - "", - CoilIndex, - FanOpMode, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, - CompressorOp, - CycRatio, - SpeedNum, - SpeedRatio, - SensLoad, - LatLoad, - OnOffAirFlowRatio); + VariableSpeedCoils::SimVariableSpeedCoils( + state, "", CoilIndex, FanOpMode, CompressorOp, CycRatio, SpeedNum, SpeedRatio, SensLoad, LatLoad, OnOffAirFlowRatio); OutletAirTemp = state.dataLoopNodes->Node(heatingCoilOutletNode).Temp; } break; case DataHVACGlobals::Coil_HeatingElectric_MultiStage: { @@ -16870,18 +16471,8 @@ namespace UnitarySystems { // and calculates the residual as defined above UnitarySys &thisSys = state.dataUnitarySystems->unitarySys[UnitarySysNum]; - bool errFlag = false; - Real64 RuntimeFrac = 0.0; - thisSys.heatPumpRunFrac(PartLoadRatio, errFlag, RuntimeFrac); - - if (RuntimeFrac > 0.0 && thisSys.m_FanOpMode == DataHVACGlobals::CycFanCycCoil) { - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / RuntimeFrac; - } else { - state.dataHVACGlobal->OnOffFanPartLoadFraction = 1; - } thisSys.m_CompPartLoadRatio = PartLoadRatio; - thisSys.m_WSHPRuntimeFrac = RuntimeFrac; Real64 dummy = 0.0; if (thisSys.m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHPSimple) { @@ -16891,10 +16482,6 @@ namespace UnitarySystems { ReqOutput, dummy, thisSys.m_FanOpMode, - RuntimeFrac, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, DataHVACGlobals::CompressorOperation::On, PartLoadRatio, FirstHVACIteration); @@ -16905,10 +16492,6 @@ namespace UnitarySystems { thisSys.MaxCoolAirMassFlow, thisSys.m_FanOpMode, FirstHVACIteration, - RuntimeFrac, - thisSys.m_MaxONOFFCyclesperHour, - thisSys.m_HPTimeConstant, - thisSys.m_FanDelayTime, thisSys.m_InitHeatPump, ReqOutput, dummy, @@ -17053,8 +16636,6 @@ namespace UnitarySystems { // This subroutine determines operating PLR and calculates the load based system output. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - bool errFlag = false; // error flag returned from subroutine - Real64 RuntimeFrac = 0.0; // heat pump runtime fraction Real64 OnOffAirFlowRatio = 0.0; // compressor on to average flow rate if (state.dataUnitarySystems->HeatingLoad && SensibleLoad) { @@ -17076,16 +16657,7 @@ namespace UnitarySystems { } } else if (this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHPSimple || this->m_HeatingCoilType_Num == DataHVACGlobals::Coil_HeatingWaterToAirHP) { - this->heatPumpRunFrac(PartLoadRatio, errFlag, RuntimeFrac); - // WSHP coils do not have a PLF curve and do not adjust fan performance - if (RuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil && - this->m_sysType != SysType::PackagedWSHP) { // was DataHVACGlobals::ContFanCycCoil - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / RuntimeFrac; - } else { - state.dataHVACGlobal->OnOffFanPartLoadFraction = 1; - } this->m_CompPartLoadRatio = PartLoadRatio; - this->m_WSHPRuntimeFrac = RuntimeFrac; this->m_HeatingSpeedNum = 0; } } else { @@ -17107,16 +16679,7 @@ namespace UnitarySystems { } } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHPSimple || this->m_CoolingCoilType_Num == DataHVACGlobals::Coil_CoolingWaterToAirHP) { - this->heatPumpRunFrac(PartLoadRatio, errFlag, RuntimeFrac); - // WSHP coils do not have a PLF curve and do not adjust fan performance - if (RuntimeFrac > 0.0 && this->m_FanOpMode == DataHVACGlobals::CycFanCycCoil && - this->m_sysType != SysType::PackagedWSHP) { // was DataHVACGlobals::ContFanCycCoil, maybe file an issue or see if it fixes some - state.dataHVACGlobal->OnOffFanPartLoadFraction = PartLoadRatio / RuntimeFrac; - } else { - state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; - } this->m_CompPartLoadRatio = PartLoadRatio; - this->m_WSHPRuntimeFrac = RuntimeFrac; this->m_CoolingSpeedNum = 0; } else if (this->m_CoolingCoilType_Num == DataHVACGlobals::CoilDX_CoolingTwoSpeed) { if (this->m_CoolingSpeedNum == 1) { diff --git a/src/EnergyPlus/UnitarySystem.hh b/src/EnergyPlus/UnitarySystem.hh index 392009ffd39..5cf96c446d4 100644 --- a/src/EnergyPlus/UnitarySystem.hh +++ b/src/EnergyPlus/UnitarySystem.hh @@ -134,10 +134,6 @@ namespace UnitarySystems { Real64 maximum_outdoor_dry_bulb_temperature_for_supplemental_heater_operation = 21.0; std::string outdoor_dry_bulb_temperature_sensor_node_name; std::string heat_pump_coil_water_flow_mode; - Real64 maximum_cycling_rate = 2.5; - Real64 heat_pump_time_constant = 60.0; - Real64 fraction_of_on_cycle_power_use = 0.01; - Real64 heat_pump_fan_delay_time = 60.0; Real64 ancillary_on_cycle_electric_power = 0.0; Real64 ancillary_off_cycle_electric_power = 0.0; Real64 design_heat_recovery_water_flow_rate = 0.0; @@ -323,10 +319,6 @@ namespace UnitarySystems { Real64 m_MaxOATSuppHeat = 0.0; Real64 m_MinOATCompressorCooling = 0.0; Real64 m_MinOATCompressorHeating = 0.0; - Real64 m_MaxONOFFCyclesperHour = 0.0; - Real64 m_HPTimeConstant = 0.0; - Real64 m_OnCyclePowerFraction = 0.0; - Real64 m_FanDelayTime = 0.0; Real64 m_AncillaryOnPower = 0.0; Real64 m_AncillaryOffPower = 0.0; Real64 m_DesignHRWaterVolumeFlow = 0.0; @@ -359,7 +351,6 @@ namespace UnitarySystems { PlantLocation m_SuppCoilPlantLoc; int m_SuppCoilFluidOutletNodeNum = 0; - Real64 m_WSHPRuntimeFrac = 0.0; Real64 m_CompPartLoadRatio = 0.0; Real64 m_CoolingCoilSensDemand = 0.0; Real64 m_CoolingCoilLatentDemand = 0.0; @@ -855,11 +846,6 @@ namespace UnitarySystems { bool const FirstHVACIteration // True when first HVAC iteration ); - void heatPumpRunFrac(Real64 const PLR, // part load ratio - bool &errFlag, // part load factor out of range flag - Real64 &RuntimeFrac // the required run time fraction to meet part load - ); - void setSpeedVariables(EnergyPlusData &state, bool const SensibleLoad, // True when meeting a sensible load (not a moisture load) Real64 const PartLoadRatio // operating PLR diff --git a/src/EnergyPlus/VariableSpeedCoils.cc b/src/EnergyPlus/VariableSpeedCoils.cc index f8970eb3c46..7319dbc22b6 100644 --- a/src/EnergyPlus/VariableSpeedCoils.cc +++ b/src/EnergyPlus/VariableSpeedCoils.cc @@ -122,9 +122,6 @@ namespace VariableSpeedCoils { std::string_view CompName, // Coil Name int &CompIndex, // Index for Component name int const CyclingScheme, // Continuous fan OR cycling compressor - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to CompressorOperation const CompressorOp, // compressor on/off. 0 = off; 1= on Real64 const PartLoadFrac, int const SpeedNum, // compressor speed number @@ -148,9 +145,8 @@ namespace VariableSpeedCoils { using General::SolveRoot; // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int DXCoilNum; // The WatertoAirHP that you are currently loading input into - Real64 RuntimeFrac; // run time fraction - int SpeedCal; // variable for error proof speed input + int DXCoilNum; // The WatertoAirHP that you are currently loading input into + int SpeedCal; // variable for error proof speed input // Obtains and Allocates WatertoAirHP related parameters from input file if (state.dataVariableSpeedCoils->GetCoilsInputFlag) { // First time subroutine has been entered @@ -193,60 +189,20 @@ namespace VariableSpeedCoils { if ((state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == DataHVACGlobals::Coil_CoolingWaterToAirHPVSEquationFit) || (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == Coil_CoolingAirToAirVariableSpeed)) { // Cooling mode - InitVarSpeedCoil(state, - DXCoilNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - SpeedRatio, - SpeedCal); - CalcVarSpeedCoilCooling(state, - DXCoilNum, - CyclingScheme, - RuntimeFrac, - SensLoad, - LatentLoad, - CompressorOp, - PartLoadFrac, - OnOffAirFlowRatio, - SpeedRatio, - SpeedCal); + InitVarSpeedCoil(state, DXCoilNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + CalcVarSpeedCoilCooling( + state, DXCoilNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); UpdateVarSpeedCoil(state, DXCoilNum); } else if ((state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == DataHVACGlobals::Coil_HeatingWaterToAirHPVSEquationFit) || (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == Coil_HeatingAirToAirVariableSpeed)) { // Heating mode - InitVarSpeedCoil(state, - DXCoilNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - SpeedRatio, - SpeedCal); - CalcVarSpeedCoilHeating( - state, DXCoilNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + InitVarSpeedCoil(state, DXCoilNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + CalcVarSpeedCoilHeating(state, DXCoilNum, CyclingScheme, SensLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); UpdateVarSpeedCoil(state, DXCoilNum); } else if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == CoilDX_HeatPumpWaterHeaterVariableSpeed) { // Heating mode - InitVarSpeedCoil(state, - DXCoilNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - SpeedRatio, - SpeedCal); - CalcVarSpeedHPWH(state, DXCoilNum, RuntimeFrac, PartLoadFrac, SpeedRatio, SpeedNum, CyclingScheme); + InitVarSpeedCoil(state, DXCoilNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + CalcVarSpeedHPWH(state, DXCoilNum, PartLoadFrac, SpeedRatio, SpeedNum, CyclingScheme); UpdateVarSpeedCoil(state, DXCoilNum); } else { ShowFatalError(state, "SimVariableSpeedCoils: WatertoAir heatpump not in either HEATING or COOLING mode"); @@ -402,7 +358,10 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate = NumArray(5); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Twet_Rated = NumArray(6); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Gamma_Rated = NumArray(7); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HOTGASREHEATFLG = int(NumArray(8)); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = NumArray(8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = NumArray(9); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = NumArray(10); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HOTGASREHEATFLG = int(NumArray(11)); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondenserType = DataHeatBalance::RefrigCondenserType::Water; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum = @@ -503,14 +462,12 @@ namespace VariableSpeedCoils { } for (I = 1; I <= state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++I) { - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedTotCap(I) = NumArray(9 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedSHR(I) = NumArray(10 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedCOP(I) = NumArray(11 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(I) = NumArray(12 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(I) = NumArray(13 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedEvaporatorFanPowerPerVolumeFlowRate2023(I) = NumArray(14 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(I) = NumArray(15 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSWasteHeatFrac(I) = NumArray(16 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedTotCap(I) = NumArray(12 + (I - 1) * 6); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedSHR(I) = NumArray(13 + (I - 1) * 6); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedCOP(I) = NumArray(14 + (I - 1) * 6); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(I) = NumArray(15 + (I - 1) * 6); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(I) = NumArray(16 + (I - 1) * 6); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSWasteHeatFrac(I) = NumArray(17 + (I - 1) * 6); AlfaFieldIncre = 7 + (I - 1) * 7; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSCCapFTemp(I) = @@ -960,6 +917,9 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate = NumArray(4); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Twet_Rated = NumArray(5); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Gamma_Rated = NumArray(6); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = NumArray(7); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = NumArray(8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = NumArray(9); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirInletNodeNum = GetOnlySingleNode(state, @@ -1080,33 +1040,33 @@ namespace VariableSpeedCoils { ErrorsFound = true; } - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecNomPower = NumArray(7); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecNomPower = NumArray(10); if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecNomPower < 0.0) { ShowSevereError( state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name)); - ShowContinueError(state, format("...{} cannot be < 0.0.", cNumericFields(7))); - ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(7))); + ShowContinueError(state, format("...{} cannot be < 0.0.", cNumericFields(10))); + ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(10))); ErrorsFound = true; } // Set crankcase heater capacity - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterCapacity = NumArray(8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterCapacity = NumArray(11); if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterCapacity < 0.0) { ShowSevereError( state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name)); - ShowContinueError(state, format("...{} cannot be < 0.0.", cNumericFields(8))); - ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(8))); + ShowContinueError(state, format("...{} cannot be < 0.0.", cNumericFields(11))); + ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(11))); ErrorsFound = true; } // Set crankcase heater cutout temperature - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxOATCrankcaseHeater = NumArray(9); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxOATCrankcaseHeater = NumArray(12); // Set crankcase heater cutout temperature - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MinOATCompressor = NumArray(10); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MinOATCompressor = NumArray(13); // Get Water System tank connections // A7, \field Name of Water Storage Tank for Supply @@ -1140,17 +1100,17 @@ namespace VariableSpeedCoils { } // Basin heater power as a function of temperature must be greater than or equal to 0 - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPowerFTempDiff = NumArray(11); - if (NumArray(11) < 0.0) { + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPowerFTempDiff = NumArray(14); + if (NumArray(14) < 0.0) { ShowSevereError( state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name)); - ShowContinueError(state, format("...{} must be >= 0.0.", cNumericFields(11))); - ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(11))); + ShowContinueError(state, format("...{} must be >= 0.0.", cNumericFields(14))); + ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(14))); ErrorsFound = true; } - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterSetPointTemp = NumArray(12); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterSetPointTemp = NumArray(15); if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPowerFTempDiff > 0.0) { if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterSetPointTemp < 2.0) { ShowWarningError(state, @@ -1158,8 +1118,8 @@ namespace VariableSpeedCoils { RoutineName, CurrentModuleObject, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name)); - ShowContinueError(state, format("...{} is < 2 {{C}}. Freezing could occur.", cNumericFields(12))); - ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(12))); + ShowContinueError(state, format("...{} is < 2 {{C}}. Freezing could occur.", cNumericFields(15))); + ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(15))); } } @@ -1175,21 +1135,21 @@ namespace VariableSpeedCoils { } for (I = 1; I <= state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++I) { - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedTotCap(I) = NumArray(13 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedSHR(I) = NumArray(14 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedCOP(I) = NumArray(15 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(I) = NumArray(16 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(I) = NumArray(17 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedEvaporatorFanPowerPerVolumeFlowRate2023(I) = NumArray(18 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondAirFlow(I) = NumArray(19 + (I - 1) * 8); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondEffect(I) = NumArray(20 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedTotCap(I) = NumArray(16 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedSHR(I) = NumArray(17 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedCOP(I) = NumArray(18 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(I) = NumArray(19 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(I) = NumArray(20 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedEvaporatorFanPowerPerVolumeFlowRate2023(I) = NumArray(21 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondAirFlow(I) = NumArray(22 + (I - 1) * 8); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondEffect(I) = NumArray(23 + (I - 1) * 8); if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondEffect(I) < 0.0 || state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondEffect(I) > 1.0) { ShowSevereError( state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Name)); - ShowContinueError(state, format("...{} cannot be < 0.0 or > 1.0.", cNumericFields(20 + (I - 1) * 8))); - ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(20 + (I - 1) * 8))); + ShowContinueError(state, format("...{} cannot be < 0.0 or > 1.0.", cNumericFields(23 + (I - 1) * 8))); + ShowContinueError(state, format("...entered value=[{:.2T}].", NumArray(23 + (I - 1) * 8))); ErrorsFound = true; } @@ -1490,6 +1450,11 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate = NumArray(5); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondenserType = DataHeatBalance::RefrigCondenserType::Water; + // Previously set by parent objects, but not user-definable + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = 4; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = 0.; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = 0.; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum = GetOnlySingleNode(state, AlphArray(2), @@ -2019,6 +1984,11 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedCapHeat = NumArray(3); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate = NumArray(4); + // Previously set by parent objects, but not user-definable + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = 4; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = 0.; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = 0.; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirInletNodeNum = GetOnlySingleNode(state, AlphArray(2), @@ -3902,9 +3872,6 @@ namespace VariableSpeedCoils { void InitVarSpeedCoil(EnergyPlusData &state, int const DXCoilNum, // Current DXCoilNum under simulation - Real64 const MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 const HPTimeConstant, // Heat pump time constant [s] - Real64 const FanDelayTime, // Fan delay time, time delay for the HP's fan to Real64 const SensLoad, // Control zone sensible load[W] Real64 const LatentLoad, // Control zone latent load[W] int const CyclingScheme, // fan operating mode @@ -4140,7 +4107,7 @@ namespace VariableSpeedCoils { } // calculate coil model at rating point - Real64 runtimeFrac(1.0); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 1.0; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DesignAirMassFlowRate = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate( state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds); @@ -4157,7 +4124,6 @@ namespace VariableSpeedCoils { CalcVarSpeedCoilCooling(state, DXCoilNum, 2.0, - runtimeFrac, SensLoad, LatentLoad, CompressorOperation::On, @@ -4277,7 +4243,7 @@ namespace VariableSpeedCoils { } // calculate coil model at rating point - Real64 runtimeFrac(1.0); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 1.0; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DesignAirMassFlowRate = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate( state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).NumOfSpeeds); @@ -4293,7 +4259,6 @@ namespace VariableSpeedCoils { CalcVarSpeedCoilHeating(state, DXCoilNum, 2.0, - runtimeFrac, SensLoad, CompressorOperation::On, 1.0, @@ -4423,10 +4388,6 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 0.0; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).PartLoadRatio = 0.0; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = MaxONOFFCyclesperHour; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant = HPTimeConstant; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = FanDelayTime; - if ((state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == Coil_HeatingWaterToAirHPVSEquationFit) || (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).VSCoilType == Coil_CoolingWaterToAirHPVSEquationFit)) { WaterInletNode = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum; @@ -4551,10 +4512,6 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirHumRat = state.dataLoopNodes->Node(AirInletNode).HumRat; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirEnthalpy = state.dataLoopNodes->Node(AirInletNode).Enthalpy; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = MaxONOFFCyclesperHour; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant = HPTimeConstant; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = FanDelayTime; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirPressure = state.dataEnvrn->OutBaroPress; // temporary // Outlet variables state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Power = 0.0; @@ -5879,13 +5836,12 @@ namespace VariableSpeedCoils { } void CalcVarSpeedCoilCooling(EnergyPlusData &state, - int const DXCoilNum, // Heat Pump Number - int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 &RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) - [[maybe_unused]] Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 - [[maybe_unused]] Real64 const LatentDemand, // Cooling Latent Demand [W] - CompressorOperation const CompressorOp, // compressor operation flag - Real64 const PartLoadRatio, // compressor part load ratio + int const DXCoilNum, // Heat Pump Number + int const CyclingScheme, // Fan/Compressor cycling scheme indicator + [[maybe_unused]] Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 + [[maybe_unused]] Real64 const LatentDemand, // Cooling Latent Demand [W] + CompressorOperation const CompressorOp, // compressor operation flag + Real64 const PartLoadRatio, // compressor part load ratio [[maybe_unused]] Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step Real64 const SpeedRatio, // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) int const SpeedNum // Speed number, high bound @@ -6155,7 +6111,6 @@ namespace VariableSpeedCoils { LoadSideInletEnth_Unit = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirEnthalpy; CpAir_Unit = PsyCpAirFnW(LoadSideInletHumRat_Unit); - RuntimeFrac = 1.0; state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 1.0; if ((SpeedNum == 1) && (PartLoadRatio < 1.0)) { @@ -6175,8 +6130,6 @@ namespace VariableSpeedCoils { } else if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac < 0.0) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 0.0; } - - RuntimeFrac = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; } while (true) { @@ -6439,7 +6392,7 @@ namespace VariableSpeedCoils { DXCoilNum, SHRss, CyclingScheme, - RuntimeFrac, + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac, state.dataVariableSpeedCoils->QLatRated, state.dataVariableSpeedCoils->QLatActual, state.dataVariableSpeedCoils->LoadSideInletDBTemp, @@ -6476,20 +6429,23 @@ namespace VariableSpeedCoils { RhoEvapCondWater = RhoH2O(state.dataVariableSpeedCoils->OutdoorDryBulb_CalcVarSpeedCoilCooling); state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapWaterConsumpRate = (CondInletHumRat - state.dataVariableSpeedCoils->OutdoorHumRat_CalcVarSpeedCoilCooling) * CondAirMassFlow / RhoEvapCondWater * - RuntimeFrac; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecPower = - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecNomPower * RuntimeFrac; + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecNomPower * + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; // Calculate basin heater power CalcBasinHeaterPower(state, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPowerFTempDiff, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterSchedulePtr, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterSetPointTemp, state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPower); - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPower *= (1.0 - RuntimeFrac); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPower *= + (1.0 - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac); } state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower = - state.dataVariableSpeedCoils->CrankcaseHeatingPower_CalcVarSpeedCoilCooling * (1.0 - RuntimeFrac); + state.dataVariableSpeedCoils->CrankcaseHeatingPower_CalcVarSpeedCoilCooling * + (1.0 - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac); // set water system demand request (if needed) if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapWaterSupplyMode == WaterSupplyFromTank) { @@ -6550,8 +6506,7 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->QLoadTotal *= PartLoadRatio; state.dataVariableSpeedCoils->QSensible *= PartLoadRatio; // count the powr separately - state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & - //+ VarSpeedCoil(DXCoilNum)%BasinHeaterPower + VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower + state.dataVariableSpeedCoils->Winput *= state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; state.dataVariableSpeedCoils->QSource *= PartLoadRatio; QWasteHeat *= PartLoadRatio; @@ -6576,13 +6531,12 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPower * TimeStepSysSec; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecConsumption = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecPower * TimeStepSysSec; - if (RuntimeFrac == 0.0) { + if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac == 0.0) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).COP = 0.0; } else { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).COP = state.dataVariableSpeedCoils->QLoadTotal / state.dataVariableSpeedCoils->Winput; } - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = RuntimeFrac; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).PartLoadRatio = PartLoadRatio; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate = state.dataVariableSpeedCoils->PLRCorrLoadSideMdot; rhoair = PsyRhoAirFnPbTdbW(state, @@ -6632,7 +6586,6 @@ namespace VariableSpeedCoils { void CalcVarSpeedHPWH(EnergyPlusData &state, int const DXCoilNum, // the number of the DX coil to be simulated - Real64 &RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) Real64 const PartLoadRatio, // sensible water heating load / full load sensible water heating capacity Real64 const SpeedRatio, // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) int const SpeedNum, // Speed number, high bound @@ -6688,7 +6641,6 @@ namespace VariableSpeedCoils { Real64 AirMassFlowRatio; // Ratio of evaporator inlet air mass flow rate to rated mass flow rate Real64 WaterMassFlowRatio; // Ratio of evaporator inlet water mass flow rate to rated mass flow rate Real64 PumpHeatToWater; // Amount of pump heat attributed to heating water - Real64 HPRTF; // Heat pump run time fraction Real64 PLF; // part-load function Real64 CBFSpeed; // bypass factor as individual speed level Real64 COPAirFFModFac; // air flow fraction modification @@ -6807,7 +6759,6 @@ namespace VariableSpeedCoils { } // part-load calculation - RuntimeFrac = 1.0; state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 1.0; if ((SpeedNum == 1) && (PartLoadRatio < 1.0)) { @@ -6827,8 +6778,6 @@ namespace VariableSpeedCoils { } else if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac < 0.0) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 0.0; } - - RuntimeFrac = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; } // interpolate between speeds @@ -6895,16 +6844,15 @@ namespace VariableSpeedCoils { TotalTankHeatingCapacity = OperatingHeatingCapacity + PumpHeatToWater; } - HPRTF = RuntimeFrac; // calculate evaporator total cooling capacity if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanPowerIncludedInCOP) { if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { // make sure fan power is full load fan power, it isn't though, - CompressorPower = OperatingHeatingPower - locFanElecPower / HPRTF - + CompressorPower = OperatingHeatingPower - locFanElecPower / state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower; if (OperatingHeatingPower > 0.0) TankHeatingCOP = TotalTankHeatingCapacity / OperatingHeatingPower; } else { - CompressorPower = OperatingHeatingPower - locFanElecPower / HPRTF; + CompressorPower = OperatingHeatingPower - locFanElecPower / state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; if ((OperatingHeatingPower + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) > 0.0) TankHeatingCOP = TotalTankHeatingCapacity / (OperatingHeatingPower + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); @@ -6913,14 +6861,16 @@ namespace VariableSpeedCoils { if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { // make sure fan power is full load fan power CompressorPower = OperatingHeatingPower - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower; - if ((OperatingHeatingPower + locFanElecPower / HPRTF) > 0.0) - TankHeatingCOP = TotalTankHeatingCapacity / (OperatingHeatingPower + locFanElecPower / HPRTF); + if ((OperatingHeatingPower + locFanElecPower / state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + locFanElecPower / state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac); } else { CompressorPower = OperatingHeatingPower; - if ((OperatingHeatingPower + locFanElecPower / HPRTF + + if ((OperatingHeatingPower + locFanElecPower / state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) > 0.0) - TankHeatingCOP = TotalTankHeatingCapacity / (OperatingHeatingPower + locFanElecPower / HPRTF + - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + locFanElecPower / state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac + + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); } } @@ -7029,7 +6979,7 @@ namespace VariableSpeedCoils { TotalTankHeatingCapacity = OperatingHeatingCapacity + PumpHeatToWater; } - HPRTF = RuntimeFrac; + Real64 HPRTF = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; // calculate evaporator total cooling capacity if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanPowerIncludedInCOP) { if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { @@ -7111,11 +7061,13 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).TotalHeatingEnergyRate = TotalTankHeatingCapacity * PartLoadRatio; // calculate total compressor plus condenser pump power, fan power reported in fan module state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).ElecWaterHeatingPower = - (CompressorPower + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) * HPRTF; + (CompressorPower + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) * + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; // pass the outputs for the cooling coil section state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).BasinHeaterPower = 0.0; - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower = CrankcaseHeatingPower * (1.0 - RuntimeFrac); + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower = + CrankcaseHeatingPower * (1.0 - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac); // calculate coil outlet state variables state.dataVariableSpeedCoils->LoadSideOutletEnth = @@ -7165,13 +7117,15 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->QLoadTotal *= PartLoadRatio; state.dataVariableSpeedCoils->QSensible *= PartLoadRatio; // count the powr separately - state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & + state.dataVariableSpeedCoils->Winput *= + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & //+ VarSpeedCoil(DXCoilNum)%BasinHeaterPower + VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower state.dataVariableSpeedCoils->QSource *= PartLoadRatio; // Update heat pump data structure state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower * RuntimeFrac; // water heating pump power + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower * + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; // water heating pump power state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Power = state.dataVariableSpeedCoils->Winput; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).QLoadTotal = state.dataVariableSpeedCoils->QLoadTotal; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).QSensible = state.dataVariableSpeedCoils->QSensible; @@ -7191,13 +7145,12 @@ namespace VariableSpeedCoils { // re-use EvapCondPumpElecConsumption to store WH pump energy consumption state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).EvapCondPumpElecConsumption = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower * TimeStepSysSec; - if (RuntimeFrac == 0.0) { + if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac == 0.0) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).COP = 0.0; } else { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).COP = state.dataVariableSpeedCoils->QLoadTotal / state.dataVariableSpeedCoils->Winput; } - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = RuntimeFrac; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).PartLoadRatio = PartLoadRatio; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate = state.dataVariableSpeedCoils->PLRCorrLoadSideMdot; rhoair = PsyRhoAirFnPbTdbW(state, @@ -7246,12 +7199,11 @@ namespace VariableSpeedCoils { } void CalcVarSpeedCoilHeating(EnergyPlusData &state, - int const DXCoilNum, // Heat Pump Number - int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 &RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) - [[maybe_unused]] Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 - CompressorOperation const CompressorOp, // compressor operation flag - Real64 const PartLoadRatio, // compressor part load ratio + int const DXCoilNum, // Heat Pump Number + int const CyclingScheme, // Fan/Compressor cycling scheme indicator + [[maybe_unused]] Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 + CompressorOperation const CompressorOp, // compressor operation flag + Real64 const PartLoadRatio, // compressor part load ratio [[maybe_unused]] Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step Real64 const SpeedRatio, // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) int const SpeedNum // Speed number, high bound, i.e. SpeedNum - 1 is the other side @@ -7407,7 +7359,6 @@ namespace VariableSpeedCoils { SpeedCal = SpeedNum; } - RuntimeFrac = 1.0; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 1.0; state.dataHVACGlobal->OnOffFanPartLoadFraction = 1.0; if ((SpeedNum == 1) && (PartLoadRatio < 1.0)) { @@ -7427,8 +7378,6 @@ namespace VariableSpeedCoils { } else if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac < 0.0) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = 0.0; } - - RuntimeFrac = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; } if ((SpeedNum == 1) || (SpeedNum > MaxSpeed) || (SpeedRatio == 1.0)) { @@ -7624,7 +7573,7 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->InputPowerMultiplier = 0.954 * (1.0 - state.dataVariableSpeedCoils->FractionalDefrostTime); } // correction fractional defrost time shorten by runtime fraction - state.dataVariableSpeedCoils->FractionalDefrostTime *= RuntimeFrac; + state.dataVariableSpeedCoils->FractionalDefrostTime *= state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; if (state.dataVariableSpeedCoils->FractionalDefrostTime > 0.0) { // Calculate defrost adjustment factors depending on defrost control strategy @@ -7651,7 +7600,7 @@ namespace VariableSpeedCoils { } state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower = - state.dataVariableSpeedCoils->CrankcaseHeatingPower * (1.0 - RuntimeFrac); + state.dataVariableSpeedCoils->CrankcaseHeatingPower * (1.0 - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac); //! Modify total heating capacity based on defrost heating capacity multiplier //! MaxHeatCap passed from parent object VRF Condenser and is used to limit capacity of TU's to that available from condenser // IF(PRESENT(MaxHeatCap))THEN @@ -7709,7 +7658,8 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->QLoadTotal *= PartLoadRatio; state.dataVariableSpeedCoils->QSensible *= PartLoadRatio; // count the powr separately - state.dataVariableSpeedCoils->Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower + state.dataVariableSpeedCoils->Winput *= + state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower state.dataVariableSpeedCoils->QSource *= PartLoadRatio; QWasteHeat *= PartLoadRatio; @@ -7727,13 +7677,12 @@ namespace VariableSpeedCoils { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower * TimeStepSysSec; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DefrostConsumption = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).DefrostPower * TimeStepSysSec; - if (RuntimeFrac == 0.0) { + if (state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac == 0.0) { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).COP = 0.0; } else { state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).COP = state.dataVariableSpeedCoils->QLoadTotal / state.dataVariableSpeedCoils->Winput; } - state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).RunFrac = RuntimeFrac; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).PartLoadRatio = PartLoadRatio; state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate = state.dataVariableSpeedCoils->PLRCorrLoadSideMdot; rhoair = PsyRhoAirFnPbTdbW(state, @@ -8455,12 +8404,12 @@ namespace VariableSpeedCoils { // at the current operating conditions (sec) Real64 Gamma; // Initial moisture evaporation rate divided by steady-state AC latent capacity // at the current operating conditions - Real64 Twet_Rated; // Twet at rated conditions (coil air flow rate and air temperatures), sec - Real64 Gamma_Rated; // Gamma at rated conditions (coil air flow rate and air temperatures) - Real64 Twet_max; // Maximum allowed value for Twet - Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant; // Heat pump time constant [s] - Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to + Real64 Twet_Rated; // Twet at rated conditions (coil air flow rate and air temperatures), sec + Real64 Gamma_Rated; // Gamma at rated conditions (coil air flow rate and air temperatures) + Real64 Twet_max; // Maximum allowed value for Twet + Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] + Real64 LatentCapacityTimeConstant; // Latent capacity time constant [s] + Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to // shut off after compressor cycle off [s] Real64 Ton; // Coil on time (sec) Real64 Toff; // Coil off time (sec) @@ -8474,14 +8423,14 @@ namespace VariableSpeedCoils { Twet_Rated = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Twet_Rated; Gamma_Rated = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Gamma_Rated; MaxONOFFCyclesperHour = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour; - HPTimeConstant = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant; + LatentCapacityTimeConstant = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant; FanDelayTime = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime; // No moisture evaporation (latent degradation) occurs for runtime fraction of 1.0 // All latent degradation model parameters cause divide by 0.0 if not greater than 0.0 // Latent degradation model parameters initialize to 0.0 meaning no evaporation model used. if ((RTF >= 1.0) || (QLatRated == 0.0) || (QLatActual == 0.0) || (Twet_Rated <= 0.0) || (Gamma_Rated <= 0.0) || - (MaxONOFFCyclesperHour <= 0.0) || (HPTimeConstant <= 0.0) || (RTF <= 0.0)) { + (MaxONOFFCyclesperHour <= 0.0) || (LatentCapacityTimeConstant <= 0.0) || (RTF <= 0.0)) { SHReff = SHRss; return SHReff; } @@ -8515,20 +8464,20 @@ namespace VariableSpeedCoils { // Use sucessive substitution to solve for To aa = (Gamma * Toffa) - (0.25 / Twet) * pow_2(Gamma) * pow_2(Toffa); - To1 = aa + HPTimeConstant; + To1 = aa + LatentCapacityTimeConstant; Error = 1.0; while (Error > 0.001) { - To2 = aa - HPTimeConstant * (std::exp(-To1 / HPTimeConstant) - 1.0); + To2 = aa - LatentCapacityTimeConstant * (std::exp(-To1 / LatentCapacityTimeConstant) - 1.0); Error = std::abs((To2 - To1) / To1); To1 = To2; } // Adjust Sensible Heat Ratio (SHR) using Latent Heat Ratio (LHR) multiplier - // Floating underflow errors occur when -Ton/HPTimeConstant is a large negative number. + // Floating underflow errors occur when -Ton/LatentCapacityTimeConstant is a large negative number. // Cap lower limit at -700 to avoid the underflow errors. - aa = std::exp(max(-700.0, -Ton / HPTimeConstant)); + aa = std::exp(max(-700.0, -Ton / LatentCapacityTimeConstant)); // Calculate latent heat ratio multiplier - LHRmult = max(((Ton - To2) / (Ton + HPTimeConstant * (aa - 1.0))), 0.0); + LHRmult = max(((Ton - To2) / (Ton + LatentCapacityTimeConstant * (aa - 1.0))), 0.0); // Calculate part-load or "effective" sensible heat ratio SHReff = 1.0 - (1.0 - SHRss) * LHRmult; diff --git a/src/EnergyPlus/VariableSpeedCoils.hh b/src/EnergyPlus/VariableSpeedCoils.hh index f7fe4824890..f282e4886ea 100644 --- a/src/EnergyPlus/VariableSpeedCoils.hh +++ b/src/EnergyPlus/VariableSpeedCoils.hh @@ -86,54 +86,54 @@ namespace VariableSpeedCoils { // condensate drain line (sec) Real64 Gamma_Rated; // Initial moisture evaporation rate divided by steady-state // AC latent capacity (dimensionless) - int HOTGASREHEATFLG; // whether to use hot gas reheat - Real64 HPTimeConstant; // Heat pump time constant [s] - int PLFFPLR; // index of part load curve as a function of part load ratio - std::string CoolHeatType; // Type of WatertoAirHP ie. Heating or Cooling - int VSCoilType; // type of component in plant - bool SimFlag; // Heat Pump Simulation Flag - Real64 DesignWaterMassFlowRate; // design water mass flow rate [kg/s] - Real64 DesignWaterVolFlowRate; // design water volumetric flow rate [m3/s] - Real64 DesignAirMassFlowRate; // Design Air Mass Flow Rate [kg/s] - Real64 DesignAirVolFlowRate; // Design Air Volumetric Flow Rate [m3/s] - Real64 AirVolFlowRate; // Air Volumetric Flow Rate[m3/s], real time - Real64 AirMassFlowRate; // Air Mass Flow Rate[kg/s], real time - Real64 InletAirPressure; // air inlet pressure [pa] - Real64 InletAirDBTemp; // Inlet Air Dry Bulb Temperature [C], real time - Real64 InletAirHumRat; // Inlet Air Humidity Ratio [kg/kg], real time - Real64 InletAirEnthalpy; // Inlet Air Enthalpy [J/kg], real time - Real64 OutletAirDBTemp; // Outlet Air Dry Bulb Temperature [C], real time - Real64 OutletAirHumRat; // Outlet Air Humidity Ratio [kg/kg], real time - Real64 OutletAirEnthalpy; // Outlet Air Enthalpy [J/kg], real time - Real64 WaterVolFlowRate; // Water Volumetric Flow Rate [m3/s], real time - Real64 WaterMassFlowRate; // Water Mass Flow Rate [kg/s], real time - Real64 InletWaterTemp; // Inlet Water Temperature [C] - Real64 InletWaterEnthalpy; // Inlet Water Enthalpy [J/kg] - Real64 OutletWaterTemp; // Outlet Water Temperature [C] - Real64 OutletWaterEnthalpy; // Outlet Water Enthalpy [J/kg] - Real64 Power; // Power Consumption [W] - Real64 QLoadTotal; // Load Side Total Heat Transfer Rate [W] - Real64 QSensible; // Sensible Load Side Heat Transfer Rate [W] - Real64 QLatent; // Latent Load Side Heat Transfer Rate [W] - Real64 QSource; // Source Side Heat Transfer Rate [W] - Real64 QWasteHeat; // Recoverable waste Heat Transfer Rate [W] - Real64 Energy; // Energy Consumption [J] - Real64 EnergyLoadTotal; // Load Side Total Heat Transferred [J] - Real64 EnergySensible; // Sensible Load Side Heat Transferred [J] - Real64 EnergyLatent; // Latent Load Side Heat Transferred [J] - Real64 EnergySource; // Source Side Heat Transferred [J] - Real64 COP; // Heat Pump Coefficient of Performance [-] - Real64 RunFrac; // Duty Factor - Real64 PartLoadRatio; // Part Load Ratio - Real64 RatedPowerHeat; // Rated/Ref Heating Power Consumption[W] - Real64 RatedCOPHeat; // Rated/Ref Heating COP [W/W] - Real64 RatedCapCoolSens; // Rated/Ref Sensible Cooling Capacity [W] - Real64 RatedPowerCool; // Rated/Ref Cooling Power Consumption[W] - Real64 RatedCOPCool; // Rated/Ref Cooling COP [W/W] - int AirInletNodeNum; // Node Number of the Air Inlet - int AirOutletNodeNum; // Node Number of the Air Outlet - int WaterInletNodeNum; // Node Number of the Water Onlet - int WaterOutletNodeNum; // Node Number of the Water Outlet + int HOTGASREHEATFLG; // whether to use hot gas reheat + Real64 LatentCapacityTimeConstant; // Latent capacity time constant [s] + int PLFFPLR; // index of part load curve as a function of part load ratio + std::string CoolHeatType; // Type of WatertoAirHP ie. Heating or Cooling + int VSCoilType; // type of component in plant + bool SimFlag; // Heat Pump Simulation Flag + Real64 DesignWaterMassFlowRate; // design water mass flow rate [kg/s] + Real64 DesignWaterVolFlowRate; // design water volumetric flow rate [m3/s] + Real64 DesignAirMassFlowRate; // Design Air Mass Flow Rate [kg/s] + Real64 DesignAirVolFlowRate; // Design Air Volumetric Flow Rate [m3/s] + Real64 AirVolFlowRate; // Air Volumetric Flow Rate[m3/s], real time + Real64 AirMassFlowRate; // Air Mass Flow Rate[kg/s], real time + Real64 InletAirPressure; // air inlet pressure [pa] + Real64 InletAirDBTemp; // Inlet Air Dry Bulb Temperature [C], real time + Real64 InletAirHumRat; // Inlet Air Humidity Ratio [kg/kg], real time + Real64 InletAirEnthalpy; // Inlet Air Enthalpy [J/kg], real time + Real64 OutletAirDBTemp; // Outlet Air Dry Bulb Temperature [C], real time + Real64 OutletAirHumRat; // Outlet Air Humidity Ratio [kg/kg], real time + Real64 OutletAirEnthalpy; // Outlet Air Enthalpy [J/kg], real time + Real64 WaterVolFlowRate; // Water Volumetric Flow Rate [m3/s], real time + Real64 WaterMassFlowRate; // Water Mass Flow Rate [kg/s], real time + Real64 InletWaterTemp; // Inlet Water Temperature [C] + Real64 InletWaterEnthalpy; // Inlet Water Enthalpy [J/kg] + Real64 OutletWaterTemp; // Outlet Water Temperature [C] + Real64 OutletWaterEnthalpy; // Outlet Water Enthalpy [J/kg] + Real64 Power; // Power Consumption [W] + Real64 QLoadTotal; // Load Side Total Heat Transfer Rate [W] + Real64 QSensible; // Sensible Load Side Heat Transfer Rate [W] + Real64 QLatent; // Latent Load Side Heat Transfer Rate [W] + Real64 QSource; // Source Side Heat Transfer Rate [W] + Real64 QWasteHeat; // Recoverable waste Heat Transfer Rate [W] + Real64 Energy; // Energy Consumption [J] + Real64 EnergyLoadTotal; // Load Side Total Heat Transferred [J] + Real64 EnergySensible; // Sensible Load Side Heat Transferred [J] + Real64 EnergyLatent; // Latent Load Side Heat Transferred [J] + Real64 EnergySource; // Source Side Heat Transferred [J] + Real64 COP; // Heat Pump Coefficient of Performance [-] + Real64 RunFrac; // Duty Factor + Real64 PartLoadRatio; // Part Load Ratio + Real64 RatedPowerHeat; // Rated/Ref Heating Power Consumption[W] + Real64 RatedCOPHeat; // Rated/Ref Heating COP [W/W] + Real64 RatedCapCoolSens; // Rated/Ref Sensible Cooling Capacity [W] + Real64 RatedPowerCool; // Rated/Ref Cooling Power Consumption[W] + Real64 RatedCOPCool; // Rated/Ref Cooling COP [W/W] + int AirInletNodeNum; // Node Number of the Air Inlet + int AirOutletNodeNum; // Node Number of the Air Outlet + int WaterInletNodeNum; // Node Number of the Water Onlet + int WaterOutletNodeNum; // Node Number of the Water Outlet PlantLocation plantLoc; // set by parent object and "pushed" to this structure in SetVSWSHPData subroutine bool FindCompanionUpStreamCoil; // Flag to get the companion coil in Init @@ -283,7 +283,7 @@ namespace VariableSpeedCoils { : NumOfSpeeds(2), NormSpedLevel(DataHVACGlobals::MaxSpeedLevels), RatedWaterVolFlowRate(DataSizing::AutoSize), RatedWaterMassFlowRate(DataSizing::AutoSize), RatedAirVolFlowRate(DataSizing::AutoSize), RatedCapHeat(DataSizing::AutoSize), RatedCapCoolTotal(DataSizing::AutoSize), MaxONOFFCyclesperHour(0.0), Twet_Rated(0.0), Gamma_Rated(0.0), HOTGASREHEATFLG(0), - HPTimeConstant(0.0), PLFFPLR(0), VSCoilType(0), SimFlag(false), DesignWaterMassFlowRate(0.0), DesignWaterVolFlowRate(0.0), + LatentCapacityTimeConstant(0.0), PLFFPLR(0), VSCoilType(0), SimFlag(false), DesignWaterMassFlowRate(0.0), DesignWaterVolFlowRate(0.0), DesignAirMassFlowRate(0.0), DesignAirVolFlowRate(0.0), AirVolFlowRate(0.0), AirMassFlowRate(0.0), InletAirPressure(0.0), InletAirDBTemp(0.0), InletAirHumRat(0.0), InletAirEnthalpy(0.0), OutletAirDBTemp(0.0), OutletAirHumRat(0.0), OutletAirEnthalpy(0.0), WaterVolFlowRate(0.0), WaterMassFlowRate(0.0), InletWaterTemp(0.0), InletWaterEnthalpy(0.0), OutletWaterTemp(0.0), @@ -350,9 +350,6 @@ namespace VariableSpeedCoils { std::string_view CompName, // Coil Name int &CompIndex, // Index for Component name int const CyclingScheme, // Continuous fan OR cycling compressor - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to DataHVACGlobals::CompressorOperation CompressorOp, // compressor on/off. 0 = off; 1= on Real64 const PartLoadFrac, int const SpeedNum, // compressor speed number @@ -368,26 +365,22 @@ namespace VariableSpeedCoils { //****************************************************************************** void InitVarSpeedCoil(EnergyPlusData &state, - int const DXCoilNum, // Current DXCoilNum under simulation - Real64 const MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 const HPTimeConstant, // Heat pump time constant [s] - Real64 const FanDelayTime, // Fan delay time, time delay for the HP's fan to - Real64 const SensLoad, // Control zone sensible load[W] - Real64 const LatentLoad, // Control zone latent load[W] - int const CyclingScheme, // fan operating mode - Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step - Real64 const SpeedRatio, // compressor speed ratio - int const SpeedNum // compressor speed number + int const DXCoilNum, // Current DXCoilNum under simulation + Real64 const SensLoad, // Control zone sensible load[W] + Real64 const LatentLoad, // Control zone latent load[W] + int const CyclingScheme, // fan operating mode + Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step + Real64 const SpeedRatio, // compressor speed ratio + int const SpeedNum // compressor speed number ); void SizeVarSpeedCoil(EnergyPlusData &state, int const DXCoilNum, bool &ErrorsFound); void CalcVarSpeedCoilCooling(EnergyPlusData &state, - int const DXCoilNum, // Heat Pump Number - int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 &RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) - Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 - Real64 const LatentDemand, // Cooling Latent Demand [W] + int const DXCoilNum, // Heat Pump Number + int const CyclingScheme, // Fan/Compressor cycling scheme indicator + Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 + Real64 const LatentDemand, // Cooling Latent Demand [W] DataHVACGlobals::CompressorOperation CompressorOp, // compressor operation flag Real64 const PartLoadRatio, // compressor part load ratio Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step @@ -396,10 +389,9 @@ namespace VariableSpeedCoils { ); void CalcVarSpeedCoilHeating(EnergyPlusData &state, - int const DXCoilNum, // Heat Pump Number - int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 &RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) - Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 + int const DXCoilNum, // Heat Pump Number + int const CyclingScheme, // Fan/Compressor cycling scheme indicator + Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 DataHVACGlobals::CompressorOperation CompressorOp, // compressor operation flag Real64 const PartLoadRatio, // compressor part load ratio Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step @@ -516,7 +508,6 @@ namespace VariableSpeedCoils { void CalcVarSpeedHPWH(EnergyPlusData &state, int const DXCoilNum, // the number of the DX coil to be simulated - Real64 &RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) Real64 const PartLoadRatio, // sensible water heating load / full load sensible water heating capacity Real64 const SpeedRatio, // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) int const SpeedNum, // Speed number, high bound capacity diff --git a/src/EnergyPlus/WaterThermalTanks.cc b/src/EnergyPlus/WaterThermalTanks.cc index 98e6249a998..df837d15bda 100644 --- a/src/EnergyPlus/WaterThermalTanks.cc +++ b/src/EnergyPlus/WaterThermalTanks.cc @@ -6695,16 +6695,10 @@ void WaterThermalTankData::initialize(EnergyPlusData &state, bool const FirstHVA } else if (UtilityRoutines::SameString(state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed") && (state.dataWaterThermalTanks->HPWaterHeater(HPNum).NumofSpeed == 0)) { - Real64 EMP1 = 4.0; - Real64 EMP2 = 0.0; - Real64 EMP3 = 0.0; VariableSpeedCoils::SimVariableSpeedCoils(state, std::string(), state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum, 0, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::Off, 0.0, 1, @@ -9027,7 +9021,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c // SUBROUTINE LOCAL VARIABLE DECLARATIONS: Real64 MdotWater; // mass flow rate of condenser water, kg/s IntegratedHeatPump::IHPOperationMode IHPMode(IntegratedHeatPump::IHPOperationMode::Idle); // IHP working mode - Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); // References to objects used in this function HeatPumpWaterHeaterData &HeatPump = state.dataWaterThermalTanks->HPWaterHeater(this->HeatPumpNum); @@ -9107,9 +9100,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c "", VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9122,9 +9112,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9139,9 +9126,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c "", VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9154,9 +9138,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9188,9 +9169,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c "", VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9204,9 +9182,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c "", VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9501,9 +9476,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c "", VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9522,9 +9494,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9554,9 +9523,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9659,9 +9625,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9677,9 +9640,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9711,9 +9671,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9728,9 +9685,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9841,9 +9795,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9858,9 +9809,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9961,9 +9909,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -9982,9 +9927,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10000,9 +9942,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10021,9 +9960,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10052,9 +9988,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10071,9 +10004,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10087,9 +10017,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10106,9 +10033,6 @@ void WaterThermalTankData::CalcHeatPumpWaterHeater(EnergyPlusData &state, bool c HeatPump.DXCoilName, HeatPump.DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, CompressorOp, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10408,7 +10332,6 @@ Real64 WaterThermalTankData::PLRResidualIterSpeed(EnergyPlusData &state, // and calculates the residual as defined respectively for DataPlant::PlantEquipmentType::WtrHeaterMixed or // DataPlant::PlantEquipmentType::WtrHeaterStratified - Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); // place holder to calling variable-speed coil function this->Mode = mode; state.dataWaterThermalTanks->hpPartLoadRatio = 1.0; Real64 MdotWater = 0.0; @@ -10422,9 +10345,6 @@ Real64 WaterThermalTankData::PLRResidualIterSpeed(EnergyPlusData &state, state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilName, state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -10439,9 +10359,6 @@ Real64 WaterThermalTankData::PLRResidualIterSpeed(EnergyPlusData &state, state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilName, state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, state.dataWaterThermalTanks->hpPartLoadRatio, SpeedNum, @@ -12204,9 +12121,6 @@ void WaterThermalTankData::CalcStandardRatings(EnergyPlusData &state) MdotWater, true); // simulate the HPWH coil/fan to find heating capacity - Real64 EMP1 = 0.0; - Real64 EMP2 = 0.0; - Real64 EMP3 = 0.0; if (state.dataWaterThermalTanks->HPWaterHeater(HPNum).FanPlacement == DataHVACGlobals::BlowThru) { // simulate fan and DX coil twice if (state.dataWaterThermalTanks->HPWaterHeater(HPNum).FanType_Num == DataHVACGlobals::FanType_SystemModelObject) { @@ -12222,9 +12136,6 @@ void WaterThermalTankData::CalcStandardRatings(EnergyPlusData &state) VSCoilName, VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, 1.0, state.dataVariableSpeedCoils->VarSpeedCoil(state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, @@ -12245,9 +12156,6 @@ void WaterThermalTankData::CalcStandardRatings(EnergyPlusData &state) VSCoilName, VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, 1.0, state.dataVariableSpeedCoils->VarSpeedCoil(state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, @@ -12262,9 +12170,6 @@ void WaterThermalTankData::CalcStandardRatings(EnergyPlusData &state) VSCoilName, VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, 1.0, state.dataVariableSpeedCoils->VarSpeedCoil(state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, @@ -12285,9 +12190,6 @@ void WaterThermalTankData::CalcStandardRatings(EnergyPlusData &state) VSCoilName, VSCoilNum, DataHVACGlobals::CycFanCycCoil, - EMP1, - EMP2, - EMP3, DataHVACGlobals::CompressorOperation::On, 1.0, state.dataVariableSpeedCoils->VarSpeedCoil(state.dataWaterThermalTanks->HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, diff --git a/src/EnergyPlus/WaterToAirHeatPump.cc b/src/EnergyPlus/WaterToAirHeatPump.cc index 1b63ea1c7cb..586d8c81c5a 100644 --- a/src/EnergyPlus/WaterToAirHeatPump.cc +++ b/src/EnergyPlus/WaterToAirHeatPump.cc @@ -95,8 +95,6 @@ namespace WaterToAirHeatPump { // Oklahoma State University. using namespace DataLoopNode; - using DataHVACGlobals::ContFanCycCoil; - using DataHVACGlobals::CycFanCycCoil; static constexpr std::string_view fluidNameWater("WATER"); @@ -106,10 +104,6 @@ namespace WaterToAirHeatPump { Real64 const DesignAirflow, // design air flow rate int const CyclingScheme, // cycling scheme--either continuous fan/cycling compressor or bool const FirstHVACIteration, // first iteration flag - Real64 const RuntimeFrac, // compressor run time fraction - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to bool const InitFlag, // initialization flag used to suppress property routine errors Real64 const SensLoad, // sensible load Real64 const LatentLoad, // latent load @@ -172,16 +166,14 @@ namespace WaterToAirHeatPump { // Calculate the Correct Water to Air HP Model with the current HPNum if (state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WAHPType == DataPlant::PlantEquipmentType::CoilWAHPCoolingParamEst) { - InitWatertoAirHP( - state, HPNum, InitFlag, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); - CalcWatertoAirHPCooling(state, HPNum, CyclingScheme, FirstHVACIteration, RuntimeFrac, InitFlag, SensLoad, CompressorOp, PartLoadRatio); + InitWatertoAirHP(state, HPNum, InitFlag, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); + CalcWatertoAirHPCooling(state, HPNum, CyclingScheme, FirstHVACIteration, InitFlag, SensLoad, CompressorOp, PartLoadRatio); UpdateWatertoAirHP(state, HPNum); } else if (state.dataWaterToAirHeatPump->WatertoAirHP(HPNum).WAHPType == DataPlant::PlantEquipmentType::CoilWAHPHeatingParamEst) { - InitWatertoAirHP( - state, HPNum, InitFlag, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); - CalcWatertoAirHPHeating(state, HPNum, CyclingScheme, FirstHVACIteration, RuntimeFrac, InitFlag, SensLoad, CompressorOp, PartLoadRatio); + InitWatertoAirHP(state, HPNum, InitFlag, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); + CalcWatertoAirHPHeating(state, HPNum, CyclingScheme, FirstHVACIteration, InitFlag, SensLoad, CompressorOp, PartLoadRatio); UpdateWatertoAirHP(state, HPNum); @@ -395,6 +387,70 @@ namespace WaterToAirHeatPump { heatPump.SourceSideUACoeff = NumArray(18); heatPump.SourceSideHTR1 = NumArray(19); heatPump.SourceSideHTR2 = NumArray(20); + heatPump.PLFCurveIndex = Curve::GetCurveIndex(state, AlphArray(8)); // convert curve name to number + + if (heatPump.PLFCurveIndex == 0) { + if (lAlphaBlanks(8)) { + ShowSevereError(state, format("{}{}=\"{}\", missing", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...required {} is blank.", cAlphaFields(8))); + } else { + ShowSevereError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...not found {}=\"{}\".", cAlphaFields(8), AlphArray(8))); + } + ErrorsFound = true; + } else { + // Verify Curve Object, only legal types are Quadratic or Cubic + ErrorsFound |= Curve::CheckCurveDims(state, + heatPump.PLFCurveIndex, // Curve index + {1}, // Valid dimensions + RoutineName, // Routine name + CurrentModuleObject, // Object Type + heatPump.Name, // Object Name + cAlphaFields(8)); // Field Name + + if (!ErrorsFound) { + // Test PLF curve minimum and maximum. Cap if less than 0.7 or greater than 1.0. + Real64 MinCurveVal = 999.0; + Real64 MaxCurveVal = -999.0; + Real64 CurveInput = 0.0; + Real64 MinCurvePLR{0.0}; + Real64 MaxCurvePLR{0.0}; + + while (CurveInput <= 1.0) { + Real64 CurveVal = Curve::CurveValue(state, heatPump.PLFCurveIndex, CurveInput); + if (CurveVal < MinCurveVal) { + MinCurveVal = CurveVal; + MinCurvePLR = CurveInput; + } + if (CurveVal > MaxCurveVal) { + MaxCurveVal = CurveVal; + MaxCurvePLR = CurveInput; + } + CurveInput += 0.01; + } + if (MinCurveVal < 0.7) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...{}=\"{}\" has out of range values.", cAlphaFields(8), AlphArray(8))); + ShowContinueError(state, + format("...Curve minimum must be >= 0.7, curve min at PLR = {:.2T} is {:.3T}", MinCurvePLR, MinCurveVal)); + ShowContinueError(state, "...Setting curve minimum to 0.7 and simulation continues."); + Curve::SetCurveOutputMinValue(state, heatPump.PLFCurveIndex, ErrorsFound, 0.7); + } + + if (MaxCurveVal > 1.0) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...{} = {} has out of range value.", cAlphaFields(8), AlphArray(8))); + ShowContinueError(state, + format("...Curve maximum must be <= 1.0, curve max at PLR = {:.2T} is {:.3T}", MaxCurvePLR, MaxCurveVal)); + ShowContinueError(state, "...Setting curve maximum to 1.0 and simulation continues."); + Curve::SetCurveOutputMaxValue(state, heatPump.PLFCurveIndex, ErrorsFound, 1.0); + } + } + } + + heatPump.MaxONOFFCyclesperHour = NumArray(21); + heatPump.LatentCapacityTimeConstant = NumArray(22); + heatPump.FanDelayTime = NumArray(23); TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(4), AlphArray(5), "Water Nodes"); TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(6), AlphArray(7), "Air Nodes"); @@ -578,6 +634,67 @@ namespace WaterToAirHeatPump { heatPump.SourceSideHTR1 = NumArray(16); heatPump.SourceSideHTR2 = NumArray(17); + heatPump.PLFCurveIndex = Curve::GetCurveIndex(state, AlphArray(8)); // convert curve name to number + + if (heatPump.PLFCurveIndex == 0) { + if (lAlphaBlanks(8)) { + ShowSevereError(state, format("{}{}=\"{}\", missing", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...required {} is blank.", cAlphaFields(8))); + } else { + ShowSevereError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...not found {}=\"{}\".", cAlphaFields(8), AlphArray(8))); + } + ErrorsFound = true; + } else { + // Verify Curve Object, only legal types are Quadratic or Cubic + ErrorsFound |= Curve::CheckCurveDims(state, + heatPump.PLFCurveIndex, // Curve index + {1}, // Valid dimensions + RoutineName, // Routine name + CurrentModuleObject, // Object Type + heatPump.Name, // Object Name + cAlphaFields(8)); // Field Name + + if (!ErrorsFound) { + // Test PLF curve minimum and maximum. Cap if less than 0.7 or greater than 1.0. + Real64 MinCurveVal = 999.0; + Real64 MaxCurveVal = -999.0; + Real64 CurveInput = 0.0; + Real64 MinCurvePLR{0.0}; + Real64 MaxCurvePLR{0.0}; + + while (CurveInput <= 1.0) { + Real64 CurveVal = Curve::CurveValue(state, heatPump.PLFCurveIndex, CurveInput); + if (CurveVal < MinCurveVal) { + MinCurveVal = CurveVal; + MinCurvePLR = CurveInput; + } + if (CurveVal > MaxCurveVal) { + MaxCurveVal = CurveVal; + MaxCurvePLR = CurveInput; + } + CurveInput += 0.01; + } + if (MinCurveVal < 0.7) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...{}=\"{}\" has out of range values.", cAlphaFields(9), AlphArray(9))); + ShowContinueError(state, + format("...Curve minimum must be >= 0.7, curve min at PLR = {:.2T} is {:.3T}", MinCurvePLR, MinCurveVal)); + ShowContinueError(state, "...Setting curve minimum to 0.7 and simulation continues."); + Curve::SetCurveOutputMinValue(state, heatPump.PLFCurveIndex, ErrorsFound, 0.7); + } + + if (MaxCurveVal > 1.0) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, heatPump.Name)); + ShowContinueError(state, format("...{} = {} has out of range value.", cAlphaFields(9), AlphArray(9))); + ShowContinueError(state, + format("...Curve maximum must be <= 1.0, curve max at PLR = {:.2T} is {:.3T}", MaxCurvePLR, MaxCurveVal)); + ShowContinueError(state, "...Setting curve maximum to 1.0 and simulation continues."); + Curve::SetCurveOutputMaxValue(state, heatPump.PLFCurveIndex, ErrorsFound, 1.0); + } + } + } + TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(4), AlphArray(5), "Water Nodes"); TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(6), AlphArray(7), "Air Nodes"); @@ -869,9 +986,6 @@ namespace WaterToAirHeatPump { void InitWatertoAirHP(EnergyPlusData &state, int const HPNum, // index to main heat pump data structure bool const InitFlag, - Real64 const MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 const HPTimeConstant, // Heat pump time constant [s] - Real64 const FanDelayTime, // Fan delay time, time delay for the HP's fan to Real64 const SensLoad, Real64 const LatentLoad, Real64 const DesignAirFlow, @@ -1004,9 +1118,6 @@ namespace WaterToAirHeatPump { RoutineName); heatPump.DesignWaterMassFlowRate = rho * heatPump.DesignWaterVolFlowRate; - heatPump.MaxONOFFCyclesperHour = MaxONOFFCyclesperHour; - heatPump.HPTimeConstant = HPTimeConstant; - heatPump.FanDelayTime = FanDelayTime; PlantOutletNode = DataPlant::CompData::getPlantComponent(state, heatPump.plantLoc).NodeNumOut; InitComponentNodes(state, 0.0, heatPump.DesignWaterMassFlowRate, WaterInletNode, PlantOutletNode); @@ -1106,10 +1217,9 @@ namespace WaterToAirHeatPump { } void CalcWatertoAirHPCooling(EnergyPlusData &state, - int const HPNum, // heat pump number - int const CyclingScheme, // fan/compressor cycling scheme indicator - bool const FirstHVACIteration, // first iteration flag - Real64 const RuntimeFrac, + int const HPNum, // heat pump number + int const CyclingScheme, // fan/compressor cycling scheme indicator + bool const FirstHVACIteration, // first iteration flag [[maybe_unused]] bool const InitFlag, // suppress property errors if true Real64 const SensDemand, DataHVACGlobals::CompressorOperation const CompressorOp, @@ -1263,11 +1373,22 @@ namespace WaterToAirHeatPump { // is enabled. 1st iteration to calculate the QLatent(rated) at (TDB,TWB)indoorair=(26.7C,19.4C) // and 2nd iteration to calculate the QLatent(actual) + // Calculate Part Load Factor and Runtime Fraction + Real64 PLF = 1.0; // part load factor as a function of PLR, RTF = PLR / PLF + if (heatPump.PLFCurveIndex > 0) { + PLF = Curve::CurveValue(state, heatPump.PLFCurveIndex, PartLoadRatio); // Calculate part-load factor + } + if (CyclingScheme == DataHVACGlobals::CycFanCycCoil) { + state.dataHVACGlobal->OnOffFanPartLoadFraction = PLF; + } + heatPump.RunFrac = PartLoadRatio / PLF; + QLatRated = 0.0; QLatActual = 0.0; // IF((RuntimeFrac .GE. 1.0) .OR. (Twet_rated .LE. 0.0) .OR. (Gamma_rated .LE. 0.0)) THEN // Cycling fan does not required latent degradation model, only the constant fan case - if ((RuntimeFrac >= 1.0) || (heatPump.Twet_Rated <= 0.0) || (heatPump.Gamma_Rated <= 0.0) || (CyclingScheme == CycFanCycCoil)) { + if ((heatPump.RunFrac >= 1.0) || (heatPump.Twet_Rated <= 0.0) || (heatPump.Gamma_Rated <= 0.0) || + (CyclingScheme == DataHVACGlobals::CycFanCycCoil)) { LatDegradModelSimFlag = false; // Set NumIteration4=1 so that latent model would quit after 1 simulation with the actual condition NumIteration4 = 1; @@ -1576,7 +1697,7 @@ namespace WaterToAirHeatPump { SHRss = QSensible / QLoadTotal; LoadSideInletWBTemp = PsyTwbFnTdbWPb(state, LoadSideInletDBTemp, LoadSideInletHumRat, PB); SHReff = CalcEffectiveSHR( - state, HPNum, SHRss, CyclingScheme, RuntimeFrac, QLatRated, QLatActual, LoadSideInletDBTemp, LoadSideInletWBTemp); + state, HPNum, SHRss, CyclingScheme, heatPump.RunFrac, QLatRated, QLatActual, LoadSideInletDBTemp, LoadSideInletWBTemp); // Update sensible capacity based on effective SHR QSensible = QLoadTotal * SHReff; goto LOOPLatentDegradationModel_exit; @@ -1596,7 +1717,7 @@ namespace WaterToAirHeatPump { SourceSideOutletTemp = heatPump.InletWaterTemp + QSource / (heatPump.InletWaterMassFlowRate * CpWater); // Actual outlet conditions are "average" for time step - if (CyclingScheme == ContFanCycCoil) { + if (CyclingScheme == DataHVACGlobals::ContFanCycCoil) { // continuous fan, cycling compressor heatPump.OutletAirEnthalpy = PartLoadRatio * LoadSideAirOutletEnth + (1.0 - PartLoadRatio) * LoadSideAirInletEnth; heatPump.OutletAirHumRat = PartLoadRatio * LoadSideOutletHumRat + (1.0 - PartLoadRatio) * LoadSideInletHumRat; @@ -1611,7 +1732,7 @@ namespace WaterToAirHeatPump { // scale heat transfer rates and power to run time QLoadTotal *= PartLoadRatio; QSensible *= PartLoadRatio; - Power *= RuntimeFrac; + Power *= heatPump.RunFrac; QSource *= PartLoadRatio; // Update heat pump data structure @@ -1621,7 +1742,6 @@ namespace WaterToAirHeatPump { heatPump.QSensible = QSensible; heatPump.QLatent = QLoadTotal - QSensible; heatPump.QSource = QSource; - heatPump.RunFrac = RuntimeFrac; heatPump.PartLoadRatio = PartLoadRatio; // Air-side outlet conditions are already calculated above @@ -1632,10 +1752,9 @@ namespace WaterToAirHeatPump { } void CalcWatertoAirHPHeating(EnergyPlusData &state, - int const HPNum, // heat pump number - int const CyclingScheme, // fan/compressor cycling scheme indicator - bool const FirstHVACIteration, // first iteration flag - Real64 const RuntimeFrac, + int const HPNum, // heat pump number + int const CyclingScheme, // fan/compressor cycling scheme indicator + bool const FirstHVACIteration, // first iteration flag [[maybe_unused]] bool const InitFlag, // first iteration flag Real64 const SensDemand, DataHVACGlobals::CompressorOperation const CompressorOp, @@ -2034,7 +2153,7 @@ namespace WaterToAirHeatPump { // Calculate actual outlet conditions for the run time fraction // Actual outlet conditions are "average" for time step - if (CyclingScheme == ContFanCycCoil) { + if (CyclingScheme == DataHVACGlobals::ContFanCycCoil) { // continuous fan, cycling compressor heatPump.OutletAirEnthalpy = PartLoadRatio * LoadSideAirOutletEnth + (1.0 - PartLoadRatio) * heatPump.InletAirEnthalpy; heatPump.OutletAirHumRat = PartLoadRatio * LoadSideOutletHumRat + (1.0 - PartLoadRatio) * heatPump.InletAirHumRat; @@ -2045,9 +2164,20 @@ namespace WaterToAirHeatPump { heatPump.OutletAirHumRat = LoadSideOutletHumRat; heatPump.OutletAirDBTemp = LoadSideOutletDBTemp; } + + // Calculate Part Load Factor and Runtime Fraction + Real64 PLF = 1.0; // part load factor as a function of PLR, RTF = PLR / PLF + if (heatPump.PLFCurveIndex > 0) { + PLF = Curve::CurveValue(state, heatPump.PLFCurveIndex, PartLoadRatio); // Calculate part-load factor + } + if (CyclingScheme == DataHVACGlobals::CycFanCycCoil) { + state.dataHVACGlobal->OnOffFanPartLoadFraction = PLF; + } + heatPump.RunFrac = PartLoadRatio / PLF; + // scale heat transfer rates and power to run time QLoadTotal *= PartLoadRatio; - Power *= RuntimeFrac; + Power *= heatPump.RunFrac; QSource *= PartLoadRatio; // Update heat pump data structure @@ -2057,7 +2187,6 @@ namespace WaterToAirHeatPump { heatPump.QSensible = QLoadTotal; heatPump.QSource = QSource; - heatPump.RunFrac = RuntimeFrac; heatPump.PartLoadRatio = PartLoadRatio; // Air-side outlet conditions are already calculated above @@ -2230,7 +2359,7 @@ namespace WaterToAirHeatPump { // All latent degradation model parameters cause divide by 0.0 if not greater than 0.0 // Latent degradation model parameters initialize to 0.0 meaning no evaporation model used. if ((RTF >= 1.0) || (QLatRated == 0.0) || (QLatActual == 0.0) || (heatPump.Twet_Rated <= 0.0) || (heatPump.Gamma_Rated <= 0.0) || - (heatPump.MaxONOFFCyclesperHour <= 0.0) || (heatPump.HPTimeConstant <= 0.0) || (RTF <= 0.0)) { + (heatPump.MaxONOFFCyclesperHour <= 0.0) || (heatPump.LatentCapacityTimeConstant <= 0.0) || (RTF <= 0.0)) { SHReff = SHRss; return SHReff; } @@ -2244,7 +2373,7 @@ namespace WaterToAirHeatPump { // Calculate the compressor on and off times using a conventional thermostat curve Ton = 3600.0 / (4.0 * heatPump.MaxONOFFCyclesperHour * (1.0 - RTF)); // duration of cooling coil on-cycle (sec) - if ((CyclingScheme == CycFanCycCoil) && (heatPump.FanDelayTime != 0.0)) { + if ((CyclingScheme == DataHVACGlobals::CycFanCycCoil) && (heatPump.FanDelayTime != 0.0)) { // For CycFanCycCoil, moisture is evaporated from the cooling coil back to the air stream // until the fan cycle off. Assume no evaporation from the coil after the fan shuts off. Toff = heatPump.FanDelayTime; @@ -2264,20 +2393,20 @@ namespace WaterToAirHeatPump { // Use sucessive substitution to solve for To aa = (Gamma * Toffa) - (0.25 / Twet) * pow_2(Gamma) * pow_2(Toffa); - To1 = aa + heatPump.HPTimeConstant; + To1 = aa + heatPump.LatentCapacityTimeConstant; Error = 1.0; while (Error > 0.001) { - To2 = aa - heatPump.HPTimeConstant * (std::exp(-To1 / heatPump.HPTimeConstant) - 1.0); + To2 = aa - heatPump.LatentCapacityTimeConstant * (std::exp(-To1 / heatPump.LatentCapacityTimeConstant) - 1.0); Error = std::abs((To2 - To1) / To1); To1 = To2; } // Adjust Sensible Heat Ratio (SHR) using Latent Heat Ratio (LHR) multiplier - // Floating underflow errors occur when -Ton/HPTimeConstant is a large negative number. + // Floating underflow errors occur when -Ton/LatentCapacityTimeConstant is a large negative number. // Cap lower limit at -700 to avoid the underflow errors. - aa = std::exp(max(-700.0, -Ton / heatPump.HPTimeConstant)); + aa = std::exp(max(-700.0, -Ton / heatPump.LatentCapacityTimeConstant)); // Calculate latent heat ratio multiplier - LHRmult = max(((Ton - To2) / (Ton + heatPump.HPTimeConstant * (aa - 1.0))), 0.0); + LHRmult = max(((Ton - To2) / (Ton + heatPump.LatentCapacityTimeConstant * (aa - 1.0))), 0.0); // Calculate part-load or "effective" sensible heat ratio SHReff = 1.0 - (1.0 - SHRss) * LHRmult; diff --git a/src/EnergyPlus/WaterToAirHeatPump.hh b/src/EnergyPlus/WaterToAirHeatPump.hh index 9ff35f3efce..c62e3a4fe35 100644 --- a/src/EnergyPlus/WaterToAirHeatPump.hh +++ b/src/EnergyPlus/WaterToAirHeatPump.hh @@ -80,41 +80,41 @@ namespace WaterToAirHeatPump { DataPlant::PlantEquipmentType WAHPType; // type of component in plant std::string Refrigerant; // Refrigerant name bool SimFlag; - Real64 InletAirMassFlowRate; // Inlet Air Mass Flow through the Water to Air Heat Pump being Simulated [kg/s] - Real64 OutletAirMassFlowRate; // Outlet Air Mass Flow through the Water to Air Heat Pump being Simulated [kg/s] - Real64 InletAirDBTemp; // Inlet Air Dry Bulb Temperature [C] - Real64 InletAirHumRat; // Inlet Air Humidity Ratio [kg/kg] - Real64 OutletAirDBTemp; // Outlet Air Dry Bulb Temperature [C] - Real64 OutletAirHumRat; // Outlet Air Humidity Ratio [kg/kg] - Real64 InletAirEnthalpy; // Inlet Air Enthalpy [J/kg] - Real64 OutletAirEnthalpy; // Outlet Air Enthalpy [J/kg] - Real64 InletWaterTemp; // Inlet Water Temperature [C] - Real64 OutletWaterTemp; // Outlet Water Temperature [C] - Real64 InletWaterMassFlowRate; // Inlet Water Mass Flow Rate [kg/s] - Real64 OutletWaterMassFlowRate; // Outlet Water Mass Flow Rate [kg/s] - Real64 DesignWaterMassFlowRate; // Design Water Mass Flow Rate [kg/s] - Real64 DesignWaterVolFlowRate; // Design Water Volumetric Flow Rate [m3/s] - Real64 InletWaterEnthalpy; // Inlet Water Enthalpy [J/kg] - Real64 OutletWaterEnthalpy; // Outlet Water Enthalpy [J/kg] - Real64 Power; // Power Consumption [W] - Real64 Energy; // Energy Consumption [J] - Real64 QSensible; // Sensible Load Side Heat Transfer Rate [W] - Real64 QLatent; // Latent Load Side Heat Transfer Rate [W] - Real64 QSource; // Source Side Heat Transfer Rate [W] - Real64 EnergySensible; // Sensible Load Side Heat Transferred [J] - Real64 EnergyLatent; // Latent Load Side Heat Transferred [J] - Real64 EnergySource; // Source Side Heat Transferred [J] - Real64 RunFrac; // Duty Factor - Real64 PartLoadRatio; // Part Load Ratio - Real64 HeatingCapacity; // Nominal Heating Capacity - Real64 CoolingCapacity; // Nominal Cooling Capacity - Real64 QLoadTotal; // Load Side Total Heat Transfer Rate [W] - Real64 EnergyLoadTotal; // Load Side Total Heat Transferred [J] - Real64 Twet_Rated; // Nominal Time for Condensate Removal to Begin [s] - Real64 Gamma_Rated; // Ratio of Initial Moisture Evaporation Rate and Steady-state Latent Capacity - Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant; // Heat pump time constant [s] - Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to + Real64 InletAirMassFlowRate; // Inlet Air Mass Flow through the Water to Air Heat Pump being Simulated [kg/s] + Real64 OutletAirMassFlowRate; // Outlet Air Mass Flow through the Water to Air Heat Pump being Simulated [kg/s] + Real64 InletAirDBTemp; // Inlet Air Dry Bulb Temperature [C] + Real64 InletAirHumRat; // Inlet Air Humidity Ratio [kg/kg] + Real64 OutletAirDBTemp; // Outlet Air Dry Bulb Temperature [C] + Real64 OutletAirHumRat; // Outlet Air Humidity Ratio [kg/kg] + Real64 InletAirEnthalpy; // Inlet Air Enthalpy [J/kg] + Real64 OutletAirEnthalpy; // Outlet Air Enthalpy [J/kg] + Real64 InletWaterTemp; // Inlet Water Temperature [C] + Real64 OutletWaterTemp; // Outlet Water Temperature [C] + Real64 InletWaterMassFlowRate; // Inlet Water Mass Flow Rate [kg/s] + Real64 OutletWaterMassFlowRate; // Outlet Water Mass Flow Rate [kg/s] + Real64 DesignWaterMassFlowRate; // Design Water Mass Flow Rate [kg/s] + Real64 DesignWaterVolFlowRate; // Design Water Volumetric Flow Rate [m3/s] + Real64 InletWaterEnthalpy; // Inlet Water Enthalpy [J/kg] + Real64 OutletWaterEnthalpy; // Outlet Water Enthalpy [J/kg] + Real64 Power; // Power Consumption [W] + Real64 Energy; // Energy Consumption [J] + Real64 QSensible; // Sensible Load Side Heat Transfer Rate [W] + Real64 QLatent; // Latent Load Side Heat Transfer Rate [W] + Real64 QSource; // Source Side Heat Transfer Rate [W] + Real64 EnergySensible; // Sensible Load Side Heat Transferred [J] + Real64 EnergyLatent; // Latent Load Side Heat Transferred [J] + Real64 EnergySource; // Source Side Heat Transferred [J] + Real64 RunFrac; // Duty Factor + Real64 PartLoadRatio; // Part Load Ratio + Real64 HeatingCapacity; // Nominal Heating Capacity + Real64 CoolingCapacity; // Nominal Cooling Capacity + Real64 QLoadTotal; // Load Side Total Heat Transfer Rate [W] + Real64 EnergyLoadTotal; // Load Side Total Heat Transferred [J] + Real64 Twet_Rated; // Nominal Time for Condensate Removal to Begin [s] + Real64 Gamma_Rated; // Ratio of Initial Moisture Evaporation Rate and Steady-state Latent Capacity + Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] + Real64 LatentCapacityTimeConstant; // Latent capacity time constant [s] + Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to // shut off after compressor cycle off [s] Real64 SourceSideUACoeff; // Source Side Heat Transfer coefficient [W/C] Real64 LoadSideTotalUACoeff; // Load Side Total Heat Transfer coefficient [W/C] @@ -132,6 +132,7 @@ namespace WaterToAirHeatPump { // Pressure Ratio and Leakage Rate [~] Real64 SourceSideHTR1; // Source Side Heat Transfer Resistance coefficient 1 [~] Real64 SourceSideHTR2; // Source Side Heat Transfer Resistance coefficient 2 [k/kW] + int PLFCurveIndex = 0; // Index of the Part Load Factor curve Real64 HighPressCutoff; // High Pressure Cut-off [Pa] Real64 LowPressCutoff; // Low Pressure Cut-off [Pa] CompressorType compressorType; // Type of Compressor ie. Reciprocating,Rotary or Scroll @@ -153,7 +154,7 @@ namespace WaterToAirHeatPump { DesignWaterVolFlowRate(0.0), InletWaterEnthalpy(0.0), OutletWaterEnthalpy(0.0), Power(0.0), Energy(0.0), QSensible(0.0), QLatent(0.0), QSource(0.0), EnergySensible(0.0), EnergyLatent(0.0), EnergySource(0.0), RunFrac(0.0), PartLoadRatio(0.0), HeatingCapacity(0.0), CoolingCapacity(0.0), QLoadTotal(0.0), EnergyLoadTotal(0.0), Twet_Rated(0.0), Gamma_Rated(0.0), MaxONOFFCyclesperHour(0.0), - HPTimeConstant(0.0), FanDelayTime(0.0), SourceSideUACoeff(0.0), LoadSideTotalUACoeff(0.0), LoadSideOutsideUACoeff(0.0), + LatentCapacityTimeConstant(0.0), FanDelayTime(0.0), SourceSideUACoeff(0.0), LoadSideTotalUACoeff(0.0), LoadSideOutsideUACoeff(0.0), CompPistonDisp(0.0), CompClearanceFactor(0.0), CompSucPressDrop(0.0), SuperheatTemp(0.0), PowerLosses(0.0), LossFactor(0.0), RefVolFlowRate(0.0), VolumeRatio(0.0), LeakRateCoeff(0.0), SourceSideHTR1(0.0), SourceSideHTR2(0.0), HighPressCutoff(0.0), LowPressCutoff(0.0), compressorType(CompressorType::Invalid), AirInletNodeNum(0), AirOutletNodeNum(0), WaterInletNodeNum(0), @@ -170,10 +171,6 @@ namespace WaterToAirHeatPump { Real64 const DesignAirflow, // design air flow rate int const CyclingScheme, // cycling scheme--either continuous fan/cycling compressor or bool const FirstHVACIteration, // first iteration flag - Real64 const RuntimeFrac, // compressor run time fraction - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to bool const InitFlag, // initialization flag used to suppress property routine errors Real64 const SensLoad, // sensible load Real64 const LatentLoad, // latent load @@ -185,9 +182,6 @@ namespace WaterToAirHeatPump { void InitWatertoAirHP(EnergyPlusData &state, int const HPNum, // index to main heat pump data structure bool const InitFlag, - Real64 const MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 const HPTimeConstant, // Heat pump time constant [s] - Real64 const FanDelayTime, // Fan delay time, time delay for the HP's fan to Real64 const SensLoad, Real64 const LatentLoad, Real64 const DesignAirFlow, @@ -197,8 +191,7 @@ namespace WaterToAirHeatPump { int const HPNum, // heat pump number int const CyclingScheme, // fan/compressor cycling scheme indicator bool const FirstHVACIteration, // first iteration flag - Real64 const RuntimeFrac, - bool const InitFlag, // suppress property errors if true + bool const InitFlag, // suppress property errors if true Real64 const SensDemand, DataHVACGlobals::CompressorOperation CompressorOp, Real64 const PartLoadRatio); @@ -207,8 +200,7 @@ namespace WaterToAirHeatPump { int const HPNum, // heat pump number int const CyclingScheme, // fan/compressor cycling scheme indicator bool const FirstHVACIteration, // first iteration flag - Real64 const RuntimeFrac, - bool const InitFlag, // first iteration flag + bool const InitFlag, // first iteration flag Real64 const SensDemand, DataHVACGlobals::CompressorOperation CompressorOp, Real64 const PartLoadRatio); diff --git a/src/EnergyPlus/WaterToAirHeatPumpSimple.cc b/src/EnergyPlus/WaterToAirHeatPumpSimple.cc index f17fd350d41..edbf5a9c21c 100644 --- a/src/EnergyPlus/WaterToAirHeatPumpSimple.cc +++ b/src/EnergyPlus/WaterToAirHeatPumpSimple.cc @@ -111,15 +111,11 @@ namespace WaterToAirHeatPumpSimple { constexpr std::array(WatertoAirHP::Num)> WatertoAirHPNamesUC{"HEATING", "COOLING"}; void SimWatertoAirHPSimple(EnergyPlusData &state, - std::string_view CompName, // Coil Name - int &CompIndex, // Index for Component name - Real64 const SensLoad, // Sensible demand load [W] - Real64 const LatentLoad, // Latent demand load [W] - int const CyclingScheme, // Continuous fan OR cycling compressor - Real64 const RuntimeFrac, // Compressor run time fraction or - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to + std::string_view CompName, // Coil Name + int &CompIndex, // Index for Component name + Real64 const SensLoad, // Sensible demand load [W] + Real64 const LatentLoad, // Latent demand load [W] + int const CyclingScheme, // Continuous fan OR cycling compressor DataHVACGlobals::CompressorOperation const CompressorOp, Real64 const PartLoadRatio, bool const FirstHVACIteration, @@ -185,31 +181,13 @@ namespace WaterToAirHeatPumpSimple { if (simpleWAHP.WAHPPlantType == DataPlant::PlantEquipmentType::CoilWAHPCoolingEquationFit) { // Cooling mode - InitSimpleWatertoAirHP(state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); UpdateSimpleWatertoAirHP(state, HPNum); } else if (simpleWAHP.WAHPPlantType == DataPlant::PlantEquipmentType::CoilWAHPHeatingEquationFit) { // Heating mode - InitSimpleWatertoAirHP(state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - DataPrecisionGlobals::constant_zero, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(state, HPNum, SensLoad, DataPrecisionGlobals::constant_zero, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); UpdateSimpleWatertoAirHP(state, HPNum); } else { ShowFatalError(state, "SimWatertoAirHPSimple: WatertoAir heatpump not in either HEATING or COOLING mode"); @@ -320,15 +298,13 @@ namespace WaterToAirHeatPumpSimple { simpleWAHP.WAHPType = WatertoAirHP::Cooling; simpleWAHP.WAHPPlantType = DataPlant::PlantEquipmentType::CoilWAHPCoolingEquationFit; simpleWAHP.RatedAirVolFlowRate = NumArray(1); - simpleWAHP.RatedEvapFanPowerPerVolFlowRate2017 = NumArray(2); - simpleWAHP.RatedEvapFanPowerPerVolFlowRate2023 = NumArray(3); - simpleWAHP.RatedWaterVolFlowRate = NumArray(4); - simpleWAHP.RatedCapCoolTotal = NumArray(5); - simpleWAHP.RatedCapCoolSens = NumArray(6); - simpleWAHP.RatedCOPCoolAtRatedCdts = NumArray(7); - simpleWAHP.RatedEntWaterTemp = NumArray(8); - simpleWAHP.RatedEntAirDrybulbTemp = NumArray(9); - simpleWAHP.RatedEntAirWetbulbTemp = NumArray(10); + simpleWAHP.RatedWaterVolFlowRate = NumArray(2); + simpleWAHP.RatedCapCoolTotal = NumArray(3); + simpleWAHP.RatedCapCoolSens = NumArray(4); + simpleWAHP.RatedCOPCoolAtRatedCdts = NumArray(5); + simpleWAHP.RatedEntWaterTemp = NumArray(6); + simpleWAHP.RatedEntAirDrybulbTemp = NumArray(7); + simpleWAHP.RatedEntAirWetbulbTemp = NumArray(8); simpleWAHP.TotalCoolCapCurveIndex = Curve::GetCurveIndex(state, AlphArray(6)); // convert curve name to number simpleWAHP.SensCoolCapCurveIndex = Curve::GetCurveIndex(state, AlphArray(7)); // convert curve name to number simpleWAHP.CoolPowCurveIndex = Curve::GetCurveIndex(state, AlphArray(8)); // convert curve name to number @@ -386,9 +362,74 @@ namespace WaterToAirHeatPumpSimple { simpleWAHP.Name, "Cooling Power Consumption Curve Name"); } + simpleWAHP.PLFCurveIndex = Curve::GetCurveIndex(state, AlphArray(9)); // convert curve name to number + + if (simpleWAHP.PLFCurveIndex == 0) { + if (lAlphaBlanks(9)) { + ShowSevereError(state, format("{}{}=\"{}\", missing", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...required {} is blank.", cAlphaFields(9))); + } else { + ShowSevereError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...not found {}=\"{}\".", cAlphaFields(9), AlphArray(9))); + } + ErrorsFound = true; + } else { + // Verify Curve Object, only legal types are Quadratic or Cubic + ErrorsFound |= Curve::CheckCurveDims(state, + simpleWAHP.PLFCurveIndex, // Curve index + {1}, // Valid dimensions + RoutineName, // Routine name + CurrentModuleObject, // Object Type + simpleWAHP.Name, // Object Name + cAlphaFields(9)); // Field Name + + if (!ErrorsFound) { + // Test PLF curve minimum and maximum. Cap if less than 0.7 or greater than 1.0. + Real64 MinCurveVal = 999.0; + Real64 MaxCurveVal = -999.0; + Real64 CurveInput = 0.0; + Real64 MinCurvePLR{0.0}; + Real64 MaxCurvePLR{0.0}; + + while (CurveInput <= 1.0) { + Real64 CurveVal = Curve::CurveValue(state, simpleWAHP.PLFCurveIndex, CurveInput); + if (CurveVal < MinCurveVal) { + MinCurveVal = CurveVal; + MinCurvePLR = CurveInput; + } + if (CurveVal > MaxCurveVal) { + MaxCurveVal = CurveVal; + MaxCurvePLR = CurveInput; + } + CurveInput += 0.01; + } + if (MinCurveVal < 0.7) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...{}=\"{}\" has out of range values.", cAlphaFields(9), AlphArray(9))); + ShowContinueError(state, + format("...Curve minimum must be >= 0.7, curve min at PLR = {:.2T} is {:.3T}", MinCurvePLR, MinCurveVal)); + ShowContinueError(state, "...Setting curve minimum to 0.7 and simulation continues."); + Curve::SetCurveOutputMinValue(state, simpleWAHP.PLFCurveIndex, ErrorsFound, 0.7); + } + + if (MaxCurveVal > 1.0) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...{} = {} has out of range value.", cAlphaFields(9), AlphArray(9))); + ShowContinueError(state, + format("...Curve maximum must be <= 1.0, curve max at PLR = {:.2T} is {:.3T}", MaxCurvePLR, MaxCurveVal)); + ShowContinueError(state, "...Setting curve maximum to 1.0 and simulation continues."); + Curve::SetCurveOutputMaxValue(state, simpleWAHP.PLFCurveIndex, ErrorsFound, 1.0); + } + } + } + CheckSimpleWAHPRatedCurvesOutputs(state, simpleWAHP.Name); - simpleWAHP.Twet_Rated = NumArray(11); - simpleWAHP.Gamma_Rated = NumArray(12); + simpleWAHP.Twet_Rated = NumArray(9); + simpleWAHP.Gamma_Rated = NumArray(10); + simpleWAHP.MaxONOFFCyclesperHour = NumArray(11); + simpleWAHP.LatentCapacityTimeConstant = NumArray(12); + simpleWAHP.FanDelayTime = NumArray(13); + state.dataHeatBal->HeatReclaimSimple_WAHPCoil(WatertoAirHPNum).Name = simpleWAHP.Name; state.dataHeatBal->HeatReclaimSimple_WAHPCoil(WatertoAirHPNum).SourceType = CurrentModuleObject; @@ -565,6 +606,68 @@ namespace WaterToAirHeatPumpSimple { simpleWAHP.Name, "Heating Power Consumption Curve Name"); } + + simpleWAHP.PLFCurveIndex = Curve::GetCurveIndex(state, AlphArray(8)); // convert curve name to number + + if (simpleWAHP.PLFCurveIndex == 0) { + if (lAlphaBlanks(8)) { + ShowSevereError(state, format("{}{}=\"{}\", missing", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...required {} is blank.", cAlphaFields(8))); + } else { + ShowSevereError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...not found {}=\"{}\".", cAlphaFields(8), AlphArray(8))); + } + ErrorsFound = true; + } else { + // Verify Curve Object, only legal types are Quadratic or Cubic + ErrorsFound |= Curve::CheckCurveDims(state, + simpleWAHP.PLFCurveIndex, // Curve index + {1}, // Valid dimensions + RoutineName, // Routine name + CurrentModuleObject, // Object Type + simpleWAHP.Name, // Object Name + cAlphaFields(8)); // Field Name + + if (!ErrorsFound) { + // Test PLF curve minimum and maximum. Cap if less than 0.7 or greater than 1.0. + Real64 MinCurveVal = 999.0; + Real64 MaxCurveVal = -999.0; + Real64 CurveInput = 0.0; + Real64 MinCurvePLR{0.0}; + Real64 MaxCurvePLR{0.0}; + + while (CurveInput <= 1.0) { + Real64 CurveVal = Curve::CurveValue(state, simpleWAHP.PLFCurveIndex, CurveInput); + if (CurveVal < MinCurveVal) { + MinCurveVal = CurveVal; + MinCurvePLR = CurveInput; + } + if (CurveVal > MaxCurveVal) { + MaxCurveVal = CurveVal; + MaxCurvePLR = CurveInput; + } + CurveInput += 0.01; + } + if (MinCurveVal < 0.7) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...{}=\"{}\" has out of range values.", cAlphaFields(8), AlphArray(8))); + ShowContinueError(state, + format("...Curve minimum must be >= 0.7, curve min at PLR = {:.2T} is {:.3T}", MinCurvePLR, MinCurveVal)); + ShowContinueError(state, "...Setting curve minimum to 0.7 and simulation continues."); + Curve::SetCurveOutputMinValue(state, simpleWAHP.PLFCurveIndex, ErrorsFound, 0.7); + } + + if (MaxCurveVal > 1.0) { + ShowWarningError(state, format("{}{}=\"{}\", invalid", RoutineName, CurrentModuleObject, simpleWAHP.Name)); + ShowContinueError(state, format("...{} = {} has out of range value.", cAlphaFields(8), AlphArray(8))); + ShowContinueError(state, + format("...Curve maximum must be <= 1.0, curve max at PLR = {:.2T} is {:.3T}", MaxCurvePLR, MaxCurveVal)); + ShowContinueError(state, "...Setting curve maximum to 1.0 and simulation continues."); + Curve::SetCurveOutputMaxValue(state, simpleWAHP.PLFCurveIndex, ErrorsFound, 1.0); + } + } + } + CheckSimpleWAHPRatedCurvesOutputs(state, simpleWAHP.Name); simpleWAHP.WaterInletNodeNum = GetOnlySingleNode(state, AlphArray(2), @@ -886,9 +989,6 @@ namespace WaterToAirHeatPumpSimple { void InitSimpleWatertoAirHP(EnergyPlusData &state, int const HPNum, // Current HPNum under simulation - Real64 const MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 const HPTimeConstant, // Heat pump time constant [s] - Real64 const FanDelayTime, // Fan delay time, time delay for the HP's fan to Real64 const SensLoad, // Control zone sensible load[W] Real64 const LatentLoad, // Control zone latent load[W] [[maybe_unused]] int const CyclingScheme, // fan operating mode @@ -1037,9 +1137,6 @@ namespace WaterToAirHeatPumpSimple { simpleWatertoAirHP.COP = 0.0; simpleWatertoAirHP.RunFrac = 0.0; simpleWatertoAirHP.PartLoadRatio = 0.0; - simpleWatertoAirHP.MaxONOFFCyclesperHour = MaxONOFFCyclesperHour; - simpleWatertoAirHP.HPTimeConstant = HPTimeConstant; - simpleWatertoAirHP.FanDelayTime = FanDelayTime; if (simpleWatertoAirHP.RatedWaterVolFlowRate != DataSizing::AutoSize) { rho = FluidProperties::GetDensityGlycol(state, @@ -1160,10 +1257,6 @@ namespace WaterToAirHeatPumpSimple { simpleWatertoAirHP.OutletWaterTemp = simpleWatertoAirHP.InletWaterTemp; simpleWatertoAirHP.OutletWaterEnthalpy = simpleWatertoAirHP.InletWaterEnthalpy; - simpleWatertoAirHP.MaxONOFFCyclesperHour = MaxONOFFCyclesperHour; - simpleWatertoAirHP.HPTimeConstant = HPTimeConstant; - simpleWatertoAirHP.FanDelayTime = FanDelayTime; - // Outlet variables simpleWatertoAirHP.Power = 0.0; simpleWatertoAirHP.QLoadTotal = 0.0; @@ -2973,11 +3066,10 @@ namespace WaterToAirHeatPumpSimple { } void CalcHPCoolingSimple(EnergyPlusData &state, - int const HPNum, // Heat Pump Number - int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 const RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) - [[maybe_unused]] Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 - [[maybe_unused]] Real64 const LatentDemand, // Cooling Latent Demand [W] + int const HPNum, // Heat Pump Number + int const CyclingScheme, // Fan/Compressor cycling scheme indicator + [[maybe_unused]] Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 + [[maybe_unused]] Real64 const LatentDemand, // Cooling Latent Demand [W] DataHVACGlobals::CompressorOperation const CompressorOp, // compressor operation flag Real64 const PartLoadRatio, // compressor part load ratio [[maybe_unused]] Real64 const OnOffAirFlowRatio // ratio of compressor on flow to average flow over time step @@ -3111,10 +3203,20 @@ namespace WaterToAirHeatPumpSimple { return; } + // Calculate Part Load Factor and Runtime Fraction + Real64 PLF = 1.0; // part load factor as a function of PLR, RTF = PLR / PLF + if (simpleWatertoAirHP.PLFCurveIndex > 0) { + PLF = Curve::CurveValue(state, simpleWatertoAirHP.PLFCurveIndex, PartLoadRatio); // Calculate part-load factor + } + if (CyclingScheme == DataHVACGlobals::CycFanCycCoil) { + state.dataHVACGlobal->OnOffFanPartLoadFraction = PLF; + } + simpleWatertoAirHP.RunFrac = PartLoadRatio / PLF; + // Loop the calculation at least once depending whether the latent degradation model // is enabled. 1st iteration to calculate the QLatent(rated) at (TDB,TWB)indoorair=(26.7C,19.4C) // and 2nd iteration to calculate the QLatent(actual) - if ((RuntimeFrac >= 1.0) || (Twet_Rated <= 0.0) || (Gamma_Rated <= 0.0)) { + if ((simpleWatertoAirHP.RunFrac >= 1.0) || (Twet_Rated <= 0.0) || (Gamma_Rated <= 0.0)) { LatDegradModelSimFlag = false; // Set NumIteration=1 so that latent model would quit after 1 simulation with the actual condition NumIteration = 1; @@ -3189,7 +3291,7 @@ namespace WaterToAirHeatPumpSimple { HPNum, SHRss, CyclingScheme, - RuntimeFrac, + simpleWatertoAirHP.RunFrac, state.dataWaterToAirHeatPumpSimple->QLatRated, state.dataWaterToAirHeatPumpSimple->QLatActual, state.dataWaterToAirHeatPumpSimple->LoadSideInletDBTemp, @@ -3233,7 +3335,7 @@ namespace WaterToAirHeatPumpSimple { Psychrometrics::PsyHFnTdbW(simpleWatertoAirHP.OutletAirDBTemp, simpleWatertoAirHP.OutletAirHumRat)); // Why doesn't this match QLoadTotal? simpleWatertoAirHP.QSensible *= PartLoadRatio; - state.dataWaterToAirHeatPumpSimple->Winput *= RuntimeFrac; + state.dataWaterToAirHeatPumpSimple->Winput *= simpleWatertoAirHP.RunFrac; simpleWatertoAirHP.QSource = simpleWatertoAirHP.QLoadTotalReport + state.dataWaterToAirHeatPumpSimple->Winput; state.dataHeatBal->HeatReclaimSimple_WAHPCoil(HPNum).AvailCapacity = simpleWatertoAirHP.QSource; @@ -3257,12 +3359,11 @@ namespace WaterToAirHeatPumpSimple { simpleWatertoAirHP.EnergySensible = simpleWatertoAirHP.QSensible * TimeStepSysSec; simpleWatertoAirHP.EnergyLatent = (simpleWatertoAirHP.QLoadTotalReport - simpleWatertoAirHP.QSensible) * TimeStepSysSec; simpleWatertoAirHP.EnergySource = simpleWatertoAirHP.QSource * TimeStepSysSec; - if (RuntimeFrac == 0.0) { + if (simpleWatertoAirHP.RunFrac == 0.0) { simpleWatertoAirHP.COP = 0.0; } else { simpleWatertoAirHP.COP = simpleWatertoAirHP.QLoadTotalReport / state.dataWaterToAirHeatPumpSimple->Winput; } - simpleWatertoAirHP.RunFrac = RuntimeFrac; simpleWatertoAirHP.PartLoadRatio = PartLoadRatio; if ((simpleWatertoAirHP.WaterCyclingMode) == DataHVACGlobals::WaterCycling) { @@ -3304,7 +3405,6 @@ namespace WaterToAirHeatPumpSimple { void CalcHPHeatingSimple(EnergyPlusData &state, int const HPNum, // Heat Pump Number int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 const RuntimeFrac, // Runtime Fraction of compressor [[maybe_unused]] Real64 const SensDemand, // Sensible Demand [W] !unused1208 DataHVACGlobals::CompressorOperation const CompressorOp, // compressor operation flag Real64 const PartLoadRatio, // compressor part load ratio @@ -3405,6 +3505,16 @@ namespace WaterToAirHeatPumpSimple { return; } + // Calculate Part Load Factor and Runtime Fraction + Real64 PLF = 1.0; // part load factor as a function of PLR, RTF = PLR / PLF + if (simpleWatertoAirHP.PLFCurveIndex > 0) { + PLF = Curve::CurveValue(state, simpleWatertoAirHP.PLFCurveIndex, PartLoadRatio); // Calculate part-load factor + } + if (CyclingScheme == DataHVACGlobals::CycFanCycCoil) { + state.dataHVACGlobal->OnOffFanPartLoadFraction = PLF; + } + simpleWatertoAirHP.RunFrac = PartLoadRatio / PLF; + ratioTDB = ((state.dataWaterToAirHeatPumpSimple->LoadSideInletDBTemp + state.dataWaterToAirHeatPumpSimple->CelsiustoKelvin) / Tref); ratioTS = ((state.dataWaterToAirHeatPumpSimple->SourceSideInletTemp + state.dataWaterToAirHeatPumpSimple->CelsiustoKelvin) / Tref); ratioVL = (LoadSideFullMassFlowRate / @@ -3451,7 +3561,7 @@ namespace WaterToAirHeatPumpSimple { simpleWatertoAirHP.QLoadTotal *= PartLoadRatio; simpleWatertoAirHP.QLoadTotalReport = simpleWatertoAirHP.QLoadTotal; simpleWatertoAirHP.QSensible *= PartLoadRatio; - state.dataWaterToAirHeatPumpSimple->Winput *= RuntimeFrac; + state.dataWaterToAirHeatPumpSimple->Winput *= simpleWatertoAirHP.RunFrac; simpleWatertoAirHP.QSource = simpleWatertoAirHP.QLoadTotalReport - state.dataWaterToAirHeatPumpSimple->Winput; // Add power to global variable so power can be summed by parent object @@ -3466,12 +3576,11 @@ namespace WaterToAirHeatPumpSimple { simpleWatertoAirHP.EnergySensible = simpleWatertoAirHP.QSensible * TimeStepSysSec; simpleWatertoAirHP.EnergyLatent = 0.0; simpleWatertoAirHP.EnergySource = simpleWatertoAirHP.QSource * TimeStepSysSec; - if (RuntimeFrac == 0.0) { + if (simpleWatertoAirHP.RunFrac == 0.0) { simpleWatertoAirHP.COP = 0.0; } else { simpleWatertoAirHP.COP = simpleWatertoAirHP.QLoadTotalReport / state.dataWaterToAirHeatPumpSimple->Winput; } - simpleWatertoAirHP.RunFrac = RuntimeFrac; simpleWatertoAirHP.PartLoadRatio = PartLoadRatio; if ((simpleWatertoAirHP.WaterCyclingMode) == DataHVACGlobals::WaterCycling) { @@ -3676,12 +3785,12 @@ namespace WaterToAirHeatPumpSimple { // at the current operating conditions (sec) Real64 Gamma; // Initial moisture evaporation rate divided by steady-state AC latent capacity // at the current operating conditions - Real64 Twet_Rated; // Twet at rated conditions (coil air flow rate and air temperatures), sec - Real64 Gamma_Rated; // Gamma at rated conditions (coil air flow rate and air temperatures) - Real64 Twet_max; // Maximum allowed value for Twet - Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant; // Heat pump time constant [s] - Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to + Real64 Twet_Rated; // Twet at rated conditions (coil air flow rate and air temperatures), sec + Real64 Gamma_Rated; // Gamma at rated conditions (coil air flow rate and air temperatures) + Real64 Twet_max; // Maximum allowed value for Twet + Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr] + Real64 LatentCapacityTimeConstant; // Latent capacity time constant [s] + Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to // shut off after compressor cycle off [s] Real64 Ton; // Coil on time (sec) Real64 Toff; // Coil off time (sec) @@ -3697,14 +3806,14 @@ namespace WaterToAirHeatPumpSimple { Twet_Rated = simpleWatertoAirHP.Twet_Rated; Gamma_Rated = simpleWatertoAirHP.Gamma_Rated; MaxONOFFCyclesperHour = simpleWatertoAirHP.MaxONOFFCyclesperHour; - HPTimeConstant = simpleWatertoAirHP.HPTimeConstant; + LatentCapacityTimeConstant = simpleWatertoAirHP.LatentCapacityTimeConstant; FanDelayTime = simpleWatertoAirHP.FanDelayTime; // No moisture evaporation (latent degradation) occurs for runtime fraction of 1.0 // All latent degradation model parameters cause divide by 0.0 if not greater than 0.0 // Latent degradation model parameters initialize to 0.0 meaning no evaporation model used. if ((RTF >= 1.0) || (QLatRated == 0.0) || (QLatActual == 0.0) || (Twet_Rated <= 0.0) || (Gamma_Rated <= 0.0) || - (MaxONOFFCyclesperHour <= 0.0) || (HPTimeConstant <= 0.0) || (RTF <= 0.0)) { + (MaxONOFFCyclesperHour <= 0.0) || (LatentCapacityTimeConstant <= 0.0) || (RTF <= 0.0)) { SHReff = SHRss; return SHReff; } @@ -3738,20 +3847,20 @@ namespace WaterToAirHeatPumpSimple { // Use sucessive substitution to solve for To aa = (Gamma * Toffa) - (0.25 / Twet) * pow_2(Gamma) * pow_2(Toffa); - To1 = aa + HPTimeConstant; + To1 = aa + LatentCapacityTimeConstant; Error = 1.0; while (Error > 0.001) { - To2 = aa - HPTimeConstant * (std::exp(-To1 / HPTimeConstant) - 1.0); + To2 = aa - LatentCapacityTimeConstant * (std::exp(-To1 / LatentCapacityTimeConstant) - 1.0); Error = std::abs((To2 - To1) / To1); To1 = To2; } // Adjust Sensible Heat Ratio (SHR) using Latent Heat Ratio (LHR) multiplier - // Floating underflow errors occur when -Ton/HPTimeConstant is a large negative number. + // Floating underflow errors occur when -Ton/LatentCapacityTimeConstant is a large negative number. // Cap lower limit at -700 to avoid the underflow errors. - aa = std::exp(max(-700.0, -Ton / HPTimeConstant)); + aa = std::exp(max(-700.0, -Ton / LatentCapacityTimeConstant)); // Calculate latent heat ratio multiplier - LHRmult = max(((Ton - To2) / (Ton + HPTimeConstant * (aa - 1.0))), 0.0); + LHRmult = max(((Ton - To2) / (Ton + LatentCapacityTimeConstant * (aa - 1.0))), 0.0); // Calculate part-load or "effective" sensible heat ratio SHReff = 1.0 - (1.0 - SHRss) * LHRmult; diff --git a/src/EnergyPlus/WaterToAirHeatPumpSimple.hh b/src/EnergyPlus/WaterToAirHeatPumpSimple.hh index 93720291edf..c70666530bd 100644 --- a/src/EnergyPlus/WaterToAirHeatPumpSimple.hh +++ b/src/EnergyPlus/WaterToAirHeatPumpSimple.hh @@ -91,53 +91,52 @@ namespace WaterToAirHeatPumpSimple { Real64 WaterVolFlowRate = 0.0; // Water Volumetric Flow Rate [m3/s] Real64 WaterMassFlowRate = 0.0; // Water Mass Flow Rate [kg/s] Real64 DesignWaterMassFlowRate = 0.0; - Real64 InletWaterTemp = 0.0; // Inlet Water Temperature [C] - Real64 InletWaterEnthalpy = 0.0; // Inlet Water Enthalpy [J/kg] - Real64 OutletWaterTemp = 0.0; // Outlet Water Temperature [C] - Real64 OutletWaterEnthalpy = 0.0; // Outlet Water Enthalpy [J/kg] - Real64 Power = 0.0; // Power Consumption [W] - Real64 QLoadTotal = 0.0; // Load Side Total Heat Transfer Rate [W] - Real64 QLoadTotalReport = 0.0; // Load side total heat transfer rate for reporting[W] - Real64 QSensible = 0.0; // Sensible Load Side Heat Transfer Rate [W] - Real64 QLatent = 0.0; // Latent Load Side Heat Transfer Rate [W] - Real64 QSource = 0.0; // Source Side Heat Transfer Rate [W] - Real64 Energy = 0.0; // Energy Consumption [J] - Real64 EnergyLoadTotal = 0.0; // Load Side Total Heat Transferred [J] - Real64 EnergySensible = 0.0; // Sensible Load Side Heat Transferred [J] - Real64 EnergyLatent = 0.0; // Latent Load Side Heat Transferred [J] - Real64 EnergySource = 0.0; // Source Side Heat Transferred [J] - Real64 COP = 0.0; // Heat Pump Coefficient of Performance [-] - Real64 RunFrac = 0.0; // Duty Factor - Real64 PartLoadRatio = 0.0; // Part Load Ratio - Real64 RatedWaterVolFlowRate = 0.0; // Rated Water Volumetric Flow Rate [m3/s] - Real64 RatedAirVolFlowRate = 0.0; // Rated Air Volumetric Flow Rate [m3/s] - Real64 RatedEvapFanPowerPerVolFlowRate2017 = 0.0; // 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)] - Real64 RatedEvapFanPowerPerVolFlowRate2023 = 0.0; // 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)] - Real64 RatedCapHeat = 0.0; // Rated Heating Capacity [W] - Real64 RatedCapHeatAtRatedCdts = 0.0; // Rated Heating Capacity at Rated Conditions [W] - Real64 RatedCapCoolAtRatedCdts = 0.0; // Rated Cooling Capacity at Rated Conditions [W] - Real64 RatedCapCoolSensDesAtRatedCdts = 0.0; // Rated Sensible Capacity at Rated Conditions [W] - Real64 RatedPowerHeat = 0.0; // Rated Heating Power Consumption [W] - Real64 RatedPowerHeatAtRatedCdts = 0.0; // Rated Heating Power Consumption at Rated Conditions[W] - Real64 RatedCOPHeatAtRatedCdts = 0.0; // Rated Heating COP at Rated Conditions [W/w] - Real64 RatedCapCoolTotal = 0.0; // Rated Total Cooling Capacity [W] - Real64 RatedCapCoolSens = 0.0; // Rated Sensible Cooling Capacity [W] - Real64 RatedPowerCool = 0.0; // Rated Cooling Power Consumption[W] - Real64 RatedPowerCoolAtRatedCdts = 0.0; // Rated Cooling Power Consumption at Rated Conditions [W] - Real64 RatedCOPCoolAtRatedCdts = 0.0; // Rated Cooling COP at Rated Conditions [W/W] - Real64 RatedEntWaterTemp = 0.0; // Rated Entering Water Temperature [C] - Real64 RatedEntAirWetbulbTemp = 0.0; // Rated Entering Air Wetbulb Temperature [C] - Real64 RatedEntAirDrybulbTemp = 0.0; // Rated Entering Air Drybulb Temperature [C] - Real64 RatioRatedHeatRatedTotCoolCap = 0.0; // Ratio of Rated Heating Capacity to Rated Cooling Capacity [-] - int HeatCapCurveIndex = 0; // Index of the heating capacity performance curve - int HeatPowCurveIndex = 0; // Index of the heating power consumption curve - int TotalCoolCapCurveIndex = 0; // Index of the Total Cooling capacity performance curve - int SensCoolCapCurveIndex = 0; // Index of the Sensible Cooling capacity performance curve - int CoolPowCurveIndex = 0; // Index of the Cooling power consumption curve - int AirInletNodeNum = 0; // Node Number of the Air Inlet - int AirOutletNodeNum = 0; // Node Number of the Air Outlet - int WaterInletNodeNum = 0; // Node Number of the Water Onlet - int WaterOutletNodeNum = 0; // Node Number of the Water Outlet + Real64 InletWaterTemp = 0.0; // Inlet Water Temperature [C] + Real64 InletWaterEnthalpy = 0.0; // Inlet Water Enthalpy [J/kg] + Real64 OutletWaterTemp = 0.0; // Outlet Water Temperature [C] + Real64 OutletWaterEnthalpy = 0.0; // Outlet Water Enthalpy [J/kg] + Real64 Power = 0.0; // Power Consumption [W] + Real64 QLoadTotal = 0.0; // Load Side Total Heat Transfer Rate [W] + Real64 QLoadTotalReport = 0.0; // Load side total heat transfer rate for reporting[W] + Real64 QSensible = 0.0; // Sensible Load Side Heat Transfer Rate [W] + Real64 QLatent = 0.0; // Latent Load Side Heat Transfer Rate [W] + Real64 QSource = 0.0; // Source Side Heat Transfer Rate [W] + Real64 Energy = 0.0; // Energy Consumption [J] + Real64 EnergyLoadTotal = 0.0; // Load Side Total Heat Transferred [J] + Real64 EnergySensible = 0.0; // Sensible Load Side Heat Transferred [J] + Real64 EnergyLatent = 0.0; // Latent Load Side Heat Transferred [J] + Real64 EnergySource = 0.0; // Source Side Heat Transferred [J] + Real64 COP = 0.0; // Heat Pump Coefficient of Performance [-] + Real64 RunFrac = 0.0; // Duty Factor + Real64 PartLoadRatio = 0.0; // Part Load Ratio + Real64 RatedWaterVolFlowRate = 0.0; // Rated Water Volumetric Flow Rate [m3/s] + Real64 RatedAirVolFlowRate = 0.0; // Rated Air Volumetric Flow Rate [m3/s] + Real64 RatedCapHeat = 0.0; // Rated Heating Capacity [W] + Real64 RatedCapHeatAtRatedCdts = 0.0; // Rated Heating Capacity at Rated Conditions [W] + Real64 RatedCapCoolAtRatedCdts = 0.0; // Rated Cooling Capacity at Rated Conditions [W] + Real64 RatedCapCoolSensDesAtRatedCdts = 0.0; // Rated Sensible Capacity at Rated Conditions [W] + Real64 RatedPowerHeat = 0.0; // Rated Heating Power Consumption [W] + Real64 RatedPowerHeatAtRatedCdts = 0.0; // Rated Heating Power Consumption at Rated Conditions[W] + Real64 RatedCOPHeatAtRatedCdts = 0.0; // Rated Heating COP at Rated Conditions [W/w] + Real64 RatedCapCoolTotal = 0.0; // Rated Total Cooling Capacity [W] + Real64 RatedCapCoolSens = 0.0; // Rated Sensible Cooling Capacity [W] + Real64 RatedPowerCool = 0.0; // Rated Cooling Power Consumption[W] + Real64 RatedPowerCoolAtRatedCdts = 0.0; // Rated Cooling Power Consumption at Rated Conditions [W] + Real64 RatedCOPCoolAtRatedCdts = 0.0; // Rated Cooling COP at Rated Conditions [W/W] + Real64 RatedEntWaterTemp = 0.0; // Rated Entering Water Temperature [C] + Real64 RatedEntAirWetbulbTemp = 0.0; // Rated Entering Air Wetbulb Temperature [C] + Real64 RatedEntAirDrybulbTemp = 0.0; // Rated Entering Air Drybulb Temperature [C] + Real64 RatioRatedHeatRatedTotCoolCap = 0.0; // Ratio of Rated Heating Capacity to Rated Cooling Capacity [-] + int HeatCapCurveIndex = 0; // Index of the heating capacity performance curve + int HeatPowCurveIndex = 0; // Index of the heating power consumption curve + int TotalCoolCapCurveIndex = 0; // Index of the Total Cooling capacity performance curve + int SensCoolCapCurveIndex = 0; // Index of the Sensible Cooling capacity performance curve + int CoolPowCurveIndex = 0; // Index of the Cooling power consumption curve + int PLFCurveIndex = 0; // Index of the Part Load Factor curve + int AirInletNodeNum = 0; // Node Number of the Air Inlet + int AirOutletNodeNum = 0; // Node Number of the Air Outlet + int WaterInletNodeNum = 0; // Node Number of the Water Onlet + int WaterOutletNodeNum = 0; // Node Number of the Water Outlet PlantLocation plantLoc; int WaterCyclingMode = 0; // Heat Pump Coil water flow mode; See definitions in DataHVACGlobals, // 1=water cycling, 2=water constant, 3=water constant on demand (old mode) @@ -154,22 +153,18 @@ namespace WaterToAirHeatPumpSimple { Real64 Twet_Rated = 0.0; // Nominal Time for Condensate Removal to Begin [s] Real64 Gamma_Rated = 0.0; // Ratio of Initial Moisture Evaporation Rate // and Steady-state Latent Capacity - Real64 MaxONOFFCyclesperHour = 0.0; // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant = 0.0; // Heat pump time constant [s] - Real64 FanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to - bool reportCoilFinalSizes = true; // one time report of sizes to coil report + Real64 MaxONOFFCyclesperHour = 0.0; // Maximum cycling rate of heat pump [cycles/hr] + Real64 LatentCapacityTimeConstant = 0.0; // Latent capcacity time constant [s] + Real64 FanDelayTime = 0.0; // Fan delay time, time delay for the HP's fan to + bool reportCoilFinalSizes = true; // one time report of sizes to coil report }; void SimWatertoAirHPSimple(EnergyPlusData &state, - std::string_view CompName, // Coil Name - int &CompIndex, // Index for Component name - Real64 const SensLoad, // Sensible demand load [W] - Real64 const LatentLoad, // Latent demand load [W] - int const CyclingScheme, // Continuous fan OR cycling compressor - Real64 const RuntimeFrac, // Compressor run time fraction or - Real64 &MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 &HPTimeConstant, // Heat pump time constant [s] - Real64 &FanDelayTime, // Fan delay time, time delay for the HP's fan to + std::string_view CompName, // Coil Name + int &CompIndex, // Index for Component name + Real64 const SensLoad, // Sensible demand load [W] + Real64 const LatentLoad, // Latent demand load [W] + int const CyclingScheme, // Continuous fan OR cycling compressor DataHVACGlobals::CompressorOperation CompressorOp, Real64 const PartLoadRatio, bool const FirstHVACIteration, @@ -185,25 +180,21 @@ namespace WaterToAirHeatPumpSimple { //****************************************************************************** void InitSimpleWatertoAirHP(EnergyPlusData &state, - int const HPNum, // Current HPNum under simulation - Real64 const MaxONOFFCyclesperHour, // Maximum cycling rate of heat pump [cycles/hr] - Real64 const HPTimeConstant, // Heat pump time constant [s] - Real64 const FanDelayTime, // Fan delay time, time delay for the HP's fan to - Real64 const SensLoad, // Control zone sensible load[W] - Real64 const LatentLoad, // Control zone latent load[W] - int const CyclingScheme, // fan operating mode - Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step - bool const FirstHVACIteration // Iteration flag + int const HPNum, // Current HPNum under simulation + Real64 const SensLoad, // Control zone sensible load[W] + Real64 const LatentLoad, // Control zone latent load[W] + int const CyclingScheme, // fan operating mode + Real64 const OnOffAirFlowRatio, // ratio of compressor on flow to average flow over time step + bool const FirstHVACIteration // Iteration flag ); void SizeHVACWaterToAir(EnergyPlusData &state, int const HPNum); void CalcHPCoolingSimple(EnergyPlusData &state, - int const HPNum, // Heat Pump Number - int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 const RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) - Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 - Real64 const LatentDemand, // Cooling Latent Demand [W] + int const HPNum, // Heat Pump Number + int const CyclingScheme, // Fan/Compressor cycling scheme indicator + Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 + Real64 const LatentDemand, // Cooling Latent Demand [W] DataHVACGlobals::CompressorOperation CompressorOp, // compressor operation flag Real64 const PartLoadRatio, // compressor part load ratio Real64 const OnOffAirFlowRatio // ratio of compressor on flow to average flow over time step @@ -212,7 +203,6 @@ namespace WaterToAirHeatPumpSimple { void CalcHPHeatingSimple(EnergyPlusData &state, int const HPNum, // Heat Pump Number int const CyclingScheme, // Fan/Compressor cycling scheme indicator - Real64 const RuntimeFrac, // Runtime Fraction of compressor Real64 const SensDemand, // Cooling Sensible Demand [W] !unused1208 DataHVACGlobals::CompressorOperation CompressorOp, // compressor operation flag Real64 const PartLoadRatio, // compressor part load ratio diff --git a/src/EnergyPlus/WindowAC.cc b/src/EnergyPlus/WindowAC.cc index 296238c83d5..2dd5a9fd39c 100644 --- a/src/EnergyPlus/WindowAC.cc +++ b/src/EnergyPlus/WindowAC.cc @@ -1388,20 +1388,14 @@ namespace WindowAC { state.dataWindowAC->WindAC(WindACNum).OpMode, HXUnitOn); } else if (state.dataWindowAC->WindAC(WindACNum).DXCoilType_Num == DataHVACGlobals::Coil_CoolingAirToAirVariableSpeed) { - Real64 QZnReq(-1.0); // Zone load (W), input to variable-speed DX coil - Real64 QLatReq(0.0); // Zone latent load, input to variable-speed DX coil - Real64 MaxONOFFCyclesperHour(4.0); // Maximum cycling rate of heat pump [cycles/hr] - Real64 HPTimeConstant(0.0); // Heat pump time constant [s] - Real64 FanDelayTime(0.0); // Fan delay time, time delay for the HP's fan to - Real64 OnOffAirFlowRatio(1.0); // ratio of compressor on flow to average flow over time step + Real64 QZnReq(-1.0); // Zone load (W), input to variable-speed DX coil + Real64 QLatReq(0.0); // Zone latent load, input to variable-speed DX coil + Real64 OnOffAirFlowRatio(1.0); // ratio of compressor on flow to average flow over time step VariableSpeedCoils::SimVariableSpeedCoils(state, state.dataWindowAC->WindAC(WindACNum).DXCoilName, state.dataWindowAC->WindAC(WindACNum).DXCoilIndex, state.dataWindowAC->WindAC(WindACNum).OpMode, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, DataHVACGlobals::CompressorOperation::On, PartLoadFrac, state.dataWindowAC->WindAC(WindACNum).DXCoilNumOfSpeeds, diff --git a/src/EnergyPlus/WindowComplexManager.cc b/src/EnergyPlus/WindowComplexManager.cc index 1cef3096fd7..726826b1efe 100644 --- a/src/EnergyPlus/WindowComplexManager.cc +++ b/src/EnergyPlus/WindowComplexManager.cc @@ -2714,7 +2714,6 @@ namespace WindowComplexManager { Real64 edgeGlCorrFac; Real64 SrdSurfTempAbs; // Absolute temperature of a surrounding surface - Real64 SrdSurfViewFac; // View factor of a surrounding surface Real64 OutSrdIR; // fill local vars @@ -2778,14 +2777,8 @@ namespace WindowComplexManager { OutSrdIR = 0; if (state.dataGlobal->AnyLocalEnvironmentsInModel) { if (state.dataSurface->Surface(SurfNum).SurfHasSurroundingSurfProperty) { - int SrdSurfsNum = state.dataSurface->Surface(SurfNum).SurfSurroundingSurfacesNum; - auto &SrdSurfsProperty = state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum); - for (int SrdSurfNum = 1; SrdSurfNum <= SrdSurfsProperty.TotSurroundingSurface; SrdSurfNum++) { - SrdSurfViewFac = SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).ViewFactor; - SrdSurfTempAbs = - GetCurrentScheduleValue(state, SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).TempSchNum) + Constant::KelvinConv; - OutSrdIR += Constant::StefanBoltzmann * SrdSurfViewFac * (pow_4(SrdSurfTempAbs)); - } + SrdSurfTempAbs = state.dataSurface->Surface(SurfNum).SrdSurfTemp + Constant::KelvinConv; + OutSrdIR = Constant::StefanBoltzmann * state.dataSurface->Surface(SurfNum).ViewFactorSrdSurfs * pow_4(SrdSurfTempAbs); } } if (state.dataSurface->Surface(SurfNum).ExtWind) { // Window is exposed to wind (and possibly rain) diff --git a/src/EnergyPlus/WindowEquivalentLayer.cc b/src/EnergyPlus/WindowEquivalentLayer.cc index 28008e21a01..5ca82bc9ad4 100644 --- a/src/EnergyPlus/WindowEquivalentLayer.cc +++ b/src/EnergyPlus/WindowEquivalentLayer.cc @@ -703,7 +703,6 @@ void EQLWindowSurfaceHeatBalance(EnergyPlusData &state, LayerType InSideLayerType; // interior shade type Real64 SrdSurfTempAbs; // Absolute temperature of a surrounding surface - Real64 SrdSurfViewFac; // View factor of a surrounding surface Real64 OutSrdIR; if (CalcCondition != DataBSDFWindow::Condition::Invalid) return; @@ -742,14 +741,8 @@ void EQLWindowSurfaceHeatBalance(EnergyPlusData &state, OutSrdIR = 0; if (state.dataGlobal->AnyLocalEnvironmentsInModel) { if (state.dataSurface->Surface(SurfNum).SurfHasSurroundingSurfProperty) { - int SrdSurfsNum = state.dataSurface->Surface(SurfNum).SurfSurroundingSurfacesNum; - auto &SrdSurfsProperty = state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum); - for (int SrdSurfNum = 1; SrdSurfNum <= SrdSurfsProperty.TotSurroundingSurface; SrdSurfNum++) { - SrdSurfViewFac = SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).ViewFactor; - SrdSurfTempAbs = - GetCurrentScheduleValue(state, SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).TempSchNum) + Constant::KelvinConv; - OutSrdIR += Constant::StefanBoltzmann * SrdSurfViewFac * (pow_4(SrdSurfTempAbs)); - } + SrdSurfTempAbs = state.dataSurface->Surface(SurfNum).SrdSurfTemp + Constant::KelvinConv; + OutSrdIR = Constant::StefanBoltzmann * state.dataSurface->Surface(SurfNum).ViewFactorSrdSurfs * pow_4(SrdSurfTempAbs); } } if (state.dataSurface->Surface(SurfNum).ExtWind) { // Window is exposed to wind (and possibly rain) diff --git a/src/EnergyPlus/WindowManager.cc b/src/EnergyPlus/WindowManager.cc index b6d8707b5dd..482d1191d6c 100644 --- a/src/EnergyPlus/WindowManager.cc +++ b/src/EnergyPlus/WindowManager.cc @@ -2149,7 +2149,6 @@ namespace WindowManager { Real64 Tright; Real64 SrdSurfTempAbs; // Absolute temperature of a surrounding surface - Real64 SrdSurfViewFac; // View factor of a surrounding surface Real64 OutSrdIR; // LWR from surrouding srfs // New variables for thermochromic windows calc @@ -2516,14 +2515,8 @@ namespace WindowManager { OutSrdIR = 0; if (state.dataGlobal->AnyLocalEnvironmentsInModel) { if (state.dataSurface->Surface(SurfNum).SurfHasSurroundingSurfProperty) { - int SrdSurfsNum = state.dataSurface->Surface(SurfNum).SurfSurroundingSurfacesNum; - auto &SrdSurfsProperty = state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum); - for (int SrdSurfNum = 1; SrdSurfNum <= SrdSurfsProperty.TotSurroundingSurface; SrdSurfNum++) { - SrdSurfViewFac = SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).ViewFactor; - SrdSurfTempAbs = - GetCurrentScheduleValue(state, SrdSurfsProperty.SurroundingSurfs(SrdSurfNum).TempSchNum) + Constant::KelvinConv; - OutSrdIR += state.dataWindowManager->sigma * SrdSurfViewFac * pow_4(SrdSurfTempAbs); - } + SrdSurfTempAbs = surface.SrdSurfTemp + Constant::KelvinConv; + OutSrdIR = state.dataWindowManager->sigma * surface.ViewFactorSrdSurfs * pow_4(SrdSurfTempAbs); } } if (surface.ExtWind) { // Window is exposed to wind (and possibly rain) @@ -2682,14 +2675,10 @@ namespace WindowManager { if (state.dataGlobal->AnyLocalEnvironmentsInModel) { if (state.dataSurface->Surface(SurfNum).SurfHasSurroundingSurfProperty) { - int SrdSurfsNum = state.dataSurface->Surface(SurfNum).SurfSurroundingSurfacesNum; - for (int SrdSurfNum = 1; SrdSurfNum <= state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).TotSurroundingSurface; SrdSurfNum++) { - SrdSurfViewFac = state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).SurroundingSurfs(SrdSurfNum).ViewFactor; - SrdSurfTempAbs = GetCurrentScheduleValue( - state, state.dataSurface->SurroundingSurfsProperty(SrdSurfsNum).SurroundingSurfs(SrdSurfNum).TempSchNum) + - Constant::KelvinConv; - rad_out_lw_srd_per_area += -emiss_sigma_product * SrdSurfViewFac * (Tsout_4 - pow_4(SrdSurfTempAbs)); - } + // update SurfHSrdSurfExt if the windows has exterior shade or blind + state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) = + Convect::SurroundingSurfacesRadCoeffAverage(state, SurfNum, Tsout, SurfOutsideEmiss); + rad_out_lw_srd_per_area = state.dataHeatBalSurf->SurfHSrdSurfExt(SurfNum) * (surface.SrdSurfTemp - SurfOutsideTemp); } } diff --git a/src/EnergyPlus/ZoneEquipmentManager.cc b/src/EnergyPlus/ZoneEquipmentManager.cc index 5418957db74..4723d8d3a34 100644 --- a/src/EnergyPlus/ZoneEquipmentManager.cc +++ b/src/EnergyPlus/ZoneEquipmentManager.cc @@ -484,7 +484,7 @@ void SizeZoneEquipment(EnergyPlusData &state) // set the DOAS mass flow rate and supply temperature and humidity ratio HR90H = PsyWFnTdbRhPb(state, calcZoneSizing.DOASHighSetpoint, 0.9, state.dataEnvrn->StdBaroPress); HR90L = PsyWFnTdbRhPb(state, calcZoneSizing.DOASLowSetpoint, 0.9, state.dataEnvrn->StdBaroPress); - DOASMassFlowRate = state.dataSize->CalcFinalZoneSizing(ControlledZoneNum).MinOA; + DOASMassFlowRate = state.dataSize->CalcFinalZoneSizing(ControlledZoneNum).MinOA * state.dataEnvrn->StdRhoAir; CalcDOASSupCondsForSizing(state, state.dataEnvrn->OutDryBulbTemp, state.dataEnvrn->OutHumRat, diff --git a/src/ExpandObjects/epfilter.f90 b/src/ExpandObjects/epfilter.f90 index 257781d832d..699e2c1d8d7 100644 --- a/src/ExpandObjects/epfilter.f90 +++ b/src/ExpandObjects/epfilter.f90 @@ -135,7 +135,7 @@ PROGRAM epfilter INTEGER, PARAMETER :: handleHWSupplyBranch = 7 INTEGER, PARAMETER :: handleCondenserSupplyBranch = 8 INTEGER, PARAMETER :: handleMixedSupplyBranch = 9 -INTEGER, PARAMETER :: handleMixedDemanBranch = 10 +INTEGER, PARAMETER :: handleMixedDemandBranch = 10 INTEGER, PARAMETER :: handleMixedTowerOutletNode = 11 INTEGER, PARAMETER :: handleMixedBoilerOutletNode = 12 !Use AddToStrList(ToList,SubListHandle) @@ -1343,22 +1343,21 @@ PROGRAM epfilter INTEGER,PARAMETER :: wahpSuppHeatCoilCapOff = 26 INTEGER,PARAMETER :: wahpMaxCycRateOff = 27 INTEGER,PARAMETER :: wahpTimeConstOff = 28 -INTEGER,PARAMETER :: wahpFractOnPowerOff = 29 -INTEGER,PARAMETER :: wahpFanDelayOff = 30 -INTEGER,PARAMETER :: wahpDedOutAirSysNameOff = 31 -INTEGER,PARAMETER :: wahpSuppHeatCoilKindOff = 32 -INTEGER,PARAMETER :: wahpCoolDesignTempMethodOff = 33 -INTEGER,PARAMETER :: wahpCoolDesignTempOff = 34 -INTEGER,PARAMETER :: wahpCoolDesignTempDiffOff = 35 -INTEGER,PARAMETER :: wahpHeatDesignTempMethodOff = 36 -INTEGER,PARAMETER :: wahpHeatDesignTempOff = 37 -INTEGER,PARAMETER :: wahpHeatDesignTempDiffOff = 38 -INTEGER,PARAMETER :: wahpHPCoilWaterFlowMode = 39 -INTEGER,PARAMETER :: wahpDesSpecOANameOff = 40 -INTEGER,PARAMETER :: wahpDesSpecOADistNameOff = 41 -INTEGER,PARAMETER :: wahpBaseboardTypeOff = 42 -INTEGER,PARAMETER :: wahpBaseboardAvailSchedNameOff = 43 -INTEGER,PARAMETER :: wahpBaseboardCapOff = 44 +INTEGER,PARAMETER :: wahpFanDelayOff = 29 +INTEGER,PARAMETER :: wahpDedOutAirSysNameOff = 30 +INTEGER,PARAMETER :: wahpSuppHeatCoilKindOff = 31 +INTEGER,PARAMETER :: wahpCoolDesignTempMethodOff = 32 +INTEGER,PARAMETER :: wahpCoolDesignTempOff = 33 +INTEGER,PARAMETER :: wahpCoolDesignTempDiffOff = 34 +INTEGER,PARAMETER :: wahpHeatDesignTempMethodOff = 35 +INTEGER,PARAMETER :: wahpHeatDesignTempOff = 36 +INTEGER,PARAMETER :: wahpHeatDesignTempDiffOff = 37 +INTEGER,PARAMETER :: wahpHPCoilWaterFlowMode = 38 +INTEGER,PARAMETER :: wahpDesSpecOANameOff = 39 +INTEGER,PARAMETER :: wahpDesSpecOADistNameOff = 40 +INTEGER,PARAMETER :: wahpBaseboardTypeOff = 41 +INTEGER,PARAMETER :: wahpBaseboardAvailSchedNameOff = 42 +INTEGER,PARAMETER :: wahpBaseboardCapOff = 43 INTEGER,PARAMETER :: mwpNameOff = 1 INTEGER,PARAMETER :: mwpPumpSchedNameOff = 2 @@ -2302,7 +2301,7 @@ SUBROUTINE SetUpObjectsToProcess(doGatherSurfaces) CALL AddObjToProcess('HVACTemplate:Plant:HotWaterLoop',.TRUE., hwpNameOff, hwpLdDistSchmOff, 21) CALL AddObjToProcess('HVACTemplate:Plant:Boiler',.TRUE., blrPriorityOff, blrLoopTypeOff, 11) CALL AddObjToProcess('HVACTemplate:Plant:Boiler:ObjectReference',.TRUE., blrorPriorityOff, blrorLoopTypeOff, 4) -CALL AddObjToProcess('HVACTemplate:Zone:WaterToAirHeatPump',.TRUE., wahpTStatNameOff, wahpBaseboardCapOff, 44) +CALL AddObjToProcess('HVACTemplate:Zone:WaterToAirHeatPump',.TRUE., wahpTStatNameOff, wahpBaseboardCapOff, 43) CALL AddObjToProcess('HVACTemplate:Plant:MixedWaterLoop',.TRUE., mwpNameOff, mwpLdDistSchmOff, 17) CALL AddObjToProcess('HVACTemplate:System:DedicatedOutdoorAir',.TRUE.,doasNameOff, doasHumidSetPtSchedNameOff, 46) ! Detailed Plant Objects @@ -7476,7 +7475,6 @@ SUBROUTINE GetInputWaterAirHP CALL SetIfBlank(fldValStart + wahpSuppHeatCoilCapOff, 'autosize') CALL SetIfBlank(fldValStart + wahpMaxCycRateOff, '2.5') CALL SetIfBlank(fldValStart + wahpTimeConstOff, '60') - CALL SetIfBlank(fldValStart + wahpFractOnPowerOff, '0.01') CALL SetIfBlank(fldValStart + wahpFanDelayOff, '60') CALL SetIfBlank(fldValStart + wahpSuppHeatCoilKindOff, 'Electric') CALL SetIfBlank(fldValStart + wahpCoolDesignTempMethodOff, 'SupplyAirTemperature') @@ -9313,7 +9311,7 @@ SUBROUTINE CreateNewVAV END IF CALL AddToObjFld('Inlet Node Name', base + fpvzNameOff,' Zone Return Plenum Inlet',.TRUE.) END IF - !ZONE EQUIPMENT LIST ~ line 61 of FPVAV tab + !ZONE EQUIPMENT LIST ~ line 61 of FPVAV tab CALL CreateNewObj('ZoneHVAC:EquipmentList') CALL AddToObjFld('Name', base + fpvzNameOff,' Equipment') CALL AddToObjStr('Load Distribution Scheme','SequentialLoad') @@ -12463,7 +12461,7 @@ SUBROUTINE CreateNewVAV CALL AddToObjStr('Humidifying Relative Humidity Setpoint Schedule Name','HVACTemplate-Always 1') CALL AddToObjStr('Dehumidifying Relative Humidity Setpoint Schedule Name', & 'HVACTemplate-Always ' // TRIM(FldVal(base + pvavsDehumSetPtOff)),.TRUE.) - + CALL AddAlwaysSchedule('1') CALL AddAlwaysSchedule(FldVal(base + pvavsDehumSetPtOff)) ENDIF @@ -12476,7 +12474,7 @@ SUBROUTINE CreateNewVAV CALL AddToObjStr('Humidifying Relative Humidity Setpoint Schedule Name', & 'HVACTemplate-Always ' // TRIM(FldVal(base + pvavsHumidSetPtOff))) CALL AddToObjStr('Dehumidifying Relative Humidity Setpoint Schedule Name','HVACTemplate-Always 100',.TRUE.) - + CALL AddAlwaysSchedule(FldVal(base + pvavsHumidSetPtOff)) CALL AddAlwaysSchedule('100') ENDIF @@ -16104,10 +16102,6 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Maximum Supply Air Temperature {C}', 'Autosize') CALL AddToObjFld('Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C}', base + ussSuppReHeatMaxODBOff,'') CALL AddToObjStr('Outdoor Dry-Bulb Temperature Sensor Node Name', '') - CALL AddToObjStr('Maximum Cycling Rate', '') - CALL AddToObjStr('Heat Pump Time Constant', '') - CALL AddToObjStr('Fraction of On-Cycle Power Use', '') - CALL AddToObjStr('Heat Pump Fan Delay Time', '') CALL AddToObjStr('Ancilliary On-Cycle Electric Power', '') CALL AddToObjStr('Ancilliary Off-Cycle Electric Power', '') CALL AddToObjStr('Design Heat Recovery Water Flow Rate', '') @@ -17081,8 +17075,6 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('Air Inlet Node Name', base + ussAirHandlerNameOff, TRIM(coolCoilUnitInlet)) CALL AddToObjFld('Air Outlet Node Name',base + ussAirHandlerNameOff, TRIM(coolCoilUnitOutlet)) CALL AddToObjStr('Rated Air Flow Rate {m3/s}','Autosize') - CALL AddToObjStr('2017 Rated Evaporator Fan Power Per Volume Flow Rate','') - CALL AddToObjStr('2023 Rated Evaporator Fan Power Per Volume Flow Rate','') CALL AddToObjStr('Rated Water Flow Rate {m3/s}','Autosize') CALL AddToObjFld('Rated Total Cooling Capacity {W}',base + ussCoolCoilCapOff,'') IF (isCoolCapAutosize .OR. isSHRAutosize) THEN @@ -17098,8 +17090,12 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('Total Cooling Capacity Curve Name',base + ussAirHandlerNameOff,' WAHP ClgTotCapCurve') CALL AddToObjFld('Sensible Cooling Capacity Curve Name',base + ussAirHandlerNameOff,' WAHP ClgSensCapCurve') CALL AddToObjFld('Cooling Power Consumption Curve Name',base + ussAirHandlerNameOff,' WAHP ClgPowCurve') + CALL AddToObjFld('Part Load Fraction Correlation Curve Name',base + ussAirHandlerNameOff,' WAHP ClgPLFCurve') CALL AddToObjStr('Nominal Time for Condensate Removal to Begin {s}','0') - CALL AddToObjStr('Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}','0',.TRUE.) + CALL AddToObjStr('Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}','0') + CALL AddToObjStr('Maximum Cycling Rate {cycles/hr}','') + CALL AddToObjStr('Latent Capacity Time Constant {s}','') + CALL AddToObjStr('Fan Delay Time {s}','',.TRUE.) CALL CreateNewObj('Curve:QuadLinear') CALL WriteComment('Total Cooling Capacity Function Curve for water-to-air heat pump') CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' WAHP ClgTotCapCurve') @@ -17151,10 +17147,18 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Maximum Value of y','100.0') CALL AddToObjStr('Minimum Value of z','-100.0') CALL AddToObjStr('Maximum Value of z','100.0',.TRUE.) + CALL WriteComment('Part Load Fraction Curve for water-to-air heat pump') + CALL CreateNewObj('Curve:Quadratic') + CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' WAHP ClgPLFCurve') + CALL AddToObjStr('Coefficient1 Constant','0.85') + CALL AddToObjStr('Coefficient2 x','0.15') + CALL AddToObjStr('Coefficient3 x**2','0.0') + CALL AddToObjStr('Minimum Value of x','0.0') + CALL AddToObjStr('Maximum Value of x','1.0',.TRUE.) !***Branch CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' Cooling Condenser Branch') - CALL AddToStrList(TRIM(FldVal(base + ussAirHandlerNameOff)) // ' Cooling Condenser Branch',handleMixedDemanBranch) + CALL AddToStrList(TRIM(FldVal(base + ussAirHandlerNameOff)) // ' Cooling Condenser Branch',handleMixedDemandBranch) CALL AddToObjStr('Pressure Drop Curve Name','') CALL AddToObjStr('Component Object Type','Coil:Cooling:WaterToAirHeatPump:EquationFit') CALL AddToObjFld('Component Name', base + ussAirHandlerNameOff,' Cooling Coil') @@ -17602,7 +17606,8 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Rated Entering Air Dry-Bulb Temperature', '20.0') CALL AddToObjStr('Ratio of Rated Heating Capacity to Rated Cooling Capacity', '1.0') CALL AddToObjFld('Heating Capacity Curve Name',base + ussAirHandlerNameOff,' WAHP HtgCapCurve') - CALL AddToObjFld('Heating Power Consumption Curve Name',base + ussAirHandlerNameOff,' WAHP HtgPowCurve',.TRUE.) + CALL AddToObjFld('Heating Power Consumption Curve Name',base + wahpNameOff,' WAHP HtgPowCurve') + CALL AddToObjFld('Part Load Fraction Correlation Curve Name',base + wahpNameOff,' WAHP HtgPLFCurve',.TRUE.) CALL CreateNewObj('Curve:QuadLinear') CALL WriteComment('Heating Capacity Function Curve for water-to-air heat pump') CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' WAHP HtgCapCurve') @@ -17635,10 +17640,18 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Maximum Value of y','100.0') CALL AddToObjStr('Minimum Value of z','-100.0') CALL AddToObjStr('Maximum Value of z','100.0',.TRUE.) + CALL WriteComment('Part Load Fraction Curve for water-to-air heat pump') + CALL CreateNewObj('Curve:Quadratic') + CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' WAHP HtgPLFCurve') + CALL AddToObjStr('Coefficient1 Constant','0.85') + CALL AddToObjStr('Coefficient2 x','0.15') + CALL AddToObjStr('Coefficient3 x**2','0.0') + CALL AddToObjStr('Minimum Value of x','0.0') + CALL AddToObjStr('Maximum Value of x','1.0',.TRUE.) !***Branch CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' Heating Condenser Branch') - CALL AddToStrList(TRIM(FldVal(base + ussAirHandlerNameOff)) // ' Heating Condenser Branch',handleMixedDemanBranch) + CALL AddToStrList(TRIM(FldVal(base + ussAirHandlerNameOff)) // ' Heating Condenser Branch',handleMixedDemandBranch) CALL AddToObjStr('Pressure Drop Curve Name','') CALL AddToObjStr('Component Object Type','Coil:Heating:WaterToAirHeatPump:EquationFit') CALL AddToObjFld('Component Name', base + ussAirHandlerNameOff,' Heating Coil') @@ -23179,7 +23192,7 @@ SUBROUTINE CreateNewVRF IF (isCondWaterCooled) THEN CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + vrfsNameOff,' VRF Condenser Branch') - CALL AddToStrList(TRIM(FldVal(base + vrfsNameOff)) // ' VRF Condenser Branch',handleMixedDemanBranch) + CALL AddToStrList(TRIM(FldVal(base + vrfsNameOff)) // ' VRF Condenser Branch',handleMixedDemandBranch) CALL AddToObjStr('Pressure Drop Curve Name','') CALL AddToObjStr('Component Object Type','AirConditioner:VariableRefrigerantFlow') CALL AddToObjFld('Component Name', base + vrfsNameOff,' VRF Heat Pump') @@ -23873,7 +23886,7 @@ SUBROUTINE CreateFanCoil CALL AddToObjFld('Air Inlet Node Name', base + fczNameOff,' Mixed Air Outlet') CALL AddToObjFld('Air Outlet Node Name', base + fczNameOff,' Supply Fan Outlet') CALL AddToObjStr('Design Maximum Air Flow Rate {m3/s}','autosize') - IF ((capacityControlKind == capctrlVarFanConstFlow) .or. & + IF ((capacityControlKind == capctrlVarFanConstFlow) .or. & (capacityControlKind == capctrlVarFanVarFlow) .or. & (capacityControlKind == capctrlASHRAE90VarFan)) THEN CALL AddToObjStr('Speed Control Method', 'Continuous') @@ -24091,7 +24104,7 @@ SUBROUTINE CreateFanCoil CALL AddToObjFld('Air Outlet Node Name', base + fczNameOff,' Supply Inlet') CALL AddToObjStr('Coil Temp Setpoint Node','',.TRUE.) END IF - + !Baseboards SELECT CASE (baseboardKind) CASE (HotWater) @@ -30014,10 +30027,6 @@ SUBROUTINE CreateWaterAirHP CALL AddToObjFld('Heating Coil Name', base + wahpNameOff,' WAHP Heating Coil') CALL AddToObjStr('Cooling Coil Object Type','Coil:Cooling:WaterToAirHeatPump:EquationFit') CALL AddToObjFld('Cooling Coil Name', base + wahpNameOff,' WAHP Cooling Coil') - CALL AddToObjFld('Maximum Cycling Rate {cycles/hr}',base + wahpMaxCycRateOff,'') - CALL AddToObjFld('Heat Pump Time Constant {s}',base + wahpTimeConstOff,'') - CALL AddToObjFld('Fraction of On-Cycle Power Use',base + wahpFractOnPowerOff,'') - CALL AddToObjFld('Heat Pump Fan Delay Time {s}',base + wahpFanDelayOff,'') IF (suppHeatCoilKind == shcElectric) THEN CALL AddToObjStr('Supplemental Heating Coil Object Type','Coil:Heating:Electric') ELSEIF (suppHeatCoilKind == shcWater) THEN @@ -30099,8 +30108,6 @@ SUBROUTINE CreateWaterAirHP END IF CALL AddToObjFld('Air Outlet Node Name', base + wahpNameOff,' WAHP Cooling Coil Outlet') CALL AddToObjStr('Rated Air Flow Rate {m3/s}','Autosize') - CALL AddToObjStr('2017 Rated Evaporator Fan Power Per Volume Flow Rate','') - CALL AddToObjStr('2023 Rated Evaporator Fan Power Per Volume Flow Rate','') CALL AddToObjStr('Rated Water Flow Rate {m3/s}','Autosize') CALL AddToObjFld('Rated Total Cooling Capacity {W}',base + wahpCoolCoilCapOff,'') IF (isCoolCoilCapAutosize .OR. isSHRAutosize) THEN @@ -30116,8 +30123,12 @@ SUBROUTINE CreateWaterAirHP CALL AddToObjFld('Total Cooling Capacity Curve Name',base + wahpNameOff,' WAHP ClgTotCapCurve') CALL AddToObjFld('Sensible Cooling Capacity Curve Name',base + wahpNameOff,' WAHP ClgSensCapCurve') CALL AddToObjFld('Cooling Power Consumption Curve Name',base + wahpNameOff,' WAHP ClgPowCurve') + CALL AddToObjFld('Part Load Fraction Correlation Curve Name',base + wahpNameOff,' WAHP ClgPLFCurve') CALL AddToObjStr('Nominal Time for Condensate Removal to Begin {s}','0') - CALL AddToObjStr('Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}','0',.TRUE.) + CALL AddToObjStr('Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}','0') + CALL AddToObjFld('Maximum Cycling Rate {cycles/hr}',base + wahpMaxCycRateOff,'') + CALL AddToObjFld('Latent Capacity Time Constant {s}',base + wahpTimeConstOff,'') + CALL AddToObjFld('Fan Delay Time {s}',base + wahpFanDelayOff,'',.TRUE.) CALL CreateNewObj('Curve:QuadLinear') CALL WriteComment('Total Cooling Capacity Function Curve for water-to-air heat pump') CALL AddToObjFld('Name', base + wahpNameOff,' WAHP ClgTotCapCurve') @@ -30169,6 +30180,14 @@ SUBROUTINE CreateWaterAirHP CALL AddToObjStr('Maximum Value of y','100.0') CALL AddToObjStr('Minimum Value of z','-100.0') CALL AddToObjStr('Maximum Value of z','100.0',.TRUE.) + CALL WriteComment('Part Load Fraction Curve for water-to-air heat pump') + CALL CreateNewObj('Curve:Quadratic') + CALL AddToObjFld('Name', base + wahpNameOff,' WAHP ClgPLFCurve') + CALL AddToObjStr('Coefficient1 Constant','0.85') + CALL AddToObjStr('Coefficient2 x','0.15') + CALL AddToObjStr('Coefficient3 x**2','0.0') + CALL AddToObjStr('Minimum Value of x','0.0') + CALL AddToObjStr('Maximum Value of x','1.0',.TRUE.) !***Coil:Heating:WaterToAirHeatPump:EquationFit CALL WriteComment('Performance coefficients assume rated Capacity and COP are at:') CALL WriteComment('21.11C (70F) entering air dry-bulb temperature and 21.11C (70F) entering water temperature') @@ -30186,7 +30205,8 @@ SUBROUTINE CreateWaterAirHP CALL AddToObjStr('Rated Entering Air Dry-Bulb Temperature', '20.0') CALL AddToObjStr('Ratio of Rated Heating Capacity to Rated Cooling Capacity', '1.0') CALL AddToObjFld('Heating Capacity Curve Name',base + wahpNameOff,' WAHP HtgCapCurve') - CALL AddToObjFld('Heating Power Consumption Curve Name',base + wahpNameOff,' WAHP HtgPowCurve',.TRUE.) + CALL AddToObjFld('Heating Power Consumption Curve Name',base + wahpNameOff,' WAHP HtgPowCurve') + CALL AddToObjFld('Part Load Fraction Correlation Curve Name',base + wahpNameOff,' WAHP HtgPLFCurve',.TRUE.) CALL CreateNewObj('Curve:QuadLinear') CALL WriteComment('Heating Capacity Function Curve for water-to-air heat pump') CALL AddToObjFld('Name', base + wahpNameOff,' WAHP HtgCapCurve') @@ -30219,6 +30239,14 @@ SUBROUTINE CreateWaterAirHP CALL AddToObjStr('Maximum Value of y','100.0') CALL AddToObjStr('Minimum Value of z','-100.0') CALL AddToObjStr('Maximum Value of z','100.0',.TRUE.) + CALL WriteComment('Part Load Fraction Curve for water-to-air heat pump') + CALL CreateNewObj('Curve:Quadratic') + CALL AddToObjFld('Name', base + wahpNameOff,' WAHP HtgPLFCurve') + CALL AddToObjStr('Coefficient1 Constant','0.85') + CALL AddToObjStr('Coefficient2 x','0.15') + CALL AddToObjStr('Coefficient3 x**2','0.0') + CALL AddToObjStr('Minimum Value of x','0.0') + CALL AddToObjStr('Maximum Value of x','1.0',.TRUE.) SELECT CASE (suppHeatCoilKind) CASE (shcElectric) !***Coil:Heating:Electric @@ -30276,7 +30304,7 @@ SUBROUTINE CreateWaterAirHP !***Branch CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + wahpNameOff,' Cooling Condenser Branch') - CALL AddToStrList(TRIM(FldVal(base + wahpNameOff)) // ' Cooling Condenser Branch',handleMixedDemanBranch) + CALL AddToStrList(TRIM(FldVal(base + wahpNameOff)) // ' Cooling Condenser Branch',handleMixedDemandBranch) CALL AddToObjStr('Pressure Drop Curve Name','') CALL AddToObjStr('Component Object Type','Coil:Cooling:WaterToAirHeatPump:EquationFit') CALL AddToObjFld('Component Name', base + wahpNameOff,' WAHP Cooling Coil') @@ -30285,7 +30313,7 @@ SUBROUTINE CreateWaterAirHP !***Branch CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + wahpNameOff,' Heating Condenser Branch') - CALL AddToStrList(TRIM(FldVal(base + wahpNameOff)) // ' Heating Condenser Branch',handleMixedDemanBranch) + CALL AddToStrList(TRIM(FldVal(base + wahpNameOff)) // ' Heating Condenser Branch',handleMixedDemandBranch) CALL AddToObjStr('Pressure Drop Curve Name','') CALL AddToObjStr('Component Object Type','Coil:Heating:WaterToAirHeatPump:EquationFit') CALL AddToObjFld('Component Name', base + wahpNameOff,' WAHP Heating Coil') @@ -30934,7 +30962,7 @@ SUBROUTINE CreateMixedLoop CALL AddToObjFld('Name', base + mwpNameOff,' Mixed Demand Inlet Branch') !The names of all of the branches for the heating coils have been previously gathered DO iStr = 1, numStrList - IF (StrList(iStr)%Handle .EQ. handleMixedDemanBranch) THEN + IF (StrList(iStr)%Handle .EQ. handleMixedDemandBranch) THEN CALL AddToObjStr('Name', StrList(iStr)%StrToSave) END IF END DO @@ -30958,12 +30986,12 @@ SUBROUTINE CreateMixedLoop END IF !The names of all of the branches for the heating coils have been previously gathered DO iStr = 1, numStrList - IF (StrList(iStr)%Handle .EQ. handleMixedDemanBranch) THEN + IF (StrList(iStr)%Handle .EQ. handleMixedDemandBranch) THEN lastBranch = iStr END IF END DO DO iStr = 1, numStrList - IF (StrList(iStr)%Handle .EQ. handleMixedDemanBranch) THEN + IF (StrList(iStr)%Handle .EQ. handleMixedDemandBranch) THEN CALL AddToObjStr('Name', StrList(iStr)%StrToSave, iStr .EQ. lastBranch) END IF END DO @@ -30976,7 +31004,7 @@ SUBROUTINE CreateMixedLoop END IF !The names of all of the branches for the heating coils have been previously gathered DO iStr = 1, numStrList - IF (StrList(iStr)%Handle .EQ. handleMixedDemanBranch) THEN + IF (StrList(iStr)%Handle .EQ. handleMixedDemandBranch) THEN CALL AddToObjStr('Name', StrList(iStr)%StrToSave, iStr .EQ. lastBranch) END IF END DO diff --git a/src/Transition/CreateNewIDFUsingRulesV23_2_0.f90 b/src/Transition/CreateNewIDFUsingRulesV23_2_0.f90 index 5c1002c658a..71d916c339c 100644 --- a/src/Transition/CreateNewIDFUsingRulesV23_2_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV23_2_0.f90 @@ -142,6 +142,31 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CHARACTER(len=20) :: PotentialRunPeriodName ! END OF TODO + TYPE CoilLatentTransitionInfo + CHARACTER(len=MaxNameLength) :: ParentType + CHARACTER(len=MaxNameLength) :: ParentName + CHARACTER(len=MaxNameLength) :: NewCurveName + CHARACTER(len=MaxNameLength) :: HeatingCoilType + CHARACTER(len=MaxNameLength) :: CoolingCoilType + CHARACTER(len=MaxNameLength) :: HeatingCoilName + CHARACTER(len=MaxNameLength) :: CoolingCoilName + CHARACTER(len=MaxNameLength) :: cMaxCyclingRate = '' + CHARACTER(len=MaxNameLength) :: cHeatPumpTimeConst = '' + CHARACTER(len=MaxNameLength) :: cFractionOnCycle = '' + CHARACTER(len=MaxNameLength) :: cHPDelayTime = '' + LOGICAL :: ActuallyCreateCurve = .false. + END TYPE CoilLatentTransitionInfo + TYPE(CoilLatentTransitionInfo), ALLOCATABLE, DIMENSION(:) :: CoilLatentStuff + INTEGER :: NumCoilLatentStuff = 0 + INTEGER :: Num3 + INTEGER :: CoilLatentStuffCounter = 0 + REAL :: latentTau + REAL :: latentNmax + REAL :: latentA + REAL :: latentCd + INTEGER :: NumUnitarySystem + INTEGER :: NumUnitaryWAHP + INTEGER :: NumZoneWAHP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! E N D O F I N S E R T L O C A L V A R I A B L E S H E R E ! @@ -280,8 +305,68 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Do any kind of Preprocessing that is needed here (eg: a first pass on objects to store some attributes etc) - - + NumUnitarySystem = GetNumObjectsFound('AIRLOOPHVAC:UNITARYSYSTEM') + NumUnitaryWAHP = GetNumObjectsFound('AIRLOOPHVAC:UNITARYHEATPUMP:WATERTOAIR') + NumZoneWAHP = GetNumObjectsFound('ZONEHVAC:WATERTOAIRHEATPUMP') + ALLOCATE(CoilLatentStuff(NumUnitarySystem + NumUnitaryWAHP + NumZoneWAHP)) + NumCoilLatentStuff = 0 + DO Num=1,NumIDFRecords + SELECT CASE (MakeUPPERCase(IDFRecords(Num)%Name)) + CASE ('AIRLOOPHVAC:UNITARYSYSTEM') + NumCoilLatentStuff = NumCoilLatentStuff + 1 + CoilLatentStuff(NumCoilLatentStuff)%ParentType = 'AIRLOOPHVAC:UNITARYSYSTEM' + CoilLatentStuff(NumCoilLatentStuff)%ParentName = MakeUPPERCase(IDFRecords(Num)%Alphas(1)) + CoilLatentStuff(NumCoilLatentStuff)%NewCurveName = TRIM(IDFRecords(Num)%Alphas(1)) // "-AutogeneratedPLFCurve" + CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(12)) + IF (CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType == 'COIL:HEATING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType == 'COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilName = MakeUPPERCase(IDFRecords(Num)%Alphas(13)) + CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(14)) + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:DX:VARIABLESPEED') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilName = MakeUPPERCase(IDFRecords(Num)%Alphas(15)) + IF (IDFRecords(Num)%NumNumbers >= 19) CoilLatentStuff(NumCOilLatentStuff)%cMaxCyclingRate = IDFRecords(Num)%Numbers(19) + IF (IDFRecords(Num)%NumNumbers >= 20) CoilLatentStuff(NumCOilLatentStuff)%cHeatPumpTimeConst = IDFRecords(Num)%Numbers(20) + IF (IDFRecords(Num)%NumNumbers >= 21) CoilLatentStuff(NumCOilLatentStuff)%cFractionOnCycle = IDFRecords(Num)%Numbers(21) + IF (IDFRecords(Num)%NumNumbers >= 22) CoilLatentStuff(NumCOilLatentStuff)%cHPDelayTime = IDFRecords(Num)%Numbers(22) + CASE ('AIRLOOPHVAC:UNITARYHEATPUMP:WATERTOAIR') + NumCoilLatentStuff = NumCoilLatentStuff + 1 + CoilLatentStuff(NumCoilLatentStuff)%ParentType = 'AIRLOOPHVAC:UNITARYHEATPUMP:WATERTOAIR' + CoilLatentStuff(NumCoilLatentStuff)%ParentName = MakeUPPERCase(IDFRecords(Num)%Alphas(1)) + CoilLatentStuff(NumCoilLatentStuff)%NewCurveName = TRIM(IDFRecords(Num)%Alphas(1)) // "-AutogeneratedPLFCurve" + CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(8)) + IF (CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType == 'COIL:HEATING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType == 'COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilName = MakeUPPERCase(IDFRecords(Num)%Alphas(9)) + CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(10)) + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilName = MakeUPPERCase(IDFRecords(Num)%Alphas(11)) + IF (IDFRecords(Num)%NumNumbers >= 4) CoilLatentStuff(NumCOilLatentStuff)%cMaxCyclingRate = IDFRecords(Num)%Numbers(4) + IF (IDFRecords(Num)%NumNumbers >= 5) CoilLatentStuff(NumCOilLatentStuff)%cHeatPumpTimeConst = IDFRecords(Num)%Numbers(5) + IF (IDFRecords(Num)%NumNumbers >= 6) CoilLatentStuff(NumCOilLatentStuff)%cFractionOnCycle = IDFRecords(Num)%Numbers(6) + IF (IDFRecords(Num)%NumNumbers >= 7) CoilLatentStuff(NumCOilLatentStuff)%cHPDelayTime = IDFRecords(Num)%Numbers(7) + CASE ('ZONEHVAC:WATERTOAIRHEATPUMP') + NumCoilLatentStuff = NumCoilLatentStuff + 1 + CoilLatentStuff(NumCoilLatentStuff)%ParentType = 'ZONEHVAC:WATERTOAIRHEATPUMP' + CoilLatentStuff(NumCoilLatentStuff)%ParentName = MakeUPPERCase(IDFRecords(Num)%Alphas(1)) + CoilLatentStuff(NumCoilLatentStuff)%NewCurveName = TRIM(IDFRecords(Num)%Alphas(1)) // "-AutogeneratedPLFCurve" + CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(9)) + IF (CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilType == 'COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + CoilLatentStuff(NumCoilLatentStuff)%HeatingCoilName = MakeUPPERCase(IDFRecords(Num)%Alphas(10)) + CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(11)) + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. + CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilName = MakeUPPERCase(IDFRecords(Num)%Alphas(12)) + IF (IDFRecords(Num)%NumNumbers >= 7) CoilLatentStuff(NumCOilLatentStuff)%cMaxCyclingRate = IDFRecords(Num)%Numbers(7) + IF (IDFRecords(Num)%NumNumbers >= 8) CoilLatentStuff(NumCOilLatentStuff)%cHeatPumpTimeConst = IDFRecords(Num)%Numbers(8) + IF (IDFRecords(Num)%NumNumbers >= 9) CoilLatentStuff(NumCOilLatentStuff)%cFractionOnCycle = IDFRecords(Num)%Numbers(9) + IF (IDFRecords(Num)%NumNumbers >= 10) CoilLatentStuff(NumCOilLatentStuff)%cHPDelayTime = IDFRecords(Num)%Numbers(10) + END SELECT + ENDDO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! P R O C E S S I N G ! @@ -411,49 +496,58 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CASE('COIL:COOLING:DX:VARIABLESPEED') CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) nodiff=.false. + OutArgs(1:9)=InArgs(1:9) + DO Num3 = 1, NumCoilLatentStuff + IF (('COIL:COOLING:DX:VARIABLESPEED' /= CoilLatentStuff(Num3)%CoolingCoilType) .OR. (InArgs(1) /= CoilLatentStuff(Num3)%CoolingCoilName)) CYCLE + OutArgs(10) = CoilLatentStuff(Num3)%cMaxCyclingRate + OutArgs(11) = CoilLatentStuff(Num3)%cHeatPumpTimeConst + OutArgs(12) = CoilLatentStuff(Num3)%cHPDelayTime + EXIT + END DO + CurArgs = CurArgs + 3 ! manipulate all the speeds regardless of CurArgs count - OutArgs(1:25)=InArgs(1:25) - OutArgs(26) = '' ! new speed 1 2017 rated field - OutArgs(27) = '' ! new speed 1 2023 rated field - OutArgs(28:37)=InArgs(26:35) - OutArgs(38)='' ! new speed 2 2017 rated field - OutArgs(39)='' ! new speed 2 2023 rated field - OutArgs(40:49)=InArgs(36:45) - OutArgs(50)='' ! new speed 3 2017 rated field - OutArgs(51)='' ! new speed 3 2023 rated field - OutArgs(52:61)=InArgs(46:55) - OutArgs(62)='' ! new speed 4 2017 rated field - OutArgs(63)='' ! new speed 4 2023 rated field - OutArgs(64:73)=InArgs(56:65) - OutArgs(74)='' ! new speed 5 2017 rated field - OutArgs(75)='' ! new speed 5 2023 rated field - OutArgs(76:85)=InArgs(66:75) - OutArgs(86)='' ! new speed 6 2017 rated field - OutArgs(87)='' ! new speed 6 2023 rated field - OutArgs(88:97)=InArgs(76:85) - OutArgs(98)='' ! new speed 7 2017 rated field - OutArgs(99)='' ! new speed 7 2023 rated field - OutArgs(100:109)=InArgs(86:95) - OutArgs(110)='' ! new speed 8 2017 rated field - OutArgs(111)='' ! new speed 8 2023 rated field - OutArgs(112:121)=InArgs(96:105) - OutArgs(122)='' ! new speed 9 2017 rated field - OutArgs(123)='' ! new speed 9 2023 rated field - OutArgs(124:133)=InArgs(106:115) - OutArgs(134)='' ! new speed 10 2017 rated field - OutArgs(135)='' ! new speed 10 2023 rated field - OutArgs(136:CurArgs+20)=InArgs(116:CurArgs) + OutArgs(13:28)=InArgs(10:25) + OutArgs(29) = '' ! new speed 1 2017 rated field + OutArgs(30) = '' ! new speed 1 2023 rated field + OutArgs(31:40)=InArgs(26:35) + OutArgs(41)='' ! new speed 2 2017 rated field + OutArgs(42)='' ! new speed 2 2023 rated field + OutArgs(43:52)=InArgs(36:45) + OutArgs(53)='' ! new speed 3 2017 rated field + OutArgs(54)='' ! new speed 3 2023 rated field + OutArgs(55:64)=InArgs(46:55) + OutArgs(65)='' ! new speed 4 2017 rated field + OutArgs(66)='' ! new speed 4 2023 rated field + OutArgs(67:76)=InArgs(56:65) + OutArgs(77)='' ! new speed 5 2017 rated field + OutArgs(78)='' ! new speed 5 2023 rated field + OutArgs(79:88)=InArgs(66:75) + OutArgs(89)='' ! new speed 6 2017 rated field + OutArgs(90)='' ! new speed 6 2023 rated field + OutArgs(91:100)=InArgs(76:85) + OutArgs(101)='' ! new speed 7 2017 rated field + OutArgs(102)='' ! new speed 7 2023 rated field + OutArgs(103:112)=InArgs(86:95) + OutArgs(113)='' ! new speed 8 2017 rated field + OutArgs(114)='' ! new speed 8 2023 rated field + OutArgs(115:124)=InArgs(96:105) + OutArgs(125)='' ! new speed 9 2017 rated field + OutArgs(126)='' ! new speed 9 2023 rated field + OutArgs(127:136)=InArgs(106:115) + OutArgs(137)='' ! new speed 10 2017 rated field + OutArgs(138)='' ! new speed 10 2023 rated field + OutArgs(139:148)=InArgs(116:125) ! But then only modify CurArgs based on the number of fields - IF (CurArgs .GE. 25) CurArgs = CurArgs + 2 ! this will always trigger for speed 1 - IF (CurArgs .GE. 35) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 45) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 55) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 65) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 75) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 85) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 95) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 105) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 115) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 28) CurArgs = CurArgs + 2 ! this will always trigger for speed 1 + IF (CurArgs >= 38) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 48) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 58) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 68) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 78) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 88) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 98) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 108) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs + IF (CurArgs >= 118) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs CASE('COIL:HEATING:DX:VARIABLESPEED') CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) @@ -502,62 +596,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile IF (CurArgs .GE. 77) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs IF (CurArgs .GE. 84) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - CASE('COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT') - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - nodiff=.false. - OutArgs(1:6)=InArgs(1:6) - OutArgs(7) = '' ! 2017 rated field - OutArgs(8) = '' ! 2023 rated field - OutArgs(9:CurArgs+2)=InArgs(7:CurArgs) - CurArgs = CurArgs + 2 - - CASE('COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT') - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - nodiff=.false. - ! manipulate all the speeds regardless of CurArgs count - OutArgs(1:18)=InArgs(1:18) - OutArgs(19) = '' ! new speed 1 2017 rated field - OutArgs(20) = '' ! new speed 1 2023 rated field - OutArgs(21:33)=InArgs(19:31) - OutArgs(34)='' ! new speed 2 2017 rated field - OutArgs(35)='' ! new speed 2 2023 rated field - OutArgs(36:48)=InArgs(32:44) - OutArgs(49)='' ! new speed 3 2017 rated field - OutArgs(50)='' ! new speed 3 2023 rated field - OutArgs(51:63)=InArgs(45:57) - OutArgs(64)='' ! new speed 4 2017 rated field - OutArgs(65)='' ! new speed 4 2023 rated field - OutArgs(66:78)=InArgs(58:70) - OutArgs(79)='' ! new speed 5 2017 rated field - OutArgs(80)='' ! new speed 5 2023 rated field - OutArgs(81:93)=InArgs(71:83) - OutArgs(94)='' ! new speed 6 2017 rated field - OutArgs(95)='' ! new speed 6 2023 rated field - OutArgs(96:108)=InArgs(84:96) - OutArgs(109)='' ! new speed 7 2017 rated field - OutArgs(110)='' ! new speed 7 2023 rated field - OutArgs(111:123)=InArgs(97:109) - OutArgs(124)='' ! new speed 8 2017 rated field - OutArgs(125)='' ! new speed 8 2023 rated field - OutArgs(126:138)=InArgs(110:122) - OutArgs(139)='' ! new speed 9 2017 rated field - OutArgs(140)='' ! new speed 9 2023 rated field - OutArgs(141:153)=InArgs(123:135) - OutArgs(154)='' ! new speed 10 2017 rated field - OutArgs(155)='' ! new speed 10 2023 rated field - OutArgs(156:CurArgs+20)=InArgs(136:CurArgs) - ! But then only modify CurArgs based on the number of fields - IF (CurArgs .GE. 18) CurArgs = CurArgs + 2 ! this will always trigger for speed 1 - IF (CurArgs .GE. 31) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 44) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 57) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 70) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 83) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 96) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 109) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 122) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - IF (CurArgs .GE. 135) CurArgs = CurArgs + 2 ! only do this speed if we have that many inputs - ! If your original object starts with D, insert the rules here ! If your original object starts with E, insert the rules here @@ -567,6 +605,200 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile ! If your original object starts with G, insert the rules here ! If your original object starts with H, insert the rules here + CASE('HVACTEMPLATE:ZONE:WATERTOAIRHEATPUMP') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + nodiff=.false. + !- remove N20 F29 Fraction of On-Cycle Power Use + OutArgs(1:28)=InArgs(1:28) + OutArgs(29:CurArgs-1)=InArgs(30:CurArgs) + CurArgs = CurArgs - 1 + + CASE('AIRLOOPHVAC:UNITARYSYSTEM') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + nodiff=.false. + OutArgs(1:41)=InArgs(1:41) + OutArgs(42:CurArgs-4) = InArgs(46:CurArgs) + ! only reduce cur args if we actually had that many + IF (CurArgs > 42) CurArgs = CurArgs - 4 + CALL WriteOutIDFLines(DifLfn,'AirLoopHVAC:UnitarySystem',CurArgs,OutArgs,NwFldNames,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('AIRLOOPHVAC:UNITARYSYSTEM' /= CoilLatentStuff(Num3)%ParentType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%ParentName)) CYCLE + IF (.NOT. CoilLatentStuff(Num3)%ActuallyCreateCurve) CYCLE + nodiff=.false. + CALL GetNewObjectDefInIDD('Curve:Linear',NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + IF (TRIM(CoilLatentStuff(Num3)%cHeatPumpTimeConst) == '') THEN + latentTau = 60 + ELSE + latentTau = ProcessNumber(CoilLatentStuff(Num3)%cHeatPumpTimeConst, ErrFlag) + END IF + IF (TRIM(CoilLatentStuff(Num3)%cMaxCyclingRate) == '') THEN + latentNmax = 2.5 ! does this need to be converted to seconds? + ELSE + latentNmax = ProcessNumber(CoilLatentStuff(Num3)%cMaxCyclingRate, ErrFlag) + END IF + latentA = 4 * latentTau * (latentNmax / 3600.0) + latentCd = latentA * (1 - EXP(-1 / latentA)) + OutArgs(1) = CoilLatentStuff(Num3)%NewCurveName + OutArgs(2) = TrimSigDigits(1 - latentCd, 5) + OutArgs(3) = TrimSigDigits(latentCd, 5) + OutArgs(4) = "0.0" + OutArgs(5) = "1.0" + OutArgs(6) = "0.0" + OutArgs(7) = "1.0" + OutArgs(8) = "Dimensionless" + OutArgs(9) = "Dimensionless" + CurArgs = 9 + CALL WriteOutIDFLines(DifLfn,'Curve:Linear',CurArgs,OutArgs,NwFldNames,NwFldUnits) + EXIT + END DO + Written = .TRUE. + + CASE('AIRLOOPHVAC:UNITARYHEATPUMP:WATERTOAIR') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + nodiff=.false. + OutArgs(1:14)=InArgs(1:14) + OutArgs(15:CurArgs-4) = InArgs(19:CurArgs) + CurArgs = CurArgs - 4 + CALL WriteOutIDFLines(DifLfn,'AirLoopHVAC:UnitaryHeatPump:WaterToAir',CurArgs,OutArgs,NwFldNames,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('AIRLOOPHVAC:UNITARYHEATPUMP:WATERTOAIR' /= CoilLatentStuff(Num3)%ParentType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%ParentName)) CYCLE + IF (.NOT. CoilLatentStuff(Num3)%ActuallyCreateCurve) CYCLE + nodiff=.false. + CALL GetNewObjectDefInIDD('Curve:Linear',NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + IF (TRIM(CoilLatentStuff(Num3)%cHeatPumpTimeConst) == '') THEN + latentTau = 60 + ELSE + latentTau = ProcessNumber(CoilLatentStuff(Num3)%cHeatPumpTimeConst, ErrFlag) + END IF + IF (TRIM(CoilLatentStuff(Num3)%cMaxCyclingRate) == '') THEN + latentNmax = 2.5 ! does this need to be converted to seconds? + ELSE + latentNmax = ProcessNumber(CoilLatentStuff(Num3)%cMaxCyclingRate, ErrFlag) + END IF + latentA = 4 * latentTau * (latentNmax / 3600.0) + latentCd = latentA * (1 - EXP(-1 / latentA)) + OutArgs(1) = CoilLatentStuff(Num3)%NewCurveName + OutArgs(2) = TrimSigDigits(1 - latentCd, 5) + OutArgs(3) = TrimSigDigits(latentCd, 5) + OutArgs(4) = "0.0" + OutArgs(5) = "1.0" + OutArgs(6) = "0.0" + OutArgs(7) = "1.0" + OutArgs(8) = "Dimensionless" + OutArgs(9) = "Dimensionless" + CurArgs = 9 + CALL WriteOutIDFLines(DifLfn,'Curve:Linear',CurArgs,OutArgs,NwFldNames,NwFldUnits) + EXIT + END DO + Written = .TRUE. + + CASE('ZONEHVAC:WATERTOAIRHEATPUMP') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + nodiff=.false. + OutArgs(1:18)=InArgs(1:18) + OutArgs(19:CurArgs-4) = InArgs(23:CurArgs) + CurArgs = CurArgs - 4 + CALL WriteOutIDFLines(DifLfn,'ZoneHVAC:WaterToAirHeatPump',CurArgs,OutArgs,NwFldNames,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('ZONEHVAC:WATERTOAIRHEATPUMP' /= CoilLatentStuff(Num3)%ParentType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%ParentName)) CYCLE + IF (.NOT. CoilLatentStuff(Num3)%ActuallyCreateCurve) CYCLE + nodiff=.false. + CALL GetNewObjectDefInIDD('Curve:Linear',NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + IF (TRIM(CoilLatentStuff(Num3)%cHeatPumpTimeConst) == '') THEN + latentTau = 60 + ELSE + latentTau = ProcessNumber(CoilLatentStuff(Num3)%cHeatPumpTimeConst, ErrFlag) + END IF + IF (TRIM(CoilLatentStuff(Num3)%cMaxCyclingRate) == '') THEN + latentNmax = 2.5 ! does this need to be converted to seconds? + ELSE + latentNmax = ProcessNumber(CoilLatentStuff(Num3)%cMaxCyclingRate, ErrFlag) + END IF + latentA = 4 * latentTau * (latentNmax / 3600.0) + latentCd = latentA * (1 - EXP(-1 / latentA)) + OutArgs(1) = CoilLatentStuff(Num3)%NewCurveName + OutArgs(2) = TrimSigDigits(1 - latentCd, 5) + OutArgs(3) = TrimSigDigits(latentCd, 5) + OutArgs(4) = "0.0" + OutArgs(5) = "1.0" + OutArgs(6) = "0.0" + OutArgs(7) = "1.0" + OutArgs(8) = "Dimensionless" + OutArgs(9) = "Dimensionless" + CurArgs = 9 + CALL WriteOutIDFLines(DifLfn,'Curve:Linear',CurArgs,OutArgs,NwFldNames,NwFldUnits) + EXIT + END DO + Written = .TRUE. + +! CASE('COIL:COOLING:DX:VARIABLESPEED') ! PR 10043 +! Handled above, integrated with the 90.1 metric + + CASE('COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION' /= CoilLatentStuff(Num3)%CoolingCoilType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%CoolingCoilName)) CYCLE + nodiff=.false. + OutArgs = '' ! first make them all blank + OutArgs(1:CurArgs)=InArgs(1:CurArgs) ! fill out to the amount given in the input + OutArgs(28) = CoilLatentStuff(Num3)%NewCurveName ! add in the new trailing fields at the end + OutArgs(29) = CoilLatentStuff(Num3)%cMaxCyclingRate + OutArgs(30) = CoilLatentStuff(Num3)%cHeatPumpTimeConst + OutArgs(31) = CoilLatentStuff(Num3)%cHPDelayTime + CurArgs = 31 + EXIT + END DO + + CASE('COIL:HEATING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('COIL:HEATING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION' /= CoilLatentStuff(Num3)%HeatingCoilType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%HeatingCoilName)) CYCLE + nodiff=.false. + OutArgs(1:24)=InArgs(1:24) + OutArgs(25) = CoilLatentStuff(Num3)%NewCurveName + CurArgs = 25 + EXIT + END DO + + CASE('COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT' /= CoilLatentStuff(Num3)%CoolingCoilType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%CoolingCoilName)) CYCLE + nodiff=.false. + OutArgs(1:16)=InArgs(1:16) + OutArgs(17) = CoilLatentStuff(Num3)%NewCurveName + OutArgs(18:19) = InArgs(17:18) + OutArgs(20) = CoilLatentStuff(Num3)%cMaxCyclingRate + OutArgs(21) = CoilLatentStuff(Num3)%cHeatPumpTimeConst + OutArgs(22) = CoilLatentStuff(Num3)%cHPDelayTime + CurArgs = 22 + EXIT + END DO + + CASE('COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT' /= CoilLatentStuff(Num3)%HeatingCoilType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%HeatingCoilName)) CYCLE + nodiff=.false. + OutArgs(1:14)=InArgs(1:14) + OutArgs(15) = CoilLatentStuff(Num3)%NewCurveName + CurArgs = 15 + EXIT + END DO + + CASE('COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT') ! PR 10043 + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + DO Num3 = 1, NumCoilLatentStuff + IF (('COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT' /= CoilLatentStuff(Num3)%CoolingCoilType) .OR. (MakeUPPERCase(InArgs(1)) /= CoilLatentStuff(Num3)%CoolingCoilName)) CYCLE + nodiff=.false. + OutArgs(1:12)=InArgs(1:12) + OutArgs(13) = CoilLatentStuff(Num3)%cMaxCyclingRate + OutArgs(14) = CoilLatentStuff(Num3)%cHeatPumpTimeConst + OutArgs(15) = CoilLatentStuff(Num3)%cHPDelayTime + OutArgs(16:CurArgs+3) = InArgs(13:CurArgs) + CurArgs = CurArgs + 3 + EXIT + END DO ! If your original object starts with I, insert the rules here diff --git a/src/Transition/InputRulesFiles/Rules22-2-0-to-23-1-0.md b/src/Transition/InputRulesFiles/Rules22-2-0-to-23-1-0.md index 80e19591693..94b6708f864 100644 --- a/src/Transition/InputRulesFiles/Rules22-2-0-to-23-1-0.md +++ b/src/Transition/InputRulesFiles/Rules22-2-0-to-23-1-0.md @@ -9,263 +9,3 @@ This was previously an Excel workbook that made for very difficult version contr Describe input change here Use links like: [PR#9480](https://github.com/NREL/EnergyPlus/pull/9480/) - -# Object Change: Coil:Cooling:DX:TwoSpeed - -Fields 1-6 remain the same - -Field 7 is a new field named "High Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 8 is a new field named "High Speed 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 12 fields remain the same - -Field 21 is a new field named "Low Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 22 is a new field named "Low Speed 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following fields remain the same. - -# Object Change: Coil:Cooling:DX:VariableSpeed - -Fields 1-25 remain the same. - -Field 26 is a new field named "Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 27 is a new field named "Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 38 is a new field named "Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 39 is a new field named "Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 50 is a new field named "Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 51 is a new field named "Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 62 is a new field named "Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 63 is a new field named "Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 74 is a new field named "Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 75 is a new field named "Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 86 is a new field named "Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 87 is a new field named "Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 98 is a new field named "Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 99 is a new field named "Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 110 is a new field named "Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 111 is a new field named "Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 122 is a new field named "Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 123 is a new field named "Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following 10 fields remain the same. - -Field 134 is a new field named "Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 135 is a new field named "Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" -The value is defaulted to 934.4 - -The following fields remain the same. - -See [PR#9576](https://github.com/NREL/EnergyPlus/pull/9756) - -# Object Change: Coil:Heating:DX:VariableSpeed - -Fields 1-21 remain the same. - -Field 22 is a new field named "Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 23 is a new field named "Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same. - -Field 31 is a new field named "Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 32 is a new field named "Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same. - -Field 40 is a new field named "Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 41 is a new field named "Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 49 is a new field named "Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 50 is a new field named "Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 58 is a new field named "Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 59 is a new field named "Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 67 is a new field named "Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 68 is a new field named "Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 76 is a new field named "Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 77 is a new field named "Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 85 is a new field named "Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 86 is a new field named "Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 94 is a new field named "Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 95 is a new field named "Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 7 fields remain the same - -Field 103 is a new field named "Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 104 is a new field named "Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following fields remain the same - -See [PR#9576](https://github.com/NREL/EnergyPlus/pull/9756) - -# Object Change: Coil:Cooling:WaterToAirHeatPump:EquationFit - -Fields 1-6 remain the same. - -Field 7 is a new field named "2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 - -Field 8 is a new field named "2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following fields remain the same. - -See [PR#9576](https://github.com/NREL/EnergyPlus/pull/9756) - -# Object Change: Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit - -Fields 1-18 remain the same. - -Field 19 is a new field named "Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 20 is a new field named "Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 34 is a new field named "Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 35 is a new field named "Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 49 is a new field named "Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 50 is a new field named "Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 64 is a new field named "Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 65 is a new field named "Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 79 is a new field named "Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 80 is a new field named "Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 94 is a new field named "Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 95 is a new field named "Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 109 is a new field named "Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 110 is a new field named "Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 124 is a new field named "Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 125 is a new field named "Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 139 is a new field named "Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 140 is a new field named "Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following 13 fields remain the same. - -Field 154 is a new field named "Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 773.3 -Field 155 is a new field named "Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" -The value is defaulted to 934.4 - -The following fields remain the same. - -See [PR#9576](https://github.com/NREL/EnergyPlus/pull/9756) diff --git a/src/Transition/InputRulesFiles/Rules23-1-0-to-23-2-0.md b/src/Transition/InputRulesFiles/Rules23-1-0-to-23-2-0.md index 46fd2d3d29f..973e8e49c73 100644 --- a/src/Transition/InputRulesFiles/Rules23-1-0-to-23-2-0.md +++ b/src/Transition/InputRulesFiles/Rules23-1-0-to-23-2-0.md @@ -4,8 +4,360 @@ Input Changes version 23.1.0 to 23.2.0 This file documents the structural changes on the input of EnergyPlus that could affect interfaces, etc. This was previously an Excel workbook that made for very difficult version control, especially during busy times around code freezes. -# Object Change: OBJECT NAME HERE +# Key Note -Describe input change here +For the release of 23.2, there are multiple changes around coil inputs. +Please read the notes here carefully, and if needed, compare 23.1 to 23.2 example files to see the changes made. -Use links like: [PR#9480](https://github.com/NREL/EnergyPlus/pull/9480/) \ No newline at end of file +# Part Load Fraction Correlations + +This change brings greater consistency in how part load performance is characterized across coils, and applies to any coil object where a new +"Part Load Fraction Correlation Curve" input is added per the "Object Changes" below. These coils now use a traditional +curve fit to characterize part load fraction as a function of part load ratio. The previous approach was more theoretical based on inputs +shared with the latent degradation model. An approximate conversion from the previous inputs to a linear part load fraction curve is described +below: + +PLF(PLF) = (1 - Cd) + Cd * PLR + +Thus calculating the new coefficient is: + +Cd = A * (1 - exp(-1/A)) + +where: + +- A = 4 * tau * (Nmax/3600) +- tau = Heat Pump Time Constant from parent or default 60s +- Nmax = Maximum Cycling Rate from parent or default 2.5/hr + +Create a new `Curve:Linear` object for the heat pump Part Load Fraction correlation: + +- Set "N1 , \field Coefficient1 Constant" to the calculated value of: `(1 - Cd)` +- Set "N2 , \field Coefficient2 x" to the calculated value of: `Cd` +- Set "N3 , \field Minimum Value of x" to: `0.0` +- Set "N4 , \field Maximum Value of x" to: `1.0` +- Set "N5 , \field Minimum Curve Output" to: `0.0` +- Set "N6 , \field Maximum Curve Output" to: `1.0` +- set "A2, \field Input Unit Type for X" to: `Dimensionless` +- set "A3, \field Output Unit Type" to: `Dimensionless` + +# Object Change: HVACTemplate:Zone:WaterToAirHeatPump: + +- "Remove N20, \field Fraction of On-Cycle Power Use" (F29) + +# Object Change: AirLoopHVAC:UnitarySystem: + +- Move "N19, \field Maximum Cycling Rate" (F42) to child object(s) +- Move "N20, \field Heat Pump Time Constant" (F43) to child object(s) +- Remove "N21, \field Fraction of On-Cycle Power Use" (F44) +- Move "N22, \field Heat Pump Fan Delay Time" (F45) to child object(s) + +Applicable child objects, based on `A12, \field Heating Coil Object Type` are: + +- `Coil:Heating:WaterToAirHeatPump:ParameterEstimation` +- `Coil:Heating:WaterToAirHeatPump:EquationFit` + +Note: `Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit` already has a Part Load Fraction correlation curve that is independent of the inputs in the parent object, and does not require further changes. + +Applicable child objects, based on `A14, \field Cooling Coil Object Type` are: + +- `Coil:Cooling:DX:VariableSpeed` +- `Coil:Cooling:WaterToAirHeatPump:ParameterEstimation` +- `Coil:Cooling:WaterToAirHeatPump:EquationFit` +- `Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit` + +See the respective object changes to determine the destination field numbers in the child object. + +Create the Part Load Fraction correlation curve per the instructions above using: + +- tau = "N20, \field Heat Pump Time Constant" +- Nmax = "N19, \field Maximum Cycling Rate" + +# Object Change: AirLoopHVAC:UnitaryHeatPump:WaterToAir: + +- Move "N4, \field Maximum Cycling Rate" to child object +- Move "N5, \field Heat Pump Time Constant" to child object +- Remove "N6, \field Fraction of On-Cycle Power Use" +- Move "N7, \field Heat Pump Fan Delay Time" to child object + +Applicable child objects, based on `A8, \field Heating Coil Object Type` are: + +- `Coil:Heating:WaterToAirHeatPump:ParameterEstimation` +- `Coil:Heating:WaterToAirHeatPump:EquationFit` + +Note: `Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit` already has a Part Load Fraction correlation curve that is independent of the inputs in the parent object, and does not require further changes. + +Applicable child objects, based on `A10, \field Cooling Coil Object Type` are: + +- `Coil:Cooling:WaterToAirHeatPump:ParameterEstimation` +- `Coil:Cooling:WaterToAirHeatPump:EquationFit` +- `Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit` + +See the respective object changes to determine the destination field numbers in the child object. + +Create the Part Load Fraction correlation curve per the instructions above using: + +- tau = "N5, \field Heat Pump Time Constant" +- Nmax = "N4, \field Maximum Cycling Rate" + +# Object Change: ZoneHVAC:WaterToAirHeatPump: + +- Move "N7, \field Maximum Cycling Rate" to child object +- Move "N8, \field Heat Pump Time Constant" to child object +- Remove "N9, \field Fraction of On-Cycle Power Use" +- Move "N10, \field Heat Pump Fan Delay Time" to child object + +Applicable child objects, based on `A9, \field Heating Coil Object Type` are: + +- `Coil:Heating:WaterToAirHeatPump:EquationFit` + +Note: `Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit` already has a Part Load Fraction correlation curve that is independent of the inputs in the parent object, and does not require further changes. + +Applicable child objects, based on `A11, \field Cooling Coil Object Type` are: + +- `Coil:Cooling:WaterToAirHeatPump:EquationFit` +- `Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit` + +See the respective object changes to determine the destination field numbers in the child object. + +Create the Part Load Fraction correlation curve per the instructions above using: + +- tau = "N8, \field Heat Pump Time Constant" +- Nmax = "N7, \field Maximum Cycling Rate" + +# Object Change: Coil:Cooling:DX:TwoSpeed + +The two speed DX cooling coil now includes two new rated inputs for each of low and high speed, all other fields get shifted down. + +Fields 1-6 remain the same + +Field 7 is a new field named "High Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 8 is a new field named "High Speed 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 12 fields remain the same + +Field 21 is a new field named "Low Speed 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 22 is a new field named "Low Speed 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following fields remain the same. + +# Object Change: Coil:Cooling:DX:VariableSpeed + +The variable speed DX cooling coil now includes two new rated inputs for each speed given. +The variable speed DX cooling coil also has changes related to the latent inputs. +This object already has a Part Load Fraction correlation curve that is independent of the inputs in the parent object. + +Fields 1-9 remain the same. + +- Insert field 10: "N7, \field Maximum Cycling Rate" from parent or leave blank +- Insert field 11: "N8, \field Latent Capacity Time Constant" from parent's "Heat Pump Time Constant" or leave blank +- Insert field 12: "N9, \field Fan Delay Time" from parent or leave blank + +Fields 13-28 are shifted from the original fields 10-25 + +Field 29 is a new field named "Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 30 is a new field named "Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following will only apply if that particular speed has input values, otherwise just shift remaining inputs and end object. + +Fields 31-40 are shifted from the original fields 26-35 + +Field 41 is a new field named "Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 42 is a new field named "Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +Fields 43-52 are shifted from the original fields 36-45 + +Field 53 is a new field named "Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 54 is a new field named "Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 55-64 are shifted from the original fields 46-55 + +Field 65 is a new field named "Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 66 is a new field named "Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 67-76 are shifted from the original fields 56-65 + +Field 77 is a new field named "Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 78 is a new field named "Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 79-88 are shifted from the original fields 66-75 + +Field 89 is a new field named "Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 90 is a new field named "Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 91-100 are shifted from the original fields 76-85 + +Field 101 is a new field named "Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 102 is a new field named "Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 103-112 are shifted from the original fields 86-95 + +Field 113 is a new field named "Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 114 is a new field named "Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 115-124 are shifted from the original fields 96-105 + +Field 125 is a new field named "Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 126 is a new field named "Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +Fields 127-136 are shifted from the original fields 106-115 + +Field 137 is a new field named "Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 138 is a new field named "Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}"" +The value is defaulted to 934.4 + +The following fields are unchanged but just shifted down from the original. + +See [PR#9576](https://github.com/NREL/EnergyPlus/pull/9756) + +# Object Change: Coil:Heating:DX:VariableSpeed + +The variable speed DX heating coil now includes two new rated inputs for each speed given. + +Fields 1-21 remain the same. + +Field 22 is a new field named "Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 23 is a new field named "Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same. + +Field 31 is a new field named "Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 32 is a new field named "Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same. + +Field 40 is a new field named "Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 41 is a new field named "Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 49 is a new field named "Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 50 is a new field named "Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 58 is a new field named "Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 59 is a new field named "Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 67 is a new field named "Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 68 is a new field named "Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 76 is a new field named "Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 77 is a new field named "Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 85 is a new field named "Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 86 is a new field named "Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 94 is a new field named "Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 95 is a new field named "Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following 7 fields remain the same + +Field 103 is a new field named "Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 773.3 +Field 104 is a new field named "Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}" +The value is defaulted to 934.4 + +The following fields remain the same + +See [PR#9576](https://github.com/NREL/EnergyPlus/pull/9756) + +# Object Change: Coil:Cooling:WaterToAirHeatPump:ParameterEstimation: + +- Insert "A8, \field Part Load Fraction Correlation Curve Name" from the name of the curve created per in the parent object's changes. +- Insert "N21, \field Maximum Cycling Rate" from parent or leave blank +- Insert "N22, \field Latent Capacity Time Constant" from parent's "Heat Pump Time Constant" or leave blank +- Insert "N23, \field Fan Delay Time" from parent or leave blank + +# Object Change: Coil:Heating:WaterToAirHeatPump:ParameterEstimation: + +- Insert "A8, \field Part Load Fraction Correlation Curve Name" and add Curve:Linear using correlation above. + +# Object Change: Coil:Cooling:WaterToAirHeatPump:EquationFit: + +- Insert "A9, \field Part Load Fraction Correlation Curve Name" from the name of the curve created per in the parent object's changes. +- Insert "N13, \field Maximum Cycling Rate" from parent or leave blank +- Insert "N14, \field Latent Capacity Time Constant" from parent's "Heat Pump Time Constant" or leave blank +- Insert "N15, \field Fan Delay Time" from parent or leave blank + +# Object Change: Coil:Heating:WaterToAirHeatPump:EquationFit: + +- Insert "A8, \field Part Load Fraction Correlation Curve Name" from the name of the curve created per in the parent object's changes. + +# Object Change: Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit: + +Note: this object already has a Part Load Fraction correlation curve that is independent of the inputs in the parent object, however the latent capacity degradation calculations were using the inputs from the parent object. + +- Insert "N8, \field Maximum Cycling Rate" from parent or leave blank +- Insert "N9, \field Latent Capacity Time Constant" from parent's "Heat Pump Time Constant" or leave blank +- Insert "N10, \field Fan Delay Time" from parent or leave blank + +# Object Change: Site:GroundTemperature:Undisturbed:Xing + +Fields 1-4, 6-9 remain the same. +Field 5 has a name change from "Average Soil Surface Tempeature" +to "Average Soil Surface Temperature". + +See [PR#10005](https://github.com/NREL/EnergyPlus/pull/10005) + +# Object Change: Construction:ComplexFenestrationState + +Fields 1-10, 13, 16, 19, 22, 25, 28, 31, 34 remain the same. +Fields 11, 17, 23, 29, 35 have a name change from "Outside Layer X Directional Front Absoptance Matrix Name" +to "Outside Layer X Directional Front Absorptance Matrix Name". +Fields 12, 18, 24, 30, 36 have a name change from "Outside Layer X Directional Back Absoptance Matrix Name" +to "Outside Layer X Directional Back Absorptance Matrix Name". +Fields 14, 20, 26, 32 have a name change from "Gap X Directional Front Absoptance Matrix Name" +to "Gap X Directional Front Absorptance Matrix Name". +Fields 15, 21, 27, 33 have a name change from "Gap X Directional Back Absoptance Matrix Name" +to "Gap X Directional Back Absorptance Matrix Name". + +See [PR#10005](https://github.com/NREL/EnergyPlus/pull/10005) diff --git a/testfiles/5ZoneWLHPPlantLoopTower.idf b/testfiles/5ZoneWLHPPlantLoopTower.idf index 761602d580a..645dff4a0f5 100644 --- a/testfiles/5ZoneWLHPPlantLoopTower.idf +++ b/testfiles/5ZoneWLHPPlantLoopTower.idf @@ -2138,10 +2138,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2191,7 +2187,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU1, !- Name @@ -2217,7 +2217,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU1, !- Name @@ -2340,10 +2341,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2390,7 +2387,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU2, !- Name @@ -2416,7 +2417,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU2, !- Name @@ -2539,10 +2541,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU3, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2589,7 +2587,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU3, !- Name @@ -2615,7 +2617,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU3, !- Name @@ -2738,10 +2741,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU4, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2788,7 +2787,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU4, !- Name @@ -2814,7 +2817,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU4, !- Name @@ -2937,10 +2941,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU5, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2987,7 +2987,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU5, !- Name @@ -3013,7 +3017,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU5, !- Name diff --git a/testfiles/5ZoneWaterLoopHeatPump.idf b/testfiles/5ZoneWaterLoopHeatPump.idf index 8b8e52cd867..b7b046e1e0a 100644 --- a/testfiles/5ZoneWaterLoopHeatPump.idf +++ b/testfiles/5ZoneWaterLoopHeatPump.idf @@ -2052,10 +2052,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2105,7 +2101,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU1, !- Name @@ -2131,7 +2131,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU1, !- Name @@ -2254,10 +2255,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2304,7 +2301,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU2, !- Name @@ -2330,7 +2331,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU2, !- Name @@ -2453,10 +2455,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU3, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2503,7 +2501,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU3, !- Name @@ -2529,7 +2531,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU3, !- Name @@ -2652,10 +2655,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU4, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2702,7 +2701,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU4, !- Name @@ -2728,7 +2731,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU4, !- Name @@ -2851,10 +2855,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode AHU5, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AHU5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2901,7 +2901,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU5, !- Name @@ -2927,7 +2931,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU5, !- Name diff --git a/testfiles/5Zone_Unitary_HXAssistedCoil.idf b/testfiles/5Zone_Unitary_HXAssistedCoil.idf index c2d34f2b78e..587feaf8748 100644 --- a/testfiles/5Zone_Unitary_HXAssistedCoil.idf +++ b/testfiles/5Zone_Unitary_HXAssistedCoil.idf @@ -2765,6 +2765,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/5Zone_Unitary_VSDesuperheatWaterHeater.idf b/testfiles/5Zone_Unitary_VSDesuperheatWaterHeater.idf index 95cfd1e7b91..d9004645491 100644 --- a/testfiles/5Zone_Unitary_VSDesuperheatWaterHeater.idf +++ b/testfiles/5Zone_Unitary_VSDesuperheatWaterHeater.idf @@ -2747,6 +2747,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/ASHRAE901_ApartmentHighRise_STD2019_Denver.idf b/testfiles/ASHRAE901_ApartmentHighRise_STD2019_Denver.idf index f915e4b88b5..d321140a192 100644 --- a/testfiles/ASHRAE901_ApartmentHighRise_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_ApartmentHighRise_STD2019_Denver.idf @@ -36347,8 +36347,6 @@ AirLoop G SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36359,8 +36357,12 @@ WAHPCoolCapCurveTot 1, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 1, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 1, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop G NW, !- Name @@ -36369,8 +36371,6 @@ AirLoop G NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36381,8 +36381,12 @@ WAHPCoolCapCurveTot 2, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 2, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 2, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop Office, !- Name @@ -36391,8 +36395,6 @@ AirLoop Office Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop Office, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36403,8 +36405,12 @@ WAHPCoolCapCurveTot 3, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 3, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 3, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop G NE, !- Name @@ -36413,8 +36419,6 @@ AirLoop G NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36425,8 +36429,12 @@ WAHPCoolCapCurveTot 4, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 4, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 4, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop G N1, !- Name @@ -36435,8 +36443,6 @@ AirLoop G N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36447,8 +36453,12 @@ WAHPCoolCapCurveTot 5, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 5, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 5, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop G N2, !- Name @@ -36457,8 +36467,6 @@ AirLoop G N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36469,8 +36477,12 @@ WAHPCoolCapCurveTot 6, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 6, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 6, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop G S1, !- Name @@ -36479,8 +36491,6 @@ AirLoop G S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36491,8 +36501,12 @@ WAHPCoolCapCurveTot 7, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 7, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 7, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop G S2, !- Name @@ -36501,8 +36515,6 @@ AirLoop G S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop G S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36513,8 +36525,12 @@ WAHPCoolCapCurveTot 8, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 8, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 8, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 SW, !- Name @@ -36523,8 +36539,6 @@ AirLoop F2 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36535,8 +36549,12 @@ WAHPCoolCapCurveTot 9, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 9, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 9, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 NW, !- Name @@ -36545,8 +36563,6 @@ AirLoop F2 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36557,8 +36573,12 @@ WAHPCoolCapCurveTot10, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens10, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve10, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 SE, !- Name @@ -36567,8 +36587,6 @@ AirLoop F2 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36579,8 +36597,12 @@ WAHPCoolCapCurveTot11, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens11, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve11, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 NE, !- Name @@ -36589,8 +36611,6 @@ AirLoop F2 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36601,8 +36621,12 @@ WAHPCoolCapCurveTot12, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens12, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve12, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 N1, !- Name @@ -36611,8 +36635,6 @@ AirLoop F2 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36623,8 +36645,12 @@ WAHPCoolCapCurveTot13, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens13, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve13, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 N2, !- Name @@ -36633,8 +36659,6 @@ AirLoop F2 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36645,8 +36669,12 @@ WAHPCoolCapCurveTot14, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens14, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve14, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 S1, !- Name @@ -36655,8 +36683,6 @@ AirLoop F2 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36667,8 +36693,12 @@ WAHPCoolCapCurveTot15, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens15, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve15, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F2 S2, !- Name @@ -36677,8 +36707,6 @@ AirLoop F2 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F2 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36689,8 +36717,12 @@ WAHPCoolCapCurveTot16, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens16, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve16, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 SW, !- Name @@ -36699,8 +36731,6 @@ AirLoop F3 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36711,8 +36741,12 @@ WAHPCoolCapCurveTot17, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens17, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve17, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 NW, !- Name @@ -36721,8 +36755,6 @@ AirLoop F3 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36733,8 +36765,12 @@ WAHPCoolCapCurveTot18, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens18, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve18, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 SE, !- Name @@ -36743,8 +36779,6 @@ AirLoop F3 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36755,8 +36789,12 @@ WAHPCoolCapCurveTot19, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens19, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve19, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 NE, !- Name @@ -36765,8 +36803,6 @@ AirLoop F3 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36777,8 +36813,12 @@ WAHPCoolCapCurveTot20, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens20, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve20, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 N1, !- Name @@ -36787,8 +36827,6 @@ AirLoop F3 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36799,8 +36837,12 @@ WAHPCoolCapCurveTot21, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens21, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve21, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 N2, !- Name @@ -36809,8 +36851,6 @@ AirLoop F3 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36821,8 +36861,12 @@ WAHPCoolCapCurveTot22, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens22, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve22, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 S1, !- Name @@ -36831,8 +36875,6 @@ AirLoop F3 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36843,8 +36885,12 @@ WAHPCoolCapCurveTot23, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens23, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve23, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F3 S2, !- Name @@ -36853,8 +36899,6 @@ AirLoop F3 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F3 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36865,8 +36909,12 @@ WAHPCoolCapCurveTot24, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens24, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve24, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 SW, !- Name @@ -36875,8 +36923,6 @@ AirLoop F4 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36887,8 +36933,12 @@ WAHPCoolCapCurveTot25, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens25, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve25, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 NW, !- Name @@ -36897,8 +36947,6 @@ AirLoop F4 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36909,8 +36957,12 @@ WAHPCoolCapCurveTot26, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens26, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve26, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 SE, !- Name @@ -36919,8 +36971,6 @@ AirLoop F4 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36931,8 +36981,12 @@ WAHPCoolCapCurveTot27, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens27, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve27, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 NE, !- Name @@ -36941,8 +36995,6 @@ AirLoop F4 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36953,8 +37005,12 @@ WAHPCoolCapCurveTot28, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens28, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve28, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 N1, !- Name @@ -36963,8 +37019,6 @@ AirLoop F4 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36975,8 +37029,12 @@ WAHPCoolCapCurveTot29, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens29, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve29, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 N2, !- Name @@ -36985,8 +37043,6 @@ AirLoop F4 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -36997,8 +37053,12 @@ WAHPCoolCapCurveTot30, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens30, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve30, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 S1, !- Name @@ -37007,8 +37067,6 @@ AirLoop F4 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37019,8 +37077,12 @@ WAHPCoolCapCurveTot31, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens31, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve31, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F4 S2, !- Name @@ -37029,8 +37091,6 @@ AirLoop F4 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F4 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37041,8 +37101,12 @@ WAHPCoolCapCurveTot32, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens32, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve32, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M SW, !- Name @@ -37051,8 +37115,6 @@ AirLoop M SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37063,8 +37125,12 @@ WAHPCoolCapCurveTot33, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens33, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve33, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M NW, !- Name @@ -37073,8 +37139,6 @@ AirLoop M NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37085,8 +37149,12 @@ WAHPCoolCapCurveTot34, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens34, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve34, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M SE, !- Name @@ -37095,8 +37163,6 @@ AirLoop M SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37107,8 +37173,12 @@ WAHPCoolCapCurveTot35, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens35, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve35, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M NE, !- Name @@ -37117,8 +37187,6 @@ AirLoop M NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37129,8 +37197,12 @@ WAHPCoolCapCurveTot36, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens36, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve36, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M N1, !- Name @@ -37139,8 +37211,6 @@ AirLoop M N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37151,8 +37221,12 @@ WAHPCoolCapCurveTot37, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens37, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve37, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M N2, !- Name @@ -37161,8 +37235,6 @@ AirLoop M N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37173,8 +37245,12 @@ WAHPCoolCapCurveTot38, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens38, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve38, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M S1, !- Name @@ -37183,8 +37259,6 @@ AirLoop M S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37195,8 +37269,12 @@ WAHPCoolCapCurveTot39, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens39, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve39, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop M S2, !- Name @@ -37205,8 +37283,6 @@ AirLoop M S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop M S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37217,8 +37293,12 @@ WAHPCoolCapCurveTot40, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens40, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve40, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 SW, !- Name @@ -37227,8 +37307,6 @@ AirLoop F6 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37239,8 +37317,12 @@ WAHPCoolCapCurveTot41, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens41, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve41, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 NW, !- Name @@ -37249,8 +37331,6 @@ AirLoop F6 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37261,8 +37341,12 @@ WAHPCoolCapCurveTot42, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens42, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve42, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 SE, !- Name @@ -37271,8 +37355,6 @@ AirLoop F6 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37283,8 +37365,12 @@ WAHPCoolCapCurveTot43, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens43, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve43, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 NE, !- Name @@ -37293,8 +37379,6 @@ AirLoop F6 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37305,8 +37389,12 @@ WAHPCoolCapCurveTot44, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens44, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve44, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 N1, !- Name @@ -37315,8 +37403,6 @@ AirLoop F6 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37327,8 +37413,12 @@ WAHPCoolCapCurveTot45, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens45, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve45, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 N2, !- Name @@ -37337,8 +37427,6 @@ AirLoop F6 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37349,8 +37437,12 @@ WAHPCoolCapCurveTot46, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens46, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve46, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 S1, !- Name @@ -37359,8 +37451,6 @@ AirLoop F6 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37371,8 +37461,12 @@ WAHPCoolCapCurveTot47, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens47, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve47, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F6 S2, !- Name @@ -37381,8 +37475,6 @@ AirLoop F6 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F6 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37393,8 +37485,12 @@ WAHPCoolCapCurveTot48, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens48, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve48, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 SW, !- Name @@ -37403,8 +37499,6 @@ AirLoop F7 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37415,8 +37509,12 @@ WAHPCoolCapCurveTot49, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens49, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve49, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 NW, !- Name @@ -37425,8 +37523,6 @@ AirLoop F7 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37437,8 +37533,12 @@ WAHPCoolCapCurveTot50, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens50, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve50, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 SE, !- Name @@ -37447,8 +37547,6 @@ AirLoop F7 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37459,8 +37557,12 @@ WAHPCoolCapCurveTot51, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens51, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve51, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 NE, !- Name @@ -37469,8 +37571,6 @@ AirLoop F7 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37481,8 +37581,12 @@ WAHPCoolCapCurveTot52, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens52, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve52, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 N1, !- Name @@ -37491,8 +37595,6 @@ AirLoop F7 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37503,8 +37605,12 @@ WAHPCoolCapCurveTot53, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens53, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve53, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 N2, !- Name @@ -37513,8 +37619,6 @@ AirLoop F7 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37525,8 +37629,12 @@ WAHPCoolCapCurveTot54, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens54, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve54, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 S1, !- Name @@ -37535,8 +37643,6 @@ AirLoop F7 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37547,8 +37653,12 @@ WAHPCoolCapCurveTot55, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens55, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve55, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F7 S2, !- Name @@ -37557,8 +37667,6 @@ AirLoop F7 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F7 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37569,8 +37677,12 @@ WAHPCoolCapCurveTot56, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens56, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve56, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 SW, !- Name @@ -37579,8 +37691,6 @@ AirLoop F8 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37591,8 +37701,12 @@ WAHPCoolCapCurveTot57, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens57, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve57, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 NW, !- Name @@ -37601,8 +37715,6 @@ AirLoop F8 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37613,8 +37725,12 @@ WAHPCoolCapCurveTot58, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens58, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve58, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 SE, !- Name @@ -37623,8 +37739,6 @@ AirLoop F8 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37635,8 +37749,12 @@ WAHPCoolCapCurveTot59, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens59, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve59, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 NE, !- Name @@ -37645,8 +37763,6 @@ AirLoop F8 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37657,8 +37773,12 @@ WAHPCoolCapCurveTot60, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens60, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve60, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 N1, !- Name @@ -37667,8 +37787,6 @@ AirLoop F8 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37679,8 +37797,12 @@ WAHPCoolCapCurveTot61, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens61, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve61, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 N2, !- Name @@ -37689,8 +37811,6 @@ AirLoop F8 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37701,8 +37821,12 @@ WAHPCoolCapCurveTot62, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens62, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve62, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 S1, !- Name @@ -37711,8 +37835,6 @@ AirLoop F8 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37723,8 +37845,12 @@ WAHPCoolCapCurveTot63, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens63, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve63, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F8 S2, !- Name @@ -37733,8 +37859,6 @@ AirLoop F8 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F8 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37745,8 +37869,12 @@ WAHPCoolCapCurveTot64, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens64, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve64, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 SW, !- Name @@ -37755,8 +37883,6 @@ AirLoop F9 SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37767,8 +37893,12 @@ WAHPCoolCapCurveTot65, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens65, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve65, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 NW, !- Name @@ -37777,8 +37907,6 @@ AirLoop F9 NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37789,8 +37917,12 @@ WAHPCoolCapCurveTot66, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens66, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve66, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 SE, !- Name @@ -37799,8 +37931,6 @@ AirLoop F9 SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37811,8 +37941,12 @@ WAHPCoolCapCurveTot67, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens67, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve67, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 NE, !- Name @@ -37821,8 +37955,6 @@ AirLoop F9 NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37833,8 +37965,12 @@ WAHPCoolCapCurveTot68, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens68, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve68, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 N1, !- Name @@ -37843,8 +37979,6 @@ AirLoop F9 N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37855,8 +37989,12 @@ WAHPCoolCapCurveTot69, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens69, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve69, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 N2, !- Name @@ -37865,8 +38003,6 @@ AirLoop F9 N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37877,8 +38013,12 @@ WAHPCoolCapCurveTot70, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens70, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve70, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 S1, !- Name @@ -37887,8 +38027,6 @@ AirLoop F9 S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37899,8 +38037,12 @@ WAHPCoolCapCurveTot71, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens71, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve71, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop F9 S2, !- Name @@ -37909,8 +38051,6 @@ AirLoop F9 S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop F9 S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37921,8 +38061,12 @@ WAHPCoolCapCurveTot72, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens72, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve72, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T SW, !- Name @@ -37931,8 +38075,6 @@ AirLoop T SW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T SW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37943,8 +38085,12 @@ WAHPCoolCapCurveTot73, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens73, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve73, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T NW, !- Name @@ -37953,8 +38099,6 @@ AirLoop T NW Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T NW, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37965,8 +38109,12 @@ WAHPCoolCapCurveTot74, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens74, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve74, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T SE, !- Name @@ -37975,8 +38123,6 @@ AirLoop T SE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T SE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -37987,8 +38133,12 @@ WAHPCoolCapCurveTot75, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens75, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve75, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T NE, !- Name @@ -37997,8 +38147,6 @@ AirLoop T NE Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T NE, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -38009,8 +38157,12 @@ WAHPCoolCapCurveTot76, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens76, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve76, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T N1, !- Name @@ -38019,8 +38171,6 @@ AirLoop T N1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T N1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -38031,8 +38181,12 @@ WAHPCoolCapCurveTot77, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens77, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve77, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T N2, !- Name @@ -38041,8 +38195,6 @@ AirLoop T N2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T N2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -38053,8 +38205,12 @@ WAHPCoolCapCurveTot78, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens78, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve78, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T S1, !- Name @@ -38063,8 +38219,6 @@ AirLoop T S1 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T S1, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -38075,8 +38229,12 @@ WAHPCoolCapCurveTot79, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens79, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve79, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop T S2, !- Name @@ -38085,8 +38243,6 @@ AirLoop T S2 Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop T S2, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -38097,8 +38253,12 @@ WAHPCoolCapCurveTot80, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens80, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve80, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== @@ -38116,7 +38276,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 1, !- Heating Capacity Curve Name - WAHPHeatPowCurve 1; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 1, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop G NW, !- Name @@ -38132,7 +38293,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 2, !- Heating Capacity Curve Name - WAHPHeatPowCurve 2; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 2, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop Office, !- Name @@ -38148,7 +38310,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 3, !- Heating Capacity Curve Name - WAHPHeatPowCurve 3; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 3, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop G NE, !- Name @@ -38164,7 +38327,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 4, !- Heating Capacity Curve Name - WAHPHeatPowCurve 4; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 4, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop G N1, !- Name @@ -38180,7 +38344,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 5, !- Heating Capacity Curve Name - WAHPHeatPowCurve 5; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 5, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop G N2, !- Name @@ -38196,7 +38361,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 6, !- Heating Capacity Curve Name - WAHPHeatPowCurve 6; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 6, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop G S1, !- Name @@ -38212,7 +38378,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 7, !- Heating Capacity Curve Name - WAHPHeatPowCurve 7; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 7, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop G S2, !- Name @@ -38228,7 +38395,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 8, !- Heating Capacity Curve Name - WAHPHeatPowCurve 8; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 8, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 SW, !- Name @@ -38244,7 +38412,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 9, !- Heating Capacity Curve Name - WAHPHeatPowCurve 9; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 9, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 NW, !- Name @@ -38260,7 +38429,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve10, !- Heating Capacity Curve Name - WAHPHeatPowCurve10; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve10, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 SE, !- Name @@ -38276,7 +38446,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve11, !- Heating Capacity Curve Name - WAHPHeatPowCurve11; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve11, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 NE, !- Name @@ -38292,7 +38463,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve12, !- Heating Capacity Curve Name - WAHPHeatPowCurve12; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve12, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 N1, !- Name @@ -38308,7 +38480,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve13, !- Heating Capacity Curve Name - WAHPHeatPowCurve13; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve13, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 N2, !- Name @@ -38324,7 +38497,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve14, !- Heating Capacity Curve Name - WAHPHeatPowCurve14; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve14, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 S1, !- Name @@ -38340,7 +38514,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve15, !- Heating Capacity Curve Name - WAHPHeatPowCurve15; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve15, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F2 S2, !- Name @@ -38356,7 +38531,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve16, !- Heating Capacity Curve Name - WAHPHeatPowCurve16; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve16, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 SW, !- Name @@ -38372,7 +38548,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve17, !- Heating Capacity Curve Name - WAHPHeatPowCurve17; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve17, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 NW, !- Name @@ -38388,7 +38565,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve18, !- Heating Capacity Curve Name - WAHPHeatPowCurve18; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve18, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 SE, !- Name @@ -38404,7 +38582,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve19, !- Heating Capacity Curve Name - WAHPHeatPowCurve19; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve19, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 NE, !- Name @@ -38420,7 +38599,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve20, !- Heating Capacity Curve Name - WAHPHeatPowCurve20; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve20, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 N1, !- Name @@ -38436,7 +38616,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve21, !- Heating Capacity Curve Name - WAHPHeatPowCurve21; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve21, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 N2, !- Name @@ -38452,7 +38633,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve22, !- Heating Capacity Curve Name - WAHPHeatPowCurve22; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve22, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 S1, !- Name @@ -38468,7 +38650,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve23, !- Heating Capacity Curve Name - WAHPHeatPowCurve23; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve23, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F3 S2, !- Name @@ -38484,7 +38667,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve24, !- Heating Capacity Curve Name - WAHPHeatPowCurve24; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve24, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 SW, !- Name @@ -38500,7 +38684,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve25, !- Heating Capacity Curve Name - WAHPHeatPowCurve25; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve25, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 NW, !- Name @@ -38516,7 +38701,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve26, !- Heating Capacity Curve Name - WAHPHeatPowCurve26; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve26, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 SE, !- Name @@ -38532,7 +38718,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve27, !- Heating Capacity Curve Name - WAHPHeatPowCurve27; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve27, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 NE, !- Name @@ -38548,7 +38735,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve28, !- Heating Capacity Curve Name - WAHPHeatPowCurve28; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve28, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 N1, !- Name @@ -38564,7 +38752,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve29, !- Heating Capacity Curve Name - WAHPHeatPowCurve29; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve29, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 N2, !- Name @@ -38580,7 +38769,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve30, !- Heating Capacity Curve Name - WAHPHeatPowCurve30; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve30, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 S1, !- Name @@ -38596,7 +38786,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve31, !- Heating Capacity Curve Name - WAHPHeatPowCurve31; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve31, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F4 S2, !- Name @@ -38612,7 +38803,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve32, !- Heating Capacity Curve Name - WAHPHeatPowCurve32; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve32, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M SW, !- Name @@ -38628,7 +38820,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve33, !- Heating Capacity Curve Name - WAHPHeatPowCurve33; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve33, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M NW, !- Name @@ -38644,7 +38837,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve34, !- Heating Capacity Curve Name - WAHPHeatPowCurve34; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve34, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M SE, !- Name @@ -38660,7 +38854,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve35, !- Heating Capacity Curve Name - WAHPHeatPowCurve35; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve35, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M NE, !- Name @@ -38676,7 +38871,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve36, !- Heating Capacity Curve Name - WAHPHeatPowCurve36; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve36, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M N1, !- Name @@ -38692,7 +38888,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve37, !- Heating Capacity Curve Name - WAHPHeatPowCurve37; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve37, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M N2, !- Name @@ -38708,7 +38905,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve38, !- Heating Capacity Curve Name - WAHPHeatPowCurve38; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve38, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M S1, !- Name @@ -38724,7 +38922,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve39, !- Heating Capacity Curve Name - WAHPHeatPowCurve39; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve39, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop M S2, !- Name @@ -38740,7 +38939,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve40, !- Heating Capacity Curve Name - WAHPHeatPowCurve40; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve40, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 SW, !- Name @@ -38756,7 +38956,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve41, !- Heating Capacity Curve Name - WAHPHeatPowCurve41; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve41, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 NW, !- Name @@ -38772,7 +38973,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve42, !- Heating Capacity Curve Name - WAHPHeatPowCurve42; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve42, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 SE, !- Name @@ -38788,7 +38990,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve43, !- Heating Capacity Curve Name - WAHPHeatPowCurve43; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve43, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 NE, !- Name @@ -38804,7 +39007,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve44, !- Heating Capacity Curve Name - WAHPHeatPowCurve44; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve44, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 N1, !- Name @@ -38820,7 +39024,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve45, !- Heating Capacity Curve Name - WAHPHeatPowCurve45; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve45, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 N2, !- Name @@ -38836,7 +39041,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve46, !- Heating Capacity Curve Name - WAHPHeatPowCurve46; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve46, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 S1, !- Name @@ -38852,7 +39058,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve47, !- Heating Capacity Curve Name - WAHPHeatPowCurve47; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve47, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F6 S2, !- Name @@ -38868,7 +39075,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve48, !- Heating Capacity Curve Name - WAHPHeatPowCurve48; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve48, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 SW, !- Name @@ -38884,7 +39092,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve49, !- Heating Capacity Curve Name - WAHPHeatPowCurve49; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve49, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 NW, !- Name @@ -38900,7 +39109,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve50, !- Heating Capacity Curve Name - WAHPHeatPowCurve50; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve50, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 SE, !- Name @@ -38916,7 +39126,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve51, !- Heating Capacity Curve Name - WAHPHeatPowCurve51; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve51, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 NE, !- Name @@ -38932,7 +39143,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve52, !- Heating Capacity Curve Name - WAHPHeatPowCurve52; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve52, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 N1, !- Name @@ -38948,7 +39160,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve53, !- Heating Capacity Curve Name - WAHPHeatPowCurve53; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve53, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 N2, !- Name @@ -38964,7 +39177,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve54, !- Heating Capacity Curve Name - WAHPHeatPowCurve54; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve54, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 S1, !- Name @@ -38980,7 +39194,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve55, !- Heating Capacity Curve Name - WAHPHeatPowCurve55; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve55, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F7 S2, !- Name @@ -38996,7 +39211,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve56, !- Heating Capacity Curve Name - WAHPHeatPowCurve56; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve56, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 SW, !- Name @@ -39012,7 +39228,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve57, !- Heating Capacity Curve Name - WAHPHeatPowCurve57; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve57, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 NW, !- Name @@ -39028,7 +39245,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve58, !- Heating Capacity Curve Name - WAHPHeatPowCurve58; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve58, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 SE, !- Name @@ -39044,7 +39262,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve59, !- Heating Capacity Curve Name - WAHPHeatPowCurve59; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve59, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 NE, !- Name @@ -39060,7 +39279,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve60, !- Heating Capacity Curve Name - WAHPHeatPowCurve60; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve60, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 N1, !- Name @@ -39076,7 +39296,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve61, !- Heating Capacity Curve Name - WAHPHeatPowCurve61; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve61, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 N2, !- Name @@ -39092,7 +39313,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve62, !- Heating Capacity Curve Name - WAHPHeatPowCurve62; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve62, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 S1, !- Name @@ -39108,7 +39330,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve63, !- Heating Capacity Curve Name - WAHPHeatPowCurve63; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve63, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F8 S2, !- Name @@ -39124,7 +39347,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve64, !- Heating Capacity Curve Name - WAHPHeatPowCurve64; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve64, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 SW, !- Name @@ -39140,7 +39364,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve65, !- Heating Capacity Curve Name - WAHPHeatPowCurve65; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve65, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 NW, !- Name @@ -39156,7 +39381,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve66, !- Heating Capacity Curve Name - WAHPHeatPowCurve66; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve66, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 SE, !- Name @@ -39172,7 +39398,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve67, !- Heating Capacity Curve Name - WAHPHeatPowCurve67; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve67, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 NE, !- Name @@ -39188,7 +39415,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve68, !- Heating Capacity Curve Name - WAHPHeatPowCurve68; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve68, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 N1, !- Name @@ -39204,7 +39432,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve69, !- Heating Capacity Curve Name - WAHPHeatPowCurve69; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve69, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 N2, !- Name @@ -39220,7 +39449,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve70, !- Heating Capacity Curve Name - WAHPHeatPowCurve70; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve70, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 S1, !- Name @@ -39236,7 +39466,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve71, !- Heating Capacity Curve Name - WAHPHeatPowCurve71; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve71, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop F9 S2, !- Name @@ -39252,7 +39483,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve72, !- Heating Capacity Curve Name - WAHPHeatPowCurve72; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve72, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T SW, !- Name @@ -39268,7 +39500,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve73, !- Heating Capacity Curve Name - WAHPHeatPowCurve73; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve73, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T NW, !- Name @@ -39284,7 +39517,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve74, !- Heating Capacity Curve Name - WAHPHeatPowCurve74; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve74, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T SE, !- Name @@ -39300,7 +39534,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve75, !- Heating Capacity Curve Name - WAHPHeatPowCurve75; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve75, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T NE, !- Name @@ -39316,7 +39551,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve76, !- Heating Capacity Curve Name - WAHPHeatPowCurve76; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve76, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T N1, !- Name @@ -39332,7 +39568,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve77, !- Heating Capacity Curve Name - WAHPHeatPowCurve77; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve77, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T N2, !- Name @@ -39348,7 +39585,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve78, !- Heating Capacity Curve Name - WAHPHeatPowCurve78; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve78, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T S1, !- Name @@ -39364,7 +39602,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve79, !- Heating Capacity Curve Name - WAHPHeatPowCurve79; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve79, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop T S2, !- Name @@ -39380,7 +39619,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve80, !- Heating Capacity Curve Name - WAHPHeatPowCurve80; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve80, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name !- =========== ALL OBJECTS IN CLASS: HEATEXCHANGER:AIRTOAIR:SENSIBLEANDLATENT =========== @@ -41297,10 +41537,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41324,10 +41560,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41351,10 +41583,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop Office, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop Office, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41378,10 +41606,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41405,10 +41629,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G N1, !- Cooling Coil Name 0.0001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41432,10 +41652,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G N2, !- Cooling Coil Name 0.0001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41459,10 +41675,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41486,10 +41698,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop G S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop G S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41513,10 +41721,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41540,10 +41744,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41567,10 +41767,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41594,10 +41790,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41621,10 +41813,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41648,10 +41836,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41675,10 +41859,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41702,10 +41882,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F2 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F2 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41729,10 +41905,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41756,10 +41928,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41783,10 +41951,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41810,10 +41974,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41837,10 +41997,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41864,10 +42020,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41891,10 +42043,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41918,10 +42066,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F3 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F3 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41945,10 +42089,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41972,10 +42112,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41999,10 +42135,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42026,10 +42158,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42053,10 +42181,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42080,10 +42204,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42107,10 +42227,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42134,10 +42250,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F4 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F4 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42161,10 +42273,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42188,10 +42296,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42215,10 +42319,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42242,10 +42342,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42269,10 +42365,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42296,10 +42388,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42323,10 +42411,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42350,10 +42434,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop M S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop M S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42377,10 +42457,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42404,10 +42480,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42431,10 +42503,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42458,10 +42526,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42485,10 +42549,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42512,10 +42572,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42539,10 +42595,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42566,10 +42618,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F6 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F6 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42593,10 +42641,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42620,10 +42664,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42647,10 +42687,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42674,10 +42710,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42701,10 +42733,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42728,10 +42756,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42755,10 +42779,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42782,10 +42802,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F7 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F7 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42809,10 +42825,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42836,10 +42848,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42863,10 +42871,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42890,10 +42894,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42917,10 +42917,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42944,10 +42940,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42971,10 +42963,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42998,10 +42986,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F8 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F8 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43025,10 +43009,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43052,10 +43032,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43079,10 +43055,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43106,10 +43078,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43133,10 +43101,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 N1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43160,10 +43124,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 N2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43187,10 +43147,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43214,10 +43170,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop F9 S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop F9 S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43241,10 +43193,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T SW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T SW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43268,10 +43216,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T NW, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T NW, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43295,10 +43239,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T SE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T SE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43322,10 +43262,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T NE, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T NE, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43349,10 +43285,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T N1, !- Cooling Coil Name 0.0001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T N1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43376,10 +43308,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T N2, !- Cooling Coil Name 0.0001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T N2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43403,10 +43331,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T S1, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T S1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43430,10 +43354,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop T S2, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop T S2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -64470,6 +64390,14 @@ 0.0, !- Minimum Value of x 1.0; !- Maximum Value of x + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + Curve:Quadratic, Central Boiler Efficiency Curve, !- Name 1.0, !- Coefficient1 Constant diff --git a/testfiles/ASHRAE901_HotelSmall_STD2019_Denver.idf b/testfiles/ASHRAE901_HotelSmall_STD2019_Denver.idf index 6b0f87fc8a2..27d91c28979 100644 --- a/testfiles/ASHRAE901_HotelSmall_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_HotelSmall_STD2019_Denver.idf @@ -25296,10 +25296,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -25351,10 +25347,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -25406,10 +25398,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -25461,10 +25449,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver.idf b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver.idf index af76a7d489d..52df9aca147 100644 --- a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver.idf @@ -11031,8 +11031,6 @@ AirLoop DataCenter Basement Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter Basement, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11043,8 +11041,12 @@ WAHPCoolCapCurveTot 1, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 1, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 1, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter bot, !- Name @@ -11053,8 +11055,6 @@ AirLoop DataCenter bot Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter bot, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11065,8 +11065,12 @@ WAHPCoolCapCurveTot 2, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 2, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 2, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter mid, !- Name @@ -11075,8 +11079,6 @@ AirLoop DataCenter mid Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter mid, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11087,8 +11089,12 @@ WAHPCoolCapCurveTot 3, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 3, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 3, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter top, !- Name @@ -11097,8 +11103,6 @@ AirLoop DataCenter top Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter top, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11109,9 +11113,12 @@ WAHPCoolCapCurveTot 4, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 4, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 4, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== Coil:Heating:WaterToAirHeatPump:EquationFit, @@ -11128,7 +11135,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 1, !- Heating Capacity Curve Name - WAHPHeatPowCurve 1; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 1, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter bot, !- Name @@ -11144,7 +11152,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 2, !- Heating Capacity Curve Name - WAHPHeatPowCurve 2; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 2, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter mid, !- Name @@ -11160,7 +11169,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 3, !- Heating Capacity Curve Name - WAHPHeatPowCurve 3; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 3, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter top, !- Name @@ -11176,7 +11186,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 4, !- Heating Capacity Curve Name - WAHPHeatPowCurve 4; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 4, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name !- =========== ALL OBJECTS IN CLASS: HUMIDIFIER:STEAM:ELECTRIC =========== @@ -11207,10 +11218,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter Basement, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter Basement, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11234,10 +11241,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter bot, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter bot, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11261,10 +11264,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter mid, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter mid, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11288,10 +11287,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter top, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter top, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -16260,6 +16255,22 @@ 0, !- Minimum Value of x 1; !- Maximum Value of x + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- 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, diff --git a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205.idf b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205.idf index b02158cbbe4..5f92eaad487 100644 --- a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205.idf +++ b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205.idf @@ -11031,8 +11031,6 @@ AirLoop DataCenter Basement Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter Basement, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11043,8 +11041,12 @@ WAHPCoolCapCurveTot 1, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 1, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 1, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter bot, !- Name @@ -11053,8 +11055,6 @@ AirLoop DataCenter bot Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter bot, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11065,8 +11065,12 @@ WAHPCoolCapCurveTot 2, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 2, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 2, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter mid, !- Name @@ -11075,8 +11079,6 @@ AirLoop DataCenter mid Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter mid, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11087,8 +11089,12 @@ WAHPCoolCapCurveTot 3, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 3, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 3, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter top, !- Name @@ -11097,8 +11103,6 @@ AirLoop DataCenter top Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter top, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11109,9 +11113,12 @@ WAHPCoolCapCurveTot 4, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 4, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 4, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== Coil:Heating:WaterToAirHeatPump:EquationFit, @@ -11128,7 +11135,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 1, !- Heating Capacity Curve Name - WAHPHeatPowCurve 1; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 1, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter bot, !- Name @@ -11144,7 +11152,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 2, !- Heating Capacity Curve Name - WAHPHeatPowCurve 2; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 2, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter mid, !- Name @@ -11160,7 +11169,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 3, !- Heating Capacity Curve Name - WAHPHeatPowCurve 3; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 3, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter top, !- Name @@ -11176,7 +11186,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 4, !- Heating Capacity Curve Name - WAHPHeatPowCurve 4; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 4, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name !- =========== ALL OBJECTS IN CLASS: HUMIDIFIER:STEAM:ELECTRIC =========== @@ -11207,10 +11218,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter Basement, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter Basement, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11234,10 +11241,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter bot, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter bot, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11261,10 +11264,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter mid, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter mid, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11288,10 +11287,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter top, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter top, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -16246,6 +16241,22 @@ 0, !- Minimum Value of x 1; !- Maximum Value of x + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- 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, diff --git a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205_Detailed.idf b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205_Detailed.idf index f0645c2c971..3f19be33e99 100644 --- a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205_Detailed.idf +++ b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_Chiller205_Detailed.idf @@ -11031,8 +11031,6 @@ AirLoop DataCenter Basement Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter Basement, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11043,8 +11041,12 @@ WAHPCoolCapCurveTot 1, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 1, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 1, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter bot, !- Name @@ -11053,8 +11055,6 @@ AirLoop DataCenter bot Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter bot, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11065,8 +11065,12 @@ WAHPCoolCapCurveTot 2, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 2, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 2, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter mid, !- Name @@ -11075,8 +11079,6 @@ AirLoop DataCenter mid Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter mid, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11087,8 +11089,12 @@ WAHPCoolCapCurveTot 3, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 3, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 3, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter top, !- Name @@ -11097,8 +11103,6 @@ AirLoop DataCenter top Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter top, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11109,9 +11113,12 @@ WAHPCoolCapCurveTot 4, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 4, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 4, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== Coil:Heating:WaterToAirHeatPump:EquationFit, @@ -11128,7 +11135,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 1, !- Heating Capacity Curve Name - WAHPHeatPowCurve 1; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 1, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter bot, !- Name @@ -11144,7 +11152,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 2, !- Heating Capacity Curve Name - WAHPHeatPowCurve 2; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 2, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter mid, !- Name @@ -11160,7 +11169,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 3, !- Heating Capacity Curve Name - WAHPHeatPowCurve 3; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 3, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter top, !- Name @@ -11176,7 +11186,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 4, !- Heating Capacity Curve Name - WAHPHeatPowCurve 4; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 4, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name !- =========== ALL OBJECTS IN CLASS: HUMIDIFIER:STEAM:ELECTRIC =========== @@ -11207,10 +11218,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter Basement, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter Basement, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11234,10 +11241,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter bot, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter bot, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11261,10 +11264,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter mid, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter mid, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11288,10 +11287,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter top, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter top, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -16281,6 +16276,22 @@ 0, !- Minimum Value of x 1; !- Maximum Value of x + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- 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, diff --git a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_ChillerEIR.idf b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_ChillerEIR.idf index b1b657143a7..226beb008be 100644 --- a/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_ChillerEIR.idf +++ b/testfiles/ASHRAE901_OfficeLarge_STD2019_Denver_ChillerEIR.idf @@ -11031,8 +11031,6 @@ AirLoop DataCenter Basement Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter Basement, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11043,8 +11041,12 @@ WAHPCoolCapCurveTot 1, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 1, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 1, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter bot, !- Name @@ -11053,8 +11055,6 @@ AirLoop DataCenter bot Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter bot, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11065,8 +11065,12 @@ WAHPCoolCapCurveTot 2, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 2, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 2, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter mid, !- Name @@ -11075,8 +11079,6 @@ AirLoop DataCenter mid Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter mid, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11087,8 +11089,12 @@ WAHPCoolCapCurveTot 3, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 3, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 3, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, Heat Pump Cooling Mode AirLoop DataCenter top, !- Name @@ -11097,8 +11103,6 @@ AirLoop DataCenter top Supply Fan Outlet, !- Air Inlet Node Name Cooling Coil Air Outlet Node AirLoop DataCenter top, !- Air Outlet Node Name autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} autosize, !- Rated Water Flow Rate {m3/s} autosize, !- Gross Rated Total Cooling Capacity {W} autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -11109,9 +11113,12 @@ WAHPCoolCapCurveTot 4, !- Total Cooling Capacity Curve Name WAHPCoolCapCurveSens 4, !- Sensible Cooling Capacity Curve Name WAHPCoolPowCurve 4, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== Coil:Heating:WaterToAirHeatPump:EquationFit, @@ -11128,7 +11135,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 1, !- Heating Capacity Curve Name - WAHPHeatPowCurve 1; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 1, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter bot, !- Name @@ -11144,7 +11152,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 2, !- Heating Capacity Curve Name - WAHPHeatPowCurve 2; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 2, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter mid, !- Name @@ -11160,7 +11169,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 3, !- Heating Capacity Curve Name - WAHPHeatPowCurve 3; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 3, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, Heat Pump HEATING Mode AirLoop DataCenter top, !- Name @@ -11176,7 +11186,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity WAHPHeatCapCurve 4, !- Heating Capacity Curve Name - WAHPHeatPowCurve 4; !- Heating Power Consumption Curve Name + WAHPHeatPowCurve 4, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name !- =========== ALL OBJECTS IN CLASS: HUMIDIFIER:STEAM:ELECTRIC =========== @@ -11207,10 +11218,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter Basement, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter Basement, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11234,10 +11241,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter bot, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter bot, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11261,10 +11264,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter mid, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter mid, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11288,10 +11287,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Heat Pump Cooling Mode AirLoop DataCenter top, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil AirLoop DataCenter top, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -16297,6 +16292,22 @@ 0, !- Minimum Value of x 1; !- Maximum Value of x + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- 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, diff --git a/testfiles/ASHRAE901_RestaurantFastFood_STD2019_Denver.idf b/testfiles/ASHRAE901_RestaurantFastFood_STD2019_Denver.idf index 9b1d21f1408..84ca98ca7f0 100644 --- a/testfiles/ASHRAE901_RestaurantFastFood_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_RestaurantFastFood_STD2019_Denver.idf @@ -3266,10 +3266,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3321,10 +3317,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_RestaurantSitDown_STD2019_Denver.idf b/testfiles/ASHRAE901_RestaurantSitDown_STD2019_Denver.idf index 73666ccf309..cc0a678b6ff 100644 --- a/testfiles/ASHRAE901_RestaurantSitDown_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_RestaurantSitDown_STD2019_Denver.idf @@ -3314,10 +3314,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3369,10 +3365,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_RetailStandalone_STD2019_Denver.idf b/testfiles/ASHRAE901_RetailStandalone_STD2019_Denver.idf index 660a6fa54d2..b1663b4c941 100644 --- a/testfiles/ASHRAE901_RetailStandalone_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_RetailStandalone_STD2019_Denver.idf @@ -4592,10 +4592,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4647,10 +4643,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4702,10 +4694,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4757,10 +4745,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_RetailStripmall_STD2019_Denver.idf b/testfiles/ASHRAE901_RetailStripmall_STD2019_Denver.idf index 1be02a317b1..2f847f6fe62 100644 --- a/testfiles/ASHRAE901_RetailStripmall_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_RetailStripmall_STD2019_Denver.idf @@ -7131,10 +7131,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7186,10 +7182,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7241,10 +7233,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7296,10 +7284,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7351,10 +7335,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7406,10 +7386,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7461,10 +7437,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7516,10 +7488,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7571,10 +7539,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -7626,10 +7590,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_SchoolPrimary_STD2019_Denver.idf b/testfiles/ASHRAE901_SchoolPrimary_STD2019_Denver.idf index f362c4e30fe..121b10da2e4 100644 --- a/testfiles/ASHRAE901_SchoolPrimary_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_SchoolPrimary_STD2019_Denver.idf @@ -14340,10 +14340,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -14395,10 +14391,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -14450,10 +14442,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_SchoolSecondary_STD2019_Denver.idf b/testfiles/ASHRAE901_SchoolSecondary_STD2019_Denver.idf index 61ac783e39f..59496926eb7 100644 --- a/testfiles/ASHRAE901_SchoolSecondary_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_SchoolSecondary_STD2019_Denver.idf @@ -23673,10 +23673,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -23728,10 +23724,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -23783,10 +23775,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -23838,10 +23826,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -23893,10 +23877,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASHRAE901_Warehouse_STD2019_Denver.idf b/testfiles/ASHRAE901_Warehouse_STD2019_Denver.idf index 4b671ff6e6e..95f94a9e062 100644 --- a/testfiles/ASHRAE901_Warehouse_STD2019_Denver.idf +++ b/testfiles/ASHRAE901_Warehouse_STD2019_Denver.idf @@ -5337,10 +5337,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -5392,10 +5388,6 @@ AUTOSIZE, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/ASIHPMixedTank.idf b/testfiles/ASIHPMixedTank.idf index 52ff2282357..91672791fa1 100644 --- a/testfiles/ASIHPMixedTank.idf +++ b/testfiles/ASIHPMixedTank.idf @@ -1175,6 +1175,9 @@ 1.7, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -1318,6 +1321,9 @@ 1.7, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/AtticRoof_RadiantBarriers.idf b/testfiles/AtticRoof_RadiantBarriers.idf index be2760f8acb..71dd427c942 100644 --- a/testfiles/AtticRoof_RadiantBarriers.idf +++ b/testfiles/AtticRoof_RadiantBarriers.idf @@ -10759,10 +10759,6 @@ 48.8888888888889, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} 0; !- Ancillary Off-Cycle Electric Power {W} diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt index e4c02a8fdc2..c9d5a3f450d 100644 --- a/testfiles/CMakeLists.txt +++ b/testfiles/CMakeLists.txt @@ -283,6 +283,7 @@ add_simulation_test(IDF_FILE EMSUserDefined5ZoneAirCooled.idf EPW_FILE USA_IL_Ch add_simulation_test(IDF_FILE EMSUserDefinedWindACAuto.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) add_simulation_test(IDF_FILE EMSWindowShadeControl.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) add_simulation_test(IDF_FILE EarthTubeSimpleTest.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) +add_simulation_test(IDF_FILE EarthTubeVerticalTest.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) add_simulation_test(IDF_FILE EcoroofOrlando.idf EPW_FILE USA_FL_Orlando.Intl.AP.722050_TMY3.epw) add_simulation_test(IDF_FILE EcoroofOrlando_NoSitePrec.idf EPW_FILE USA_FL_Orlando.Intl.AP.722050_TMY3.epw) add_simulation_test(IDF_FILE ElectricChiller.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) diff --git a/testfiles/ChangeoverBypassVAV_AirToAir.idf b/testfiles/ChangeoverBypassVAV_AirToAir.idf index 1d0c4150db8..c3742d61fb9 100644 --- a/testfiles/ChangeoverBypassVAV_AirToAir.idf +++ b/testfiles/ChangeoverBypassVAV_AirToAir.idf @@ -1582,6 +1582,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/ChangeoverBypassVAV_AirToAirHeatPump.idf b/testfiles/ChangeoverBypassVAV_AirToAirHeatPump.idf index 7ce03c36785..92aa9aca1d8 100644 --- a/testfiles/ChangeoverBypassVAV_AirToAirHeatPump.idf +++ b/testfiles/ChangeoverBypassVAV_AirToAirHeatPump.idf @@ -1635,6 +1635,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/DOAToWaterToAirHPInlet.idf b/testfiles/DOAToWaterToAirHPInlet.idf index 55fbbff9014..129e56db5b5 100644 --- a/testfiles/DOAToWaterToAirHPInlet.idf +++ b/testfiles/DOAToWaterToAirHPInlet.idf @@ -2186,10 +2186,6 @@ SPACE1-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE1-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE1-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2217,10 +2213,6 @@ SPACE2-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE2-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE2-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2248,10 +2240,6 @@ SPACE3-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE3-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE3-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2279,10 +2267,6 @@ SPACE4-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE4-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE4-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2310,10 +2294,6 @@ SPACE5-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE5-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE5-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2659,8 +2639,6 @@ SPACE1-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE1-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2671,8 +2649,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE2-1 HP Cooling Mode,!- Name @@ -2681,8 +2663,6 @@ SPACE2-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE2-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2693,8 +2673,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE3-1 HP Cooling Mode,!- Name @@ -2703,8 +2687,6 @@ SPACE3-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE3-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2715,8 +2697,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE4-1 HP Cooling Mode,!- Name @@ -2725,8 +2711,6 @@ SPACE4-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE4-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2737,8 +2721,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE5-1 HP Cooling Mode,!- Name @@ -2747,8 +2735,6 @@ SPACE5-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE5-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2759,8 +2745,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== @@ -2778,7 +2768,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE2-1 HP Heating Mode,!- Name @@ -2794,7 +2785,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE3-1 HP Heating Mode,!- Name @@ -2810,7 +2802,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE4-1 HP Heating Mode,!- Name @@ -2826,7 +2819,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE5-1 HP Heating Mode,!- Name @@ -2842,7 +2836,24 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name + + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x !- =========== ALL OBJECTS IN CLASS: CURVE:QUADLINEAR =========== diff --git a/testfiles/DOAToWaterToAirHPSupply.idf b/testfiles/DOAToWaterToAirHPSupply.idf index a63bfd3f104..e42b8fd6281 100644 --- a/testfiles/DOAToWaterToAirHPSupply.idf +++ b/testfiles/DOAToWaterToAirHPSupply.idf @@ -2186,10 +2186,6 @@ SPACE1-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE1-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE1-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2217,10 +2213,6 @@ SPACE2-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE2-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE2-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2248,10 +2240,6 @@ SPACE3-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE3-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE3-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2279,10 +2267,6 @@ SPACE4-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE4-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE4-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2310,10 +2294,6 @@ SPACE5-1 HP Heating Mode,!- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type SPACE5-1 HP Cooling Mode,!- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type SPACE5-1 HP Supp Coil, !- Supplemental Heating Coil Name 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2659,8 +2639,6 @@ SPACE1-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE1-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2671,8 +2649,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE2-1 HP Cooling Mode,!- Name @@ -2681,8 +2663,6 @@ SPACE2-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE2-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2693,8 +2673,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE3-1 HP Cooling Mode,!- Name @@ -2703,8 +2687,6 @@ SPACE3-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE3-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2715,8 +2697,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE4-1 HP Cooling Mode,!- Name @@ -2725,8 +2711,6 @@ SPACE4-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE4-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2737,8 +2721,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Cooling:WaterToAirHeatPump:EquationFit, SPACE5-1 HP Cooling Mode,!- Name @@ -2747,8 +2735,6 @@ SPACE5-1 Zone Unit Fan Outlet, !- Air Inlet Node Name SPACE5-1 Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -2759,8 +2745,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== @@ -2778,7 +2768,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE2-1 HP Heating Mode,!- Name @@ -2794,7 +2785,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE3-1 HP Heating Mode,!- Name @@ -2810,7 +2802,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE4-1 HP Heating Mode,!- Name @@ -2826,7 +2819,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:WaterToAirHeatPump:EquationFit, SPACE5-1 HP Heating Mode,!- Name @@ -2842,7 +2836,24 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name + + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x !- =========== ALL OBJECTS IN CLASS: CURVE:QUADLINEAR =========== diff --git a/testfiles/DesiccantDehumidifierWithAirToAirCoil.idf b/testfiles/DesiccantDehumidifierWithAirToAirCoil.idf index da0896b0ad1..e51c0464c18 100644 --- a/testfiles/DesiccantDehumidifierWithAirToAirCoil.idf +++ b/testfiles/DesiccantDehumidifierWithAirToAirCoil.idf @@ -2813,6 +2813,9 @@ 1.05, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 1000, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.4, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name Condenser Inlet Node, !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/DirectIndirectEvapCoolersVSAS.idf b/testfiles/DirectIndirectEvapCoolersVSAS.idf index 84aba297944..d9c7818fc66 100644 --- a/testfiles/DirectIndirectEvapCoolersVSAS.idf +++ b/testfiles/DirectIndirectEvapCoolersVSAS.idf @@ -162,6 +162,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time FURNACE_PACU_CAV:1_Unitary_PackagecoolPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -305,6 +308,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time FURNACE_PACU_CAV:2_Unitary_PackagecoolPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -448,6 +454,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time FURNACE_PACU_CAV:3_Unitary_PackagecoolPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -591,6 +600,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time FURNACE_PACU_CAV:4_Unitary_PackagecoolPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/EMSLoadBasedMultiSpeedDXCoilOverrideControl.idf b/testfiles/EMSLoadBasedMultiSpeedDXCoilOverrideControl.idf index a5d78a3940e..1719c0164e7 100644 --- a/testfiles/EMSLoadBasedMultiSpeedDXCoilOverrideControl.idf +++ b/testfiles/EMSLoadBasedMultiSpeedDXCoilOverrideControl.idf @@ -2425,10 +2425,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2886,10 +2882,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3357,10 +3349,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4014,10 +4002,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4671,10 +4655,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/EMSSetpointBasedMultiSpeedDXCoilOverrideControl.idf b/testfiles/EMSSetpointBasedMultiSpeedDXCoilOverrideControl.idf index a965a22f65a..3e1df58f18a 100644 --- a/testfiles/EMSSetpointBasedMultiSpeedDXCoilOverrideControl.idf +++ b/testfiles/EMSSetpointBasedMultiSpeedDXCoilOverrideControl.idf @@ -2744,10 +2744,6 @@ 80, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/EarthTubeVerticalTest.idf b/testfiles/EarthTubeVerticalTest.idf new file mode 100644 index 00000000000..ee73a76400d --- /dev/null +++ b/testfiles/EarthTubeVerticalTest.idf @@ -0,0 +1,2364 @@ +! VentilationVerticalTest.idf +! Basic file description: Illustration of using ZoneEarthtube statement. +! Run: 3 design days for Hilo, Hawaii (two are the ASHRAE HoF 2005 design days and one is +! made up of the average of the two to mimic a spring day approximately), annual run. +! Building: Three zones/buildings which are all identical. To avoid any shading between the zones +! each is separated by a distance of 100m (in the x-direction). The shape of each zone +! is basically rectangular with the long side parallel to the east-west axis. The south +! wall is articulated, just for kicks. Windows are present on all south walls and the +! north wall. The zones are "uncontrolled" in that the only method of cooling the spaces +! is the ventilation statements. The intent is to see the effect of different ventilation +! types on the zone temperatures. Three zones are served by earth tubes, two use the +! Vertical model while one uses the Basic model. +! Internal: People, lights, and equipment at reasonable levels for each zone. The levels of these +! parameters is the same for all zones. VENTILATION (sort of an internal gain/loss) is +! also present in each zone. The only difference in the ventilation between the zones is +! the type of ventilation. In the first zone, ventilation is due to natural air movement. +! In the second zone, the ventilation is due to an intake fan. In the third zone, the +! ventilation is due to an exhaust fan. Though there are slight fan efficiency differences +! between the zones, the flow rate and modifying schedule/coefficients are identical from +! zone to zone. +! System: None. +! Plant: None. +! SolDis=FullExterior, Aniso, Simple Interior and Exterior Convection + + Version,23.2; + + Timestep,4; + + Building, + BUILDING #1, !- Name + 0.0000000E+00, !- North Axis {deg} + Suburbs, !- Terrain + 3.9999999E-02, !- Loads Convergence Tolerance Value {W} + 0.4000000, !- Temperature Convergence Tolerance Value {deltaC} + FullExterior, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + + SurfaceConvectionAlgorithm:Inside,Simple; + + SurfaceConvectionAlgorithm:Outside,SimpleCombined; + + SimulationControl, + No, !- Do Zone Sizing Calculation + No, !- Do System Sizing Calculation + No, !- Do Plant Sizing Calculation + Yes, !- 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 + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 12, !- End Month + 31, !- End Day of Month + , !- End Year + Tuesday, !- 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 + + Site:Location, + HILO_HI_USA TMY2-21504, !- Name + 19.72, !- Latitude {deg} + -155.07, !- Longitude {deg} + -10.00, !- Time Zone {hr} + 11.00; !- Elevation {m} + + ! HILO_HI_USA Heating 99%, MaxDB= 17.10°C + + SizingPeriod:DesignDay, + HILO_HI_USA Heating 99% Conditions, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + 17.10, !- Maximum Dry-Bulb Temperature {C} + 0.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 + 17.10, !- 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} + 101193., !- Barometric Pressure {Pa} + 3.20, !- Wind Speed {m/s} + 230.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} + 0.00; !- Sky Clearness + + ! HILO_HI_USA Cooling (DB=>MWB) 1%, MaxDB= 29.10°C MWB= 23.10°C + + SizingPeriod:DesignDay, + HILO_HI_USA Cooling 1% Conditions DB=>MWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 29.10, !- Maximum Dry-Bulb Temperature {C} + 7.40, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 23.10, !- 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} + 101193., !- Barometric Pressure {Pa} + 5.40, !- Wind Speed {m/s} + 110.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.00; !- Sky Clearness + + ! HILO Hawaii Fictional Spring Day (average of WDD and SDD) + + SizingPeriod:DesignDay, + HILO Hawaii Spring Day, !- Name + 4, !- Month + 1, !- Day of Month + SummerDesignDay, !- Day Type + 23.10, !- Maximum Dry-Bulb Temperature {C} + 3.70, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 20.10, !- 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} + 101193., !- Barometric Pressure {Pa} + 4.30, !- Wind Speed {m/s} + 170.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.00; !- Sky Clearness + + Material, + A2 - 4 IN DENSE FACE BRICK, !- Name + Rough, !- Roughness + 0.1014984, !- Thickness {m} + 1.245296, !- Conductivity {W/m-K} + 2082.400, !- Density {kg/m3} + 920.4800, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.9300000, !- Solar Absorptance + 0.9300000; !- Visible Absorptance + + Material, + B3 - 2 IN INSULATION, !- Name + VeryRough, !- Roughness + 5.0901599E-02, !- Thickness {m} + 4.3239430E-02, !- Conductivity {W/m-K} + 32.03693, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.5000000, !- Solar Absorptance + 0.5000000; !- Visible Absorptance + + Material, + C2 - 4 IN LW CONCRETE BLOCK, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 0.3805070, !- Conductivity {W/m-K} + 608.7016, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.6500000, !- Solar Absorptance + 0.6500000; !- Visible Absorptance + + Material, + E1 - 3 / 4 IN PLASTER OR GYP BOARD, !- Name + Smooth, !- Roughness + 1.9050000E-02, !- Thickness {m} + 0.7264224, !- Conductivity {W/m-K} + 1601.846, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.9200000, !- Solar Absorptance + 0.9200000; !- Visible Absorptance + + WindowMaterial:Glazing, + GLASS - CLEAR PLATE 1 / 4 IN, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + 6.0000001E-03, !- Thickness {m} + 0.7750000, !- Solar Transmittance at Normal Incidence + 7.1000002E-02, !- Front Side Solar Reflectance at Normal Incidence + 7.1000002E-02, !- Back Side Solar Reflectance at Normal Incidence + 0.8810000, !- Visible Transmittance at Normal Incidence + 7.9999998E-02, !- Front Side Visible Reflectance at Normal Incidence + 7.9999998E-02, !- Back Side Visible Reflectance at Normal Incidence + 0.0000000E+00, !- Infrared Transmittance at Normal Incidence + 0.8400000, !- Front Side Infrared Hemispherical Emissivity + 0.8400000, !- Back Side Infrared Hemispherical Emissivity + 0.9000000; !- Conductivity {W/m-K} + + Material, + DIRT 12 IN, !- Name + Rough, !- Roughness + 0.3048000, !- Thickness {m} + 0.1729577, !- Conductivity {W/m-K} + 1041.200, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7000000, !- Solar Absorptance + 0.7000000; !- Visible Absorptance + + Material, + CONCRETE - SAND AND GRAVEL 4 IN, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 1.729577, !- Conductivity {W/m-K} + 2242.585, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.6000000, !- Solar Absorptance + 0.6000000; !- Visible Absorptance + + Material, + E2 - 1 / 2 IN SLAG OR STONE, !- Name + Rough, !- Roughness + 1.2710161E-02, !- Thickness {m} + 1.435549, !- Conductivity {W/m-K} + 881.0155, !- Density {kg/m3} + 1673.600, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.5500000, !- Solar Absorptance + 0.5500000; !- Visible Absorptance + + Material, + E3 - 3 / 8 IN FELT AND MEMBRANE, !- Name + Rough, !- Roughness + 9.5402403E-03, !- Thickness {m} + 0.1902535, !- Conductivity {W/m-K} + 1121.292, !- Density {kg/m3} + 1673.600, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material, + B6 - 2 IN DENSE INSULATION, !- Name + VeryRough, !- Roughness + 5.0901599E-02, !- Thickness {m} + 4.3239430E-02, !- Conductivity {W/m-K} + 91.30524, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.5000000, !- Solar Absorptance + 0.5000000; !- Visible Absorptance + + Material, + C12 - 2 IN HW CONCRETE, !- Name + MediumRough, !- Roughness + 5.0901599E-02, !- Thickness {m} + 1.729577, !- Conductivity {W/m-K} + 2242.585, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.6500000, !- Solar Absorptance + 0.6500000; !- Visible Absorptance + + Construction, + EXTERIOR, !- Name + A2 - 4 IN DENSE FACE BRICK, !- Outside Layer + B3 - 2 IN INSULATION, !- Layer 2 + C2 - 4 IN LW CONCRETE BLOCK, !- Layer 3 + E1 - 3 / 4 IN PLASTER OR GYP BOARD; !- Layer 4 + + Construction, + SINGLE PANE HW WINDOW, !- Name + GLASS - CLEAR PLATE 1 / 4 IN; !- Outside Layer + + Construction, + SLAB FLOOR, !- Name + DIRT 12 IN, !- Outside Layer + CONCRETE - SAND AND GRAVEL 4 IN; !- Layer 2 + + Construction, + ROOF31, !- Name + E2 - 1 / 2 IN SLAG OR STONE, !- Outside Layer + E3 - 3 / 8 IN FELT AND MEMBRANE, !- Layer 2 + B6 - 2 IN DENSE INSULATION, !- Layer 3 + C12 - 2 IN HW CONCRETE; !- Layer 4 + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + Schedule:Compact, + BLDG Sch 1, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay WinterDesignDay, !- Field 2 + Until: 7:00,1.0, !- Field 3 + Until: 8:00,0.5, !- Field 5 + Until: 15:00,0.3, !- Field 7 + Until: 16:00,0.4, !- Field 9 + Until: 17:00,0.7, !- Field 11 + Until: 24:00,1.0, !- Field 13 + For: AllOtherDays, !- Field 15 + Until: 9:00,1.0, !- Field 16 + Until: 16:00,0.3, !- Field 18 + Until: 19:00,0.7, !- Field 20 + Until: 22:00,0.3, !- Field 22 + Until: 23:00,0.7, !- Field 24 + Until: 24:00,1.0; !- Field 26 + + Schedule:Compact, + BLDG Sch 2, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay WinterDesignDay, !- Field 2 + Until: 6:00,0.1, !- Field 3 + Until: 8:00,0.2, !- Field 5 + Until: 16:00,0.1, !- Field 7 + Until: 17:00,0.2, !- Field 9 + Until: 19:00,0.5, !- Field 11 + Until: 22:00,1.0, !- Field 13 + Until: 23:00,0.5, !- Field 15 + Until: 24:00,0.3, !- Field 17 + For: AllOtherDays, !- Field 19 + Until: 16:00,0.1, !- Field 20 + Until: 18:00,0.5, !- Field 22 + Until: 22:00,1.0, !- Field 24 + Until: 23:00,0.5, !- Field 26 + Until: 24:00,0.3; !- Field 28 + + Schedule:Compact, + BLDG Sch 3, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + Activity Lvl 1, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,130.0; !- Field 3 + + Schedule:Compact, + ShadingTransmittance:0001, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.0; !- Field 3 + + Site:GroundTemperature:BuildingSurface,1.90000000E+01,1.90000000E+01,1.90000000E+01,2.00000000E+01,2.20000000E+01,2.30000000E+01,2.40000000E+01,2.30000000E+01,2.20000000E+01,2.10000000E+01,2.00000000E+01,1.90000000E+01; + + Zone, + ZONE 1, !- Name + 0.0000000E+00, !- Direction of Relative North {deg} + 1.980000, !- X Origin {m} + 4.580000, !- Y Origin {m} + 0.0000000E+00, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + People, + ZONE 1 People 1, !- Name + ZONE 1, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 4.000000, !- Number of People + , !- People per Floor Area {person/m2} + , !- Floor Area per Person {m2/person} + 0.6000000, !- Fraction Radiant + , !- Sensible Heat Fraction + Activity Lvl 1; !- Activity Level Schedule Name + + Lights, + ZONE 1 Lights 1, !- Name + ZONE 1, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 2, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 950.0000, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000000E+00, !- Return Air Fraction + 0.4000000, !- Fraction Radiant + 0.2000000, !- Fraction Visible + 0.0000000E+00, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + ZONE 1 ElecEq 1, !- Name + ZONE 1, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 2, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 480.0000, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000000E+00, !- Fraction Latent + 0.3000000, !- Fraction Radiant + 0.0000000E+00; !- Fraction Lost + + ZoneEarthtube, + ZONE 1, !- Zone Name + BLDG Sch 3, !- Schedule Name + 1.0, !- Design Flow Rate {m3/s} + -10.0, !- Minimum Zone Temperature when Cooling {C} + 30.0, !- Maximum Zone Temperature when Heating {C} + 0.1, !- Delta Temperature {deltaC} + NATURAL, !- Earthtube Type + 0.0, !- Fan Pressure Rise {Pa} + 1.0, !- Fan Total Efficiency + 0.25, !- Pipe Radius {m} + 0.01, !- Pipe Thickness {m} + 100.0, !- Pipe Length {m} + 50.0, !- Pipe Thermal Conductivity {W/m-K} + 3, !- Pipe Depth Under Ground Surface {m} + HeavyAndSaturated, !- Soil Condition + 12.68846, !- Average Soil Surface Temperature {C} + 5.893740, !- Amplitude of Soil Surface Temperature {deltaC} + 2, !- Phase Constant of Soil Surface Temperature {days} + 0.6060000, !- Constant Term Flow Coefficient + 2.0199999E-02, !- Temperature Term Flow Coefficient + 5.9800001E-04, !- Velocity Term Flow Coefficient + 0.0000000E+00, !- Velocity Squared Term Flow Coefficient + Vertical, !- Earth Tube Model Type + MyETparameters; !- Earth Tube Model Parameters + + ZoneEarthtube:Parameters, + MyETparameters, !- Earth Tube Model Parameters (Name) + 5, !- Earth Tube Nodes Above + 3, !- Earth Tube Nodes Below + 1.0, !- Earth Tube Dimensionless Boundary Above + 0.25, !- Earth Tube Dimensionless Boundary Below + 4.0; !- Earth Tube Dimensionless Solution Space Width + + Zone, + ZONE 2, !- Name + 0.0000000E+00, !- Direction of Relative North {deg} + 101.980000, !- X Origin {m} + 4.580000, !- Y Origin {m} + 0.0000000E+00, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + People, + ZONE 2 People 1, !- Name + ZONE 2, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 4.000000, !- Number of People + , !- People per Floor Area {person/m2} + , !- Floor Area per Person {m2/person} + 0.6000000, !- Fraction Radiant + , !- Sensible Heat Fraction + Activity Lvl 1; !- Activity Level Schedule Name + + Lights, + ZONE 2 Lights 1, !- Name + ZONE 2, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 2, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 950.0000, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000000E+00, !- Return Air Fraction + 0.4000000, !- Fraction Radiant + 0.2000000, !- Fraction Visible + 0.0000000E+00, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + ZONE 2 ElecEq 1, !- Name + ZONE 2, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 2, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 480.0000, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000000E+00, !- Fraction Latent + 0.3000000, !- Fraction Radiant + 0.0000000E+00; !- Fraction Lost + + ZoneEarthtube, + ZONE 2, !- Zone Name + BLDG Sch 3, !- Schedule Name + 1.0, !- Design Flow Rate {m3/s} + -10.0, !- Minimum Zone Temperature when Cooling {C} + 30.0, !- Maximum Zone Temperature when Heating {C} + 0.1, !- Delta Temperature {deltaC} + INTAKE, !- Earthtube Type + 400.0, !- Fan Pressure Rise {Pa} + 0.9, !- Fan Total Efficiency + 0.25, !- Pipe Radius {m} + 0.01, !- Pipe Thickness {m} + 100.0, !- Pipe Length {m} + 50.0, !- Pipe Thermal Conductivity {W/m-K} + 3, !- Pipe Depth Under Ground Surface {m} + HeavyAndSaturated, !- Soil Condition + 12.68846, !- Average Soil Surface Temperature {C} + 5.893740, !- Amplitude of Soil Surface Temperature {deltaC} + 2, !- Phase Constant of Soil Surface Temperature {days} + 0.6060000, !- Constant Term Flow Coefficient + 2.0199999E-02, !- Temperature Term Flow Coefficient + 5.9800001E-04, !- Velocity Term Flow Coefficient + 0.0000000E+00, !- Velocity Squared Term Flow Coefficient + Vertical, !- Earth Tube Model Type + MyETparameters2; !- Earth Tube Model Parameters + + ZoneEarthtube:Parameters, + MyETparameters2, !- Earth Tube Model Parameters (Name) + 10, !- Earth Tube Nodes Above + 10, !- Earth Tube Nodes Below + 1.0, !- Earth Tube Dimensionless Boundary Above + 1.0, !- Earth Tube Dimensionless Boundary Below + 20.0; !- Earth Tube Dimensionless Solution Space Width + + + Zone, + ZONE 3, !- Name + 0.0000000E+00, !- Direction of Relative North {deg} + 201.980000, !- X Origin {m} + 4.580000, !- Y Origin {m} + 0.0000000E+00, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + People, + ZONE 3 People 1, !- Name + ZONE 3, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 4.000000, !- Number of People + , !- People per Floor Area {person/m2} + , !- Floor Area per Person {m2/person} + 0.6000000, !- Fraction Radiant + , !- Sensible Heat Fraction + Activity Lvl 1; !- Activity Level Schedule Name + + Lights, + ZONE 3 Lights 1, !- Name + ZONE 3, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 2, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 950.0000, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000000E+00, !- Return Air Fraction + 0.4000000, !- Fraction Radiant + 0.2000000, !- Fraction Visible + 0.0000000E+00, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + ZONE 3 ElecEq 1, !- Name + ZONE 3, !- Zone or ZoneList or Space or SpaceList Name + BLDG Sch 2, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 480.0000, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000000E+00, !- Fraction Latent + 0.3000000, !- Fraction Radiant + 0.0000000E+00; !- Fraction Lost + + ZoneEarthtube, + ZONE 3, !- Zone Name + BLDG Sch 3, !- Schedule Name + 1.0, !- Design Flow Rate {m3/s} + -10.0, !- Minimum Zone Temperature when Cooling {C} + 30.0, !- Maximum Zone Temperature when Heating {C} + 0.1, !- Delta Temperature {deltaC} + EXHAUST, !- Earthtube Type + 400.0, !- Fan Pressure Rise {Pa} + 0.8, !- Fan Total Efficiency + 0.25, !- Pipe Radius {m} + 0.01, !- Pipe Thickness {m} + 100.0, !- Pipe Length {m} + 50.0, !- Pipe Thermal Conductivity {W/m-K} + 3.0, !- Pipe Depth Under Ground Surface {m} + HeavyAndSaturated, !- Soil Condition + 12.68846, !- Average Soil Surface Temperature {C} + 5.893740, !- Amplitude of Soil Surface Temperature {deltaC} + 2, !- Phase Constant of Soil Surface Temperature {days} + 0.6060000, !- Constant Term Flow Coefficient + 2.0199999E-02, !- Temperature Term Flow Coefficient + 5.9800001E-04, !- Velocity Term Flow Coefficient + 0.0000000E+00; !- Velocity Squared Term Flow Coefficient + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World, !- Coordinate System + , !- Daylighting Reference Point Coordinate System + World; !- Rectangular Surface Coordinate System + + BuildingSurface:Detailed, + Zn001:Wall001, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 1.980000,5.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 1.980000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 7.280000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 7.280000,5.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall001:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall001, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 3.080000,5.980000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 3.080000,5.980000,2.600000, !- X,Y,Z ==> Vertex 2 {m} + 6.080000,5.980000,2.600000, !- X,Y,Z ==> Vertex 3 {m} + 6.080000,5.980000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall001:Shade001, !- Name + Zn001:Wall001, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 3.080000,2.980000,8.000000, !- X,Y,Z ==> Vertex 1 {m} + 3.080000,5.980000,8.000000, !- X,Y,Z ==> Vertex 2 {m} + 6.080000,5.980000,8.000000, !- X,Y,Z ==> Vertex 3 {m} + 6.080000,2.980000,8.000000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall002, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 7.280000,5.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 7.280000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 7.280000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 7.280000,8.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall003, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 7.280000,8.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 7.280000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 12.88000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 12.88000,8.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall003:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall003, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 8.580000,8.980000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 8.580000,8.980000,2.500000, !- X,Y,Z ==> Vertex 2 {m} + 11.58000,8.980000,2.500000, !- X,Y,Z ==> Vertex 3 {m} + 11.58000,8.980000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall003:Shade001, !- Name + Zn001:Wall003, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 8.580000,5.980000,7.900000, !- X,Y,Z ==> Vertex 1 {m} + 8.580000,8.980000,7.900000, !- X,Y,Z ==> Vertex 2 {m} + 11.58000,8.980000,7.900000, !- X,Y,Z ==> Vertex 3 {m} + 11.58000,5.980000,7.900000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall004, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 12.88000,8.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 12.88000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 12.88000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 12.88000,4.580000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall005, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 12.88000,4.580000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 12.88000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 18.18000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 18.18000,4.580000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall005:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall005, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 14.08000,4.580000,7.100000, !- X,Y,Z ==> Vertex 1 {m} + 14.08000,4.580000,2.100000, !- X,Y,Z ==> Vertex 2 {m} + 17.08000,4.580000,2.100000, !- X,Y,Z ==> Vertex 3 {m} + 17.08000,4.580000,7.100000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall005:Shade001, !- Name + Zn001:Wall005, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 14.08000,1.580000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 14.08000,4.580000,7.500000, !- X,Y,Z ==> Vertex 2 {m} + 17.08000,4.580000,7.500000, !- X,Y,Z ==> Vertex 3 {m} + 17.08000,1.580000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall006, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 18.18000,4.580000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 18.18000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 18.18000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 18.18000,8.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall007, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 18.18000,8.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 18.18000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 24.08000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 24.08000,8.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall007:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall007, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 19.58000,8.080000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 19.58000,8.080000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 22.58000,8.080000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 22.58000,8.080000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall007:Shade001, !- Name + Zn001:Wall007, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 19.58000,5.080000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 19.58000,8.080000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 22.58000,8.080000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 22.58000,5.080000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall008, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 24.08000,8.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 24.08000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 24.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 24.08000,5.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall009, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 24.08000,5.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 24.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 30.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 30.08000,5.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall009:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall009, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 25.58000,5.080000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 25.58000,5.080000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 28.58000,5.080000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 28.58000,5.080000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall009:Shade001, !- Name + Zn001:Wall009, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 25.58000,2.080000,7.700000, !- X,Y,Z ==> Vertex 1 {m} + 25.58000,5.080000,7.700000, !- X,Y,Z ==> Vertex 2 {m} + 28.58000,5.080000,7.700000, !- X,Y,Z ==> Vertex 3 {m} + 28.58000,2.080000,7.700000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall010, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 30.08000,5.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 30.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 30.08000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 30.08000,10.28000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall011, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 30.08000,10.28000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 30.08000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 35.38000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 35.38000,10.28000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall011:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall011, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 30.98000,10.28000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 30.98000,10.28000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 33.98000,10.28000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 33.98000,10.28000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall011:Shade001, !- Name + Zn001:Wall011, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 30.98000,7.280000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 30.98000,10.28000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 33.98000,10.28000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 33.98000,7.280000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall012, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 35.38000,10.28000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 35.38000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 35.38000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 35.38000,7.480000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall013, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 35.38000,7.480000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 35.38000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 41.48000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 41.48000,7.480000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall013:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall013, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 36.88000,7.480000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 36.88000,7.480000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 39.88000,7.480000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 39.88000,7.480000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn001:Wall013:Shade001, !- Name + Zn001:Wall013, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 36.88000,4.480000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 36.88000,7.480000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 39.88000,7.480000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 39.88000,4.480000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall014, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 41.48000,7.480000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 41.48000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 41.48000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 41.48000,18.38000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall015, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 41.48000,18.38000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 41.48000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 1.980000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 1.980000,18.38000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn001:Wall015:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn001:Wall015, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 40.88000,18.38000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 40.88000,18.38000,4.500000, !- X,Y,Z ==> Vertex 2 {m} + 4.880000,18.38000,4.500000, !- X,Y,Z ==> Vertex 3 {m} + 4.880000,18.38000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall016, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 1.980000,18.38000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 1.980000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 1.980000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 1.980000,5.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + +! equivalent area: +! 22.98000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 1 +! 1.980000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 +! 1.980000,25.58000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 +! 22.98000,25.58000,0.0000000E+00; !- X,Y,Z ==> Vertex 4 + + BuildingSurface:Detailed, + Zn001:Flr001, !- Name + Floor, !- Surface Type + SLAB FLOOR, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + autocalculate, !- Number of Vertices + 1.980000,5.980000,0.0, !- X,Y,Z ==> Vertex 1 {m} + 1.980000,18.38000,0.0, !- X,Y,Z ==> Vertex 2 {m} + 41.48000,18.38000,0.0, !- X,Y,Z ==> Vertex 3 {m} + 41.48000,7.480000,0.0, !- X,Y,Z ==> Vertex 4 {m} + 35.38000,7.480000,0.0, !- X,Y,Z ==> Vertex 5 {m} + 35.38000,10.28000,0.0, !- X,Y,Z ==> Vertex 6 {m} + 30.08000,10.28000,0.0, !- X,Y,Z ==> Vertex 7 {m} + 30.08000,5.080000,0.0, !- X,Y,Z ==> Vertex 8 {m} + 24.08000,5.080000,0.0, !- X,Y,Z ==> Vertex 9 {m} + 24.08000,8.080000,0.0, !- X,Y,Z ==> Vertex 10 {m} + 18.18000,8.080000,0.0, !- X,Y,Z ==> Vertex 11 {m} + 18.18000,4.580000,0.0, !- X,Y,Z ==> Vertex 12 {m} + 12.88000,4.580000,0.0, !- X,Y,Z ==> Vertex 13 {m} + 12.88000,8.980000,0.0, !- X,Y,Z ==> Vertex 14 {m} + 7.280000,8.980000,0.0, !- X,Y,Z ==> Vertex 15 {m} + 7.280000,5.980000,0.0; !- X,Y,Z ==> Vertex 16 {m} + +! equivalent area: +! 1.980000,25.58000,10.00000, !- X,Y,Z ==> Vertex 1 +! 1.980000,4.580000,10.00000, !- X,Y,Z ==> Vertex 2 +! 22.98000,4.580000,10.00000, !- X,Y,Z ==> Vertex 3 +! 22.98000,25.58000,10.00000; !- X,Y,Z ==> Vertex 4 + + BuildingSurface:Detailed, + Zn001:Roof001, !- Name + Roof, !- Surface Type + ROOF31, !- Construction Name + ZONE 1, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.0000000E+00, !- View Factor to Ground + autocalculate, !- Number of Vertices + 1.980000,5.980000,10.0, !- X,Y,Z ==> Vertex 1 {m} + 7.280000,5.980000,10.0, !- X,Y,Z ==> Vertex 2 {m} + 7.280000,8.980000,10.0, !- X,Y,Z ==> Vertex 3 {m} + 12.88000,8.980000,10.0, !- X,Y,Z ==> Vertex 4 {m} + 12.88000,4.580000,10.0, !- X,Y,Z ==> Vertex 5 {m} + 18.18000,4.580000,10.0, !- X,Y,Z ==> Vertex 6 {m} + 18.18000,8.080000,10.0, !- X,Y,Z ==> Vertex 7 {m} + 24.08000,8.080000,10.0, !- X,Y,Z ==> Vertex 8 {m} + 24.08000,5.080000,10.0, !- X,Y,Z ==> Vertex 9 {m} + 30.08000,5.080000,10.0, !- X,Y,Z ==> Vertex 10 {m} + 30.08000,10.28000,10.0, !- X,Y,Z ==> Vertex 11 {m} + 35.38000,10.28000,10.0, !- X,Y,Z ==> Vertex 12 {m} + 35.38000,7.480000,10.0, !- X,Y,Z ==> Vertex 13 {m} + 41.48000,7.480000,10.0, !- X,Y,Z ==> Vertex 14 {m} + 41.48000,18.38000,10.0, !- X,Y,Z ==> Vertex 15 {m} + 1.980000,18.38000,10.0; !- X,Y,Z ==> Vertex 16 {m} + + BuildingSurface:Detailed, + Zn002:Wall001, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 101.980000,5.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 101.980000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 107.280000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 107.280000,5.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall001:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall001, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 103.080000,5.980000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 103.080000,5.980000,2.600000, !- X,Y,Z ==> Vertex 2 {m} + 106.080000,5.980000,2.600000, !- X,Y,Z ==> Vertex 3 {m} + 106.080000,5.980000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall001:Shade001, !- Name + Zn002:Wall001, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 103.080000,2.980000,8.000000, !- X,Y,Z ==> Vertex 1 {m} + 103.080000,5.980000,8.000000, !- X,Y,Z ==> Vertex 2 {m} + 106.080000,5.980000,8.000000, !- X,Y,Z ==> Vertex 3 {m} + 106.080000,2.980000,8.000000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall002, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 107.280000,5.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 107.280000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 107.280000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 107.280000,8.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall003, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 107.280000,8.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 107.280000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 112.88000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 112.88000,8.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall003:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall003, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 108.580000,8.980000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 108.580000,8.980000,2.500000, !- X,Y,Z ==> Vertex 2 {m} + 111.58000,8.980000,2.500000, !- X,Y,Z ==> Vertex 3 {m} + 111.58000,8.980000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall003:Shade001, !- Name + Zn002:Wall003, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 108.580000,5.980000,7.900000, !- X,Y,Z ==> Vertex 1 {m} + 108.580000,8.980000,7.900000, !- X,Y,Z ==> Vertex 2 {m} + 111.58000,8.980000,7.900000, !- X,Y,Z ==> Vertex 3 {m} + 111.58000,5.980000,7.900000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall004, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 112.88000,8.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 112.88000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 112.88000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 112.88000,4.580000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall005, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 112.88000,4.580000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 112.88000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 118.18000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 118.18000,4.580000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall005:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall005, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 114.08000,4.580000,7.100000, !- X,Y,Z ==> Vertex 1 {m} + 114.08000,4.580000,2.100000, !- X,Y,Z ==> Vertex 2 {m} + 117.08000,4.580000,2.100000, !- X,Y,Z ==> Vertex 3 {m} + 117.08000,4.580000,7.100000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall005:Shade001, !- Name + Zn002:Wall005, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 114.08000,1.580000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 114.08000,4.580000,7.500000, !- X,Y,Z ==> Vertex 2 {m} + 117.08000,4.580000,7.500000, !- X,Y,Z ==> Vertex 3 {m} + 117.08000,1.580000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall006, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 118.18000,4.580000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 118.18000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 118.18000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 118.18000,8.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall007, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 118.18000,8.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 118.18000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 124.08000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 124.08000,8.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall007:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall007, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 119.58000,8.080000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 119.58000,8.080000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 122.58000,8.080000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 122.58000,8.080000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall007:Shade001, !- Name + Zn002:Wall007, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 119.58000,5.080000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 119.58000,8.080000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 122.58000,8.080000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 122.58000,5.080000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall008, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 124.08000,8.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 124.08000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 124.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 124.08000,5.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall009, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 124.08000,5.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 124.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 130.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 130.08000,5.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall009:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall009, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 125.58000,5.080000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 125.58000,5.080000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 128.58000,5.080000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 128.58000,5.080000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall009:Shade001, !- Name + Zn002:Wall009, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 125.58000,2.080000,7.700000, !- X,Y,Z ==> Vertex 1 {m} + 125.58000,5.080000,7.700000, !- X,Y,Z ==> Vertex 2 {m} + 128.58000,5.080000,7.700000, !- X,Y,Z ==> Vertex 3 {m} + 128.58000,2.080000,7.700000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall010, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 130.08000,5.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 130.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 130.08000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 130.08000,10.28000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall011, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 130.08000,10.28000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 130.08000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 135.38000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 135.38000,10.28000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall011:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall011, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 130.98000,10.28000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 130.98000,10.28000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 133.98000,10.28000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 133.98000,10.28000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall011:Shade001, !- Name + Zn002:Wall011, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 130.98000,7.280000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 130.98000,10.28000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 133.98000,10.28000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 133.98000,7.280000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall012, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 135.38000,10.28000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 135.38000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 135.38000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 135.38000,7.480000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall013, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 135.38000,7.480000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 135.38000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 141.48000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 141.48000,7.480000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall013:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall013, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 136.88000,7.480000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 136.88000,7.480000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 139.88000,7.480000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 139.88000,7.480000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn002:Wall013:Shade001, !- Name + Zn002:Wall013, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 136.88000,4.480000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 136.88000,7.480000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 139.88000,7.480000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 139.88000,4.480000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall014, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 141.48000,7.480000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 141.48000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 141.48000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 141.48000,18.38000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall015, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 141.48000,18.38000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 141.48000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 101.980000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 101.980000,18.38000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn002:Wall015:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn002:Wall015, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 140.88000,18.38000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 140.88000,18.38000,4.500000, !- X,Y,Z ==> Vertex 2 {m} + 104.880000,18.38000,4.500000, !- X,Y,Z ==> Vertex 3 {m} + 104.880000,18.38000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn002:Wall016, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 101.980000,18.38000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 101.980000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 101.980000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 101.980000,5.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + +! equivalent area: +! 122.98000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 1 +! 101.980000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 +! 101.980000,25.58000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 +! 122.98000,25.58000,0.0000000E+00; !- X,Y,Z ==> Vertex 4 + + BuildingSurface:Detailed, + Zn002:Flr001, !- Name + Floor, !- Surface Type + SLAB FLOOR, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + autocalculate, !- Number of Vertices + 101.980000,5.980000,0.0, !- X,Y,Z ==> Vertex 1 {m} + 101.980000,18.38000,0.0, !- X,Y,Z ==> Vertex 2 {m} + 141.48000,18.38000,0.0, !- X,Y,Z ==> Vertex 3 {m} + 141.48000,7.480000,0.0, !- X,Y,Z ==> Vertex 4 {m} + 135.38000,7.480000,0.0, !- X,Y,Z ==> Vertex 5 {m} + 135.38000,10.28000,0.0, !- X,Y,Z ==> Vertex 6 {m} + 130.08000,10.28000,0.0, !- X,Y,Z ==> Vertex 7 {m} + 130.08000,5.080000,0.0, !- X,Y,Z ==> Vertex 8 {m} + 124.08000,5.080000,0.0, !- X,Y,Z ==> Vertex 9 {m} + 124.08000,8.080000,0.0, !- X,Y,Z ==> Vertex 10 {m} + 118.18000,8.080000,0.0, !- X,Y,Z ==> Vertex 11 {m} + 118.18000,4.580000,0.0, !- X,Y,Z ==> Vertex 12 {m} + 112.88000,4.580000,0.0, !- X,Y,Z ==> Vertex 13 {m} + 112.88000,8.980000,0.0, !- X,Y,Z ==> Vertex 14 {m} + 107.280000,8.980000,0.0, !- X,Y,Z ==> Vertex 15 {m} + 107.280000,5.980000,0.0; !- X,Y,Z ==> Vertex 16 {m} + +! equivalent area: +! 101.980000,25.58000,10.00000, !- X,Y,Z ==> Vertex 1 +! 101.980000,4.580000,10.00000, !- X,Y,Z ==> Vertex 2 +! 122.98000,4.580000,10.00000, !- X,Y,Z ==> Vertex 3 +! 122.98000,25.58000,10.00000; !- X,Y,Z ==> Vertex 4 + + BuildingSurface:Detailed, + Zn002:Roof001, !- Name + Roof, !- Surface Type + ROOF31, !- Construction Name + ZONE 2, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.0000000E+00, !- View Factor to Ground + autocalculate, !- Number of Vertices + 101.980000,5.980000,10.0, !- X,Y,Z ==> Vertex 1 {m} + 107.280000,5.980000,10.0, !- X,Y,Z ==> Vertex 2 {m} + 107.280000,8.980000,10.0, !- X,Y,Z ==> Vertex 3 {m} + 112.88000,8.980000,10.0, !- X,Y,Z ==> Vertex 4 {m} + 112.88000,4.580000,10.0, !- X,Y,Z ==> Vertex 5 {m} + 118.18000,4.580000,10.0, !- X,Y,Z ==> Vertex 6 {m} + 118.18000,8.080000,10.0, !- X,Y,Z ==> Vertex 7 {m} + 124.08000,8.080000,10.0, !- X,Y,Z ==> Vertex 8 {m} + 124.08000,5.080000,10.0, !- X,Y,Z ==> Vertex 9 {m} + 130.08000,5.080000,10.0, !- X,Y,Z ==> Vertex 10 {m} + 130.08000,10.28000,10.0, !- X,Y,Z ==> Vertex 11 {m} + 135.38000,10.28000,10.0, !- X,Y,Z ==> Vertex 12 {m} + 135.38000,7.480000,10.0, !- X,Y,Z ==> Vertex 13 {m} + 141.48000,7.480000,10.0, !- X,Y,Z ==> Vertex 14 {m} + 141.48000,18.38000,10.0, !- X,Y,Z ==> Vertex 15 {m} + 101.980000,18.38000,10.0; !- X,Y,Z ==> Vertex 16 {m} + + BuildingSurface:Detailed, + Zn003:Wall001, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 201.980000,5.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 201.980000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 207.280000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 207.280000,5.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall001:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall001, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 203.080000,5.980000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 203.080000,5.980000,2.600000, !- X,Y,Z ==> Vertex 2 {m} + 206.080000,5.980000,2.600000, !- X,Y,Z ==> Vertex 3 {m} + 206.080000,5.980000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall001:Shade001, !- Name + Zn003:Wall001, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 203.080000,2.980000,8.000000, !- X,Y,Z ==> Vertex 1 {m} + 203.080000,5.980000,8.000000, !- X,Y,Z ==> Vertex 2 {m} + 206.080000,5.980000,8.000000, !- X,Y,Z ==> Vertex 3 {m} + 206.080000,2.980000,8.000000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall002, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 207.280000,5.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 207.280000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 207.280000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 207.280000,8.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall003, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 207.280000,8.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 207.280000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 212.88000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 212.88000,8.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall003:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall003, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 208.580000,8.980000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 208.580000,8.980000,2.500000, !- X,Y,Z ==> Vertex 2 {m} + 211.58000,8.980000,2.500000, !- X,Y,Z ==> Vertex 3 {m} + 211.58000,8.980000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall003:Shade001, !- Name + Zn003:Wall003, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 208.580000,5.980000,7.900000, !- X,Y,Z ==> Vertex 1 {m} + 208.580000,8.980000,7.900000, !- X,Y,Z ==> Vertex 2 {m} + 211.58000,8.980000,7.900000, !- X,Y,Z ==> Vertex 3 {m} + 211.58000,5.980000,7.900000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall004, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 212.88000,8.980000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 212.88000,8.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 212.88000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 212.88000,4.580000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall005, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 212.88000,4.580000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 212.88000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 218.18000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 218.18000,4.580000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall005:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall005, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 214.08000,4.580000,7.100000, !- X,Y,Z ==> Vertex 1 {m} + 214.08000,4.580000,2.100000, !- X,Y,Z ==> Vertex 2 {m} + 217.08000,4.580000,2.100000, !- X,Y,Z ==> Vertex 3 {m} + 217.08000,4.580000,7.100000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall005:Shade001, !- Name + Zn003:Wall005, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 214.08000,1.580000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 214.08000,4.580000,7.500000, !- X,Y,Z ==> Vertex 2 {m} + 217.08000,4.580000,7.500000, !- X,Y,Z ==> Vertex 3 {m} + 217.08000,1.580000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall006, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 218.18000,4.580000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 218.18000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 218.18000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 218.18000,8.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall007, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 218.18000,8.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 218.18000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 224.08000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 224.08000,8.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall007:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall007, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 219.58000,8.080000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 219.58000,8.080000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 222.58000,8.080000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 222.58000,8.080000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall007:Shade001, !- Name + Zn003:Wall007, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 219.58000,5.080000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 219.58000,8.080000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 222.58000,8.080000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 222.58000,5.080000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall008, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 224.08000,8.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 224.08000,8.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 224.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 224.08000,5.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall009, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 224.08000,5.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 224.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 230.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 230.08000,5.080000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall009:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall009, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 225.58000,5.080000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 225.58000,5.080000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 228.58000,5.080000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 228.58000,5.080000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall009:Shade001, !- Name + Zn003:Wall009, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 225.58000,2.080000,7.700000, !- X,Y,Z ==> Vertex 1 {m} + 225.58000,5.080000,7.700000, !- X,Y,Z ==> Vertex 2 {m} + 228.58000,5.080000,7.700000, !- X,Y,Z ==> Vertex 3 {m} + 228.58000,2.080000,7.700000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall010, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 230.08000,5.080000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 230.08000,5.080000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 230.08000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 230.08000,10.28000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall011, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 230.08000,10.28000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 230.08000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 235.38000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 235.38000,10.28000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall011:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall011, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 230.98000,10.28000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 230.98000,10.28000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 233.98000,10.28000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 233.98000,10.28000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall011:Shade001, !- Name + Zn003:Wall011, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 230.98000,7.280000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 230.98000,10.28000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 233.98000,10.28000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 233.98000,7.280000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall012, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 235.38000,10.28000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 235.38000,10.28000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 235.38000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 235.38000,7.480000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall013, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 235.38000,7.480000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 235.38000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 241.48000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 241.48000,7.480000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall013:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall013, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 236.88000,7.480000,7.200000, !- X,Y,Z ==> Vertex 1 {m} + 236.88000,7.480000,2.200000, !- X,Y,Z ==> Vertex 2 {m} + 239.88000,7.480000,2.200000, !- X,Y,Z ==> Vertex 3 {m} + 239.88000,7.480000,7.200000; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Zn003:Wall013:Shade001, !- Name + Zn003:Wall013, !- Base Surface Name + ShadingTransmittance:0001, !- Transmittance Schedule Name + 4, !- Number of Vertices + 236.88000,4.480000,7.600000, !- X,Y,Z ==> Vertex 1 {m} + 236.88000,7.480000,7.600000, !- X,Y,Z ==> Vertex 2 {m} + 239.88000,7.480000,7.600000, !- X,Y,Z ==> Vertex 3 {m} + 239.88000,4.480000,7.600000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall014, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 241.48000,7.480000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 241.48000,7.480000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 241.48000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 241.48000,18.38000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall015, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 241.48000,18.38000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 241.48000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 201.980000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 201.980000,18.38000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Zn003:Wall015:Win001, !- Name + Window, !- Surface Type + SINGLE PANE HW WINDOW, !- Construction Name + Zn003:Wall015, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + , !- Frame and Divider Name + 1.000000, !- Multiplier + 4, !- Number of Vertices + 240.88000,18.38000,7.500000, !- X,Y,Z ==> Vertex 1 {m} + 240.88000,18.38000,4.500000, !- X,Y,Z ==> Vertex 2 {m} + 204.880000,18.38000,4.500000, !- X,Y,Z ==> Vertex 3 {m} + 204.880000,18.38000,7.500000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn003:Wall016, !- Name + Wall, !- Surface Type + EXTERIOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 201.980000,18.38000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 201.980000,18.38000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 {m} + 201.980000,5.980000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 {m} + 201.980000,5.980000,10.00000; !- X,Y,Z ==> Vertex 4 {m} + +! equivalent area: +! 222.98000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 1 +! 201.980000,4.580000,0.0000000E+00, !- X,Y,Z ==> Vertex 2 +! 201.980000,25.58000,0.0000000E+00, !- X,Y,Z ==> Vertex 3 +! 222.98000,25.58000,0.0000000E+00; !- X,Y,Z ==> Vertex 4 + + BuildingSurface:Detailed, + Zn003:Flr001, !- Name + Floor, !- Surface Type + SLAB FLOOR, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + autocalculate, !- Number of Vertices + 201.980000,5.980000,0.0, !- X,Y,Z ==> Vertex 1 {m} + 201.980000,18.38000,0.0, !- X,Y,Z ==> Vertex 2 {m} + 241.48000,18.38000,0.0, !- X,Y,Z ==> Vertex 3 {m} + 241.48000,7.480000,0.0, !- X,Y,Z ==> Vertex 4 {m} + 235.38000,7.480000,0.0, !- X,Y,Z ==> Vertex 5 {m} + 235.38000,10.28000,0.0, !- X,Y,Z ==> Vertex 6 {m} + 230.08000,10.28000,0.0, !- X,Y,Z ==> Vertex 7 {m} + 230.08000,5.080000,0.0, !- X,Y,Z ==> Vertex 8 {m} + 224.08000,5.080000,0.0, !- X,Y,Z ==> Vertex 9 {m} + 224.08000,8.080000,0.0, !- X,Y,Z ==> Vertex 10 {m} + 218.18000,8.080000,0.0, !- X,Y,Z ==> Vertex 11 {m} + 218.18000,4.580000,0.0, !- X,Y,Z ==> Vertex 12 {m} + 212.88000,4.580000,0.0, !- X,Y,Z ==> Vertex 13 {m} + 212.88000,8.980000,0.0, !- X,Y,Z ==> Vertex 14 {m} + 207.280000,8.980000,0.0, !- X,Y,Z ==> Vertex 15 {m} + 207.280000,5.980000,0.0; !- X,Y,Z ==> Vertex 16 {m} + +! equivalent area: +! 201.980000,25.58000,10.00000, !- X,Y,Z ==> Vertex 1 +! 201.980000,4.580000,10.00000, !- X,Y,Z ==> Vertex 2 +! 222.98000,4.580000,10.00000, !- X,Y,Z ==> Vertex 3 +! 222.98000,25.58000,10.00000; !- X,Y,Z ==> Vertex 4 + + BuildingSurface:Detailed, + Zn003:Roof001, !- Name + Roof, !- Surface Type + ROOF31, !- Construction Name + ZONE 3, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.0000000E+00, !- View Factor to Ground + autocalculate, !- Number of Vertices + 201.980000,5.980000,10.0, !- X,Y,Z ==> Vertex 1 {m} + 207.280000,5.980000,10.0, !- X,Y,Z ==> Vertex 2 {m} + 207.280000,8.980000,10.0, !- X,Y,Z ==> Vertex 3 {m} + 212.88000,8.980000,10.0, !- X,Y,Z ==> Vertex 4 {m} + 212.88000,4.580000,10.0, !- X,Y,Z ==> Vertex 5 {m} + 218.18000,4.580000,10.0, !- X,Y,Z ==> Vertex 6 {m} + 218.18000,8.080000,10.0, !- X,Y,Z ==> Vertex 7 {m} + 224.08000,8.080000,10.0, !- X,Y,Z ==> Vertex 8 {m} + 224.08000,5.080000,10.0, !- X,Y,Z ==> Vertex 9 {m} + 230.08000,5.080000,10.0, !- X,Y,Z ==> Vertex 10 {m} + 230.08000,10.28000,10.0, !- X,Y,Z ==> Vertex 11 {m} + 235.38000,10.28000,10.0, !- X,Y,Z ==> Vertex 12 {m} + 235.38000,7.480000,10.0, !- X,Y,Z ==> Vertex 13 {m} + 241.48000,7.480000,10.0, !- X,Y,Z ==> Vertex 14 {m} + 241.48000,18.38000,10.0, !- X,Y,Z ==> Vertex 15 {m} + 201.980000,18.38000,10.0; !- X,Y,Z ==> Vertex 16 {m} + + Output:VariableDictionary,Regular; + + Output:Surfaces:Drawing,DXF,ThickPolyline; + + Output:Variable,*,Site Outdoor Air Drybulb Temperature, timestep; + + Output:Variable,*,Zone Air Temperature, timestep; + + Output:Variable,*,Zone Air Humidity Ratio, timestep; + + Output:Variable,*,Zone Air System Sensible Cooling Energy, timestep; + + Output:Variable,*,Zone Air System Sensible Cooling Rate, timestep; + + Output:Variable,*,Earth Tube Zone Sensible Cooling Energy, timestep; + + Output:Variable,*,Earth Tube Zone Sensible Heating Energy, timestep; + + Output:Variable,*,Earth Tube Air Flow Volume, timestep; + + Output:Variable,*,Earth Tube Current Density Air Volume Flow Rate, timestep; + + Output:Variable,*,Earth Tube Air Flow Mass, timestep; + + Output:Variable,*,Earth Tube Air Mass Flow Rate, timestep; + + Output:Variable,*,Earth Tube Water Mass Flow Rate, timestep; + + Output:Variable,*,Earth Tube Fan Electricity Energy, timestep; + + Output:Variable,*,Earth Tube Zone Inlet Air Temperature, timestep; + + Output:Variable,*,Earth Tube Zone Inlet Wet Bulb Temperature, timestep; + + Output:Variable,*,Earth Tube Zone Inlet Humidity Ratio, timestep; + + Output:Variable,*,Earth Tube Node Temperature 1,timestep; + + Output:Variable,*,Earth Tube Node Temperature 2,timestep; + + Output:Variable,*,Earth Tube Node Temperature 3,timestep; + + Output:Variable,*,Earth Tube Node Temperature 4,timestep; + + Output:Variable,*,Earth Tube Node Temperature 5,timestep; + + Output:Variable,*,Earth Tube Node Temperature 6,timestep; + + Output:Variable,*,Earth Tube Node Temperature 7,timestep; + + Output:Variable,*,Earth Tube Node Temperature 8,timestep; + + Output:Variable,*,Earth Tube Node Temperature 9,timestep; + + Output:Variable,*,Earth Tube Node Temperature 10,timestep; + + Output:Variable,*,Earth Tube Node Temperature 11,timestep; + + Output:Variable,*,Earth Tube Node Temperature 12,timestep; + + Output:Variable,*,Earth Tube Node Temperature 13,timestep; + + Output:Variable,*,Earth Tube Node Temperature 14,timestep; + + Output:Variable,*,Earth Tube Node Temperature 15,timestep; + + Output:Variable,*,Earth Tube Node Temperature 16,timestep; + + Output:Variable,*,Earth Tube Node Temperature 17,timestep; + + Output:Variable,*,Earth Tube Node Temperature 18,timestep; + + Output:Variable,*,Earth Tube Node Temperature 19,timestep; + + Output:Variable,*,Earth Tube Node Temperature 20,timestep; + + Output:Variable,*,Earth Tube Node Temperature 21,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 1,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 2,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 3,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 4,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 5,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 6,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 7,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 8,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 9,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 10,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 11,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 12,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 13,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 14,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 15,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 16,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 17,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 18,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 19,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 20,timestep; + + Output:Variable,*,Earth Tube Undisturbed Ground Temperature 21,timestep; + + Output:Variable,*,Earth Tube Upper Boundary Ground Temperature,timestep; + + Output:Variable,*,Earth Tube Lower Boundary Ground Temperature,timestep; + + Output:Meter,Electricity:Facility,hourly; + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:Building,monthly; + + Output:Meter:MeterFileOnly,InteriorLights:Electricity,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Building,runperiod; + + Output:Meter:MeterFileOnly,InteriorLights:Electricity,runperiod; + diff --git a/testfiles/GSHP-GLHE-CalcGFunctions-cpg.idf b/testfiles/GSHP-GLHE-CalcGFunctions-cpg.idf index 04c72da446f..6b8d77a5c86 100644 --- a/testfiles/GSHP-GLHE-CalcGFunctions-cpg.idf +++ b/testfiles/GSHP-GLHE-CalcGFunctions-cpg.idf @@ -597,10 +597,6 @@ Main Floor WAHP Heating Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Main Floor WAHP Cooling Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Main Floor WAHP Supp Heating Coil, !- Supplemental Heating Coil Name Autosize, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -668,8 +664,6 @@ Main Floor WAHP Mixed Air Outlet, !- Air Inlet Node Name Main Floor WAHP Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -680,9 +674,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== ! Performance coefficients assume rated Capacity and COP are at: ! 20.0C (68F) entering air dry-bulb temperature and 0.0C (32F) entering water temperature @@ -701,7 +698,24 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name + + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x !- =========== ALL OBJECTS IN CLASS: CURVE:QUADLINEAR =========== diff --git a/testfiles/GSHP-GLHE-CalcGFunctions.idf b/testfiles/GSHP-GLHE-CalcGFunctions.idf index f459351a14e..fff9b47941b 100644 --- a/testfiles/GSHP-GLHE-CalcGFunctions.idf +++ b/testfiles/GSHP-GLHE-CalcGFunctions.idf @@ -597,10 +597,6 @@ Main Floor WAHP Heating Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Main Floor WAHP Cooling Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Electric, !- Supplemental Heating Coil Object Type Main Floor WAHP Supp Heating Coil, !- Supplemental Heating Coil Name Autosize, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -668,8 +664,6 @@ Main Floor WAHP Mixed Air Outlet, !- Air Inlet Node Name Main Floor WAHP Cooling Coil Outlet, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -680,8 +674,28 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} + + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x !- =========== ALL OBJECTS IN CLASS: COIL:HEATING:WATERTOAIRHEATPUMP:EQUATIONFIT =========== ! Performance coefficients assume rated Capacity and COP are at: @@ -701,7 +715,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name !- =========== ALL OBJECTS IN CLASS: CURVE:QUADLINEAR =========== diff --git a/testfiles/HVACTemplate-5ZoneWaterToAirHeatPumpTowerBoiler.idf b/testfiles/HVACTemplate-5ZoneWaterToAirHeatPumpTowerBoiler.idf index 91c4f2220dd..3f7dae3aaff 100644 --- a/testfiles/HVACTemplate-5ZoneWaterToAirHeatPumpTowerBoiler.idf +++ b/testfiles/HVACTemplate-5ZoneWaterToAirHeatPumpTowerBoiler.idf @@ -1803,7 +1803,6 @@ autosize, !- Supplemental Heating Coil Capacity {W} 2.5, !- Maximum Cycling Rate {cycles/hr} 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} , !- Dedicated Outdoor Air System Name Electric, !- Supplemental Heating Coil Type @@ -1849,7 +1848,6 @@ autosize, !- Supplemental Heating Coil Capacity {W} 2.5, !- Maximum Cycling Rate {cycles/hr} 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} , !- Dedicated Outdoor Air System Name Electric, !- Supplemental Heating Coil Type @@ -1895,7 +1893,6 @@ autosize, !- Supplemental Heating Coil Capacity {W} 2.5, !- Maximum Cycling Rate {cycles/hr} 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} , !- Dedicated Outdoor Air System Name Electric, !- Supplemental Heating Coil Type @@ -1941,7 +1938,6 @@ autosize, !- Supplemental Heating Coil Capacity {W} 2.5, !- Maximum Cycling Rate {cycles/hr} 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} , !- Dedicated Outdoor Air System Name Electric, !- Supplemental Heating Coil Type @@ -1987,7 +1983,6 @@ autosize, !- Supplemental Heating Coil Capacity {W} 2.5, !- Maximum Cycling Rate {cycles/hr} 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} , !- Dedicated Outdoor Air System Name Electric, !- Supplemental Heating Coil Type diff --git a/testfiles/HeatPumpVSAS.idf b/testfiles/HeatPumpVSAS.idf index 9c0ac2e3a31..56af1f4fb28 100644 --- a/testfiles/HeatPumpVSAS.idf +++ b/testfiles/HeatPumpVSAS.idf @@ -286,6 +286,9 @@ 1.7, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/HeatPumpWaterToAir.idf b/testfiles/HeatPumpWaterToAir.idf index 4751c4cf964..cafbade263f 100644 --- a/testfiles/HeatPumpWaterToAir.idf +++ b/testfiles/HeatPumpWaterToAir.idf @@ -2310,10 +2310,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2356,7 +2352,11 @@ 9.73887E-03, !- Leak Rate Coefficient 1.04563E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Sys 1 Heat Pump HEATING Mode, !- Name @@ -2382,7 +2382,8 @@ 1.75701E-05, !- Leak Rate Coefficient {dimensionless} 3.65348E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 1, !- Name @@ -2646,10 +2647,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2685,7 +2682,11 @@ 9.73887E-03, !- Leak Rate Coefficient 1.04563E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Sys 2 Heat Pump HEATING Mode, !- Name @@ -2711,7 +2712,8 @@ 1.75701E-05, !- Leak Rate Coefficient {dimensionless} 3.65348E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 2, !- Name diff --git a/testfiles/HeatPumpWaterToAirEquationFit.idf b/testfiles/HeatPumpWaterToAirEquationFit.idf index 998120742a8..25705e2a4af 100644 --- a/testfiles/HeatPumpWaterToAirEquationFit.idf +++ b/testfiles/HeatPumpWaterToAirEquationFit.idf @@ -2183,10 +2183,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2209,8 +2205,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 23125.6, !- Gross Rated Total Cooling Capacity {W} 16267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -2221,8 +2215,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 1 Heat Pump Heating Mode, !- Name @@ -2238,7 +2236,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 1, !- Name @@ -2450,10 +2449,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2469,8 +2464,6 @@ Sys 2 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 2 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 11562.8, !- Gross Rated Total Cooling Capacity {W} 8133.53, !- Gross Rated Sensible Cooling Capacity {W} @@ -2481,8 +2474,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 2 Heat Pump Heating Mode, !- Name @@ -2498,7 +2495,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 2, !- Name @@ -2710,10 +2708,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 3 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2729,8 +2723,6 @@ Sys 3 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 3 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 23125.6, !- Gross Rated Total Cooling Capacity {W} 16267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -2741,8 +2733,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 3 Heat Pump Heating Mode, !- Name @@ -2758,7 +2754,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 3, !- Name @@ -2970,10 +2967,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 4 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2989,8 +2982,6 @@ Sys 4 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 4 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 11562.8, !- Gross Rated Total Cooling Capacity {W} 8133.53, !- Gross Rated Sensible Cooling Capacity {W} @@ -3001,8 +2992,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 4 Heat Pump Heating Mode, !- Name @@ -3018,7 +3013,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 4, !- Name @@ -3230,10 +3226,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 5 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3249,8 +3241,6 @@ Sys 5 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 5 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.0033, !- Rated Water Flow Rate {m3/s} 23125.59, !- Gross Rated Total Cooling Capacity {W} 16267, !- Gross Rated Sensible Cooling Capacity {W} @@ -3261,8 +3251,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 5 Heat Pump Heating Mode, !- Name @@ -3278,7 +3272,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 5, !- Name diff --git a/testfiles/HeatPumpWaterToAirEquationFit_WaterHeatingDesuperheater_StratifiedTank.idf b/testfiles/HeatPumpWaterToAirEquationFit_WaterHeatingDesuperheater_StratifiedTank.idf index 2f3aaf5b888..330429edf27 100644 --- a/testfiles/HeatPumpWaterToAirEquationFit_WaterHeatingDesuperheater_StratifiedTank.idf +++ b/testfiles/HeatPumpWaterToAirEquationFit_WaterHeatingDesuperheater_StratifiedTank.idf @@ -2185,10 +2185,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2211,8 +2207,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 23125.6, !- Gross Rated Total Cooling Capacity {W} 16267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -2223,8 +2217,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 1 Heat Pump Heating Mode, !- Name @@ -2240,7 +2238,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 1, !- Name @@ -2452,10 +2451,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2471,8 +2466,6 @@ Sys 2 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 2 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 11562.8, !- Gross Rated Total Cooling Capacity {W} 8133.53, !- Gross Rated Sensible Cooling Capacity {W} @@ -2483,8 +2476,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 2 Heat Pump Heating Mode, !- Name @@ -2500,7 +2497,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 2, !- Name @@ -2712,10 +2710,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 3 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2731,8 +2725,6 @@ Sys 3 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 3 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 23125.6, !- Gross Rated Total Cooling Capacity {W} 16267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -2743,9 +2735,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 3 Heat Pump Heating Mode, !- Name Sys 3 Water to Air Heat Pump Source Side2 Inlet Node, !- Water Inlet Node Name @@ -2760,7 +2755,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 3, !- Name @@ -2972,10 +2968,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 4 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2991,8 +2983,6 @@ Sys 4 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 4 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 11562.8, !- Gross Rated Total Cooling Capacity {W} 8133.53, !- Gross Rated Sensible Cooling Capacity {W} @@ -3003,9 +2993,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 4 Heat Pump Heating Mode, !- Name Sys 4 Water to Air Heat Pump Source Side2 Inlet Node, !- Water Inlet Node Name @@ -3020,7 +3013,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 4, !- Name @@ -3232,10 +3226,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 5 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3251,8 +3241,6 @@ Sys 5 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 5 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.0, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.0033, !- Rated Water Flow Rate {m3/s} 23125.59, !- Gross Rated Total Cooling Capacity {W} 16267, !- Gross Rated Sensible Cooling Capacity {W} @@ -3263,9 +3251,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} - + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 5 Heat Pump Heating Mode, !- Name Sys 5 Water to Air Heat Pump Source Side2 Inlet Node, !- Water Inlet Node Name @@ -3280,7 +3271,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 5, !- Name diff --git a/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel.idf b/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel.idf index 6197946b07a..472969e31da 100644 --- a/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel.idf +++ b/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel.idf @@ -1296,10 +1296,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1342,7 +1338,11 @@ 8.97686E-03, !- Leak Rate Coefficient , !- Source Side Heat Transfer Coefficient {W/K} 3.51058E-03, !- Source Side Heat Transfer Resistance1 {dimensionless} - 8.67910E-04; !- Source Side Heat Transfer Resistance2 {W/K} + 8.67910E-04, !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} ! The Plant Fluid Type may have changed. @@ -1370,7 +1370,8 @@ 9.64709E-05, !- Leak Rate Coefficient {dimensionless} , !- Source Side Heat Transfer Coefficient {W/K} 8.47544E-08, !- Source Side Heat Transfer Resistance1 {dimensionless} - 4.83787E-05; !- Source Side Heat Transfer Resistance2 {W/K} + 4.83787E-05, !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 1, !- Name diff --git a/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel2.idf b/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel2.idf index 9ee7e3b0359..8d5cae502c6 100644 --- a/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel2.idf +++ b/testfiles/HeatPumpWaterToAirWithAntifreezeAndLatentModel2.idf @@ -1296,10 +1296,6 @@ Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, !- Cooling Coil Object Type Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1344,7 +1340,11 @@ 8.97686E-03, !- Leak Rate Coefficient , !- Source Side Heat Transfer Coefficient {W/K} 3.51058E-03, !- Source Side Heat Transfer Resistance1 {dimensionless} - 8.67910E-04; !- Source Side Heat Transfer Resistance2 {W/K} + 8.67910E-04, !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode, !- Name @@ -1370,7 +1370,8 @@ 9.64709E-05, !- Leak Rate Coefficient {dimensionless} , !- Source Side Heat Transfer Coefficient {W/K} 8.47544E-08, !- Source Side Heat Transfer Resistance1 {dimensionless} - 4.83787E-05; !- Source Side Heat Transfer Resistance2 {W/K} + 4.83787E-05, !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 1, !- Name diff --git a/testfiles/HeatPumpWaterToAirWithRHControl.idf b/testfiles/HeatPumpWaterToAirWithRHControl.idf index 0d585972e0e..179ee24cfa5 100644 --- a/testfiles/HeatPumpWaterToAirWithRHControl.idf +++ b/testfiles/HeatPumpWaterToAirWithRHControl.idf @@ -2237,10 +2237,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2264,8 +2260,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.4, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 40125.6, !- Gross Rated Total Cooling Capacity {W} 28267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -2276,8 +2270,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 1 Heat Pump Heating Mode, !- Name @@ -2293,7 +2291,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 1, !- Name @@ -2511,10 +2510,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2531,8 +2526,6 @@ Sys 2 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 2 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.3, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 41562.8, !- Gross Rated Total Cooling Capacity {W} 29533.53, !- Gross Rated Sensible Cooling Capacity {W} @@ -2543,8 +2536,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 2 Heat Pump Heating Mode, !- Name @@ -2560,7 +2557,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 2, !- Name @@ -2778,10 +2776,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 3 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2798,8 +2792,6 @@ Sys 3 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 3 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.3, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 43125.6, !- Gross Rated Total Cooling Capacity {W} 30267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -2810,8 +2802,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 3 Heat Pump Heating Mode, !- Name @@ -2827,7 +2823,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 3, !- Name @@ -3045,10 +3042,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 4 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3065,8 +3058,6 @@ Sys 4 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 4 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.4, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.00165, !- Rated Water Flow Rate {m3/s} 42000.0, !- Gross Rated Total Cooling Capacity {W} 30000.0, !- Gross Rated Sensible Cooling Capacity {W} @@ -3077,8 +3068,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 4 Heat Pump Heating Mode, !- Name @@ -3094,7 +3089,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 4, !- Name @@ -3312,10 +3308,6 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 5 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3332,8 +3324,6 @@ Sys 5 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 5 Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.5, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.0033, !- Rated Water Flow Rate {m3/s} 100000.0, !- Gross Rated Total Cooling Capacity {W} 75000.0, !- Gross Rated Sensible Cooling Capacity {W} @@ -3344,8 +3334,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 5 Heat Pump Heating Mode, !- Name @@ -3361,7 +3355,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Supply Fan 5, !- Name diff --git a/testfiles/HospitalLowEnergy.idf b/testfiles/HospitalLowEnergy.idf index 96d3b905589..389ba457ab9 100644 --- a/testfiles/HospitalLowEnergy.idf +++ b/testfiles/HospitalLowEnergy.idf @@ -2018,10 +2018,6 @@ Floor 1 Cafe Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Cafe Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Cafe Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2147,6 +2143,22 @@ 0, !- Minimum Curve Output 38; !- Maximum Curve Output + Curve:Quadratic, + HPACCOOLPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Quadratic, + HPACHEATPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + Coil:Heating:WaterToAirHeatPump:EquationFit, Floor 1 Cafe Heat Pump Heat Coil, !- Name Floor 1 Cafe Heat Pump Heat Coil Water Inlet Node, !- Water Inlet Node Name @@ -2161,7 +2173,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Cafe Heat Pump Cool Coil, !- Name @@ -2170,8 +2183,6 @@ Floor 1 Cafe Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Cafe Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -2182,8 +2193,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Cafe Heat Pump Sup Heat Coil, !- Name @@ -2941,10 +2956,6 @@ Floor 1 Clean Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Clean Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Clean Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -2991,7 +3002,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Clean Heat Pump Cool Coil, !- Name @@ -3000,8 +3012,6 @@ Floor 1 Clean Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Clean Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -3012,8 +3022,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Clean Heat Pump Sup Heat Coil, !- Name @@ -3553,10 +3567,6 @@ Floor 1 Conference Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Conference Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Conference Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -3603,7 +3613,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Conference Heat Pump Cool Coil, !- Name @@ -3612,8 +3623,6 @@ Floor 1 Conference Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Conference Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -3624,8 +3633,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Conference Heat Pump Sup Heat Coil, !- Name @@ -4123,10 +4136,6 @@ Floor 1 Dining Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Dining Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Dining Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -4173,7 +4182,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Dining Heat Pump Cool Coil, !- Name @@ -4182,8 +4192,6 @@ Floor 1 Dining Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Dining Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -4194,8 +4202,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Dining Heat Pump Sup Heat Coil, !- Name @@ -4718,10 +4730,6 @@ Floor 1 Elevator Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Elevator Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Elevator Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -4768,7 +4776,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Elevator Heat Pump Cool Coil, !- Name @@ -4777,8 +4786,6 @@ Floor 1 Elevator Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Elevator Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -4789,8 +4796,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Elevator Heat Pump Sup Heat Coil, !- Name @@ -5248,10 +5259,6 @@ Floor 1 Exam Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Exam Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Exam Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -5298,7 +5305,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Exam Heat Pump Cool Coil, !- Name @@ -5307,8 +5315,6 @@ Floor 1 Exam Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Exam Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -5319,8 +5325,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Exam Heat Pump Sup Heat Coil, !- Name @@ -5791,10 +5801,6 @@ Floor 1 Food Storage Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Food Storage Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Food Storage Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -5841,7 +5847,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Food Storage Heat Pump Cool Coil, !- Name @@ -5850,8 +5857,6 @@ Floor 1 Food Storage Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Food Storage Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -5862,8 +5867,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Food Storage Heat Pump Sup Heat Coil, !- Name @@ -6496,10 +6505,6 @@ Floor 1 Gas Storage Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Gas Storage Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Gas Storage Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -6546,7 +6551,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Gas Storage Heat Pump Cool Coil, !- Name @@ -6555,8 +6561,6 @@ Floor 1 Gas Storage Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Gas Storage Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -6567,8 +6571,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Gas Storage Heat Pump Sup Heat Coil, !- Name @@ -6993,10 +7001,6 @@ Floor 1 Imaging Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Imaging Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Imaging Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -7043,7 +7047,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Imaging Heat Pump Cool Coil, !- Name @@ -7052,8 +7057,6 @@ Floor 1 Imaging Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Imaging Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -7064,8 +7067,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Imaging Heat Pump Sup Heat Coil, !- Name @@ -7557,10 +7564,6 @@ Floor 1 Kitchen Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Kitchen Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Kitchen Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -7607,7 +7610,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Kitchen Heat Pump Cool Coil, !- Name @@ -7616,8 +7620,6 @@ Floor 1 Kitchen Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Kitchen Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -7628,8 +7630,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Kitchen Heat Pump Sup Heat Coil, !- Name @@ -8101,10 +8107,6 @@ Floor 1 Lab 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Lab 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Lab 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -8151,7 +8153,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Lab 1 Heat Pump Cool Coil, !- Name @@ -8160,8 +8163,6 @@ Floor 1 Lab 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Lab 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -8172,8 +8173,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Lab 1 Heat Pump Sup Heat Coil, !- Name @@ -8659,10 +8664,6 @@ Floor 1 Lab 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Lab 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Lab 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -8709,7 +8710,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Lab 2 Heat Pump Cool Coil, !- Name @@ -8718,8 +8720,6 @@ Floor 1 Lab 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Lab 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -8730,8 +8730,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Lab 2 Heat Pump Sup Heat Coil, !- Name @@ -9292,10 +9296,6 @@ Floor 1 Laundry Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Laundry Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Laundry Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -9342,7 +9342,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Laundry Heat Pump Cool Coil, !- Name @@ -9351,8 +9352,6 @@ Floor 1 Laundry Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Laundry Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -9363,8 +9362,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Laundry Heat Pump Sup Heat Coil, !- Name @@ -9879,10 +9882,6 @@ Floor 1 Lobby Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Lobby Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Lobby Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -9929,7 +9928,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Lobby Heat Pump Cool Coil, !- Name @@ -9938,8 +9938,6 @@ Floor 1 Lobby Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Lobby Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -9950,8 +9948,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Lobby Heat Pump Sup Heat Coil, !- Name @@ -10365,10 +10367,6 @@ Floor 1 Lounge Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Lounge Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Lounge Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -10415,7 +10413,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Lounge Heat Pump Cool Coil, !- Name @@ -10424,8 +10423,6 @@ Floor 1 Lounge Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Lounge Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -10436,8 +10433,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Lounge Heat Pump Sup Heat Coil, !- Name @@ -10873,10 +10874,6 @@ Floor 1 Mech 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Mech 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Mech 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -10923,7 +10920,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Mech 1 Heat Pump Cool Coil, !- Name @@ -10932,8 +10930,6 @@ Floor 1 Mech 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Mech 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -10944,8 +10940,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Mech 1 Heat Pump Sup Heat Coil, !- Name @@ -11430,10 +11430,6 @@ Floor 1 Mech 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Mech 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Mech 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -11480,7 +11476,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Mech 2 Heat Pump Cool Coil, !- Name @@ -11489,8 +11486,6 @@ Floor 1 Mech 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Mech 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -11501,8 +11496,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Mech 2 Heat Pump Sup Heat Coil, !- Name @@ -12000,10 +11999,6 @@ Floor 1 Office 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Office 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Office 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -12050,7 +12045,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Office 1 Heat Pump Cool Coil, !- Name @@ -12059,8 +12055,6 @@ Floor 1 Office 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Office 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -12071,8 +12065,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Office 1 Heat Pump Sup Heat Coil, !- Name @@ -12570,10 +12568,6 @@ Floor 1 Office 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Office 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Office 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -12620,7 +12614,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Office 2 Heat Pump Cool Coil, !- Name @@ -12629,8 +12624,6 @@ Floor 1 Office 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Office 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -12641,8 +12634,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Office 2 Heat Pump Sup Heat Coil, !- Name @@ -13157,10 +13154,6 @@ Floor 1 Office 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Office 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Office 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -13207,7 +13200,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Office 3 Heat Pump Cool Coil, !- Name @@ -13216,8 +13210,6 @@ Floor 1 Office 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Office 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -13228,8 +13220,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Office 3 Heat Pump Sup Heat Coil, !- Name @@ -13727,10 +13723,6 @@ Floor 1 Office 3 Perimeter 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Office 3 Perimeter 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Office 3 Perimeter 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -13777,7 +13769,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Office 3 Perimeter 1 Heat Pump Cool Coil, !- Name @@ -13786,8 +13779,6 @@ Floor 1 Office 3 Perimeter 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Office 3 Perimeter 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -13798,8 +13789,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Office 3 Perimeter 1 Heat Pump Sup Heat Coil, !- Name @@ -14297,10 +14292,6 @@ Floor 1 Office 3 Perimeter 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Office 3 Perimeter 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Office 3 Perimeter 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -14347,7 +14338,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Office 3 Perimeter 2 Heat Pump Cool Coil, !- Name @@ -14356,8 +14348,6 @@ Floor 1 Office 3 Perimeter 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Office 3 Perimeter 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -14368,8 +14358,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Office 3 Perimeter 2 Heat Pump Sup Heat Coil, !- Name @@ -14907,10 +14901,6 @@ Floor 1 Office 3 Perimeter 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Office 3 Perimeter 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Office 3 Perimeter 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -14957,7 +14947,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Office 3 Perimeter 3 Heat Pump Cool Coil, !- Name @@ -14966,8 +14957,6 @@ Floor 1 Office 3 Perimeter 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Office 3 Perimeter 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -14978,8 +14967,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Office 3 Perimeter 3 Heat Pump Sup Heat Coil, !- Name @@ -15464,10 +15457,6 @@ Floor 1 Patient Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Patient Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Patient Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -15514,7 +15503,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Patient Heat Pump Cool Coil, !- Name @@ -15523,8 +15513,6 @@ Floor 1 Patient Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Patient Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -15535,8 +15523,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Patient Heat Pump Sup Heat Coil, !- Name @@ -15923,10 +15915,6 @@ Floor 1 Pharmacy Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Pharmacy Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Pharmacy Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -15973,7 +15961,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Pharmacy Heat Pump Cool Coil, !- Name @@ -15982,8 +15971,6 @@ Floor 1 Pharmacy Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Pharmacy Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -15994,8 +15981,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Pharmacy Heat Pump Sup Heat Coil, !- Name @@ -16409,10 +16400,6 @@ Floor 1 Physical Therapy Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Physical Therapy Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Physical Therapy Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -16459,7 +16446,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Physical Therapy Heat Pump Cool Coil, !- Name @@ -16468,8 +16456,6 @@ Floor 1 Physical Therapy Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Physical Therapy Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -16480,8 +16466,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Physical Therapy Heat Pump Sup Heat Coil, !- Name @@ -16917,10 +16907,6 @@ Floor 1 Receiving Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Receiving Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Receiving Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -16967,7 +16953,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Receiving Heat Pump Cool Coil, !- Name @@ -16976,8 +16963,6 @@ Floor 1 Receiving Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Receiving Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -16988,8 +16973,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Receiving Heat Pump Sup Heat Coil, !- Name @@ -17487,10 +17476,6 @@ Floor 1 Reception Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Reception Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Reception Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -17537,7 +17522,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Reception Heat Pump Cool Coil, !- Name @@ -17546,8 +17532,6 @@ Floor 1 Reception Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Reception Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -17558,8 +17542,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Reception Heat Pump Sup Heat Coil, !- Name @@ -17979,10 +17967,6 @@ Floor 1 Soil Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Soil Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Soil Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -18029,7 +18013,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Soil Heat Pump Cool Coil, !- Name @@ -18038,8 +18023,6 @@ Floor 1 Soil Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Soil Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -18050,8 +18033,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Soil Heat Pump Sup Heat Coil, !- Name @@ -18411,10 +18398,6 @@ Floor 1 Storage Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Storage Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Storage Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -18461,7 +18444,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Storage Heat Pump Cool Coil, !- Name @@ -18470,8 +18454,6 @@ Floor 1 Storage Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Storage Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -18482,8 +18464,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Storage Heat Pump Sup Heat Coil, !- Name @@ -18897,10 +18883,6 @@ Floor 1 Waiting Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 1 Waiting Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 1 Waiting Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -18947,7 +18929,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 1 Waiting Heat Pump Cool Coil, !- Name @@ -18956,8 +18939,6 @@ Floor 1 Waiting Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 1 Waiting Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -18968,8 +18949,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 1 Waiting Heat Pump Sup Heat Coil, !- Name @@ -19467,10 +19452,6 @@ Floor 2 Chapel Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Chapel Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Chapel Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -19517,7 +19498,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Chapel Heat Pump Cool Coil, !- Name @@ -19526,8 +19508,6 @@ Floor 2 Chapel Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Chapel Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -19538,8 +19518,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Chapel Heat Pump Sup Heat Coil, !- Name @@ -19953,10 +19937,6 @@ Floor 2 Clean 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Clean 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Clean 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -20003,7 +19983,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Clean 1 Heat Pump Cool Coil, !- Name @@ -20012,8 +19993,6 @@ Floor 2 Clean 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Clean 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -20024,8 +20003,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Clean 1 Heat Pump Sup Heat Coil, !- Name @@ -20439,10 +20422,6 @@ Floor 2 Clean 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Clean 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Clean 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -20489,7 +20468,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Clean 2 Heat Pump Cool Coil, !- Name @@ -20498,8 +20478,6 @@ Floor 2 Clean 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Clean 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -20510,8 +20488,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Clean 2 Heat Pump Sup Heat Coil, !- Name @@ -20989,10 +20971,6 @@ Floor 2 Corridor Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Corridor Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Corridor Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -21039,7 +21017,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Corridor Heat Pump Cool Coil, !- Name @@ -21048,8 +21027,6 @@ Floor 2 Corridor Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Corridor Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -21060,8 +21037,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Corridor Heat Pump Sup Heat Coil, !- Name @@ -21584,10 +21565,6 @@ Floor 2 Elevator Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Elevator Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Elevator Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -21634,7 +21611,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Elevator Heat Pump Cool Coil, !- Name @@ -21643,8 +21621,6 @@ Floor 2 Elevator Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Elevator Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -21655,8 +21631,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Elevator Heat Pump Sup Heat Coil, !- Name @@ -22154,10 +22134,6 @@ Floor 2 Exam 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Exam 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Exam 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -22204,7 +22180,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Exam 1 Heat Pump Cool Coil, !- Name @@ -22213,8 +22190,6 @@ Floor 2 Exam 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Exam 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -22225,8 +22200,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Exam 1 Heat Pump Sup Heat Coil, !- Name @@ -22640,10 +22619,6 @@ Floor 2 Exam 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Exam 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Exam 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -22690,7 +22665,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Exam 2 Heat Pump Cool Coil, !- Name @@ -22699,8 +22675,6 @@ Floor 2 Exam 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Exam 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -22711,8 +22685,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Exam 2 Heat Pump Sup Heat Coil, !- Name @@ -23126,10 +23104,6 @@ Floor 2 Exam 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Exam 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Exam 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -23176,7 +23150,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Exam 3 Heat Pump Cool Coil, !- Name @@ -23185,8 +23160,6 @@ Floor 2 Exam 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Exam 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -23197,8 +23170,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Exam 3 Heat Pump Sup Heat Coil, !- Name @@ -23629,10 +23606,6 @@ Floor 2 Exam 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Exam 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Exam 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -23679,7 +23652,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Exam 4 Heat Pump Cool Coil, !- Name @@ -23688,8 +23662,6 @@ Floor 2 Exam 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Exam 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -23700,8 +23672,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Exam 4 Heat Pump Sup Heat Coil, !- Name @@ -24184,10 +24160,6 @@ Floor 2 Gift Shop Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Gift Shop Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Gift Shop Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -24234,7 +24206,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Gift Shop Heat Pump Cool Coil, !- Name @@ -24243,8 +24216,6 @@ Floor 2 Gift Shop Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Gift Shop Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -24255,8 +24226,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Gift Shop Heat Pump Sup Heat Coil, !- Name @@ -24698,10 +24673,6 @@ Floor 2 Imaging 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Imaging 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Imaging 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -24748,7 +24719,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Imaging 1 Heat Pump Cool Coil, !- Name @@ -24757,8 +24729,6 @@ Floor 2 Imaging 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Imaging 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -24769,8 +24739,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Imaging 1 Heat Pump Sup Heat Coil, !- Name @@ -25298,10 +25272,6 @@ Floor 2 Imaging 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Imaging 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Imaging 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -25348,7 +25318,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Imaging 2 Heat Pump Cool Coil, !- Name @@ -25357,8 +25328,6 @@ Floor 2 Imaging 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Imaging 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -25369,8 +25338,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Imaging 2 Heat Pump Sup Heat Coil, !- Name @@ -25871,10 +25844,6 @@ Floor 2 Imaging 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Imaging 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Imaging 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -25921,7 +25890,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Imaging 3 Heat Pump Cool Coil, !- Name @@ -25930,8 +25900,6 @@ Floor 2 Imaging 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Imaging 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -25942,8 +25910,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Imaging 3 Heat Pump Sup Heat Coil, !- Name @@ -26391,10 +26363,6 @@ Floor 2 Lab 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Lab 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Lab 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -26441,7 +26409,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Lab 1 Heat Pump Cool Coil, !- Name @@ -26450,8 +26419,6 @@ Floor 2 Lab 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Lab 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -26462,8 +26429,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Lab 1 Heat Pump Sup Heat Coil, !- Name @@ -26922,10 +26893,6 @@ Floor 2 Lab 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Lab 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Lab 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -26972,7 +26939,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Lab 2 Heat Pump Cool Coil, !- Name @@ -26981,8 +26949,6 @@ Floor 2 Lab 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Lab 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -26993,8 +26959,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Lab 2 Heat Pump Sup Heat Coil, !- Name @@ -27442,10 +27412,6 @@ Floor 2 Lockers Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Lockers Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Lockers Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -27492,7 +27458,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Lockers Heat Pump Cool Coil, !- Name @@ -27501,8 +27468,6 @@ Floor 2 Lockers Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Lockers Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -27513,8 +27478,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Lockers Heat Pump Sup Heat Coil, !- Name @@ -27911,10 +27880,6 @@ Floor 2 Lounge 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Lounge 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Lounge 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -27961,7 +27926,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Lounge 1 Heat Pump Cool Coil, !- Name @@ -27970,8 +27936,6 @@ Floor 2 Lounge 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Lounge 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -27982,8 +27946,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Lounge 1 Heat Pump Sup Heat Coil, !- Name @@ -28521,10 +28489,6 @@ Floor 2 Lounge 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Lounge 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Lounge 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -28571,7 +28535,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Lounge 2 Heat Pump Cool Coil, !- Name @@ -28580,8 +28545,6 @@ Floor 2 Lounge 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Lounge 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -28592,8 +28555,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Lounge 2 Heat Pump Sup Heat Coil, !- Name @@ -29035,10 +29002,6 @@ Floor 2 Nurse Station 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Nurse Station 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Nurse Station 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -29085,7 +29048,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Nurse Station 1 Heat Pump Cool Coil, !- Name @@ -29094,8 +29058,6 @@ Floor 2 Nurse Station 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Nurse Station 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -29106,8 +29068,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Nurse Station 1 Heat Pump Sup Heat Coil, !- Name @@ -29650,10 +29616,6 @@ Floor 2 Nurse Station 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Nurse Station 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Nurse Station 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -29700,7 +29662,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Nurse Station 2 Heat Pump Cool Coil, !- Name @@ -29709,8 +29672,6 @@ Floor 2 Nurse Station 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Nurse Station 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -29721,8 +29682,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Nurse Station 2 Heat Pump Sup Heat Coil, !- Name @@ -30136,10 +30101,6 @@ Floor 2 Office 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Office 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Office 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -30186,7 +30147,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Office 1 Heat Pump Cool Coil, !- Name @@ -30195,8 +30157,6 @@ Floor 2 Office 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Office 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -30207,8 +30167,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Office 1 Heat Pump Sup Heat Coil, !- Name @@ -30706,10 +30670,6 @@ Floor 2 Office 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Office 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Office 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -30756,7 +30716,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Office 2 Heat Pump Cool Coil, !- Name @@ -30765,8 +30726,6 @@ Floor 2 Office 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Office 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -30777,8 +30736,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Office 2 Heat Pump Sup Heat Coil, !- Name @@ -31192,10 +31155,6 @@ Floor 2 Office 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Office 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Office 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -31242,7 +31201,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Office 3 Heat Pump Cool Coil, !- Name @@ -31251,8 +31211,6 @@ Floor 2 Office 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Office 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -31263,8 +31221,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Office 3 Heat Pump Sup Heat Coil, !- Name @@ -31802,10 +31764,6 @@ Floor 2 Office 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Office 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Office 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -31852,7 +31810,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Office 4 Heat Pump Cool Coil, !- Name @@ -31861,8 +31820,6 @@ Floor 2 Office 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Office 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -31873,8 +31830,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Office 4 Heat Pump Sup Heat Coil, !- Name @@ -32946,10 +32907,6 @@ Floor 2 PACU Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 PACU Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 PACU Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -32996,7 +32953,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 PACU Heat Pump Cool Coil, !- Name @@ -33005,8 +32963,6 @@ Floor 2 PACU Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 PACU Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -33017,8 +32973,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 PACU Heat Pump Sup Heat Coil, !- Name @@ -33476,10 +33436,6 @@ Floor 2 Patient 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Patient 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Patient 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -33526,7 +33482,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Patient 1 Heat Pump Cool Coil, !- Name @@ -33535,8 +33492,6 @@ Floor 2 Patient 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Patient 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -33547,8 +33502,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Patient 1 Heat Pump Sup Heat Coil, !- Name @@ -33962,10 +33921,6 @@ Floor 2 Patient 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Patient 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Patient 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -34012,7 +33967,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Patient 2 Heat Pump Cool Coil, !- Name @@ -34021,8 +33977,6 @@ Floor 2 Patient 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Patient 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -34033,8 +33987,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Patient 2 Heat Pump Sup Heat Coil, !- Name @@ -34476,10 +34434,6 @@ Floor 2 Procedure 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Procedure 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Procedure 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -34526,7 +34480,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Procedure 1 Heat Pump Cool Coil, !- Name @@ -34535,8 +34490,6 @@ Floor 2 Procedure 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Procedure 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -34547,8 +34500,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Procedure 1 Heat Pump Sup Heat Coil, !- Name @@ -34990,10 +34947,6 @@ Floor 2 Procedure 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Procedure 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Procedure 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -35040,7 +34993,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Procedure 2 Heat Pump Cool Coil, !- Name @@ -35049,8 +35003,6 @@ Floor 2 Procedure 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Procedure 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -35061,8 +35013,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Procedure 2 Heat Pump Sup Heat Coil, !- Name @@ -35558,10 +35514,6 @@ Floor 2 Reception Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Reception Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Reception Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -35608,7 +35560,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Reception Heat Pump Cool Coil, !- Name @@ -35617,8 +35570,6 @@ Floor 2 Reception Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Reception Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -35629,8 +35580,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Reception Heat Pump Sup Heat Coil, !- Name @@ -36122,10 +36077,6 @@ Floor 2 Restroom 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Restroom 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Restroom 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -36172,7 +36123,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Restroom 1 Heat Pump Cool Coil, !- Name @@ -36181,8 +36133,6 @@ Floor 2 Restroom 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Restroom 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -36193,8 +36143,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Restroom 1 Heat Pump Sup Heat Coil, !- Name @@ -36694,10 +36648,6 @@ Floor 2 Restroom 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Restroom 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Restroom 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -36744,7 +36694,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Restroom 2 Heat Pump Cool Coil, !- Name @@ -36753,8 +36704,6 @@ Floor 2 Restroom 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Restroom 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -36765,8 +36714,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Restroom 2 Heat Pump Sup Heat Coil, !- Name @@ -37169,10 +37122,6 @@ Floor 2 Soil 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Soil 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Soil 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -37219,7 +37168,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Soil 1 Heat Pump Cool Coil, !- Name @@ -37228,8 +37178,6 @@ Floor 2 Soil 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Soil 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -37240,8 +37188,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Soil 1 Heat Pump Sup Heat Coil, !- Name @@ -37644,10 +37596,6 @@ Floor 2 Soil 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Soil 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Soil 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -37694,7 +37642,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Soil 2 Heat Pump Cool Coil, !- Name @@ -37703,8 +37652,6 @@ Floor 2 Soil 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Soil 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -37715,8 +37662,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Soil 2 Heat Pump Sup Heat Coil, !- Name @@ -38167,10 +38118,6 @@ Floor 2 Sterilizing Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Sterilizing Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Sterilizing Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -38217,7 +38164,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Sterilizing Heat Pump Cool Coil, !- Name @@ -38226,8 +38174,6 @@ Floor 2 Sterilizing Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Sterilizing Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -38238,8 +38184,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Sterilizing Heat Pump Sup Heat Coil, !- Name @@ -38599,10 +38549,6 @@ Floor 2 Storage 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Storage 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Storage 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -38649,7 +38595,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Storage 1 Heat Pump Cool Coil, !- Name @@ -38658,8 +38605,6 @@ Floor 2 Storage 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Storage 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -38670,8 +38615,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Storage 1 Heat Pump Sup Heat Coil, !- Name @@ -39048,10 +38997,6 @@ Floor 2 Storage 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Storage 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Storage 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -39098,7 +39043,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Storage 2 Heat Pump Cool Coil, !- Name @@ -39107,8 +39053,6 @@ Floor 2 Storage 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Storage 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -39119,8 +39063,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Storage 2 Heat Pump Sup Heat Coil, !- Name @@ -39589,10 +39537,6 @@ Floor 2 Trauma Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Trauma Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Trauma Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -39639,7 +39583,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Trauma Heat Pump Cool Coil, !- Name @@ -39648,8 +39593,6 @@ Floor 2 Trauma Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Trauma Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -39660,8 +39603,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Trauma Heat Pump Sup Heat Coil, !- Name @@ -40157,10 +40104,6 @@ Floor 2 Triage Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Triage Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Triage Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -40207,7 +40150,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Triage Heat Pump Cool Coil, !- Name @@ -40216,8 +40160,6 @@ Floor 2 Triage Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Triage Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -40228,8 +40170,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Triage Heat Pump Sup Heat Coil, !- Name @@ -40725,10 +40671,6 @@ Floor 2 Waiting Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 2 Waiting Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 2 Waiting Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -40775,7 +40717,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 2 Waiting Heat Pump Cool Coil, !- Name @@ -40784,8 +40727,6 @@ Floor 2 Waiting Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 2 Waiting Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -40796,8 +40737,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 2 Waiting Heat Pump Sup Heat Coil, !- Name @@ -41211,10 +41156,6 @@ Floor 3 Clean Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Clean Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Clean Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41261,7 +41202,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Clean Heat Pump Cool Coil, !- Name @@ -41270,8 +41212,6 @@ Floor 3 Clean Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Clean Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -41282,8 +41222,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Clean Heat Pump Sup Heat Coil, !- Name @@ -41836,10 +41780,6 @@ Floor 3 Elevator Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Elevator Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Elevator Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -41886,7 +41826,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Elevator Heat Pump Cool Coil, !- Name @@ -41895,8 +41836,6 @@ Floor 3 Elevator Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Elevator Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -41907,8 +41846,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Elevator Heat Pump Sup Heat Coil, !- Name @@ -42322,10 +42265,6 @@ Floor 3 Exam Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Exam Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Exam Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42372,7 +42311,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Exam Heat Pump Cool Coil, !- Name @@ -42381,8 +42321,6 @@ Floor 3 Exam Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Exam Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -42393,8 +42331,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Exam Heat Pump Sup Heat Coil, !- Name @@ -42928,10 +42870,6 @@ Floor 3 ICU Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 ICU Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 ICU Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -42978,7 +42916,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 ICU Heat Pump Cool Coil, !- Name @@ -42987,8 +42926,6 @@ Floor 3 ICU Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 ICU Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -42999,8 +42936,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 ICU Heat Pump Sup Heat Coil, !- Name @@ -43499,10 +43440,6 @@ Floor 3 Nurse Station 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Nurse Station 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Nurse Station 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -43549,7 +43486,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Nurse Station 1 Heat Pump Cool Coil, !- Name @@ -43558,8 +43496,6 @@ Floor 3 Nurse Station 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Nurse Station 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -43570,8 +43506,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Nurse Station 1 Heat Pump Sup Heat Coil, !- Name @@ -44112,10 +44052,6 @@ Floor 3 Nurse Station 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Nurse Station 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Nurse Station 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -44162,7 +44098,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Nurse Station 2 Heat Pump Cool Coil, !- Name @@ -44171,8 +44108,6 @@ Floor 3 Nurse Station 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Nurse Station 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -44183,8 +44118,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Nurse Station 2 Heat Pump Sup Heat Coil, !- Name @@ -44669,10 +44608,6 @@ Floor 3 Nursery Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Nursery Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Nursery Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -44719,7 +44654,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Nursery Heat Pump Cool Coil, !- Name @@ -44728,8 +44664,6 @@ Floor 3 Nursery Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Nursery Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -44740,8 +44674,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Nursery Heat Pump Sup Heat Coil, !- Name @@ -45212,10 +45150,6 @@ Floor 3 Office Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Office Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Office Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -45262,7 +45196,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Office Heat Pump Cool Coil, !- Name @@ -45271,8 +45206,6 @@ Floor 3 Office Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Office Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -45283,8 +45216,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Office Heat Pump Sup Heat Coil, !- Name @@ -46281,10 +46218,6 @@ Floor 3 Patient 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Patient 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Patient 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -46331,7 +46264,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Patient 1 Heat Pump Cool Coil, !- Name @@ -46340,8 +46274,6 @@ Floor 3 Patient 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Patient 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -46352,8 +46284,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Patient 1 Heat Pump Sup Heat Coil, !- Name @@ -46826,10 +46762,6 @@ Floor 3 Patient 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Patient 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Patient 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -46876,7 +46808,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Patient 2 Heat Pump Cool Coil, !- Name @@ -46885,8 +46818,6 @@ Floor 3 Patient 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Patient 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -46897,8 +46828,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Patient 2 Heat Pump Sup Heat Coil, !- Name @@ -47388,10 +47323,6 @@ Floor 3 Patient 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Patient 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Patient 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -47438,7 +47369,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Patient 3 Heat Pump Cool Coil, !- Name @@ -47447,8 +47379,6 @@ Floor 3 Patient 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Patient 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -47459,8 +47389,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Patient 3 Heat Pump Sup Heat Coil, !- Name @@ -47958,10 +47892,6 @@ Floor 3 Patient 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Patient 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Patient 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -48008,7 +47938,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Patient 4 Heat Pump Cool Coil, !- Name @@ -48017,8 +47948,6 @@ Floor 3 Patient 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Patient 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -48029,8 +47958,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Patient 4 Heat Pump Sup Heat Coil, !- Name @@ -48479,10 +48412,6 @@ Floor 3 Patient Corridor 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Patient Corridor 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Patient Corridor 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -48529,7 +48458,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Patient Corridor 1 Heat Pump Cool Coil, !- Name @@ -48538,8 +48468,6 @@ Floor 3 Patient Corridor 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Patient Corridor 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -48550,8 +48478,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Patient Corridor 1 Heat Pump Sup Heat Coil, !- Name @@ -49027,10 +48959,6 @@ Floor 3 Patient Corridor 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Patient Corridor 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Patient Corridor 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -49077,7 +49005,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Patient Corridor 2 Heat Pump Cool Coil, !- Name @@ -49086,8 +49015,6 @@ Floor 3 Patient Corridor 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Patient Corridor 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -49098,8 +49025,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Patient Corridor 2 Heat Pump Sup Heat Coil, !- Name @@ -49612,10 +49543,6 @@ Floor 3 Procedure Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Procedure Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Procedure Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -49662,7 +49589,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Procedure Heat Pump Cool Coil, !- Name @@ -49671,8 +49599,6 @@ Floor 3 Procedure Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Procedure Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -49683,8 +49609,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Procedure Heat Pump Sup Heat Coil, !- Name @@ -50077,10 +50007,6 @@ Floor 3 Soil Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Soil Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Soil Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -50127,7 +50053,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Soil Heat Pump Cool Coil, !- Name @@ -50136,8 +50063,6 @@ Floor 3 Soil Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Soil Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -50148,8 +50073,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Soil Heat Pump Sup Heat Coil, !- Name @@ -50553,10 +50482,6 @@ Floor 3 Supply Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Supply Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Supply Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -50603,7 +50528,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Supply Heat Pump Cool Coil, !- Name @@ -50612,8 +50538,6 @@ Floor 3 Supply Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Supply Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -50624,8 +50548,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Supply Heat Pump Sup Heat Coil, !- Name @@ -51123,10 +51051,6 @@ Floor 3 Triage Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Triage Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Triage Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -51173,7 +51097,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Triage Heat Pump Cool Coil, !- Name @@ -51182,8 +51107,6 @@ Floor 3 Triage Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Triage Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -51194,8 +51117,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Triage Heat Pump Sup Heat Coil, !- Name @@ -51676,10 +51603,6 @@ Floor 3 Waiting Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 3 Waiting Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 3 Waiting Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -51726,7 +51649,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 3 Waiting Heat Pump Cool Coil, !- Name @@ -51735,8 +51659,6 @@ Floor 3 Waiting Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 3 Waiting Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -51747,8 +51669,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 3 Waiting Heat Pump Sup Heat Coil, !- Name @@ -52162,10 +52088,6 @@ Floor 4-6 Clean Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Clean Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Clean Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -52212,7 +52134,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Clean Heat Pump Cool Coil, !- Name @@ -52221,8 +52144,6 @@ Floor 4-6 Clean Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Clean Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -52233,8 +52154,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Clean Heat Pump Sup Heat Coil, !- Name @@ -52787,10 +52712,6 @@ Floor 4-6 Elevator Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Elevator Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Elevator Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -52837,7 +52758,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Elevator Heat Pump Cool Coil, !- Name @@ -52846,8 +52768,6 @@ Floor 4-6 Elevator Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Elevator Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -52858,8 +52778,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Elevator Heat Pump Sup Heat Coil, !- Name @@ -53385,10 +53309,6 @@ Floor 4-6 Nurse Station Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Nurse Station Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Nurse Station Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -53435,7 +53355,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Nurse Station Heat Pump Cool Coil, !- Name @@ -53444,8 +53365,6 @@ Floor 4-6 Nurse Station Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Nurse Station Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -53456,8 +53375,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Nurse Station Heat Pump Sup Heat Coil, !- Name @@ -53955,10 +53878,6 @@ Floor 4-6 Office Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Office Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Office Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -54005,7 +53924,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Office Heat Pump Cool Coil, !- Name @@ -54014,8 +53934,6 @@ Floor 4-6 Office Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Office Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -54026,8 +53944,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Office Heat Pump Sup Heat Coil, !- Name @@ -54552,10 +54474,6 @@ Floor 4-6 Patient 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Patient 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Patient 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -54602,7 +54520,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Patient 1 Heat Pump Cool Coil, !- Name @@ -54611,8 +54530,6 @@ Floor 4-6 Patient 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Patient 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -54623,8 +54540,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Patient 1 Heat Pump Sup Heat Coil, !- Name @@ -55097,10 +55018,6 @@ Floor 4-6 Patient 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Patient 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Patient 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -55147,7 +55064,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Patient 2 Heat Pump Cool Coil, !- Name @@ -55156,8 +55074,6 @@ Floor 4-6 Patient 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Patient 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -55168,8 +55084,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Patient 2 Heat Pump Sup Heat Coil, !- Name @@ -55642,10 +55562,6 @@ Floor 4-6 Patient 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Patient 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Patient 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -55692,7 +55608,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Patient 3 Heat Pump Cool Coil, !- Name @@ -55701,8 +55618,6 @@ Floor 4-6 Patient 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Patient 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -55713,8 +55628,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Patient 3 Heat Pump Sup Heat Coil, !- Name @@ -56212,10 +56131,6 @@ Floor 4-6 Patient 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Patient 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Patient 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -56262,7 +56177,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Patient 4 Heat Pump Cool Coil, !- Name @@ -56271,8 +56187,6 @@ Floor 4-6 Patient 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Patient 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -56283,8 +56197,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Patient 4 Heat Pump Sup Heat Coil, !- Name @@ -56733,10 +56651,6 @@ Floor 4-6 Patient Corridor 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Patient Corridor 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Patient Corridor 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -56783,7 +56697,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Patient Corridor 1 Heat Pump Cool Coil, !- Name @@ -56792,8 +56707,6 @@ Floor 4-6 Patient Corridor 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Patient Corridor 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -56804,8 +56717,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Patient Corridor 1 Heat Pump Sup Heat Coil, !- Name @@ -57281,10 +57198,6 @@ Floor 4-6 Patient Corridor 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Patient Corridor 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Patient Corridor 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -57331,7 +57244,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Patient Corridor 2 Heat Pump Cool Coil, !- Name @@ -57340,8 +57254,6 @@ Floor 4-6 Patient Corridor 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Patient Corridor 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -57352,8 +57264,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Patient Corridor 2 Heat Pump Sup Heat Coil, !- Name @@ -57773,10 +57689,6 @@ Floor 4-6 Soil Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Soil Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Soil Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -57823,7 +57735,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Soil Heat Pump Cool Coil, !- Name @@ -57832,8 +57745,6 @@ Floor 4-6 Soil Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Soil Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -57844,8 +57755,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Soil Heat Pump Sup Heat Coil, !- Name @@ -58249,10 +58164,6 @@ Floor 4-6 Supply Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 4-6 Supply Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 4-6 Supply Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -58299,7 +58210,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 4-6 Supply Heat Pump Cool Coil, !- Name @@ -58308,8 +58220,6 @@ Floor 4-6 Supply Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 4-6 Supply Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -58320,8 +58230,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 4-6 Supply Heat Pump Sup Heat Coil, !- Name @@ -58735,10 +58649,6 @@ Floor 7 Clean Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Clean Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Clean Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -58785,7 +58695,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Clean Heat Pump Cool Coil, !- Name @@ -58794,8 +58705,6 @@ Floor 7 Clean Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Clean Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -58806,8 +58715,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Clean Heat Pump Sup Heat Coil, !- Name @@ -59360,10 +59273,6 @@ Floor 7 Elevator Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Elevator Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Elevator Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -59410,7 +59319,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Elevator Heat Pump Cool Coil, !- Name @@ -59419,8 +59329,6 @@ Floor 7 Elevator Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Elevator Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -59431,8 +59339,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Elevator Heat Pump Sup Heat Coil, !- Name @@ -59958,10 +59870,6 @@ Floor 7 Nurse Station Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Nurse Station Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Nurse Station Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -60008,7 +59916,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Nurse Station Heat Pump Cool Coil, !- Name @@ -60017,8 +59926,6 @@ Floor 7 Nurse Station Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Nurse Station Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -60029,8 +59936,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Nurse Station Heat Pump Sup Heat Coil, !- Name @@ -60528,10 +60439,6 @@ Floor 7 Office Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Office Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Office Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -60578,7 +60485,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Office Heat Pump Cool Coil, !- Name @@ -60587,8 +60495,6 @@ Floor 7 Office Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Office Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -60599,8 +60505,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Office Heat Pump Sup Heat Coil, !- Name @@ -61125,10 +61035,6 @@ Floor 7 Patient 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Patient 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Patient 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -61175,7 +61081,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Patient 1 Heat Pump Cool Coil, !- Name @@ -61184,8 +61091,6 @@ Floor 7 Patient 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Patient 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -61196,8 +61101,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Patient 1 Heat Pump Sup Heat Coil, !- Name @@ -61670,10 +61579,6 @@ Floor 7 Patient 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Patient 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Patient 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -61720,7 +61625,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Patient 2 Heat Pump Cool Coil, !- Name @@ -61729,8 +61635,6 @@ Floor 7 Patient 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Patient 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -61741,8 +61645,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Patient 2 Heat Pump Sup Heat Coil, !- Name @@ -62215,10 +62123,6 @@ Floor 7 Patient 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Patient 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Patient 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -62265,7 +62169,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Patient 3 Heat Pump Cool Coil, !- Name @@ -62274,8 +62179,6 @@ Floor 7 Patient 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Patient 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -62286,8 +62189,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Patient 3 Heat Pump Sup Heat Coil, !- Name @@ -62785,10 +62692,6 @@ Floor 7 Patient 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Patient 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Patient 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -62835,7 +62738,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Patient 4 Heat Pump Cool Coil, !- Name @@ -62844,8 +62748,6 @@ Floor 7 Patient 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Patient 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -62856,8 +62758,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Patient 4 Heat Pump Sup Heat Coil, !- Name @@ -63306,10 +63212,6 @@ Floor 7 Patient Corridor 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Patient Corridor 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Patient Corridor 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -63356,7 +63258,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Patient Corridor 1 Heat Pump Cool Coil, !- Name @@ -63365,8 +63268,6 @@ Floor 7 Patient Corridor 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Patient Corridor 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -63377,8 +63278,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Patient Corridor 1 Heat Pump Sup Heat Coil, !- Name @@ -63854,10 +63759,6 @@ Floor 7 Patient Corridor 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Patient Corridor 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Patient Corridor 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -63904,7 +63805,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Patient Corridor 2 Heat Pump Cool Coil, !- Name @@ -63913,8 +63815,6 @@ Floor 7 Patient Corridor 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Patient Corridor 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -63925,8 +63825,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Patient Corridor 2 Heat Pump Sup Heat Coil, !- Name @@ -64346,10 +64250,6 @@ Floor 7 Soil Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Soil Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Soil Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -64396,7 +64296,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Soil Heat Pump Cool Coil, !- Name @@ -64405,8 +64306,6 @@ Floor 7 Soil Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Soil Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -64417,8 +64316,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Soil Heat Pump Sup Heat Coil, !- Name @@ -64822,10 +64725,6 @@ Floor 7 Supply Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Floor 7 Supply Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Floor 7 Supply Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -64872,7 +64771,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, Floor 7 Supply Heat Pump Cool Coil, !- Name @@ -64881,8 +64781,6 @@ Floor 7 Supply Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name Floor 7 Supply Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -64893,8 +64791,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, Floor 7 Supply Heat Pump Sup Heat Coil, !- Name @@ -65308,10 +65210,6 @@ MOB Floor 1 Core Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 1 Core Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 1 Core Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -65358,7 +65256,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 1 Core Heat Pump Cool Coil, !- Name @@ -65367,8 +65266,6 @@ MOB Floor 1 Core Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 1 Core Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -65379,8 +65276,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 1 Core Heat Pump Sup Heat Coil, !- Name @@ -65878,10 +65779,6 @@ MOB Floor 1 Perimeter 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 1 Perimeter 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 1 Perimeter 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -65928,7 +65825,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 1 Perimeter 1 Heat Pump Cool Coil, !- Name @@ -65937,8 +65835,6 @@ MOB Floor 1 Perimeter 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 1 Perimeter 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -65949,8 +65845,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 1 Perimeter 1 Heat Pump Sup Heat Coil, !- Name @@ -66473,10 +66373,6 @@ MOB Floor 1 Perimeter 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 1 Perimeter 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 1 Perimeter 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -66523,7 +66419,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 1 Perimeter 2 Heat Pump Cool Coil, !- Name @@ -66532,8 +66429,6 @@ MOB Floor 1 Perimeter 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 1 Perimeter 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -66544,8 +66439,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 1 Perimeter 2 Heat Pump Sup Heat Coil, !- Name @@ -67043,10 +66942,6 @@ MOB Floor 1 Perimeter 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 1 Perimeter 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 1 Perimeter 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -67093,7 +66988,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 1 Perimeter 3 Heat Pump Cool Coil, !- Name @@ -67102,8 +66998,6 @@ MOB Floor 1 Perimeter 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 1 Perimeter 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -67114,8 +67008,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 1 Perimeter 3 Heat Pump Sup Heat Coil, !- Name @@ -67529,10 +67427,6 @@ MOB Floor 2-4 Core Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 2-4 Core Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 2-4 Core Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -67579,7 +67473,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 2-4 Core Heat Pump Cool Coil, !- Name @@ -67588,8 +67483,6 @@ MOB Floor 2-4 Core Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 2-4 Core Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -67600,8 +67493,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 2-4 Core Heat Pump Sup Heat Coil, !- Name @@ -68099,10 +67996,6 @@ MOB Floor 2-4 Perimeter 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 2-4 Perimeter 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 2-4 Perimeter 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -68149,7 +68042,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 2-4 Perimeter 1 Heat Pump Cool Coil, !- Name @@ -68158,8 +68052,6 @@ MOB Floor 2-4 Perimeter 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 2-4 Perimeter 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -68170,8 +68062,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 2-4 Perimeter 1 Heat Pump Sup Heat Coil, !- Name @@ -68694,10 +68590,6 @@ MOB Floor 2-4 Perimeter 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 2-4 Perimeter 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 2-4 Perimeter 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -68744,7 +68636,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 2-4 Perimeter 2 Heat Pump Cool Coil, !- Name @@ -68753,8 +68646,6 @@ MOB Floor 2-4 Perimeter 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 2-4 Perimeter 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -68765,8 +68656,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 2-4 Perimeter 2 Heat Pump Sup Heat Coil, !- Name @@ -69264,10 +69159,6 @@ MOB Floor 2-4 Perimeter 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 2-4 Perimeter 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 2-4 Perimeter 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -69314,7 +69205,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 2-4 Perimeter 3 Heat Pump Cool Coil, !- Name @@ -69323,8 +69215,6 @@ MOB Floor 2-4 Perimeter 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 2-4 Perimeter 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -69335,8 +69225,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 2-4 Perimeter 3 Heat Pump Sup Heat Coil, !- Name @@ -69834,10 +69728,6 @@ MOB Floor 2-4 Perimeter 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 2-4 Perimeter 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 2-4 Perimeter 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -69884,7 +69774,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 2-4 Perimeter 4 Heat Pump Cool Coil, !- Name @@ -69893,8 +69784,6 @@ MOB Floor 2-4 Perimeter 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 2-4 Perimeter 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -69905,8 +69794,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 2-4 Perimeter 4 Heat Pump Sup Heat Coil, !- Name @@ -70320,10 +70213,6 @@ MOB Floor 5 Core Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 5 Core Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 5 Core Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -70370,7 +70259,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 5 Core Heat Pump Cool Coil, !- Name @@ -70379,8 +70269,6 @@ MOB Floor 5 Core Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 5 Core Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -70391,8 +70279,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 5 Core Heat Pump Sup Heat Coil, !- Name @@ -70890,10 +70782,6 @@ MOB Floor 5 Perimeter 1 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 5 Perimeter 1 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 5 Perimeter 1 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -70940,7 +70828,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 5 Perimeter 1 Heat Pump Cool Coil, !- Name @@ -70949,8 +70838,6 @@ MOB Floor 5 Perimeter 1 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 5 Perimeter 1 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -70961,8 +70848,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 5 Perimeter 1 Heat Pump Sup Heat Coil, !- Name @@ -71485,10 +71376,6 @@ MOB Floor 5 Perimeter 2 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 5 Perimeter 2 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 5 Perimeter 2 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -71535,7 +71422,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 5 Perimeter 2 Heat Pump Cool Coil, !- Name @@ -71544,8 +71432,6 @@ MOB Floor 5 Perimeter 2 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 5 Perimeter 2 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -71556,8 +71442,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 5 Perimeter 2 Heat Pump Sup Heat Coil, !- Name @@ -72055,10 +71945,6 @@ MOB Floor 5 Perimeter 3 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 5 Perimeter 3 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 5 Perimeter 3 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -72105,7 +71991,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 5 Perimeter 3 Heat Pump Cool Coil, !- Name @@ -72114,8 +72001,6 @@ MOB Floor 5 Perimeter 3 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 5 Perimeter 3 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -72126,8 +72011,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 5 Perimeter 3 Heat Pump Sup Heat Coil, !- Name @@ -72647,10 +72536,6 @@ MOB Floor 5 Perimeter 4 Heat Pump Heat Coil, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type MOB Floor 5 Perimeter 4 Heat Pump Cool Coil, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60.0, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type MOB Floor 5 Perimeter 4 Heat Pump Sup Heat Coil, !- Supplemental Heating Coil Name AUTOSIZE, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -72697,7 +72582,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Cooling:WaterToAirHeatPump:EquationFit, MOB Floor 5 Perimeter 4 Heat Pump Cool Coil, !- Name @@ -72706,8 +72592,6 @@ MOB Floor 5 Perimeter 4 Heat Pump Cool Coil Air Inlet Node, !- Air Inlet Node Name MOB Floor 5 Perimeter 4 Heat Pump Heat Coil Air Inlet Node, !- Air Outlet Node Name AUTOSIZE, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} AUTOSIZE, !- Rated Water Flow Rate {m3/s} AUTOSIZE, !- Gross Rated Total Cooling Capacity {W} AUTOSIZE, !- Gross Rated Sensible Cooling Capacity {W} @@ -72718,8 +72602,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:Fuel, MOB Floor 5 Perimeter 4 Heat Pump Sup Heat Coil, !- Name diff --git a/testfiles/PackagedTerminalAirConditionerVSAS.idf b/testfiles/PackagedTerminalAirConditionerVSAS.idf index 464d37bb8cb..8972454636f 100644 --- a/testfiles/PackagedTerminalAirConditionerVSAS.idf +++ b/testfiles/PackagedTerminalAirConditionerVSAS.idf @@ -209,6 +209,9 @@ 0.4, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -352,6 +355,9 @@ autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -495,6 +501,9 @@ autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/PackagedTerminalHeatPumpVSAS.idf b/testfiles/PackagedTerminalHeatPumpVSAS.idf index 744da80fac7..d9718e0f289 100644 --- a/testfiles/PackagedTerminalHeatPumpVSAS.idf +++ b/testfiles/PackagedTerminalHeatPumpVSAS.idf @@ -554,6 +554,9 @@ 0.4, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -697,6 +700,9 @@ autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -840,6 +846,9 @@ autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/PipingSystem_Underground_FHX.idf b/testfiles/PipingSystem_Underground_FHX.idf index 37ea69d1d01..064f499655a 100644 --- a/testfiles/PipingSystem_Underground_FHX.idf +++ b/testfiles/PipingSystem_Underground_FHX.idf @@ -821,10 +821,6 @@ Sys 2 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -952,8 +948,6 @@ Sys 2 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 2 Heating Coil Air Inlet Node, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -964,8 +958,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 2 Heat Pump Heating Mode, !- Name @@ -981,7 +979,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Zone 2 Fan, !- Name @@ -1044,10 +1043,6 @@ Sys 1 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1082,8 +1077,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -1094,8 +1087,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 1 Heat Pump Heating Mode, !- Name @@ -1111,7 +1108,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Zone 1 Fan, !- Name diff --git a/testfiles/PythonPluginLoadBasedMultiSpeedDXCoilOverrideControl.idf b/testfiles/PythonPluginLoadBasedMultiSpeedDXCoilOverrideControl.idf index 9d559f10cec..97cc80237e3 100644 --- a/testfiles/PythonPluginLoadBasedMultiSpeedDXCoilOverrideControl.idf +++ b/testfiles/PythonPluginLoadBasedMultiSpeedDXCoilOverrideControl.idf @@ -2425,10 +2425,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2886,10 +2882,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3357,10 +3349,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4014,10 +4002,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4671,10 +4655,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/PythonPlugin_SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf b/testfiles/PythonPlugin_SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf index 619543fe9be..0814abae51d 100644 --- a/testfiles/PythonPlugin_SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf +++ b/testfiles/PythonPlugin_SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf @@ -1487,10 +1487,6 @@ 45.0, !- Maximum Supply Air Temperature {C} 4.44444444444444, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} 0, !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf b/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf index 5337d890f47..25a05032eac 100644 --- a/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf +++ b/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil.idf @@ -1488,10 +1488,6 @@ 45.0, !- Maximum Supply Air Temperature {C} 4.44444444444444, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} 0, !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoilEMS.idf b/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoilEMS.idf index 080b8725fa2..752ff6f113e 100644 --- a/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoilEMS.idf +++ b/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoilEMS.idf @@ -1487,10 +1487,6 @@ 45.0, !- Maximum Supply Air Temperature {C} 4.44444444444444, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} 0, !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil_SPControl.idf b/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil_SPControl.idf index 0abda8304c1..0c275cd7194 100644 --- a/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil_SPControl.idf +++ b/testfiles/SingleFamilyHouse_TwoSpeed_MultiStageElectricSuppCoil_SPControl.idf @@ -1489,10 +1489,6 @@ 45.0, !- Maximum Supply Air Temperature {C} 4.44444444444444, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} 0, !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf b/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf index b815aa4747b..974d40d4597 100644 --- a/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf +++ b/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf @@ -2111,11 +2111,7 @@ , !- No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W} 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} - Outside Air Inlet Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60; !- Heat Pump Fan Delay Time {s} + Outside Air Inlet Node; !- Outdoor Dry-Bulb Temperature Sensor Node Name OutdoorAir:Node, Outside Air Inlet Node; !- Name @@ -2164,7 +2160,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU1, !- Name @@ -2190,7 +2190,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU1, !- Name @@ -2414,11 +2415,7 @@ , !- No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W} 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} - Outside Air Inlet Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60; !- Heat Pump Fan Delay Time {s} + Outside Air Inlet Node; !- Outdoor Dry-Bulb Temperature Sensor Node Name Fan:OnOff, AHU 2 Supply Fan, !- Name @@ -2458,7 +2455,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU2, !- Name @@ -2484,7 +2485,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU2, !- Name @@ -2708,11 +2710,7 @@ , !- No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W} 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} - Outside Air Inlet Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60; !- Heat Pump Fan Delay Time {s} + Outside Air Inlet Node; !- Outdoor Dry-Bulb Temperature Sensor Node Name Fan:OnOff, AHU 3 Supply Fan, !- Name @@ -2752,7 +2750,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU3, !- Name @@ -2778,7 +2780,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU3, !- Name @@ -3002,11 +3005,7 @@ , !- No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W} 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} - Outside Air Inlet Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60; !- Heat Pump Fan Delay Time {s} + Outside Air Inlet Node; !- Outdoor Dry-Bulb Temperature Sensor Node Name Fan:OnOff, AHU 4 Supply Fan, !- Name @@ -3046,7 +3045,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU4, !- Name @@ -3072,7 +3075,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU4, !- Name @@ -3296,11 +3300,7 @@ , !- No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W} 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} - Outside Air Inlet Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60; !- Heat Pump Fan Delay Time {s} + Outside Air Inlet Node; !- Outdoor Dry-Bulb Temperature Sensor Node Name Fan:OnOff, AHU 5 Supply Fan, !- Name @@ -3340,7 +3340,11 @@ 2.06530E-02, !- Leak Rate Coefficient 1.92757E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:ParameterEstimation, Heat Pump HEATING Mode AHU5, !- Name @@ -3366,7 +3370,8 @@ 2.07750E-06, !- Leak Rate Coefficient {dimensionless} 4.00322E+03, !- Source Side Heat Transfer Coefficient {W/K} , !- Source Side Heat Transfer Resistance1 {dimensionless} - ; !- Source Side Heat Transfer Resistance2 {W/K} + , !- Source Side Heat Transfer Resistance2 {W/K} + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Heat Pump DX Supp Heating Coil AHU5, !- Name diff --git a/testfiles/UnitarySystem_MultiSpeedCoils_SingleMode.idf b/testfiles/UnitarySystem_MultiSpeedCoils_SingleMode.idf index 2bdeb30e6b3..65b9456c028 100644 --- a/testfiles/UnitarySystem_MultiSpeedCoils_SingleMode.idf +++ b/testfiles/UnitarySystem_MultiSpeedCoils_SingleMode.idf @@ -1558,10 +1558,6 @@ 50, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_MultiSpeedDX.idf b/testfiles/UnitarySystem_MultiSpeedDX.idf index e91f9f6e9cf..aef120f7fe2 100644 --- a/testfiles/UnitarySystem_MultiSpeedDX.idf +++ b/testfiles/UnitarySystem_MultiSpeedDX.idf @@ -2435,10 +2435,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2896,10 +2892,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3367,10 +3359,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4024,10 +4012,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4681,10 +4665,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_SingleSpeedDX.idf b/testfiles/UnitarySystem_SingleSpeedDX.idf index c1be3cd4e76..69bd965a7f3 100644 --- a/testfiles/UnitarySystem_SingleSpeedDX.idf +++ b/testfiles/UnitarySystem_SingleSpeedDX.idf @@ -2435,10 +2435,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2813,10 +2809,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3178,10 +3170,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3625,10 +3613,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4072,10 +4056,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_SubcoolReheatDX.idf b/testfiles/UnitarySystem_SubcoolReheatDX.idf index d2a36dd7d6d..692fd39e6f0 100644 --- a/testfiles/UnitarySystem_SubcoolReheatDX.idf +++ b/testfiles/UnitarySystem_SubcoolReheatDX.idf @@ -2948,10 +2948,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3697,10 +3693,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4061,10 +4053,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4507,10 +4495,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4953,10 +4937,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_TwoSpeedDX.idf b/testfiles/UnitarySystem_TwoSpeedDX.idf index d4df64a9ad1..a8dc4ecf443 100644 --- a/testfiles/UnitarySystem_TwoSpeedDX.idf +++ b/testfiles/UnitarySystem_TwoSpeedDX.idf @@ -2435,10 +2435,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2892,10 +2888,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3336,10 +3328,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3862,10 +3850,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4388,10 +4372,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_TwoStageDX.idf b/testfiles/UnitarySystem_TwoStageDX.idf index c9a5169698d..1dbaf954df5 100644 --- a/testfiles/UnitarySystem_TwoStageDX.idf +++ b/testfiles/UnitarySystem_TwoStageDX.idf @@ -2448,10 +2448,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2853,10 +2849,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3245,10 +3237,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3719,10 +3707,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4187,10 +4171,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_TwoStageDXWithHumidityControl.idf b/testfiles/UnitarySystem_TwoStageDXWithHumidityControl.idf index 2293c5d3820..9c2fc08486e 100644 --- a/testfiles/UnitarySystem_TwoStageDXWithHumidityControl.idf +++ b/testfiles/UnitarySystem_TwoStageDXWithHumidityControl.idf @@ -2448,10 +2448,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -2950,10 +2946,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -3439,10 +3431,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4010,10 +3998,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -4575,10 +4559,6 @@ Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_VSHeatPumpWaterToAirEquationFit.idf b/testfiles/UnitarySystem_VSHeatPumpWaterToAirEquationFit.idf index d8fe4afbd59..cb37da547d5 100644 --- a/testfiles/UnitarySystem_VSHeatPumpWaterToAirEquationFit.idf +++ b/testfiles/UnitarySystem_VSHeatPumpWaterToAirEquationFit.idf @@ -186,14 +186,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -207,8 +208,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -222,8 +221,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -237,8 +234,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -252,8 +247,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -267,8 +260,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -282,8 +273,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -297,8 +286,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -312,8 +299,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -327,8 +312,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -489,10 +472,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -514,14 +493,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -535,8 +515,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -550,8 +528,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -565,8 +541,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -580,8 +554,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -595,8 +567,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -610,8 +580,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -625,8 +593,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -640,8 +606,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -655,8 +619,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -817,10 +779,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 3 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -842,14 +800,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -863,8 +822,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -878,8 +835,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -893,8 +848,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -908,8 +861,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -923,8 +874,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -938,8 +887,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -953,8 +900,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -968,8 +913,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -983,8 +926,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1145,10 +1086,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 4 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1170,14 +1107,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1191,8 +1129,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1206,8 +1142,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1221,8 +1155,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1236,8 +1168,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1251,8 +1181,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1266,8 +1194,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1281,8 +1207,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1296,8 +1220,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1311,8 +1233,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1473,10 +1393,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 5 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1498,14 +1414,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1519,8 +1436,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1534,8 +1449,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1549,8 +1462,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1564,8 +1475,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1579,8 +1488,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1594,8 +1501,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1609,8 +1514,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1624,8 +1527,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1639,8 +1540,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name diff --git a/testfiles/UnitarySystem_WaterCoils_wMultiSpeedFan.idf b/testfiles/UnitarySystem_WaterCoils_wMultiSpeedFan.idf index 2df298a5aa3..c744f916dbc 100644 --- a/testfiles/UnitarySystem_WaterCoils_wMultiSpeedFan.idf +++ b/testfiles/UnitarySystem_WaterCoils_wMultiSpeedFan.idf @@ -1619,10 +1619,6 @@ 80, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} diff --git a/testfiles/UnitarySystem_ZoneVSWSHP_wDOAS.idf b/testfiles/UnitarySystem_ZoneVSWSHP_wDOAS.idf index 459ee129a1e..695041ea1ad 100644 --- a/testfiles/UnitarySystem_ZoneVSWSHP_wDOAS.idf +++ b/testfiles/UnitarySystem_ZoneVSWSHP_wDOAS.idf @@ -128,11 +128,7 @@ , !- No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W} 60.0, !- Maximum Supply Air Temperature {C} 20.0, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} - Sys 1 Outside Air Inlet Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60; !- Heat Pump Fan Delay Time {s} + Sys 1 Outside Air Inlet Node; !- Outdoor Dry-Bulb Temperature Sensor Node Name Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, Sys 1 Heat Pump Cooling Mode, !- Name @@ -147,14 +143,15 @@ Autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -168,8 +165,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -183,8 +178,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -198,8 +191,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -213,8 +204,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -228,8 +217,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -243,8 +230,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -258,8 +243,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -273,8 +256,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -288,8 +269,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name diff --git a/testfiles/VSDXCoilSystemAuto.idf b/testfiles/VSDXCoilSystemAuto.idf index 11f96a7ac10..1aa41bd51d3 100644 --- a/testfiles/VSDXCoilSystemAuto.idf +++ b/testfiles/VSDXCoilSystemAuto.idf @@ -195,6 +195,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/VSHeatPumpWaterToAirEquationFit.idf b/testfiles/VSHeatPumpWaterToAirEquationFit.idf index 666f2312a17..a6f903cfd0e 100644 --- a/testfiles/VSHeatPumpWaterToAirEquationFit.idf +++ b/testfiles/VSHeatPumpWaterToAirEquationFit.idf @@ -120,10 +120,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -145,14 +141,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -166,8 +163,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -181,8 +176,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -196,8 +189,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -211,8 +202,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -226,8 +215,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -241,8 +228,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -256,8 +241,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -271,8 +254,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -286,8 +267,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -448,10 +427,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -473,14 +448,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -494,8 +470,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -509,8 +483,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -524,8 +496,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -539,8 +509,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -554,8 +522,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -569,8 +535,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -584,8 +548,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -599,8 +561,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -614,8 +574,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -776,10 +734,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 3 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -801,14 +755,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -822,8 +777,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -837,8 +790,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -852,8 +803,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -867,8 +816,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -882,8 +829,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -897,8 +842,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -912,8 +855,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -927,8 +868,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -942,8 +881,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1104,10 +1041,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 4 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1129,14 +1062,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1150,8 +1084,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1165,8 +1097,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1180,8 +1110,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1195,8 +1123,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1210,8 +1136,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1225,8 +1149,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1240,8 +1162,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1255,8 +1175,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1270,8 +1188,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1432,10 +1348,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 5 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1457,14 +1369,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1478,8 +1391,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1493,8 +1404,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1508,8 +1417,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1523,8 +1430,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1538,8 +1443,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1553,8 +1456,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1568,8 +1469,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1583,8 +1482,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1598,8 +1495,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name diff --git a/testfiles/VSHeatPumpWaterToAirWithRHControl.idf b/testfiles/VSHeatPumpWaterToAirWithRHControl.idf index 2764d02ac59..641918f354c 100644 --- a/testfiles/VSHeatPumpWaterToAirWithRHControl.idf +++ b/testfiles/VSHeatPumpWaterToAirWithRHControl.idf @@ -122,10 +122,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -148,14 +144,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 1, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -169,8 +166,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -184,8 +179,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -199,8 +192,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -214,8 +205,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -229,8 +218,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -244,8 +231,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -259,8 +244,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -274,8 +257,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -289,8 +270,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -451,10 +430,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 2 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 2, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -477,14 +452,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 1, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -498,8 +474,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -513,8 +487,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -528,8 +500,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -543,8 +513,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -558,8 +526,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -573,8 +539,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -588,8 +552,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -603,8 +565,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -618,8 +578,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -780,10 +738,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 3 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 3, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -806,14 +760,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 1, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -827,8 +782,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -842,8 +795,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -857,8 +808,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -872,8 +821,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -887,8 +834,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -902,8 +847,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -917,8 +860,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -932,8 +873,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -947,8 +886,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1109,10 +1046,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 4 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 4, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1135,14 +1068,15 @@ 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 1, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1156,8 +1090,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1171,8 +1103,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1186,8 +1116,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1201,8 +1129,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1216,8 +1142,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1231,8 +1155,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1246,8 +1168,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1261,8 +1181,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1276,8 +1194,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1438,10 +1354,6 @@ Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 5 Heat Pump Cooling Mode, !- Cooling Coil Name 0.001, !- Cooling Convergence - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 5, !- Supplemental Heating Coil Name 50, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -1464,14 +1376,15 @@ 0.0033, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 1, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1485,8 +1398,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1500,8 +1411,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1515,8 +1424,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1530,8 +1437,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1545,8 +1450,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1560,8 +1463,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1575,8 +1476,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1590,8 +1489,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -1605,8 +1502,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name diff --git a/testfiles/WindACAirtoAir.idf b/testfiles/WindACAirtoAir.idf index 62f11550820..804c5161cf3 100644 --- a/testfiles/WindACAirtoAir.idf +++ b/testfiles/WindACAirtoAir.idf @@ -1654,6 +1654,9 @@ AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type diff --git a/testfiles/ZoneSysAvailManager.idf b/testfiles/ZoneSysAvailManager.idf index f46b5396612..f3b1f67c6ea 100644 --- a/testfiles/ZoneSysAvailManager.idf +++ b/testfiles/ZoneSysAvailManager.idf @@ -707,10 +707,6 @@ Sys 1 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -895,8 +891,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -907,8 +901,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 1 Heat Pump Heating Mode, !- Name @@ -924,7 +922,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:OnOff, Zone 1 Fan, !- Name diff --git a/testfiles/ZoneVSWSHP_wDOAS.idf b/testfiles/ZoneVSWSHP_wDOAS.idf index 026bfe48544..9785ed5f9a1 100644 --- a/testfiles/ZoneVSWSHP_wDOAS.idf +++ b/testfiles/ZoneVSWSHP_wDOAS.idf @@ -106,10 +106,6 @@ Sys 1 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -131,14 +127,15 @@ Autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60, !- Fan Delay Time {s} 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless} VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W} 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W} 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -152,8 +149,6 @@ 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W} 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -167,8 +162,6 @@ 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W} 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -182,8 +175,6 @@ 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W} 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -197,8 +188,6 @@ 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W} 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -212,8 +201,6 @@ 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W} 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -227,8 +214,6 @@ 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W} 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -242,8 +227,6 @@ 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W} 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -257,8 +240,6 @@ 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W} 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name @@ -272,8 +253,6 @@ 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless} 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W} 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s} - , !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s} TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name diff --git a/testfiles/ZoneWSHP_wDOAS.idf b/testfiles/ZoneWSHP_wDOAS.idf index 1893ea6d3a8..da9e2f26dba 100644 --- a/testfiles/ZoneWSHP_wDOAS.idf +++ b/testfiles/ZoneWSHP_wDOAS.idf @@ -702,10 +702,6 @@ Sys 1 Heat Pump Heating Mode, !- Heating Coil Name Coil:Cooling:WaterToAirHeatPump:EquationFit, !- Cooling Coil Object Type Sys 1 Heat Pump Cooling Mode, !- Cooling Coil Name - 2.5, !- Maximum Cycling Rate {cycles/hr} - 60.0, !- Heat Pump Time Constant {s} - 0.01, !- Fraction of On-Cycle Power Use - 60, !- Heat Pump Fan Delay Time {s} Coil:Heating:Fuel, !- Supplemental Heating Coil Object Type Heat Pump DX Supp Heating Coil 1, !- Supplemental Heating Coil Name 60.0, !- Maximum Supply Air Temperature from Supplemental Heater {C} @@ -841,8 +837,6 @@ Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name Autosize, !- Rated Air Flow Rate {m3/s} - , !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} - , !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)} Autosize, !- Rated Water Flow Rate {m3/s} Autosize, !- Gross Rated Total Cooling Capacity {W} Autosize, !- Gross Rated Sensible Cooling Capacity {W} @@ -853,8 +847,12 @@ TotCoolCapCurve, !- Total Cooling Capacity Curve Name CoolSensCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + HPACCOOLPLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} - 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} + 2.5, !- Maximum Cycling Rate {cycles/hr} + 60, !- Latent Capacity Time Constant {s} + 60; !- Fan Delay Time {s} Coil:Heating:WaterToAirHeatPump:EquationFit, Sys 1 Heat Pump Heating Mode, !- Name @@ -870,7 +868,8 @@ 20.0, !- Rated Entering Air Dry-Bulb Temperature {C} 1.0, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + HPACHEATPLFFPLR; !- Part Load Fraction Correlation Curve Name Fan:SystemModel, Zone 1 Fan, !- Name diff --git a/third_party/FMI/fmiModelFunctions.h b/third_party/FMI/fmiModelFunctions.h index 7c3f00f27c9..81b62460a85 100644 --- a/third_party/FMI/fmiModelFunctions.h +++ b/third_party/FMI/fmiModelFunctions.h @@ -47,7 +47,7 @@ - Dec. 3 , 2008: First version by Martin Otter (DLR) and Hans Olsson (Dynasim). - Copyright � 2008-2009, MODELISAR consortium. All rights reserved. + Copyright © 2008-2009, MODELISAR consortium. All rights reserved. This file is licensed by the copyright holders under the BSD License (http://www.opensource.org/licenses/bsd-license.html): diff --git a/third_party/FMI/fmiModelTypes.h b/third_party/FMI/fmiModelTypes.h index d966ceadb66..e904ee9cac0 100644 --- a/third_party/FMI/fmiModelTypes.h +++ b/third_party/FMI/fmiModelTypes.h @@ -24,7 +24,7 @@ Hans Olsson (Dynasim). - Copyright � 2008-2010, MODELISAR consortium. All rights reserved. + Copyright © 2008-2010, MODELISAR consortium. All rights reserved. This file is licensed by the copyright holders under the BSD License (http://www.opensource.org/licenses/bsd-license.html) diff --git a/third_party/FMI/fmiPlatformTypes.h b/third_party/FMI/fmiPlatformTypes.h index 1836466a3d8..16ef9bc7df5 100644 --- a/third_party/FMI/fmiPlatformTypes.h +++ b/third_party/FMI/fmiPlatformTypes.h @@ -10,7 +10,7 @@ - October 2010: First public Version - Copyright � 2008-2010, MODELISAR consortium. All rights reserved. + Copyright © 2008-2010, MODELISAR consortium. All rights reserved. This file is licensed by the copyright holders under the BSD License (http://www.opensource.org/licenses/bsd-license.html): diff --git a/third_party/FMUParser/fmiModelTypes.h b/third_party/FMUParser/fmiModelTypes.h index d966ceadb66..e904ee9cac0 100644 --- a/third_party/FMUParser/fmiModelTypes.h +++ b/third_party/FMUParser/fmiModelTypes.h @@ -24,7 +24,7 @@ Hans Olsson (Dynasim). - Copyright � 2008-2010, MODELISAR consortium. All rights reserved. + Copyright © 2008-2010, MODELISAR consortium. All rights reserved. This file is licensed by the copyright holders under the BSD License (http://www.opensource.org/licenses/bsd-license.html) diff --git a/third_party/FMUParser/fmiPlatformTypes.h b/third_party/FMUParser/fmiPlatformTypes.h index 1836466a3d8..16ef9bc7df5 100644 --- a/third_party/FMUParser/fmiPlatformTypes.h +++ b/third_party/FMUParser/fmiPlatformTypes.h @@ -10,7 +10,7 @@ - October 2010: First public Version - Copyright � 2008-2010, MODELISAR consortium. All rights reserved. + Copyright © 2008-2010, MODELISAR consortium. All rights reserved. This file is licensed by the copyright holders under the BSD License (http://www.opensource.org/licenses/bsd-license.html): diff --git a/third_party/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh b/third_party/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh index b4edcbc46b8..8ce4654a0cd 100644 --- a/third_party/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh +++ b/third_party/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh @@ -1,7 +1,7 @@ //===================================================== // File : intel_bench_fixed_size.hh // Author : L. Plagne -// Copyright (C) EDF R&D, mar d�c 3 18:59:37 CET 2002 +// Copyright (C) EDF R&D, mar déc 3 18:59:37 CET 2002 //===================================================== // // This program is free software; you can redistribute it and/or diff --git a/third_party/eigen/bench/btl/generic_bench/static/static_size_generator.hh b/third_party/eigen/bench/btl/generic_bench/static/static_size_generator.hh index dd02df3f1cf..0dffe7fffe5 100644 --- a/third_party/eigen/bench/btl/generic_bench/static/static_size_generator.hh +++ b/third_party/eigen/bench/btl/generic_bench/static/static_size_generator.hh @@ -1,7 +1,7 @@ //===================================================== // File : static_size_generator.hh // Author : L. Plagne -// Copyright (C) EDF R&D, mar d�c 3 18:59:36 CET 2002 +// Copyright (C) EDF R&D, mar déc 3 18:59:36 CET 2002 //===================================================== // // This program is free software; you can redistribute it and/or diff --git a/third_party/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh b/third_party/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh index c9f894b1ffe..b936628260a 100644 --- a/third_party/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh +++ b/third_party/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh @@ -1,7 +1,7 @@ //===================================================== // File : STL_perf_analyzer.hh // Author : L. Plagne -// Copyright (C) EDF R&D, mar d�c 3 18:59:35 CET 2002 +// Copyright (C) EDF R&D, mar déc 3 18:59:35 CET 2002 //===================================================== // // This program is free software; you can redistribute it and/or diff --git a/third_party/eigen/bench/btl/generic_bench/timers/STL_timer.hh b/third_party/eigen/bench/btl/generic_bench/timers/STL_timer.hh index 19c54e9c137..32389c7590a 100644 --- a/third_party/eigen/bench/btl/generic_bench/timers/STL_timer.hh +++ b/third_party/eigen/bench/btl/generic_bench/timers/STL_timer.hh @@ -1,7 +1,7 @@ //===================================================== // File : STL_Timer.hh // Author : L. Plagne -// Copyright (C) EDF R&D, mar d�c 3 18:59:35 CET 2002 +// Copyright (C) EDF R&D, mar déc 3 18:59:35 CET 2002 //===================================================== // // This program is free software; you can redistribute it and/or diff --git a/third_party/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh b/third_party/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh index e190236e0a6..71ee2793af6 100644 --- a/third_party/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh +++ b/third_party/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh @@ -1,7 +1,7 @@ //===================================================== // File : mixed_perf_analyzer.hh // Author : L. Plagne -// Copyright (C) EDF R&D, mar d�c 3 18:59:36 CET 2002 +// Copyright (C) EDF R&D, mar déc 3 18:59:36 CET 2002 //===================================================== // // This program is free software; you can redistribute it and/or diff --git a/third_party/eigen/bench/btl/generic_bench/utils/size_lin_log.hh b/third_party/eigen/bench/btl/generic_bench/utils/size_lin_log.hh index bbc9f543df1..adf94f5788c 100644 --- a/third_party/eigen/bench/btl/generic_bench/utils/size_lin_log.hh +++ b/third_party/eigen/bench/btl/generic_bench/utils/size_lin_log.hh @@ -1,7 +1,7 @@ //===================================================== // File : size_lin_log.hh // Author : L. Plagne -// Copyright (C) EDF R&D, mar d�c 3 18:59:37 CET 2002 +// Copyright (C) EDF R&D, mar déc 3 18:59:37 CET 2002 //===================================================== // // This program is free software; you can redistribute it and/or diff --git a/third_party/ssc/shared/lib_mlmodel.h b/third_party/ssc/shared/lib_mlmodel.h index 9b370a2d836..7d9ec2a6748 100644 --- a/third_party/ssc/shared/lib_mlmodel.h +++ b/third_party/ssc/shared/lib_mlmodel.h @@ -4,7 +4,7 @@ * Copyright 2017 Alliance for Sustainable Energy, LLC * * NOTICE: This software was developed at least in part by Alliance for Sustainable Energy, LLC -* (�Alliance�) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. +* (“Alliance”) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. * The Government retains for itself and others acting on its behalf a nonexclusive, paid-up, * irrevocable worldwide license in the software to reproduce, prepare derivative works, distribute * copies to the public, perform publicly and display publicly, and to permit others to do so. @@ -28,8 +28,8 @@ * 4. Redistribution of this software, without modification, must refer to the software by the same * designation. Redistribution of a modified version of this software (i) may not refer to the modified * version by the same designation, or by any confusingly similar designation, and (ii) must refer to -* the underlying software originally provided by Alliance as �System Advisor Model� or �SAM�. Except -* to comply with the foregoing, the terms �System Advisor Model�, �SAM�, or any confusingly similar +* the underlying software originally provided by Alliance as “System Advisor Model” or “SAM”. Except +* to comply with the foregoing, the terms “System Advisor Model”, “SAM”, or any confusingly similar * designation may not be used to refer to any modified version of this software or any modified * version of the underlying software originally provided by Alliance without the prior written consent * of Alliance. diff --git a/third_party/ssc/shared/lib_ondinv.cpp b/third_party/ssc/shared/lib_ondinv.cpp index 72b7453109c..6f812d3ad5b 100644 --- a/third_party/ssc/shared/lib_ondinv.cpp +++ b/third_party/ssc/shared/lib_ondinv.cpp @@ -3,7 +3,7 @@ * Copyright 2017 Alliance for Sustainable Energy, LLC * * NOTICE: This software was developed at least in part by Alliance for Sustainable Energy, LLC -* (�Alliance�) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. +* (“Alliance”) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. * The Government retains for itself and others acting on its behalf a nonexclusive, paid-up, * irrevocable worldwide license in the software to reproduce, prepare derivative works, distribute * copies to the public, perform publicly and display publicly, and to permit others to do so. @@ -27,8 +27,8 @@ * 4. Redistribution of this software, without modification, must refer to the software by the same * designation. Redistribution of a modified version of this software (i) may not refer to the modified * version by the same designation, or by any confusingly similar designation, and (ii) must refer to -* the underlying software originally provided by Alliance as �System Advisor Model� or �SAM�. Except -* to comply with the foregoing, the terms �System Advisor Model�, �SAM�, or any confusingly similar +* the underlying software originally provided by Alliance as “System Advisor Model” or “SAM”. Except +* to comply with the foregoing, the terms “System Advisor Model”, “SAM”, or any confusingly similar * designation may not be used to refer to any modified version of this software or any modified * version of the underlying software originally provided by Alliance without the prior written consent * of Alliance. diff --git a/third_party/ssc/shared/lib_ondinv.h b/third_party/ssc/shared/lib_ondinv.h index 5a50db9a01b..72bf4e72c40 100644 --- a/third_party/ssc/shared/lib_ondinv.h +++ b/third_party/ssc/shared/lib_ondinv.h @@ -53,10 +53,10 @@ class ond_inverter double INomDC; // [A] double INomAC; // [A] double IMaxAC; // [A] - double TPNom; // [�C] - double TPMax; // [�C] - double TPLim1; // [�C] - double TPLimAbs; // [�C] + double TPNom; // [°C] + double TPMax; // [°C] + double TPLim1; // [°C] + double TPLimAbs; // [°C] double PLim1; // [kW] double PLimAbs; // [kW] double VNomEff[3]; // [V] @@ -77,7 +77,7 @@ class ond_inverter /* inputs */ double Pdc, /* Input power to inverter (Wdc) */ double Vdc, /* Voltage input to inverter (Vdc) */ - double Tamb, /* Ambient temperature (�C) */ + double Tamb, /* Ambient temperature (°C) */ /* outputs */ double *Pac, /* AC output power (Wac) */ diff --git a/third_party/ssc/shared/lib_wind_obos.h b/third_party/ssc/shared/lib_wind_obos.h index 7d5073e6259..08fde585e42 100644 --- a/third_party/ssc/shared/lib_wind_obos.h +++ b/third_party/ssc/shared/lib_wind_obos.h @@ -2,7 +2,7 @@ * Copyright 2017 Alliance for Sustainable Energy, LLC * * NOTICE: This software was developed at least in part by Alliance for Sustainable Energy, LLC - * (�Alliance�) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. + * (“Alliance”) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. * The Government retains for itself and others acting on its behalf a nonexclusive, paid-up, * irrevocable worldwide license in the software to reproduce, prepare derivative works, distribute * copies to the public, perform publicly and display publicly, and to permit others to do so. @@ -26,8 +26,8 @@ * 4. Redistribution of this software, without modification, must refer to the software by the same * designation. Redistribution of a modified version of this software (i) may not refer to the modified * version by the same designation, or by any confusingly similar designation, and (ii) must refer to - * the underlying software originally provided by Alliance as �System Advisor Model� or �SAM�. Except - * to comply with the foregoing, the terms �System Advisor Model�, �SAM�, or any confusingly similar + * the underlying software originally provided by Alliance as “System Advisor Model” or “SAM”. Except + * to comply with the foregoing, the terms “System Advisor Model”, “SAM”, or any confusingly similar * designation may not be used to refer to any modified version of this software or any modified * version of the underlying software originally provided by Alliance without the prior written consent * of Alliance. diff --git a/third_party/ssc/solarpilot/Flux.cpp b/third_party/ssc/solarpilot/Flux.cpp index 5e1f2abf766..ba276a484d1 100644 --- a/third_party/ssc/solarpilot/Flux.cpp +++ b/third_party/ssc/solarpilot/Flux.cpp @@ -45,13 +45,13 @@ Several algorithms in this class are based on the Hermite expansion technique fo Gaussian flux distributions which was developed by Dellin, Walzel, Lipps, et al, and implemented in DELSOL3. These algorithms are publicly available through the following publications: -[1] T. A. Dellin, �An improved Hermite expansion calculation of the flux distribution from - heliostats,� Sandia National Laboratory, Livermore, CA, 1979. SAND79-8619. -[2] M. D. Walzel, F. W. Lipps, and Vant-Hull, �A solar flux density calculation for a solar - tower concentrator using a two-dimensional Hermite function expansion,� Solar Energy, - vol. 19, pp. 239�256, 1977. -[3] B. L. Kistler, �A user�s manual for DELSOL3: A computer code for calculating the optical - performance and optimal system design for solar thermal central receiver plants,� Sandia +[1] T. A. Dellin, "An improved Hermite expansion calculation of the flux distribution from + heliostats", Sandia National Laboratory, Livermore, CA, 1979. SAND79-8619. +[2] M. D. Walzel, F. W. Lipps, and Vant-Hull, "A solar flux density calculation for a solar + tower concentrator using a two-dimensional Hermite function expansion", Solar Energy, + vol. 19, pp. 239-256, 1977. +[3] B. L. Kistler, "A user's manual for DELSOL3: A computer code for calculating the optical + performance and optimal system design for solar thermal central receiver plants", Sandia National Laboratory, Albuquerque, NM, 1986. SAND86-8018. @@ -433,8 +433,8 @@ void Flux::hermiteSunCoefs(var_map &V, matrix_t &mSun) { user_sun = &temp_sun; //Assign } else if(suntype == 5){ //Create the Buie (2003) sun shape based on CSR - //[1] Buie, D., Dey, C., & Bosi, S. (2003). The effective size of the solar cone for solar concentrating systems. Solar energy, 74(2003), 417�427. - //[2] Buie, D., Monger, A., & Dey, C. (2003). Sunshape distributions for terrestrial solar simulations. Solar Energy, 74(March 2003), 113�122. + //[1] Buie, D., Dey, C., & Bosi, S. (2003). The effective size of the solar cone for solar concentrating systems. Solar energy, 74(2003), 417-427. + //[2] Buie, D., Monger, A., & Dey, C. (2003). Sunshape distributions for terrestrial solar simulations. Solar Energy, 74(March 2003), 113-122. double kappa, gamma, theta, chi; diff --git a/third_party/ssc/solarpilot/STObject.h b/third_party/ssc/solarpilot/STObject.h index 618c6d4d7b9..2fc9eff4797 100644 --- a/third_party/ssc/solarpilot/STObject.h +++ b/third_party/ssc/solarpilot/STObject.h @@ -2,7 +2,7 @@ * Copyright 2017 Alliance for Sustainable Energy, LLC * * NOTICE: This software was developed at least in part by Alliance for Sustainable Energy, LLC -* (�Alliance�) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. +* (“Alliance”) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. * The Government retains for itself and others acting on its behalf a nonexclusive, paid-up, * irrevocable worldwide license in the software to reproduce, prepare derivative works, distribute * copies to the public, perform publicly and display publicly, and to permit others to do so. @@ -26,8 +26,8 @@ * 4. Redistribution of this software, without modification, must refer to the software by the same * designation. Redistribution of a modified version of this software (i) may not refer to the modified * version by the same designation, or by any confusingly similar designation, and (ii) must refer to -* the underlying software originally provided by Alliance as �System Advisor Model� or �SAM�. Except -* to comply with the foregoing, the terms �System Advisor Model�, �SAM�, or any confusingly similar +* the underlying software originally provided by Alliance as “System Advisor Model” or “SAM”. Except +* to comply with the foregoing, the terms “System Advisor Model”, “SAM”, or any confusingly similar * designation may not be used to refer to any modified version of this software or any modified * version of the underlying software originally provided by Alliance without the prior written consent * of Alliance. diff --git a/third_party/ssc/solarpilot/STSimulateThread.cpp b/third_party/ssc/solarpilot/STSimulateThread.cpp index 73d48c89300..1acf67d29fc 100644 --- a/third_party/ssc/solarpilot/STSimulateThread.cpp +++ b/third_party/ssc/solarpilot/STSimulateThread.cpp @@ -2,7 +2,7 @@ * Copyright 2017 Alliance for Sustainable Energy, LLC * * NOTICE: This software was developed at least in part by Alliance for Sustainable Energy, LLC -* (�Alliance�) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. +* (“Alliance”) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. * The Government retains for itself and others acting on its behalf a nonexclusive, paid-up, * irrevocable worldwide license in the software to reproduce, prepare derivative works, distribute * copies to the public, perform publicly and display publicly, and to permit others to do so. @@ -26,8 +26,8 @@ * 4. Redistribution of this software, without modification, must refer to the software by the same * designation. Redistribution of a modified version of this software (i) may not refer to the modified * version by the same designation, or by any confusingly similar designation, and (ii) must refer to -* the underlying software originally provided by Alliance as �System Advisor Model� or �SAM�. Except -* to comply with the foregoing, the terms �System Advisor Model�, �SAM�, or any confusingly similar +* the underlying software originally provided by Alliance as “System Advisor Model” or “SAM”. Except +* to comply with the foregoing, the terms “System Advisor Model”, “SAM”, or any confusingly similar * designation may not be used to refer to any modified version of this software or any modified * version of the underlying software originally provided by Alliance without the prior written consent * of Alliance. diff --git a/third_party/ssc/solarpilot/STSimulateThread.h b/third_party/ssc/solarpilot/STSimulateThread.h index a1674622fc6..c6b655c3012 100644 --- a/third_party/ssc/solarpilot/STSimulateThread.h +++ b/third_party/ssc/solarpilot/STSimulateThread.h @@ -2,7 +2,7 @@ * Copyright 2017 Alliance for Sustainable Energy, LLC * * NOTICE: This software was developed at least in part by Alliance for Sustainable Energy, LLC -* (�Alliance�) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. +* (“Alliance”) under Contract No. DE-AC36-08GO28308 with the U.S. Department of Energy and the U.S. * The Government retains for itself and others acting on its behalf a nonexclusive, paid-up, * irrevocable worldwide license in the software to reproduce, prepare derivative works, distribute * copies to the public, perform publicly and display publicly, and to permit others to do so. @@ -26,8 +26,8 @@ * 4. Redistribution of this software, without modification, must refer to the software by the same * designation. Redistribution of a modified version of this software (i) may not refer to the modified * version by the same designation, or by any confusingly similar designation, and (ii) must refer to -* the underlying software originally provided by Alliance as �System Advisor Model� or �SAM�. Except -* to comply with the foregoing, the terms �System Advisor Model�, �SAM�, or any confusingly similar +* the underlying software originally provided by Alliance as “System Advisor Model” or “SAM”. Except +* to comply with the foregoing, the terms “System Advisor Model”, “SAM”, or any confusingly similar * designation may not be used to refer to any modified version of this software or any modified * version of the underlying software originally provided by Alliance without the prior written consent * of Alliance. diff --git a/third_party/ssc/tcs/CO2_properties.cpp b/third_party/ssc/tcs/CO2_properties.cpp index 34c0d77d4d6..e4b52560d09 100644 --- a/third_party/ssc/tcs/CO2_properties.cpp +++ b/third_party/ssc/tcs/CO2_properties.cpp @@ -1,10 +1,10 @@ /*********************************** FIT Carbon Dioxide (NREL v1) ********************************** -� +— Copyright (c) 2016, Northland Numerics LLC All rights reserved. Use of this software in source and binary forms, with or without modification, is permitted for -Alliance for Sustainable Energy, LLC (the �Licensee�) and for third parties that receive this +Alliance for Sustainable Energy, LLC (the “Licensee”) and for third parties that receive this software, with or without modification, directly from Licensee. Licensee is permitted to redistribute this software in source and binary forms, with or without modification, provided that redistributions of source code must retain the above copyright notice and reservation of @@ -25,7 +25,7 @@ OR LOSS OF USE, DATA, OR PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE), ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -� +— ***************************************************************************************************/ diff --git a/third_party/ssc/tcs/CO2_properties.h b/third_party/ssc/tcs/CO2_properties.h index 0dd75d9a7ea..0830f9eb4c6 100644 --- a/third_party/ssc/tcs/CO2_properties.h +++ b/third_party/ssc/tcs/CO2_properties.h @@ -5,12 +5,12 @@ Pressure Range: 1.0 kPa to 60.0 MPa FIT Version: 4cd1a62f8548 ---------------------------------------------------------------------------------------------------- -� +— Copyright (c) 2016, Northland Numerics LLC All rights reserved. Use of this software in source and binary forms, with or without modification, is permitted for -Alliance for Sustainable Energy, LLC (the �Licensee�) and for third parties that receive this +Alliance for Sustainable Energy, LLC (the “Licensee”) and for third parties that receive this software, with or without modification, directly from Licensee. Licensee is permitted to redistribute this software in source and binary forms, with or without modification, provided that redistributions of source code must retain the above copyright notice and reservation of @@ -31,7 +31,7 @@ OR LOSS OF USE, DATA, OR PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE), ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -� +— ---------------------------------------------------------------------------------------------------- diff --git a/third_party/ssc/tcs/atmospheric_aod.cpp b/third_party/ssc/tcs/atmospheric_aod.cpp index d3dbca148a0..a772b14202b 100644 --- a/third_party/ssc/tcs/atmospheric_aod.cpp +++ b/third_party/ssc/tcs/atmospheric_aod.cpp @@ -496,7 +496,7 @@ class atmospheric_aod : public tcstypeinterface of the Brighter Planets," The Astronomical Journal, vol. 72, pp. 945-950, 1967. [3] Fritz Kasten and Andrew Young. "Revised optical air mass tables and - approximation formula". Applied Optics 28:4735�4738 + approximation formula". Applied Optics 28:4735–4738 [4] C. Gueymard, "Critical analysis and performance assessment of clear sky solar irradiance models using theoretical and measured data," Solar Energy, vol. 51, pp. 121-138, 1993. diff --git a/third_party/ssc/tcs/water_properties.cpp b/third_party/ssc/tcs/water_properties.cpp index b65a881e86f..2aac357a1b0 100644 --- a/third_party/ssc/tcs/water_properties.cpp +++ b/third_party/ssc/tcs/water_properties.cpp @@ -3,7 +3,7 @@ Copyright (c) 2016, Northland Numerics LLC All rights reserved. Use of this software in source and binary forms, with or without modification, is permitted for -Alliance for Sustainable Energy, LLC (the �Licensee�) and for third parties that receive this +Alliance for Sustainable Energy, LLC (the “Licensee”) and for third parties that receive this software, with or without modification, directly from Licensee. Licensee is permitted to redistribute this software in source and binary forms, with or without modification, provided that redistributions of source code must retain the above copyright notice and reservation of diff --git a/third_party/ssc/tcs/water_properties.h b/third_party/ssc/tcs/water_properties.h index 7b0a303756f..f9d8e97ea51 100644 --- a/third_party/ssc/tcs/water_properties.h +++ b/third_party/ssc/tcs/water_properties.h @@ -9,7 +9,7 @@ Copyright (c) 2016, Northland Numerics LLC All rights reserved. Use of this software in source and binary forms, with or without modification, is permitted for -Alliance for Sustainable Energy, LLC (the �Licensee�) and for third parties that receive this +Alliance for Sustainable Energy, LLC (the “Licensee”) and for third parties that receive this software, with or without modification, directly from Licensee. Licensee is permitted to redistribute this software in source and binary forms, with or without modification, provided that redistributions of source code must retain the above copyright notice and reservation of diff --git a/tst/EnergyPlus/unit/ConvectionCoefficients.unit.cc b/tst/EnergyPlus/unit/ConvectionCoefficients.unit.cc index 73f6898296b..3677c0a16a5 100644 --- a/tst/EnergyPlus/unit/ConvectionCoefficients.unit.cc +++ b/tst/EnergyPlus/unit/ConvectionCoefficients.unit.cc @@ -66,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -612,6 +613,7 @@ TEST_F(ConvectionCoefficientsFixture, initExtConvCoeffAdjRatio) Real64 HSky; Real64 HGround; Real64 HAir; + Real64 HSrdSurf; Real64 HExtAdj; Real64 adjRatio = 2.0; @@ -619,10 +621,10 @@ TEST_F(ConvectionCoefficientsFixture, initExtConvCoeffAdjRatio) state->dataHeatBalSurf->SurfWinCoeffAdjRatio.allocate(1); // without adjust ratio state->dataHeatBalSurf->SurfWinCoeffAdjRatio(1) = 1.0; - Convect::InitExtConvCoeff(*state, 1, HMovInsul, RoughSurf, AbsThermSurf, TempExt, HExt, HSky, HGround, HAir); + Convect::InitExtConvCoeff(*state, 1, HMovInsul, RoughSurf, AbsThermSurf, TempExt, HExt, HSky, HGround, HAir, HSrdSurf); // with adjust ratio state->dataHeatBalSurf->SurfWinCoeffAdjRatio(1) = adjRatio; - Convect::InitExtConvCoeff(*state, 1, HMovInsul, RoughSurf, AbsThermSurf, TempExt, HExtAdj, HSky, HGround, HAir); + Convect::InitExtConvCoeff(*state, 1, HMovInsul, RoughSurf, AbsThermSurf, TempExt, HExtAdj, HSky, HGround, HAir, HSrdSurf); // adjust ratio scales the returned exterior convection coefficient EXPECT_EQ(HExtAdj, HExt * adjRatio); } @@ -3815,3 +3817,298 @@ TEST_F(ConvectionCoefficientsFixture, RoofExtConvectionCoefficient) EXPECT_EQ(surf1.ExtBoundCond, EnergyPlus::DataSurfaces::OtherSideCondModeledExt); EXPECT_TRUE(compare_err_stream("")); } + +TEST_F(ConvectionCoefficientsFixture, SurroundingSurfacesHRadCoefTest) +{ + std::string_view constexpr idf_objects = R"IDF( + Zone, + Zone, !- Name + 0, !- Direction of Relative North {deg} + 6.000000, !- X Origin {m} + 6.000000, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + Material, + NothWallConcreteBlock, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 0.3805070, !- Conductivity {W/m-K} + 608.7016, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance", + 0.6, !- Solar Absorptance", + 1.0; !- Visible Absorptance", + + Construction, + NorthWallConstruction, !- Name + NothWallConcreteBlock; !- Outside Layer + + Material, + EastWallConcreteBlock, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 0.3805070, !- Conductivity {W/m-K} + 608.7016, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.7, !- Thermal Absorptance", + 0.6, !- Solar Absorptance", + 1.0; !- Visible Absorptance", + + Construction, + EastWallConstruction, !- Name + EastWallConcreteBlock; !- Outside Layer + + BuildingSurface:Detailed, + North-Wall, !- Name + Wall, !- Surface Type + NorthWallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.1, !- View Factor to Ground + 4, !- Number of Vertices + 0.0, 0.0, 10.0, !- X,Y,Z ==> Vertex 1 {m} + 0.0, 0.0, 0.0, !- X,Y,Z ==> Vertex 2 {m} + 10.0, 0.0, 0.0, !- X,Y,Z ==> Vertex 3 {m} + 10.0, 0.0, 10.0; !- X,Y,Z ==> Vertex 4 {m} + + SurfaceProperty:LocalEnvironment, + LocEnv:North-Wall, !- Name + North-Wall, !- Exterior Surface Name + , !- External Shading Fraction Schedule Name + SrdSurfs:North-Wall; !- Surrounding Surfaces Object Name + + SurfaceProperty:SurroundingSurfaces, + SrdSurfs:North-Wall, !- Name + 0.4, !- Sky View Factor + Sky Temp Sch, !- Sky Temperature Schedule Name + , !- Ground View Factor + , !- Ground Temperature Schedule Name + SrdSurfs:Surface 1, !- Surrounding Surface 1 Name + 0.3, !- Surrounding Surface 1 View Factor + Surrounding Temp Sch 1, !- Surrounding Surface 1 Temperature Schedule Name + SrdSurfs:Surface 2, !- Surrounding Surface 2 Name + 0.2, !- Surrounding Surface 2 View Factor + Surrounding Temp Sch 2; !- Surrounding Surface 2 Temperature Schedule Name + + Schedule:Compact, + Sky Temp Sch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 6.0; !- Field 3 + + BuildingSurface:Detailed, + East-Wall, !- Name + Wall, !- Surface Type + EastWallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.4, !- View Factor to Ground + 4, !- Number of Vertices + 10.0, 10.0, 0.0, !- X,Y,Z ==> Vertex 1 {m} + 10.0, 10.0, 10.0, !- X,Y,Z ==> Vertex 2 {m} + 10.0, 0.0, 10.0, !- X,Y,Z ==> Vertex 3 {m} + 10.0, 0.0, 0.0; !- X,Y,Z ==> Vertex 4 {m} + + SurfaceProperty:LocalEnvironment, + LocEnv:East-Wall, !- Name + East-Wall, !- Exterior Surface Name + , !- External Shading Fraction Schedule Name + SrdSurfs:East-Wall; !- Surrounding Surfaces Object Name + + SurfaceProperty:SurroundingSurfaces, + SrdSurfs:East-Wall, !- Name + 0.3, !- Sky View Factor + Sky Temp Sch, !- Sky Temperature Schedule Name + , !- Ground View Factor + , !- Ground Temperature Schedule Name + SrdSurfs:Surface 3, !- Surrounding Surface 1 Name + 0.1, !- Surrounding Surface 1 View Factor + Surrounding Temp Sch 3, !- Surrounding Surface 1 Temperature Schedule Name + SrdSurfs:Surface 4, !- Surrounding Surface 2 Name + 0.2, !- Surrounding Surface 2 View Factor + Surrounding Temp Sch 4; !- Surrounding Surface 2 Temperature Schedule Name + + Schedule:Compact, + Surrounding Temp Sch 1, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 10.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 2, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 12.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 3, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 14.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 4, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 16.0; !- Field 3 + + BuildingSurface:Detailed, + Floor, !- Name + Floor, !- Surface Type + NorthWallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.0, !- View Factor to Ground + 4, !- Number of Vertices + 0.000000,0.000000,0, !- X,Y,Z ==> Vertex 1 {m} + 0.000000,10.000000,0, !- X,Y,Z ==> Vertex 2 {m} + 10.00000,10.000000,0, !- X,Y,Z ==> Vertex 3 {m} + 10.00000,0.000000,0; !- X,Y,Z ==> Vertex 4 {m} + + )IDF"; + + bool ErrorsFound = false; + ASSERT_TRUE(process_idf(idf_objects)); + // set global and environmental variables + state->dataGlobal->BeginSimFlag = true; + state->dataGlobal->BeginEnvrnFlag = true; + state->dataGlobal->HourOfDay = 15; + state->dataGlobal->TimeStep = 1; + state->dataGlobal->TimeStepZone = 1; + state->dataGlobal->TimeStepZoneSec = 3600.0; + state->dataGlobal->NumOfTimeStepInHour = 1; + state->dataGlobal->MinutesPerTimeStep = 60; + state->dataEnvrn->Month = 7; + state->dataEnvrn->DayOfMonth = 21; + state->dataEnvrn->DSTIndicator = 0; + state->dataEnvrn->DayOfWeek = 2; + state->dataEnvrn->HolidayIndex = 0; + state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); + state->dataEnvrn->OutBaroPress = 101325; + // process schedules + ScheduleManager::ProcessScheduleInput(*state); + state->dataScheduleMgr->ScheduleInputProcessed = true; + + state->dataHeatBal->ZoneIntGain.allocate(1); + // createFacilityElectricPowerServiceObject(*state); + HeatBalanceManager::SetPreConstructionInputParameters(*state); + HeatBalanceManager::GetProjectControlData(*state, ErrorsFound); + HeatBalanceManager::GetFrameAndDividerData(*state); + Material::GetMaterialData(*state, ErrorsFound); + HeatBalanceManager::GetConstructData(*state, ErrorsFound); + HeatBalanceManager::GetBuildingData(*state, ErrorsFound); + HeatBalanceManager::AllocateHeatBalArrays(*state); + HeatBalanceSurfaceManager::AllocateSurfaceHeatBalArrays(*state); + + EXPECT_FALSE(ErrorsFound); + EXPECT_TRUE(state->dataGlobal->AnyLocalEnvironmentsInModel); + // reset sky and ground view factors + HeatBalanceSurfaceManager::InitSurfacePropertyViewFactors(*state); + // update schedule values for surrounding surfaces temperature + ScheduleManager::UpdateScheduleValues(*state); + HeatBalanceSurfaceManager::GetSurroundingSurfacesTemperatureAverage(*state); + // set outside face temperature of the exterior surfaces + state->dataHeatBalSurf->SurfOutsideTempHist(1).dimension(state->dataSurface->TotSurfaces, 0.0); + state->dataHeatBalSurf->SurfOutsideTempHist(1)(1) = 20.0; + state->dataHeatBalSurf->SurfOutsideTempHist(1)(2) = 30.0; + state->dataHeatBalSurf->SurfOutsideTempHist(1)(3) = 20.0; + + int surfNum = 0; + int srdSurfsNum = 0; + int srdSurfsPropNum = 0; + // test 1: exterior north wall radiation coefficient + srdSurfsPropNum = UtilityRoutines::FindItemInList("SRDSURFS:NORTH-WALL", state->dataSurface->SurroundingSurfsProperty); + EXPECT_EQ(1, state->dataSurface->SurfLocalEnvironment(srdSurfsPropNum).SurroundingSurfsPtr); + surfNum = UtilityRoutines::FindItemInList("NORTH-WALL", state->dataSurface->Surface); + auto &surface_north_wall = state->dataSurface->Surface(surfNum); + srdSurfsNum = state->dataSurface->Surface(surfNum).SurfSurroundingSurfacesNum; + auto &srdSurfsProperty_north = state->dataSurface->SurroundingSurfsProperty(srdSurfsNum); + // check sky view factors + EXPECT_DOUBLE_EQ(0.4, srdSurfsProperty_north.SkyViewFactor); + EXPECT_NEAR(0.1, srdSurfsProperty_north.GroundViewFactor, 1.0e-06); + // check surrounding surfaces view factors + EXPECT_EQ("SRDSURFS:SURFACE 1", srdSurfsProperty_north.SurroundingSurfs(1).Name); + EXPECT_DOUBLE_EQ(0.3, srdSurfsProperty_north.SurroundingSurfs(1).ViewFactor); + EXPECT_EQ("SRDSURFS:SURFACE 2", srdSurfsProperty_north.SurroundingSurfs(2).Name); + EXPECT_DOUBLE_EQ(0.2, srdSurfsProperty_north.SurroundingSurfs(2).ViewFactor); + // check surrounding surfaces view factors sum (viewed by an exterior surface) + Real64 srdSurfacesViewFactorSum_result1 = + srdSurfsProperty_north.SurroundingSurfs(1).ViewFactor + srdSurfsProperty_north.SurroundingSurfs(2).ViewFactor; + EXPECT_DOUBLE_EQ(0.5, srdSurfacesViewFactorSum_result1); + // calculate surrounding surface radiation coeffient + Real64 surf_tempExtK = state->dataHeatBalSurf->SurfOutsideTempHist(1)(surfNum) + Constant::KelvinConv; + auto &north_wall_const = state->dataConstruction->Construct(surface_north_wall.Construction); + auto *north_wall_mat = dynamic_cast(state->dataMaterial->Material(north_wall_const.LayerPoint(1))); + Real64 surf_absExt_north_wall = north_wall_mat->AbsorpThermal; // LW emitance of the exterior surface + // calculate surrounding surfaces radiation exchange coefficient + Real64 north_wall_srdSurfsTK = surface_north_wall.SrdSurfTemp + Constant::KelvinConv; + EXPECT_NEAR(10.80, surface_north_wall.SrdSurfTemp, 1.0e-02); + EXPECT_NEAR(0.9, surf_absExt_north_wall, 1.0e-06); + Real64 HRadSrdSurf_result1 = + Constant::StefanBoltzmann * 0.9 * 0.5 * (pow_4(surf_tempExtK) - pow_4(north_wall_srdSurfsTK)) / (surf_tempExtK - north_wall_srdSurfsTK); + // get rad exchange coefficient for exterior north wall from the function + Real64 HRadSrdSurf_func1 = Convect::SurroundingSurfacesRadCoeffAverage(*state, surfNum, surf_tempExtK, surf_absExt_north_wall); + // check the radiation exchange coefficient + EXPECT_DOUBLE_EQ(HRadSrdSurf_result1, 2.4525479915842845); + EXPECT_DOUBLE_EQ(HRadSrdSurf_result1, HRadSrdSurf_func1); + + surfNum = 0; + srdSurfsNum = 0; + srdSurfsPropNum = 0; + // test 2: exterior east wall radiation coefficient + srdSurfsPropNum = UtilityRoutines::FindItemInList("SRDSURFS:EAST-WALL", state->dataSurface->SurroundingSurfsProperty); + EXPECT_EQ(2, state->dataSurface->SurfLocalEnvironment(srdSurfsPropNum).SurroundingSurfsPtr); + surfNum = UtilityRoutines::FindItemInList("EAST-WALL", state->dataSurface->Surface); + auto &surface_east_wall = state->dataSurface->Surface(surfNum); + srdSurfsNum = state->dataSurface->Surface(surfNum).SurfSurroundingSurfacesNum; + auto &srdSurfsProperty_east = state->dataSurface->SurroundingSurfsProperty(srdSurfsNum); + // check sky view factors + EXPECT_DOUBLE_EQ(0.3, srdSurfsProperty_east.SkyViewFactor); + EXPECT_DOUBLE_EQ(0.4, srdSurfsProperty_east.GroundViewFactor); + // check surrounding surfaces view factors + EXPECT_EQ("SRDSURFS:SURFACE 3", srdSurfsProperty_east.SurroundingSurfs(1).Name); + EXPECT_DOUBLE_EQ(0.1, srdSurfsProperty_east.SurroundingSurfs(1).ViewFactor); + EXPECT_EQ("SRDSURFS:SURFACE 4", srdSurfsProperty_east.SurroundingSurfs(2).Name); + EXPECT_DOUBLE_EQ(0.2, srdSurfsProperty_east.SurroundingSurfs(2).ViewFactor); + // check surrounding surfaces view factors sum (viewed by an exterior surface) + Real64 srdSurfacesViewFactorSum_result2 = + srdSurfsProperty_east.SurroundingSurfs(1).ViewFactor + srdSurfsProperty_east.SurroundingSurfs(2).ViewFactor; + EXPECT_DOUBLE_EQ(0.3, srdSurfacesViewFactorSum_result2); + // calculate surrounding surface radiation coeffient + surf_tempExtK = state->dataHeatBalSurf->SurfOutsideTempHist(1)(surfNum) + Constant::KelvinConv; + auto &east_wall_const = state->dataConstruction->Construct(surface_east_wall.Construction); + auto *east_wall_mat = dynamic_cast(state->dataMaterial->Material(east_wall_const.LayerPoint(1))); + Real64 surf_absExt_east_wall = east_wall_mat->AbsorpThermal; // LW emitance of the exterior surface + // calculate surrounding surfaces radiation exchange coefficient + Real64 east_wall_srdSurfsTK = surface_east_wall.SrdSurfTemp + Constant::KelvinConv; + EXPECT_NEAR(15.34, surface_east_wall.SrdSurfTemp, 1.0e-02); + EXPECT_NEAR(0.7, surf_absExt_east_wall, 1.0e-06); + Real64 HRadSrdSurf_result2 = + Constant::StefanBoltzmann * 0.7 * 0.3 * (pow_4(surf_tempExtK) - pow_4(east_wall_srdSurfsTK)) / (surf_tempExtK - east_wall_srdSurfsTK); + // get rad exchange coefficient for exterior east wall from the function + Real64 HRadSrdSurf_func2 = Convect::SurroundingSurfacesRadCoeffAverage(*state, surfNum, surf_tempExtK, surf_absExt_east_wall); + // check the radiation exchange coefficient + EXPECT_DOUBLE_EQ(HRadSrdSurf_result2, 1.2336276277402503); + EXPECT_DOUBLE_EQ(HRadSrdSurf_result2, HRadSrdSurf_func2); +} diff --git a/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc b/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc index 3ef57f90401..19539c374a8 100644 --- a/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc +++ b/tst/EnergyPlus/unit/DOASEffectOnZoneSizing.unit.cc @@ -215,6 +215,7 @@ TEST_F(EnergyPlusFixture, DOASEffectOnZoneSizing_SizeZoneEquipment) state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).DOASHighSetpoint = 14.4; state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 2).DOASLowSetpoint = 12.2; state->dataEnvrn->StdBaroPress = 101325.; + state->dataEnvrn->StdRhoAir = 1.0; state->dataSize->CalcFinalZoneSizing(1).MinOA = 0.1; state->dataSize->CalcFinalZoneSizing(2).MinOA = 0.11; state->dataSize->CalcZoneSizing(state->dataSize->CurOverallSimDay, 1).DOASControlStrategy = DataSizing::DOASControl::CoolSup; diff --git a/tst/EnergyPlus/unit/DXCoils.unit.cc b/tst/EnergyPlus/unit/DXCoils.unit.cc index a861a5842da..f6e38739b85 100644 --- a/tst/EnergyPlus/unit/DXCoils.unit.cc +++ b/tst/EnergyPlus/unit/DXCoils.unit.cc @@ -4773,4 +4773,195 @@ TEST_F(EnergyPlusFixture, TwoSpeedDXCoilStandardRatings_Curve_Fix_Test) EXPECT_EQ(state->dataErrTracking->TotalSevereErrors, 0); } +TEST_F(EnergyPlusFixture, MSCoolingCoil_TestErrorMessageWithoutPLRobjects) +{ + // Test #10121 + + using Psychrometrics::PsyHFnTdbW; + using Psychrometrics::PsyTwbFnTdbWPb; + + std::string const idf_objects = delimited_string({ + " Schedule:Compact,", + " FanAndCoilAvailSched, !- Name", + " Fraction, !- Schedule Type Limits Name", + " Through: 12/31, !- Field 1", + " For: AllDays, !- Field 2", + " Until: 24:00, 1.0; !- Field 3", + " OutdoorAir:Node,", + " Outdoor Condenser Air Node, !- Name", + " 1.0; !- Height Above Ground{ m }", + " Coil:Cooling:DX:MultiSpeed,", + " Heat Pump ACDXCoil 1, !- Name", + " FanAndCoilAvailSched, !- Availability Schedule Name", + " DX Cooling Coil Air Inlet Node, !- Air Inlet Node Name", + " Heating Coil Air Inlet Node, !- Air Outlet Node Name", + " Outdoor Condenser Air Node, !- Condenser Air Inlet Node Name", + " AirCooled, !- Condenser Type", + " , !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}", + " , !- Supply Water Storage Tank Name", + " , !- Condensate Collection Water Storage Tank Name", + " No, !- Apply Part Load Fraction to Speeds Greater than 1", + " No, !- Apply Latent Degradation to Speeds Greater than 1", + " 200.0, !- Crankcase Heater Capacity{ W }", + " 10.0, !- Maximum Outdoor Dry - Bulb Temperature for Crankcase Heater Operation{ C }", + " , !- Basin Heater Capacity{ W / K }", + " , !- Basin Heater Setpoint Temperature{ C }", + " , !- Basin Heater Operating Schedule Name", + " Electricity, !- Fuel Type", + " 4, !- Number of Speeds", + " 7500, !- Speed 1 Gross Rated Total Cooling Capacity{ W }", + " 0.75, !- Speed 1 Gross Rated Sensible Heat Ratio", + " 3.0, !- Speed 1 Gross Rated Cooling COP{ W / W }", + " 0.40, !- Speed 1 Rated Air Flow Rate{ m3 / s }", + " 453.3, !- 2017 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", + " 453.3, !- 2023 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", //??TBD:BPS + " HPACCoolCapFT Speed, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name", + " HPACCoolCapFF Speed, !- Speed 1 Total Cooling Capacity Function of Flow Fraction Curve Name", + " HPACCOOLEIRFT Speed, !- Speed 1 Energy Input Ratio Function of Temperature Curve Name", + " HPACCOOLEIRFF Speed, !- Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name", + " HPACCOOLPLFFPLR Speed, !- Speed 1 Part Load Fraction Correlation Curve Name", + " 1000.0, !- Speed 1 Nominal Time for Condensate Removal to Begin{ s }", + " 1.5, !- Speed 1 Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity{ dimensionless }", + " 3.0, !- Speed 1 Maximum Cycling Rate{ cycles / hr }", + " 45.0, !- Speed 1 Latent Capacity Time Constant{ s }", + " 0.2, !- Speed 1 Rated Waste Heat Fraction of Power Input{ dimensionless }", + " , !- Speed 1 Waste Heat Function of Temperature Curve Name", + " 0.9, !- Speed 1 Evaporative Condenser Effectiveness{ dimensionless }", + " 0.05, !- Speed 1 Evaporative Condenser Air Flow Rate{ m3 / s }", + " 50, !- Speed 1 Rated Evaporative Condenser Pump Power Consumption{ W }", + " 17500, !- Speed 2 Gross Rated Total Cooling Capacity{ W }", + " 0.75, !- Speed 2 Gross Rated Sensible Heat Ratio", + " 3.0, !- Speed 2 Gross Rated Cooling COP{ W / W }", + " 0.85, !- Speed 2 Rated Air Flow Rate{ m3 / s }", + " 523.3, !- 2017 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", + " 523.3, !- 2023 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", //??TBD:BPS + " HPACCoolCapFT Speed, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name", + " HPACCoolCapFF Speed, !- Speed 2 Total Cooling Capacity Function of Flow Fraction Curve Name", + " HPACCOOLEIRFT Speed, !- Speed 2 Energy Input Ratio Function of Temperature Curve Name", + " HPACCOOLEIRFF Speed, !- Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name", + " HPACCOOLPLFFPLR Speed, !- Speed 2 Part Load Fraction Correlation Curve Name", + " 1000.0, !- Speed 2 Nominal Time for Condensate Removal to Begin{ s }", + " 1.5, !- Speed 2 Ratio of Initial Moisture Evaporation Rate and steady state Latent Capacity{ dimensionless }", + " 3.0, !- Speed 2 Maximum Cycling Rate{ cycles / hr }", + " 45.0, !- Speed 2 Latent Capacity Time Constant{ s }", + " 0.2, !- Speed 2 Rated Waste Heat Fraction of Power Input{ dimensionless }", + " , !- Speed 2 Waste Heat Function of Temperature Curve Name", + " 0.9, !- Speed 2 Evaporative Condenser Effectiveness{ dimensionless }", + " 0.1, !- Speed 2 Evaporative Condenser Air Flow Rate{ m3 / s }", + " 60, !- Speed 2 Rated Evaporative Condenser Pump Power Consumption{ W }", + " 25500, !- Speed 3 Gross Rated Total Cooling Capacity{ W }", + " 0.75, !- Speed 3 Gross Rated Sensible Heat Ratio", + " 3.0, !- Speed 3 Gross Rated Cooling COP{ W / W }", + " 1.25, !- Speed 3 Rated Air Flow Rate{ m3 / s }", + " 573.3, !- 2017 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", + " 573.3, !- 2023 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", //??TBD:BPS + " HPACCoolCapFT Speed, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name", + " HPACCoolCapFF Speed, !- Speed 3 Total Cooling Capacity Function of Flow Fraction Curve Name", + " HPACCOOLEIRFT Speed, !- Speed 3 Energy Input Ratio Function of Temperature Curve Name", + " HPACCOOLEIRFF Speed, !- Speed 3 Energy Input Ratio Function of Flow Fraction Curve Name", + " HPACCOOLPLFFPLR Speed, !- Speed 3 Part Load Fraction Correlation Curve Name", + " 1000.0, !- Speed 3 Nominal Time for Condensate Removal to Begin{ s }", + " 1.5, !- Speed 3 Ratio of Initial Moisture Evaporation Rate and steady state Latent Capacity{ dimensionless }", + " 3.0, !- Speed 3 Maximum Cycling Rate{ cycles / hr }", + " 45.0, !- Speed 3 Latent Capacity Time Constant{ s }", + " 0.2, !- Speed 3 Rated Waste Heat Fraction of Power Input{ dimensionless }", + " , !- Speed 3 Waste Heat Function of Temperature Curve Name", + " 0.9, !- Speed 3 Evaporative Condenser Effectiveness{ dimensionless }", + " 0.2, !- Speed 3 Evaporative Condenser Air Flow Rate{ m3 / s }", + " 80, !- Speed 3 Rated Evaporative Condenser Pump Power Consumption{ W }", + " 35500, !- Speed 4 Gross Rated Total Cooling Capacity{ W }", + " 0.75, !- Speed 4 Gross Rated Sensible Heat Ratio", + " 3.0, !- Speed 4 Gross Rated Cooling COP{ W / W }", + " 1.75, !- Speed 4 Rated Air Flow Rate{ m3 / s }", + " 673.3, !- 2017 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", + " 673.3, !- 2023 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}", //??TBD:BPS + " HPACCoolCapFT Speed, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name", + " HPACCoolCapFF Speed, !- Speed 4 Total Cooling Capacity Function of Flow Fraction Curve Name", + " HPACCOOLEIRFT Speed, !- Speed 4 Energy Input Ratio Function of Temperature Curve Name", + " HPACCOOLEIRFF Speed, !- Speed 4 Energy Input Ratio Function of Flow Fraction Curve Name", + " HPACCOOLPLFFPLR Speed, !- Speed 4 Part Load Fraction Correlation Curve Name", + " 1000.0, !- Speed 4 Nominal Time for Condensate Removal to Begin{ s }", + " 1.5, !- Speed 4 Ratio of Initial Moisture Evaporation Rate and steady state Latent Capacity{ dimensionless }", + " 3.0, !- Speed 4 Maximum Cycling Rate{ cycles / hr }", + " 45.0, !- Speed 4 Latent Capacity Time Constant{ s }", + " 0.2, !- Speed 4 Rated Waste Heat Fraction of Power Input{ dimensionless }", + " , !- Speed 4 Waste Heat Function of Temperature Curve Name", + " 0.9, !- Speed 4 Evaporative Condenser Effectiveness{ dimensionless }", + " 0.3, !- Speed 4 Evaporative Condenser Air Flow Rate{ m3 / s }", + " 100; !- Speed 4 Rated Evaporative Condenser Pump Power Consumption{ W }", + " Curve:Biquadratic,", + " HPACCoolCapFT Speed, !- Name", + " 1.0, !- Coefficient1 Constant", + " 0.0, !- Coefficient2 x", + " 0.0, !- Coefficient3 x**2", + " 0.0, !- Coefficient4 y", + " 0.0, !- Coefficient5 y**2", + " 0.0, !- Coefficient6 x*y", + " 12.77778, !- Minimum Value of x", + " 23.88889, !- Maximum Value of x", + " 23.88889, !- Minimum Value of y", + " 46.11111, !- 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:Cubic,", + " HPACCoolCapFF Speed, !- Name", + " .47278589, !- Coefficient1 Constant", + " 1.2433415, !- Coefficient2 x", + " -1.0387055, !- Coefficient3 x**2", + " .32257813, !- Coefficient4 x**3", + " 0.5, !- Minimum Value of x", + " 1.5; !- Maximum Value of x", + " Curve:Biquadratic,", + " HPACCOOLEIRFT Speed, !- Name", + " 0.632475E+00, !- Coefficient1 Constant", + " -0.121321E-01, !- Coefficient2 x", + " 0.507773E-03, !- Coefficient3 x**2", + " 0.155377E-01, !- Coefficient4 y", + " 0.272840E-03, !- Coefficient5 y**2", + " -0.679201E-03, !- Coefficient6 x*y", + " 12.77778, !- Minimum Value of x", + " 23.88889, !- Maximum Value of x", + " 23.88889, !- Minimum Value of y", + " 46.11111, !- 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:Cubic,", + " HPACCOOLEIRFF Speed, !- Name", + " .47278589, !- Coefficient1 Constant", + " 1.2433415, !- Coefficient2 x", + " -1.0387055, !- Coefficient3 x**2", + " .32257813, !- Coefficient4 x**3", + " 0.5, !- Minimum Value of x", + " 1.5; !- Maximum Value of x", + }); + + ASSERT_TRUE(process_idf(idf_objects)); + + ASSERT_THROW(GetDXCoils(*state), std::runtime_error); + std::string const error_string = delimited_string({ + " ** Warning ** ProcessScheduleInput: Schedule:Compact=\"FANANDCOILAVAILSCHED\", Schedule Type Limits Name=\"FRACTION\" not found -- will " + "not be validated", + " ** Severe ** GetDXCoils: Coil:Cooling:DX:MultiSpeed=\"HEAT PUMP ACDXCOIL 1\", invalid", + " ** ~~~ ** ...not found Speed 1 Part Load Fraction Correlation Curve Name=\"HPACCOOLPLFFPLR SPEED\".", + " ** Severe ** GetDXCoils: Coil:Cooling:DX:MultiSpeed=\"HEAT PUMP ACDXCOIL 1\", invalid", + " ** ~~~ ** ...not found Speed 2 Part Load Fraction Correlation Curve Name=\"HPACCOOLPLFFPLR SPEED\".", + " ** Severe ** GetDXCoils: Coil:Cooling:DX:MultiSpeed=\"HEAT PUMP ACDXCOIL 1\", invalid", + " ** ~~~ ** ...not found Speed 3 Part Load Fraction Correlation Curve Name=\"HPACCOOLPLFFPLR SPEED\".", + " ** Severe ** GetDXCoils: Coil:Cooling:DX:MultiSpeed=\"HEAT PUMP ACDXCOIL 1\", invalid", + " ** ~~~ ** ...not found Speed 4 Part Load Fraction Correlation Curve Name=\"HPACCOOLPLFFPLR SPEED\".", + " ** Fatal ** GetDXCoils: Errors found in getting Coil:Cooling:DX:MultiSpeed input. Preceding condition(s) causes termination.", + " ...Summary of Errors that led to program termination:", + " ..... Reference severe error count=4", + " ..... Last severe error=GetDXCoils: Coil:Cooling:DX:MultiSpeed=\"HEAT PUMP ACDXCOIL 1\", invalid", + }); + + EXPECT_TRUE(compare_err_stream(error_string, true)); +} + } // namespace EnergyPlus diff --git a/tst/EnergyPlus/unit/DaylightingManager.unit.cc b/tst/EnergyPlus/unit/DaylightingManager.unit.cc index 7f0722e639e..c8ee3076b3e 100644 --- a/tst/EnergyPlus/unit/DaylightingManager.unit.cc +++ b/tst/EnergyPlus/unit/DaylightingManager.unit.cc @@ -893,25 +893,25 @@ TEST_F(EnergyPlusFixture, DaylightingManager_GetDaylParamInGeoTrans_Test) compare_err_stream(""); EXPECT_EQ(3, (int)state->dataDaylightingData->DaylRefPt.size()); - EXPECT_NEAR(2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1), 0.001); - EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1), 0.001); - EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1), 0.001); + EXPECT_NEAR(2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).x, 0.001); + EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).y, 0.001); + EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).z, 0.001); state->dataHeatBal->Zone(1).RelNorth = 45.; GeometryTransformForDaylighting(*state); - EXPECT_NEAR(3.603, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1), 0.001); - EXPECT_NEAR(0.707, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1), 0.001); - EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1), 0.001); + EXPECT_NEAR(3.603, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).x, 0.001); + EXPECT_NEAR(0.707, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).y, 0.001); + EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).z, 0.001); state->dataHeatBal->Zone(1).RelNorth = 90.; GeometryTransformForDaylighting(*state); - EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1), 0.001); - EXPECT_NEAR(-2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1), 0.001); - EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1), 0.001); + EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).x, 0.001); + EXPECT_NEAR(-2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).y, 0.001); + EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).z, 0.001); state->dataGlobal->BeginSimFlag = true; state->dataGlobal->WeightNow = 1.0; @@ -2605,25 +2605,25 @@ TEST_F(EnergyPlusFixture, DaylightingManager_OutputFormats) EXPECT_TRUE(compare_eio_stream(eiooutput, true)); // reset eio stream after compare EXPECT_EQ(4, (int)state->dataDaylightingData->DaylRefPt.size()); - EXPECT_NEAR(2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1), 0.001); - EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1), 0.001); - EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1), 0.001); + EXPECT_NEAR(2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).x, 0.001); + EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).y, 0.001); + EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).z, 0.001); state->dataHeatBal->Zone(1).RelNorth = 45.; GeometryTransformForDaylighting(*state); - EXPECT_NEAR(3.603, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1), 0.001); - EXPECT_NEAR(0.707, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1), 0.001); - EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1), 0.001); + EXPECT_NEAR(3.603, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).x, 0.001); + EXPECT_NEAR(0.707, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).y, 0.001); + EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).z, 0.001); state->dataHeatBal->Zone(1).RelNorth = 90.; GeometryTransformForDaylighting(*state); - EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1), 0.001); - EXPECT_NEAR(-2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1), 0.001); - EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1), 0.001); + EXPECT_NEAR(3.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).x, 0.001); + EXPECT_NEAR(-2.048, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).y, 0.001); + EXPECT_NEAR(0.9, state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1).z, 0.001); EXPECT_FALSE(has_dfs_output(true)); @@ -3365,7 +3365,7 @@ TEST_F(EnergyPlusFixture, DaylightingManager_ReportIllumMap) state->dataGlobal->NumOfZones = 1; state->dataDaylightingData->daylightControl.allocate(1); state->dataDaylightingData->daylightControl(1).TotalDaylRefPoints = 3; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord.allocate(3, state->dataDaylightingData->daylightControl(1).TotalDaylRefPoints); + state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord.allocate(state->dataDaylightingData->daylightControl(1).TotalDaylRefPoints); state->dataDaylightingManager->SavedMnDy.allocate(1); state->dataDaylightingData->IllumMap.allocate(state->dataGlobal->NumOfZones); state->dataDaylightingData->IllumMap(MapNum).zoneIndex = 1; @@ -3374,15 +3374,9 @@ TEST_F(EnergyPlusFixture, DaylightingManager_ReportIllumMap) state->dataEnvrn->CurMnDyHr = "JAN012001"; state->dataDaylightingManager->SavedMnDy(1) = "JAN01"; state->dataGlobal->WarmupFlag = true; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 1) = 1.23; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 1) = 2.34; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 1) = 3.45; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 2) = 4.56; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 2) = 5.67; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 2) = 6.78; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1, 3) = 7.89; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2, 3) = 8.90; - state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3, 3) = 9.01; + state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(1) = {1.23, 2.34, 3.45}; + state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(2) = {4.56, 5.67, 6.78}; + state->dataDaylightingData->daylightControl(1).DaylRefPtAbsCoord(3) = {7.89, 8.90, 9.01}; state->dataDaylightingData->IllumMap(MapNum).Name = "ThisOne"; state->dataDaylightingData->IllumMap(MapNum).Z = 23.23; @@ -3699,7 +3693,7 @@ TEST_F(EnergyPlusFixture, DaylightingManager_SteppedControl_LowDaylightCondition auto &thisDaylightControl = state->dataDaylightingData->daylightControl(1); int nRefPts = 1; thisDaylightControl.TotalDaylRefPoints = nRefPts; - thisDaylightControl.DaylRefPtAbsCoord.allocate(3, nRefPts); + thisDaylightControl.DaylRefPtAbsCoord.allocate(nRefPts); state->dataGlobal->NumOfZones = 1; state->dataHeatBal->Zone.allocate(1); diff --git a/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc b/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc index ba051f4a434..cf611d452a8 100644 --- a/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc +++ b/tst/EnergyPlus/unit/DesiccantDehumidifiers.unit.cc @@ -6550,6 +6550,9 @@ TEST_F(EnergyPlusFixture, DesiccantDehum_VSCoolingCoilOnPrimaryAirSystemTest) " 1.05, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 1000, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.4, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " Condenser Inlet Node, !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/EarthTube.unit.cc b/tst/EnergyPlus/unit/EarthTube.unit.cc index 9f41f3bc8fa..830684766ba 100644 --- a/tst/EnergyPlus/unit/EarthTube.unit.cc +++ b/tst/EnergyPlus/unit/EarthTube.unit.cc @@ -129,4 +129,90 @@ TEST_F(EnergyPlusFixture, EarthTube_CheckEarthTubesInZonesTest) EXPECT_EQ(ErrorsFound, true); } +TEST_F(EnergyPlusFixture, EarthTube_initCPrime0Test) +{ + // Test of initCPrime0 subroutine used by the Earth Tube Vertical model + int TotEarthTube = 1; + state->dataEarthTube->EarthTubeSys.allocate(TotEarthTube); + auto &thisEarthTube = state->dataEarthTube->EarthTubeSys(1); + thisEarthTube.totNodes = 3; + thisEarthTube.aCoeff.resize(thisEarthTube.totNodes); + thisEarthTube.bCoeff.resize(thisEarthTube.totNodes); + thisEarthTube.cCoeff0.resize(thisEarthTube.totNodes); + thisEarthTube.cPrime0.resize(thisEarthTube.totNodes); + + // Test 1 + thisEarthTube.aCoeff[0] = 0.0; + thisEarthTube.bCoeff[0] = 2.0; + thisEarthTube.cCoeff0[0] = -1.0; + thisEarthTube.aCoeff[1] = -1.0; + thisEarthTube.bCoeff[1] = 2.0; + thisEarthTube.cCoeff0[1] = -1.0; + thisEarthTube.aCoeff[2] = -1.0; + thisEarthTube.bCoeff[2] = 2.0; + thisEarthTube.cCoeff0[2] = 0.0; + Real64 expectedResult0 = -0.5; + Real64 expectedResult1 = -0.6666667; + Real64 expectedResult2 = 0.0; + Real64 diffTol = 0.0001; + + // Run the test and check the results + thisEarthTube.initCPrime0(); + EXPECT_NEAR(expectedResult0, thisEarthTube.cPrime0[0], diffTol); + EXPECT_NEAR(expectedResult1, thisEarthTube.cPrime0[1], diffTol); + EXPECT_NEAR(expectedResult2, thisEarthTube.cPrime0[2], diffTol); + + // Test 2 + thisEarthTube.aCoeff[0] = 0.0; + thisEarthTube.bCoeff[0] = 1.0; + thisEarthTube.cCoeff0[0] = -2.0; + thisEarthTube.aCoeff[1] = -1.5; + thisEarthTube.bCoeff[1] = 4.0; + thisEarthTube.cCoeff0[1] = -1.5; + thisEarthTube.aCoeff[2] = -1.5; + thisEarthTube.bCoeff[2] = 3.0; + thisEarthTube.cCoeff0[2] = 0.0; + expectedResult0 = -2.0; + expectedResult1 = -1.5; + expectedResult2 = 0.0; + + // Run the test and check the results + thisEarthTube.initCPrime0(); + EXPECT_NEAR(expectedResult0, thisEarthTube.cPrime0[0], diffTol); + EXPECT_NEAR(expectedResult1, thisEarthTube.cPrime0[1], diffTol); + EXPECT_NEAR(expectedResult2, thisEarthTube.cPrime0[2], diffTol); +} + +TEST_F(EnergyPlusFixture, EarthTube_calcUndisturbedGroundTemperatureTest) +{ + int TotEarthTube = 1; + state->dataEarthTube->EarthTubeSys.allocate(TotEarthTube); + auto &thisEarthTube = state->dataEarthTube->EarthTubeSys(1); + + // Test 1 + thisEarthTube.AverSoilSurTemp = 12.0; + thisEarthTube.ApmlSoilSurTemp = 6.0; + thisEarthTube.SoilThermDiff = 0.05; + state->dataEnvrn->DayOfYear = 23; + thisEarthTube.SoilSurPhaseConst = 2.0; + Real64 depth = 3.0; + Real64 expectedResult = 10.9032; + Real64 diffTol = 0.0001; + + Real64 calculatedResult = thisEarthTube.calcUndisturbedGroundTemperature(*state, depth); + EXPECT_NEAR(calculatedResult, expectedResult, diffTol); + + // Test 2 + thisEarthTube.AverSoilSurTemp = 10.0; + thisEarthTube.ApmlSoilSurTemp = 5.0; + thisEarthTube.SoilThermDiff = 0.08; + state->dataEnvrn->DayOfYear = 234; + thisEarthTube.SoilSurPhaseConst = 3.0; + depth = 2.0; + expectedResult = 12.5532; + + calculatedResult = thisEarthTube.calcUndisturbedGroundTemperature(*state, depth); + EXPECT_NEAR(calculatedResult, expectedResult, diffTol); +} + } // namespace EnergyPlus diff --git a/tst/EnergyPlus/unit/HVACDXSystem.unit.cc b/tst/EnergyPlus/unit/HVACDXSystem.unit.cc index c87e63e08cc..6a60caf722c 100644 --- a/tst/EnergyPlus/unit/HVACDXSystem.unit.cc +++ b/tst/EnergyPlus/unit/HVACDXSystem.unit.cc @@ -105,6 +105,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_DOASDXCoilTest) " autosize, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLF Curve MultiComp 30% unloading, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -464,6 +467,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RHControl) " 5.66336932, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLFCurve, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -659,6 +665,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_LatentDegradation_Test) " 5.66336932, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLFCurve, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc b/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc index fa79210168f..1bd8e044ad3 100644 --- a/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc +++ b/tst/EnergyPlus/unit/HVACHXAssistedCoolingCoil.unit.cc @@ -192,6 +192,9 @@ TEST_F(EnergyPlusFixture, HXAssistCCUnitarySystem_VStest1) " 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc b/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc index 25827ffed71..94cef693b7c 100644 --- a/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc +++ b/tst/EnergyPlus/unit/HVACUnitaryBypassVAV.unit.cc @@ -1544,6 +1544,9 @@ TEST_F(EnergyPlusFixture, UnitaryBypassVAV_ParentElectricityRateTest) " 0.800, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc b/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc index 9927ca044c2..4185d2b2c5a 100644 --- a/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc +++ b/tst/EnergyPlus/unit/HeatBalanceSurfaceManager.unit.cc @@ -89,6 +89,7 @@ #include "Fixtures/EnergyPlusFixture.hh" using namespace EnergyPlus::HeatBalanceSurfaceManager; +using namespace EnergyPlus::ScheduleManager; namespace EnergyPlus { @@ -8552,4 +8553,217 @@ TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_TestUpdateVariableAbsorptanc EXPECT_NEAR(state->dataHeatBalSurf->SurfAbsSolarExt(2), 0.5, 1e-6); } +TEST_F(EnergyPlusFixture, HeatBalanceSurfaceManager_SurroundingSurfacesTempTest) +{ + std::string_view constexpr idf_objects = R"IDF( + Zone, + Zone, !- Name + 0, !- Direction of Relative North {deg} + 6.000000, !- X Origin {m} + 6.000000, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + Material, + Concrete Block, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 0.3805070, !- Conductivity {W/m-K} + 608.7016, !- Density {kg/m3} + 836.8000; !- Specific Heat {J/kg-K} + + Construction, + WallConstruction, !- Name + Concrete Block; !- Outside Layer + + WindowMaterial:SimpleGlazingSystem, + WindowMaterial, !- Name + 5.778, !- U-Factor {W/m2-K} + 0.819, !- Solar Heat Gain Coefficient + 0.881; !- Visible Transmittance + + Construction, + WindowConstruction, !- Name + WindowMaterial; !- Outside Layer + + WindowProperty:FrameAndDivider, + WindowFrame, !- Name + 0.05, !- Frame Width {m} + 0.00, !- Frame Outside Projection {m} + 0.00, !- Frame Inside Projection {m} + 5.0, !- Frame Conductance {W/m2-K} + 1.2, !- Ratio of Frame-Edge Glass Conductance to Center-Of-Glass Conductance + 0.8, !- Frame Solar Absorptance + 0.8, !- Frame Visible Absorptance + 0.9, !- Frame Thermal Hemispherical Emissivity + DividedLite, !- Divider Type + 0.02, !- Divider Width {m} + 2, !- Number of Horizontal Dividers + 2, !- Number of Vertical Dividers + 0.00, !- Divider Outside Projection {m} + 0.00, !- Divider Inside Projection {m} + 5.0, !- Divider Conductance {W/m2-K} + 1.2, !- Ratio of Divider-Edge Glass Conductance to Center-Of-Glass Conductance + 0.8, !- Divider Solar Absorptance + 0.8, !- Divider Visible Absorptance + 0.9; !- Divider Thermal Hemispherical Emissivity + + FenestrationSurface:Detailed, + FenestrationSurface, !- Name + Window, !- Surface Type + WindowConstruction, !- Construction Name + Wall, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.5000000, !- View Factor to Ground + WindowFrame, !- Frame and Divider Name + 1.0, !- Multiplier + 4, !- Number of Vertices + 0.200000,0.0,9.900000, !- X,Y,Z ==> Vertex 1 {m} + 0.200000,0.0,0.1000000, !- X,Y,Z ==> Vertex 2 {m} + 9.900000,0.0,0.1000000, !- X,Y,Z ==> Vertex 3 {m} + 9.900000,0.0,9.900000; !- X,Y,Z ==> Vertex 4 {m} + + SurfaceProperty:LocalEnvironment, + LocEnv:FenestrationSurface, !- Name + FenestrationSurface, !- Exterior Surface Name + , !- External Shading Fraction Schedule Name + SrdSurfs:FenesSurface; !- Surrounding Surfaces Object Name + + SurfaceProperty:SurroundingSurfaces, + SrdSurfs:FenesSurface, !- Name + 0.4, !- Sky View Factor + Sky Temp Sch, !- Sky Temperature Schedule Name + , !- Ground View Factor + , !- Ground Temperature Schedule Name + SrdSurfs:Surface 1, !- Surrounding Surface 1 Name + 0.2, !- Surrounding Surface 1 View Factor + Surrounding Temp Sch 1, !- Surrounding Surface 1 Temperature Schedule Name + SrdSurfs:Surface 2, !- Surrounding Surface 2 Name + 0.2, !- Surrounding Surface 2 View Factor + Surrounding Temp Sch 2, !- Surrounding Surface 2 Temperature Schedule Name + SrdSurfs:Surface 3, !- Surrounding Surface 3 Name + 0.1, !- Surrounding Surface 3 View Factor + Surrounding Temp Sch 3; !- Surrounding Surface 3 Temperature Schedule Name + + Schedule:Compact, + Surrounding Temp Sch 1, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 10.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 2, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 12.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 3, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 15.0; !- Field 3 + + ScheduleTypeLimits, + Any Number; !- Name + + BuildingSurface:Detailed, + Wall, !- Name + Wall, !- Surface Type + WallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.1000000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,0.000000,10.00000, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.000000,0.0, !- X,Y,Z ==> Vertex 2 {m} + 10.00000,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 10.00000,0.0,10.00000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Floor, !- Name + Floor, !- Surface Type + WallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.0, !- View Factor to Ground + 4, !- Number of Vertices + 0.000000,0.000000,0, !- X,Y,Z ==> Vertex 1 {m} + 0.000000,10.000000,0, !- X,Y,Z ==> Vertex 2 {m} + 10.00000,10.000000,0, !- X,Y,Z ==> Vertex 3 {m} + 10.00000,0.000000,0; !- X,Y,Z ==> Vertex 4 {m} + + )IDF"; + + bool ErrorsFound = false; + ASSERT_TRUE(process_idf(idf_objects)); + // set global and environmental variables + state->dataGlobal->BeginSimFlag = true; + state->dataGlobal->BeginEnvrnFlag = true; + state->dataGlobal->HourOfDay = 15; + state->dataGlobal->TimeStep = 1; + state->dataGlobal->TimeStepZone = 1; + state->dataGlobal->TimeStepZoneSec = 3600.0; + state->dataGlobal->NumOfTimeStepInHour = 1; + state->dataGlobal->MinutesPerTimeStep = 60; + state->dataEnvrn->Month = 7; + state->dataEnvrn->DayOfMonth = 21; + state->dataEnvrn->DSTIndicator = 0; + state->dataEnvrn->DayOfWeek = 2; + state->dataEnvrn->HolidayIndex = 0; + state->dataEnvrn->DayOfYear_Schedule = General::OrdinalDay(state->dataEnvrn->Month, state->dataEnvrn->DayOfMonth, 1); + state->dataEnvrn->OutBaroPress = 101325; + // process schedules + ScheduleManager::ProcessScheduleInput(*state); + state->dataScheduleMgr->ScheduleInputProcessed = true; + + state->dataHeatBal->ZoneIntGain.allocate(1); + createFacilityElectricPowerServiceObject(*state); + HeatBalanceManager::SetPreConstructionInputParameters(*state); + HeatBalanceManager::GetProjectControlData(*state, ErrorsFound); + HeatBalanceManager::GetFrameAndDividerData(*state); + Material::GetMaterialData(*state, ErrorsFound); + HeatBalanceManager::GetConstructData(*state, ErrorsFound); + HeatBalanceManager::GetBuildingData(*state, ErrorsFound); + HeatBalanceManager::AllocateHeatBalArrays(*state); + HeatBalanceSurfaceManager::AllocateSurfaceHeatBalArrays(*state); + + EXPECT_FALSE(ErrorsFound); + EXPECT_TRUE(state->dataGlobal->AnyLocalEnvironmentsInModel); + // test surface property object inputs + int srdSurfsPropNum = UtilityRoutines::FindItemInList("SRDSURFS:FENESSURFACE", state->dataSurface->SurroundingSurfsProperty); + EXPECT_EQ(1, state->dataSurface->SurfLocalEnvironment(srdSurfsPropNum).SurroundingSurfsPtr); + // set local derived data vars + int surfNum = UtilityRoutines::FindItemInList("FENESTRATIONSURFACE", state->dataSurface->Surface); + auto &surface = state->dataSurface->Surface(surfNum); + int srdSurfsNum = state->dataSurface->Surface(surfNum).SurfSurroundingSurfacesNum; + auto &srdSurfsProperty = state->dataSurface->SurroundingSurfsProperty(srdSurfsNum); + // update schedule values for surrounding surfaces temperature + ScheduleManager::UpdateScheduleValues(*state); + GetSurroundingSurfacesTemperatureAverage(*state); + // calculate surrounding surfaces average temperature + Real64 SrdSurfaceTemp = 0.0; + Real64 SrdSurfaceTempSum = 0.0; + for (auto &surdSurfs : srdSurfsProperty.SurroundingSurfs) { + SrdSurfaceTemp = ScheduleManager::GetCurrentScheduleValue(*state, surdSurfs.TempSchNum) + Constant::KelvinConv; + SrdSurfaceTempSum += surdSurfs.ViewFactor * pow_4(SrdSurfaceTemp); + } + Real64 srdSurfacesTemp_result = root_4(SrdSurfaceTempSum / surface.ViewFactorSrdSurfs) - Constant::KelvinConv; + // check average temperature of surrounding surfaces + EXPECT_DOUBLE_EQ(srdSurfacesTemp_result, surface.SrdSurfTemp); +} + } // namespace EnergyPlus diff --git a/tst/EnergyPlus/unit/HeatRecovery.unit.cc b/tst/EnergyPlus/unit/HeatRecovery.unit.cc index d2dfe1823db..d3991a1b362 100644 --- a/tst/EnergyPlus/unit/HeatRecovery.unit.cc +++ b/tst/EnergyPlus/unit/HeatRecovery.unit.cc @@ -3891,7 +3891,7 @@ TEST_F(EnergyPlusFixture, HeatRecoveryHXOnMainBranch_SimHeatRecoveryTest) ASSERT_NEAR(-17.300, state->dataHeatRecovery->ExchCond(1).SupInTemp, 0.001); // Heat Recovery Exchanger Primary Air Inlet Temp ASSERT_GT(state->dataHeatRecovery->ExchCond(1).SupOutTemp, state->dataHeatRecovery->ExchCond(1).SupInTemp); // Heat Recovery Exchanger is On in heating mode - ASSERT_NEAR(23.000, state->dataHeatRecovery->ExchCond(1).SecInTemp, 0.001); // Heat Recovery Exchanger Secondary Air Inlet Temp + ASSERT_NEAR(22.947, state->dataHeatRecovery->ExchCond(1).SecInTemp, 0.001); // Heat Recovery Exchanger Secondary Air Inlet Temp ASSERT_LT(state->dataHeatRecovery->ExchCond(1).SecOutTemp, state->dataHeatRecovery->ExchCond(1).SecInTemp); // Heat Recovery Exchanger is On in heating mode diff --git a/tst/EnergyPlus/unit/InputProcessor.unit.cc b/tst/EnergyPlus/unit/InputProcessor.unit.cc index 7be536fd8ec..65b3c600571 100644 --- a/tst/EnergyPlus/unit/InputProcessor.unit.cc +++ b/tst/EnergyPlus/unit/InputProcessor.unit.cc @@ -2919,11 +2919,10 @@ TEST_F(InputProcessorFixture, getObjectItem_unitary_system_input) lAlphaBlanks)); EXPECT_EQ(17, NumNumbers); - EXPECT_TRUE(compare_containers(std::vector({true, true, false, true, true, true, false, true, true, true, false, true, true, - true, true, true, false, true, true, true, true, true, true, true, true, true}), + EXPECT_TRUE(compare_containers(std::vector({true, true, false, true, true, true, false, true, true, true, false, + true, true, true, true, true, false, true, true, true, true, true}), lNumericBlanks)); - EXPECT_TRUE( - compare_containers(std::vector({1, 2, 1.6, 0, 0, 0, 1.6, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0}), Numbers)); + EXPECT_TRUE(compare_containers(std::vector({1, 2, 1.6, 0, 0, 0, 1.6, 0, 0, 0, 1.6, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0}), Numbers)); EXPECT_EQ(1, IOStatus); } @@ -3570,6 +3569,9 @@ TEST_F(InputProcessorFixture, getObjectItem_coil_cooling_dx_variable_speed) " 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level{ m3 / s }", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil{ s }", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady - State AC Latent Capacity{ dimensionless }", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -3795,22 +3797,22 @@ TEST_F(InputProcessorFixture, getObjectItem_coil_cooling_dx_variable_speed) false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}), lAlphaBlanks)); - EXPECT_EQ(92, NumNumbers); // Previously 72 Now 92 (2 more properties for 10 speeds) + EXPECT_EQ(95, NumNumbers); EXPECT_TRUE(compare_containers( - std::vector({10.0, 10.0, 32000, 1.6, 0, 0, 0, 200, 10.0, -25.0, 0, 2, 1524.1, .75, 4, 0.1359072, - 773.3, 934.4, 0.26, 0, 1877.9, 0.75, 4.0, 0.151008, 773.3, 934.4, 0.30, 0, 2226.6, .75, 4.0, 0.1661088, - 773.3, 934.4, 0.33, 0, 2911.3, 0.75, 4.0, 0.1963104, 773.3, 934.4, 0.38, 0, 3581.7, 0.75, 4.0, 0.226512, - 773.3, 934.4, 0.44, 0, 4239.5, 0.75, 4.0, 0.2567136, 773.3, 934.4, 0.5, 0, 4885.7, 0.75, 4.0, 0.2869152, - 773.3, 934.4, 0.57, 0, 5520.7, 0.75, 4.0, 0.31711680, 773.3, 934.4, 0.63, 0, 6144.8, .75, 4.0, 0.3473184, - 773.3, 934.4, 0.69, 0, 6758.0, 0.75, 4.0, 0.37752, 773.3, 934.4, 0.74, 0}), + std::vector({10.0, 10.0, 32000, 1.6, 0, 0, 2.5, 60, 60, 0, 200, 10.0, -25.0, 0, 2, 1524.1, + .75, 4, 0.1359072, 773.3, 934.4, 0.26, 0, 1877.9, 0.75, 4.0, 0.151008, 773.3, 934.4, 0.30, 0, 2226.6, + .75, 4.0, 0.1661088, 773.3, 934.4, 0.33, 0, 2911.3, 0.75, 4.0, 0.1963104, 773.3, 934.4, 0.38, 0, 3581.7, + 0.75, 4.0, 0.226512, 773.3, 934.4, 0.44, 0, 4239.5, 0.75, 4.0, 0.2567136, 773.3, 934.4, 0.5, 0, 4885.7, + 0.75, 4.0, 0.2869152, 773.3, 934.4, 0.57, 0, 5520.7, 0.75, 4.0, 0.31711680, 773.3, 934.4, 0.63, 0, 6144.8, + .75, 4.0, 0.3473184, 773.3, 934.4, 0.69, 0, 6758.0, 0.75, 4.0, 0.37752, 773.3, 934.4, 0.74, 0}), Numbers)); EXPECT_TRUE(compare_containers( - std::vector({false, false, false, false, false, false, true, false, false, true, true, true, false, false, false, false, - false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false, - false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false, - false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false, - false, false, false, true, false, false, false, false, false, false, false, true, false, false, false, false, - false, false, false, true, false, false, false, false, false, false, false, true}), + std::vector({false, false, false, false, false, false, true, true, true, true, false, false, true, true, true, false, + false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, + false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, + false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, + false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, false, + false, false, false, false, false, false, true, false, false, false, false, false, false, false, true}), lNumericBlanks)); EXPECT_EQ(1, IOStatus); // test logical return for ValidateComponent diff --git a/tst/EnergyPlus/unit/IntegratedHeatPump.unit.cc b/tst/EnergyPlus/unit/IntegratedHeatPump.unit.cc index 128ab65df20..244064a5cb3 100644 --- a/tst/EnergyPlus/unit/IntegratedHeatPump.unit.cc +++ b/tst/EnergyPlus/unit/IntegratedHeatPump.unit.cc @@ -1293,6 +1293,9 @@ TEST_F(EnergyPlusFixture, ASIHP_GetIHPInput) " 1.7, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -1436,6 +1439,9 @@ TEST_F(EnergyPlusFixture, ASIHP_GetIHPInput) " 1.7, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/OutputReportTabular.unit.cc b/tst/EnergyPlus/unit/OutputReportTabular.unit.cc index cd63f0c26cd..f6a448f83dc 100644 --- a/tst/EnergyPlus/unit/OutputReportTabular.unit.cc +++ b/tst/EnergyPlus/unit/OutputReportTabular.unit.cc @@ -8495,7 +8495,7 @@ TEST_F(EnergyPlusFixture, OutputReportTabularTest_ConfirmConversionFactors) bool fFScheduleUsed; int ffScheduleIndex; - PollutionModule::GetFuelFactorInfo(*state, "Steam", fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); + PollutionModule::GetFuelFactorInfo(*state, Constant::eFuel::Steam, fuelFactorUsed, curSourceFactor, fFScheduleUsed, ffScheduleIndex); EXPECT_EQ(curSourceFactor, 1.2); } @@ -11640,7 +11640,7 @@ TEST_F(SQLiteFixture, DOASDirectToZone_ZoneMultiplierRemoved) " AND RowName = 'DOAS Direct to Zone'"); // check the value from result records Real64 return_val_total = execAndReturnFirstDouble(query_total); - EXPECT_EQ(return_val_total, 515.19); + EXPECT_EQ(return_val_total, 598.2); // get the sensible instant 'DOAS Direct to Zone' cooling peak load component std::string query_sensible_instant("SELECT Value From TabularDataWithStrings" @@ -11650,7 +11650,7 @@ TEST_F(SQLiteFixture, DOASDirectToZone_ZoneMultiplierRemoved) " AND RowName = 'DOAS Direct to Zone'"); // check the value from result records Real64 return_val_sensible_instant = execAndReturnFirstDouble(query_sensible_instant); - EXPECT_EQ(return_val_sensible_instant, 517.05); + EXPECT_EQ(return_val_sensible_instant, 600.28); } TEST_F(SQLiteFixture, UpdateSizing_EndSysSizingCalc) diff --git a/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc b/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc index 0468a5b4132..d197605c2b5 100644 --- a/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc +++ b/tst/EnergyPlus/unit/PackagedTerminalHeatPump.unit.cc @@ -155,10 +155,6 @@ TEST_F(EnergyPlusFixture, DISABLED_PackagedTerminalHP_VSCoils_Sizing) " Lobby_ZN_1_FLR_2 WSHP Heating Mode, !- Heating Coil Name", " Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type", " Lobby_ZN_1_FLR_2 WSHP Cooling Mode, !- Cooling Coil Name", - " 2.5, !- Maximum Cycling Rate {cycles/hr}", - " 60.0, !- Heat Pump Time Constant {s}", - " 0.01, !- Fraction of On-Cycle Power Use", - " 60, !- Heat Pump Fan Delay Time {s}", " Coil:Heating:Electric, !- Supplemental Heating Coil Object Type", " Lobby_ZN_1_FLR_2 WSHP Supp Heating Coil, !- Supplemental Heating Coil Name", " 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C}", @@ -182,6 +178,9 @@ TEST_F(EnergyPlusFixture, DISABLED_PackagedTerminalHP_VSCoils_Sizing) " Autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " 2.5, !- Maximum Cycling Rate {cycles/hr}", + " 60.0, !- Latent Capacity Time Constant {s}", + " 60, !- Fan Delay Time {s}", " 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless}", " PLF Curve, !- Energy Part Load Fraction Curve Name", " 4682.3964854, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {w}", @@ -4756,7 +4755,7 @@ TEST_F(EnergyPlusFixture, PTAC_AvailabilityManagerTest) ThermostatWithMinimumRuntime, !- Cycling Run Time Control Type 300, !- Cycling Run Time SPACE1-1; !- Control Zone or Zone List Name - + OutdoorAir:Mixer, PTACOAMixer, !- Name PTACOAMixerOutletNode, !- Mixed Air Node Name diff --git a/tst/EnergyPlus/unit/PollutionModule.unit.cc b/tst/EnergyPlus/unit/PollutionModule.unit.cc index a3c23716cc7..52816b39140 100644 --- a/tst/EnergyPlus/unit/PollutionModule.unit.cc +++ b/tst/EnergyPlus/unit/PollutionModule.unit.cc @@ -469,6 +469,7 @@ TEST_F(EnergyPlusFixture, PollutionModule_TestOutputVariables) ASSERT_TRUE(process_idf(idf_objects)); state->dataPollutionModule->FuelType.FuelTypeNames.allocate(10); + state->dataPollutionModule->FuelType.FuelTypeNames = Constant::eFuel::Invalid; state->dataPollutionModule->GetInputFlagPollution = true; PollutionModule::SetupPollutionMeterReporting(*state); diff --git a/tst/EnergyPlus/unit/SolarShading.unit.cc b/tst/EnergyPlus/unit/SolarShading.unit.cc index 8c63b304c33..5899c7c057f 100644 --- a/tst/EnergyPlus/unit/SolarShading.unit.cc +++ b/tst/EnergyPlus/unit/SolarShading.unit.cc @@ -3169,6 +3169,7 @@ TEST_F(EnergyPlusFixture, SolarShading_TestSurfsPropertyViewFactor) SrdSurfsProperty.TotSurroundingSurface = 1; SrdSurfsProperty.SurroundingSurfs.allocate(1); SrdSurfsProperty.SurroundingSurfs(1).ViewFactor = 0.2; + SrdSurfsProperty.SurfsViewFactorSum = SrdSurfsProperty.SurroundingSurfs(1).ViewFactor; SrdSurfsProperty.SkyViewFactor = 0.0; SrdSurfsProperty.IsSkyViewFactorSet = false; SrdSurfsProperty.GroundViewFactor = 0.0; @@ -3180,6 +3181,7 @@ TEST_F(EnergyPlusFixture, SolarShading_TestSurfsPropertyViewFactor) win_Surface.UseSurfPropertyGndSurfRefl = true; win_Surface.SurfHasSurroundingSurfProperty = true; win_Surface.SurfSurroundingSurfacesNum = 1; + win_Surface.ViewFactorSrdSurfs = SrdSurfsProperty.SurfsViewFactorSum; state->dataSurface->GroundSurfsProperty.allocate(1); auto &GndSurfsProperty = state->dataSurface->GroundSurfsProperty(1); diff --git a/tst/EnergyPlus/unit/StandardRatings.unit.cc b/tst/EnergyPlus/unit/StandardRatings.unit.cc index 0b14e4bc538..7bbd02a2239 100644 --- a/tst/EnergyPlus/unit/StandardRatings.unit.cc +++ b/tst/EnergyPlus/unit/StandardRatings.unit.cc @@ -2809,10 +2809,6 @@ TEST_F(EnergyPlusFixture, MultiSpeedCoolingCoil_3Speeds_IEER2022ValueOrigTest) " Autosize, !- Maximum Supply Air Temperature {C}", " 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C}", " , !- Outdoor Dry-Bulb Temperature Sensor Node Name", - " , !- Maximum Cycling Rate", - " , !- Heat Pump Time Constant", - " , !- Fraction of On-Cycle Power Use", - " , !- Heat Pump Fan Delay Time", " , !- Ancilliary On-Cycle Electric Power", " , !- Ancilliary Off-Cycle Electric Power", " , !- Design Heat Recovery Water Flow Rate", @@ -3378,6 +3374,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_IEER2022ValueTest) " 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", // 0.4 | 3,400 scfm " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -3701,6 +3700,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_2_IEER2022ValueTest) " 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", // 0.4 | 3,400 scfm " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -4021,6 +4023,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_3_IEER2022ValueTest) " 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", // 0.4 | 3,400 scfm " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -4340,6 +4345,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_7Speed_IEER2022ValueTest) " 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", // 0.4 | 3,400 scfm " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -4620,6 +4628,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_1Speed_IEER2022ValueTest) " 1.05, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 1000, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.4, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " Condenser Inlet Node, !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -4808,6 +4819,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_2Speed_IEER2022ValueTest) " AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -5046,6 +5060,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_3Speed_IEER2022ValueTest) " AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -5332,6 +5349,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_4Speed_IEER2022ValueTest) " AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/SurfaceGeometry.unit.cc b/tst/EnergyPlus/unit/SurfaceGeometry.unit.cc index 3514025723b..b3936c4e790 100644 --- a/tst/EnergyPlus/unit/SurfaceGeometry.unit.cc +++ b/tst/EnergyPlus/unit/SurfaceGeometry.unit.cc @@ -3274,6 +3274,86 @@ TEST_F(EnergyPlusFixture, SurfaceGeometry_CheckConvexityTest_ASHRAE901_Hospital_ EXPECT_FALSE(surface.IsConvex); } +TEST_F(EnergyPlusFixture, SurfaceGeometry_CheckConvexity_ColinearStability) +{ + // Test for #10103 - Regardless of the order of the vertices, we should drop colinear vertices consistently to avoid a fatal error due to vertex + // side mismatch + // + // y + // ▲ 7 8 9 + // │ ┌─────x────┐ + // │ │ │ + // │ │ │ + // │ │ │ + // │5 │ │ + // ├──────────┘ │ + // │ 6 │ + // │ │ + // │ │ + // │ │10 + // └────x─────x─────x────┴─────► + // 4 3 2 1 x + + const std::vector floorVertices = { + {30.0, 0., 0.}, + {20.0, 0., 0.}, + {10.0, 0., 0.}, + {0.0, 0., 0.}, + {0.0, 20., 0.}, + {20.0, 20., 0.}, + {20.0, 40., 0.}, + {30.0, 40., 0.}, + {40.0, 40., 0.}, + {40.0, 0., 0.}, + }; + const int nVertices = static_cast(floorVertices.size()); + + state->dataSurface->TotSurfaces = 2; + constexpr int floorSurfNum = 1; + constexpr int ceilingSurfNum = 2; + state->dataSurface->MaxVerticesPerSurface = nVertices; + state->dataSurfaceGeometry->SurfaceTmp.allocate(state->dataSurface->TotSurfaces); + + auto &floorSurface = state->dataSurfaceGeometry->SurfaceTmp(floorSurfNum); + auto &ceilingSurface = state->dataSurfaceGeometry->SurfaceTmp(ceilingSurfNum); + { + floorSurface.Azimuth = 0.0; + floorSurface.Tilt = 0.0; + floorSurface.Sides = nVertices; + floorSurface.GrossArea = 100.0; + floorSurface.Name = "Floor"; + floorSurface.Vertex.allocate(nVertices); + + floorSurface.Vertex = floorVertices; + + CheckConvexity(*state, floorSurfNum, floorSurface.Sides); + + EXPECT_EQ(6, floorSurface.Sides); + EXPECT_FALSE(floorSurface.IsConvex); + } + + { + auto ceilingVertices = floorVertices; + std::reverse(ceilingVertices.begin(), ceilingVertices.end()); + + ceilingSurface.Azimuth = 0.0; + ceilingSurface.Tilt = 0.0; + ceilingSurface.Sides = nVertices; + ceilingSurface.GrossArea = 100.0; + ceilingSurface.Name = "Ceiling"; + ceilingSurface.Vertex.allocate(nVertices); + + ceilingSurface.Vertex = ceilingVertices; + + CheckConvexity(*state, ceilingSurfNum, ceilingSurface.Sides); + + EXPECT_EQ(6, ceilingSurface.Sides); + EXPECT_FALSE(ceilingSurface.IsConvex); + } + + EXPECT_EQ(floorSurface.Sides, ceilingSurface.Sides); +} + TEST_F(EnergyPlusFixture, InitialAssociateWindowShadingControlFenestration_test) { state->dataSurface->TotWinShadingControl = 3; @@ -11395,3 +11475,229 @@ TEST_F(EnergyPlusFixture, Fix_checkSubSurfAzTiltNorm_Test) EXPECT_DOUBLE_EQ(BaseSurface.lcsz.y, SubSurface.lcsz.y); EXPECT_DOUBLE_EQ(BaseSurface.lcsz.x, SubSurface.lcsz.x); } + +TEST_F(EnergyPlusFixture, SurfaceGeometry_SurroundingSurfacesViewFactorTest) +{ + std::string_view constexpr idf_objects = R"IDF( + Zone, + Zone, !- Name + 0, !- Direction of Relative North {deg} + 6.000000, !- X Origin {m} + 6.000000, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + Material, + Concrete Block, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 0.3805070, !- Conductivity {W/m-K} + 608.7016, !- Density {kg/m3} + 836.8000; !- Specific Heat {J/kg-K} + + Construction, + WallConstruction, !- Name + Concrete Block; !- Outside Layer + + BuildingSurface:Detailed, + Floor, !- Name + Floor, !- Surface Type + WallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.0, !- View Factor to Ground + 4, !- Number of Vertices + 0.000000,0.000000,0, !- X,Y,Z ==> Vertex 1 {m} + 0.000000,10.000000,0, !- X,Y,Z ==> Vertex 2 {m} + 10.00000,10.000000,0, !- X,Y,Z ==> Vertex 3 {m} + 10.00000,0.000000,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + North-Wall, !- Name + Wall, !- Surface Type + WallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.1000000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0, 0.0, 10.0, !- X,Y,Z ==> Vertex 1 {m} + 0.0, 0.0, 0.0, !- X,Y,Z ==> Vertex 2 {m} + 10.0, 0.0, 0.0, !- X,Y,Z ==> Vertex 3 {m} + 10.0, 0.0, 10.0; !- X,Y,Z ==> Vertex 4 {m} + + SurfaceProperty:LocalEnvironment, + LocEnv:North-Wall, !- Name + North-Wall, !- Exterior Surface Name + , !- External Shading Fraction Schedule Name + SrdSurfs:North-Wall; !- Surrounding Surfaces Object Name + + SurfaceProperty:SurroundingSurfaces, + SrdSurfs:North-Wall, !- Name + 0.4, !- Sky View Factor + Sky Temp Sch, !- Sky Temperature Schedule Name + , !- Ground View Factor + , !- Ground Temperature Schedule Name + SrdSurfs:Surface 1, !- Surrounding Surface 1 Name + 0.2, !- Surrounding Surface 1 View Factor + Surrounding Temp Sch 1, !- Surrounding Surface 1 Temperature Schedule Name + SrdSurfs:Surface 2, !- Surrounding Surface 2 Name + 0.2, !- Surrounding Surface 2 View Factor + Surrounding Temp Sch 2, !- Surrounding Surface 2 Temperature Schedule Name + SrdSurfs:Surface 3, !- Surrounding Surface 3 Name + 0.1, !- Surrounding Surface 3 View Factor + Surrounding Temp Sch 3; !- Surrounding Surface 3 Temperature Schedule Name + + BuildingSurface:Detailed, + East-Wall, !- Name + Wall, !- Surface Type + WallConstruction, !- Construction Name + Zone, !- Zone Name + , !- Space Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.2000000, !- View Factor to Ground + 4, !- Number of Vertices + 10.0, 10.0, 0.0, !- X,Y,Z ==> Vertex 1 {m} + 10.0, 10.0, 10.0, !- X,Y,Z ==> Vertex 2 {m} + 10.0, 0.0, 10.0, !- X,Y,Z ==> Vertex 3 {m} + 10.0, 0.0, 0.0; !- X,Y,Z ==> Vertex 4 {m} + + SurfaceProperty:LocalEnvironment, + LocEnv:East-Wall, !- Name + East-Wall, !- Exterior Surface Name + , !- External Shading Fraction Schedule Name + SrdSurfs:East-Wall; !- Surrounding Surfaces Object Name + + SurfaceProperty:SurroundingSurfaces, + SrdSurfs:East-Wall, !- Name + 0.5, !- Sky View Factor + Sky Temp Sch, !- Sky Temperature Schedule Name + , !- Ground View Factor + , !- Ground Temperature Schedule Name + SrdSurfs:Surface 1, !- Surrounding Surface 1 Name + 0.1, !- Surrounding Surface 1 View Factor + Surrounding Temp Sch 1, !- Surrounding Surface 1 Temperature Schedule Name + SrdSurfs:Surface 2, !- Surrounding Surface 2 Name + 0.1, !- Surrounding Surface 2 View Factor + Surrounding Temp Sch 2, !- Surrounding Surface 2 Temperature Schedule Name + SrdSurfs:Surface 3, !- Surrounding Surface 3 Name + 0.1, !- Surrounding Surface 3 View Factor + Surrounding Temp Sch 3; !- Surrounding Surface 3 Temperature Schedule Name + + Schedule:Compact, + Surrounding Temp Sch 1, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 10.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 2, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 12.0; !- Field 3 + + Schedule:Compact, + Surrounding Temp Sch 3, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, 15.0; !- Field 3 + + )IDF"; + + bool ErrorsFound = false; + ASSERT_TRUE(process_idf(idf_objects)); + // process schedules + ScheduleManager::ProcessScheduleInput(*state); + state->dataScheduleMgr->ScheduleInputProcessed = true; + state->dataHeatBal->ZoneIntGain.allocate(1); + createFacilityElectricPowerServiceObject(*state); + HeatBalanceManager::SetPreConstructionInputParameters(*state); + HeatBalanceManager::GetProjectControlData(*state, ErrorsFound); + HeatBalanceManager::GetFrameAndDividerData(*state); + Material::GetMaterialData(*state, ErrorsFound); + HeatBalanceManager::GetConstructData(*state, ErrorsFound); + HeatBalanceManager::GetBuildingData(*state, ErrorsFound); + HeatBalanceManager::AllocateHeatBalArrays(*state); + HeatBalanceSurfaceManager::AllocateSurfaceHeatBalArrays(*state); + + EXPECT_FALSE(ErrorsFound); + EXPECT_TRUE(state->dataGlobal->AnyLocalEnvironmentsInModel); + + // reset sky and ground view factors + HeatBalanceSurfaceManager::InitSurfacePropertyViewFactors(*state); + + int surfNum = 0; + int srdSurfsNum = 0; + int srdSurfsPropNum = 0; + // test 1: exterior north wall + srdSurfsPropNum = UtilityRoutines::FindItemInList("SRDSURFS:NORTH-WALL", state->dataSurface->SurroundingSurfsProperty); + EXPECT_EQ(1, state->dataSurface->SurfLocalEnvironment(srdSurfsPropNum).SurroundingSurfsPtr); + surfNum = UtilityRoutines::FindItemInList("NORTH-WALL", state->dataSurface->Surface); + auto &surface_north_wall = state->dataSurface->Surface(surfNum); + srdSurfsNum = state->dataSurface->Surface(surfNum).SurfSurroundingSurfacesNum; + auto &srdSurfsProperty_north = state->dataSurface->SurroundingSurfsProperty(srdSurfsNum); + // check sky view factors + EXPECT_DOUBLE_EQ(0.4, srdSurfsProperty_north.SkyViewFactor); + EXPECT_DOUBLE_EQ(0.1, srdSurfsProperty_north.GroundViewFactor); + // check surrounding surfaces view factors + EXPECT_EQ("SRDSURFS:SURFACE 1", srdSurfsProperty_north.SurroundingSurfs(1).Name); + EXPECT_DOUBLE_EQ(0.2, srdSurfsProperty_north.SurroundingSurfs(1).ViewFactor); + EXPECT_EQ("SRDSURFS:SURFACE 2", srdSurfsProperty_north.SurroundingSurfs(2).Name); + EXPECT_DOUBLE_EQ(0.2, srdSurfsProperty_north.SurroundingSurfs(2).ViewFactor); + EXPECT_EQ("SRDSURFS:SURFACE 3", srdSurfsProperty_north.SurroundingSurfs(3).Name); + EXPECT_DOUBLE_EQ(0.1, srdSurfsProperty_north.SurroundingSurfs(3).ViewFactor); + // check surrounding surfaces view factors sum (viewed by an exterior surface) + Real64 srdSurfacesViewFactorSum_result1 = srdSurfsProperty_north.SurroundingSurfs(1).ViewFactor + + srdSurfsProperty_north.SurroundingSurfs(2).ViewFactor + + srdSurfsProperty_north.SurroundingSurfs(3).ViewFactor; + EXPECT_DOUBLE_EQ(0.5, srdSurfacesViewFactorSum_result1); + // check the view factors at the exterior north wall + EXPECT_DOUBLE_EQ(0.5, surface_north_wall.ViewFactorSrdSurfs); + EXPECT_DOUBLE_EQ(0.4, surface_north_wall.ViewFactorSkyIR); + EXPECT_DOUBLE_EQ(0.1, surface_north_wall.ViewFactorGroundIR); + EXPECT_DOUBLE_EQ(1.0, surface_north_wall.ViewFactorSrdSurfs + surface_north_wall.ViewFactorSkyIR + surface_north_wall.ViewFactorGroundIR); + + // test 2: exterior east wall + srdSurfsPropNum = UtilityRoutines::FindItemInList("SRDSURFS:EAST-WALL", state->dataSurface->SurroundingSurfsProperty); + EXPECT_EQ(2, state->dataSurface->SurfLocalEnvironment(srdSurfsPropNum).SurroundingSurfsPtr); + surfNum = UtilityRoutines::FindItemInList("EAST-WALL", state->dataSurface->Surface); + auto &surface_east_wall = state->dataSurface->Surface(surfNum); + srdSurfsNum = state->dataSurface->Surface(surfNum).SurfSurroundingSurfacesNum; + auto &srdSurfsProperty_east = state->dataSurface->SurroundingSurfsProperty(srdSurfsNum); + // check sky view factors + EXPECT_DOUBLE_EQ(0.5, srdSurfsProperty_east.SkyViewFactor); + EXPECT_DOUBLE_EQ(0.2, srdSurfsProperty_east.GroundViewFactor); + // check surrounding surfaces view factors + EXPECT_EQ("SRDSURFS:SURFACE 1", srdSurfsProperty_east.SurroundingSurfs(1).Name); + EXPECT_DOUBLE_EQ(0.1, srdSurfsProperty_east.SurroundingSurfs(1).ViewFactor); + EXPECT_EQ("SRDSURFS:SURFACE 2", srdSurfsProperty_east.SurroundingSurfs(2).Name); + EXPECT_DOUBLE_EQ(0.1, srdSurfsProperty_east.SurroundingSurfs(2).ViewFactor); + EXPECT_EQ("SRDSURFS:SURFACE 3", srdSurfsProperty_east.SurroundingSurfs(3).Name); + EXPECT_DOUBLE_EQ(0.1, srdSurfsProperty_east.SurroundingSurfs(3).ViewFactor); + // check surrounding surfaces view factors sum (viewed by an exterior surface) + Real64 srdSurfacesViewFactorSum_result2 = srdSurfsProperty_east.SurroundingSurfs(1).ViewFactor + + srdSurfsProperty_east.SurroundingSurfs(2).ViewFactor + + srdSurfsProperty_east.SurroundingSurfs(3).ViewFactor; + EXPECT_DOUBLE_EQ(0.3, srdSurfacesViewFactorSum_result2); + // check the view factors at the exterior east wall + EXPECT_DOUBLE_EQ(0.3, surface_east_wall.ViewFactorSrdSurfs); + EXPECT_DOUBLE_EQ(0.5, surface_east_wall.ViewFactorSkyIR); + EXPECT_DOUBLE_EQ(0.2, surface_east_wall.ViewFactorGroundIR); + EXPECT_DOUBLE_EQ(1.0, surface_east_wall.ViewFactorSrdSurfs + surface_east_wall.ViewFactorSkyIR + surface_east_wall.ViewFactorGroundIR); +} diff --git a/tst/EnergyPlus/unit/UnitarySystem.unit.cc b/tst/EnergyPlus/unit/UnitarySystem.unit.cc index f6ac876a73d..cc616f75f2b 100644 --- a/tst/EnergyPlus/unit/UnitarySystem.unit.cc +++ b/tst/EnergyPlus/unit/UnitarySystem.unit.cc @@ -619,10 +619,7 @@ TEST_F(ZoneUnitarySysTest, Test_UnitarySystemModel_factory) 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time + 100, !- Ancilliary On-Cycle Electric Power 50, !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -1111,10 +1108,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoolCoil_Only) 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -1472,10 +1465,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiStageGasHeatCoil_Only) 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -1708,10 +1697,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiStageElecHeatCoil_Only) 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -1958,10 +1943,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiStageElecHeatCoil_Backup_Load 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -2293,10 +2274,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -2584,10 +2561,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -2833,10 +2806,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -3108,10 +3077,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -3308,10 +3273,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -3553,10 +3514,6 @@ AirLoopHVAC:UnitarySystem, 35.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -3614,6 +3571,9 @@ Coil:Cooling:DX:VariableSpeed, autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level{ m3 / s } 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil{ s } 0.0, !- Initial Moisture Evaporation Rate Divided by Steady - State AC Latent Capacity{ dimensionless } + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time Quadratic, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -6700,6 +6660,9 @@ Coil:Cooling:DX:VariableSpeed, 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level{ m3 / s } 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil{ s } 0.0, !- Initial Moisture Evaporation Rate Divided by Steady - State AC Latent Capacity{ dimensionless } + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time PLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -7191,6 +7154,9 @@ Coil:Cooling:DX:VariableSpeed, 1.6, !- Rated Air Flow Rate At Selected Nominal Speed Level{ m3 / s } 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil{ s } 0.0, !- Initial Moisture Evaporation Rate Divided by Steady - State AC Latent Capacity{ dimensionless } + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time PLFFPLR, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -7666,10 +7632,6 @@ AirLoopHVAC:UnitarySystem, 80, !- Maximum Supply Air Temperature{ C } 21, !- Maximum Outdoor Dry - Bulb Temperature for Supplemental Heater Operation{ C } , !- Outdoor Dry - Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate{ cycles / hr } - 60, !- Heat Pump Time Constant{ s } - 0.01, !- Fraction of On - Cycle Power Use - 60, !- Heat Pump Fan Delay Time{ s } , !- Ancillary On - Cycle Electric Power{ W } , !- Ancillary Off - Cycle Electric Power{ W } , !- Design Heat Recovery Water Flow Rate{ m3 / s } @@ -7852,10 +7814,6 @@ AirLoopHVAC:UnitarySystem, 80, !- Maximum Supply Air Temperature{ C } 21, !- Maximum Outdoor Dry - Bulb Temperature for Supplemental Heater Operation{ C } , !- Outdoor Dry - Bulb Temperature Sensor Node Name - 2.5, !- Maximum Cycling Rate{ cycles / hr } - 60, !- Heat Pump Time Constant{ s } - 0.01, !- Fraction of On - Cycle Power Use - 60, !- Heat Pump Fan Delay Time{ s } , !- Ancillary On - Cycle Electric Power{ W } , !- Ancillary Off - Cycle Electric Power{ W } , !- Design Heat Recovery Water Flow Rate{ m3 / s } @@ -8159,10 +8117,6 @@ AirLoopHVAC:UnitarySystem, Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -8558,10 +8512,6 @@ AirLoopHVAC:UnitarySystem, 80, !- Maximum Supply Air Temperature{ C } 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -9403,8 +9353,6 @@ Fan:OnOff, DX Cooling Coil Air Inlet Node, !- Air Inlet Node Name Heating Coil Air Inlet Node, !- Air Outlet Node Name 1.4, !- Rated Air Flow Rate {m3/s} - , - , 0.00165, !- Rated Water Flow Rate {m3/s} 40125.6, !- Gross Rated Total Cooling Capacity {W} 28267.06, !- Gross Rated Sensible Cooling Capacity {W} @@ -9415,6 +9363,7 @@ Fan:OnOff, TotCoolCapCurve, !- Total Cooling Capacity Curve Name SensCoolCapCurve, !- Sensible Cooling Capacity Curve Name CoolPowCurve, !- Cooling Power Consumption Curve Name + PLFFPLR, !- Part Load Fraction Correlation Curve Name 0, !- Nominal Time for Condensate Removal to Begin {s} 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} @@ -9432,7 +9381,8 @@ Coil:Heating:WaterToAirHeatPump:EquationFit, , !- Rated Entering Air Dry-Bulb Temperature , !- Ratio of Rated Heating Capacity to Rated Cooling Capacity HeatCapCurve, !- Heating Capacity Curve Name - HeatPowCurve; !- Heating Power Consumption Curve Name + HeatPowCurve, !- Heating Power Consumption Curve Name + PLFFPLR; !- Part Load Fraction Correlation Curve Name Coil:Heating:Fuel, Humidistat Reheat Coil 1, !- Name @@ -10624,10 +10574,6 @@ AirLoopHVAC:UnitarySystem, 80, !- Maximum Supply Air Temperature{ C } 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -11187,10 +11133,6 @@ TEST_F(EnergyPlusFixture, UnitarySystemModel_MultiSpeedCoils_SingleMode) " 50, !- Maximum Supply Air Temperature{ C }", " 21, !- Maximum Outdoor Dry - Bulb Temperature for Supplemental Heater Operation{ C }", " , !- Outdoor Dry - Bulb Temperature Sensor Node Name", - " , !- Maximum Cycling Rate", - " , !- Heat Pump Time Constant", - " , !- Fraction of On - Cycle Power Use", - " , !- Heat Pump Fan Delay Time", " , !- Ancillary On - Cycle Electric Power", " , !- Ancillary Off - Cycle Electric Power", " , !- Design Heat Recovery Water Flow Rate", @@ -12253,10 +12195,6 @@ AirLoopHVAC:UnitarySystem, 80, !- Maximum Supply Air Temperature{ C } 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} 0.002, !- Design Heat Recovery Water Flow Rate {m3/s} @@ -13338,10 +13276,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -13487,10 +13421,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -13613,10 +13543,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -13741,10 +13667,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -13840,7 +13762,7 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_FractionOfAutoSizedCoolingValueTes 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} + 60, !- Latent Capacity Time Constant {s} 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} @@ -13988,7 +13910,7 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_FlowPerCoolingCapacityTest) 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name 2.5, !- Maximum Cycling Rate {cycles/hr} - 60, !- Heat Pump Time Constant {s} + 60, !- Latent Capacity Time Constant {s} 0.01, !- Fraction of On-Cycle Power Use 60, !- Heat Pump Fan Delay Time {s} 0, !- Ancillary On-Cycle Electric Power {W} @@ -14134,10 +14056,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_getUnitarySystemInputDataTest) 30.0, !- Maximum Supply Air Temperature {C} 20.0, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} System Outdoor Air Node, !- Outdoor Dry-Bulb Temperature Sensor Node Name - 3.0, !- Maximum Cycling Rate {cycles/hr} - 120.0, !- Heat Pump Time Constant {s} - 0.02, !- Fraction of On-Cycle Power Use - 90, !- Heat Pump Fan Delay Time {s} 40, !- Ancillary On-Cycle Electric Power {W} 10, !- Ancillary Off-Cycle Electric Power {W} 0.005, !- Design Heat Recovery Water Flow Rate {m3/s} @@ -14260,10 +14178,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_getUnitarySystemInputDataTest) EXPECT_EQ(30.0, thisSys->DesignMaxOutletTemp); // checks Maximum Supply Air Temperature value EXPECT_EQ(20.0, thisSys->m_MaxOATSuppHeat); // checks Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation value EXPECT_EQ("SYSTEM OUTDOOR AIR NODE", state->dataLoopNodes->NodeID(thisSys->m_CondenserNodeNum)); // checks condenser air inlet node name - EXPECT_EQ(3.0, thisSys->m_MaxONOFFCyclesperHour); // checks Maximum Cycling Rate value - EXPECT_EQ(120.0, thisSys->m_HPTimeConstant); // checks Heat Pump Time Constant value - EXPECT_EQ(0.02, thisSys->m_OnCyclePowerFraction); // checks Fraction of On-Cycle Power Use value - EXPECT_EQ(90.0, thisSys->m_FanDelayTime); // checks Heat Pump Fan Delay Time value EXPECT_EQ(40.0, thisSys->m_AncillaryOnPower); // checks Ancillary On-Cycle Electric Power value EXPECT_EQ(10.0, thisSys->m_AncillaryOffPower); // checks Ancillary Off-Cycle Electric Power value EXPECT_EQ(0.005, thisSys->m_DesignHRWaterVolumeFlow); // checks Design Heat Recovery Water Flow Rate value @@ -15387,10 +15301,6 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) 50.00000, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -15465,7 +15375,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) NormalSHRTempCoolingFFF, !- Sensible Heat Ratio Modifier Function of Temperature Curve Name NormalSHRFlowCoolingFFF; !- Sensible Heat Ratio Modifier Function of Flow Fraction Curve Name - Curve:Biquadratic, + Curve:Biquadratic, NormalTempCoolingCAPFTemp, !- Name 1.2047763641, !- Coefficient1 Constant -0.0319503564, !- Coefficient2 x @@ -15483,7 +15393,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Biquadratic, + Curve:Biquadratic, NormalTempCoolingEIRFTemp, !- Name -0.0439174307, !- Coefficient1 Constant 0.0620812106, !- Coefficient2 x @@ -15501,7 +15411,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, NormalFlowCoolingCAPFFF, !- Name 0.7333333334, !- Coefficient1 Constant 0.3733333333, !- Coefficient2 x @@ -15513,7 +15423,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) Dimensionless, !- Input Unit Type for X Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, NormalFlowCoolingEIRFFF, !- Name 1.1970044563, !- Coefficient1 Constant -0.2513822149, !- Coefficient2 x @@ -15525,7 +15435,7 @@ TEST_F(EnergyPlusFixture, Test_UnitarySystemModel_SubcoolReheatCoil) Dimensionless, !- Input Unit Type for X Dimensionless; !- Output Unit Type -Curve:Biquadratic, +Curve:Biquadratic, NormalSHRTempCoolingFFF, !- Name 1.0, !- Coefficient1 Constant 0.0, !- Coefficient2 x @@ -15543,7 +15453,7 @@ Temperature, !- Input Unit Type for X Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type -Curve:Quadratic, +Curve:Quadratic, NormalSHRFlowCoolingFFF, !- Name 0.5620186265, !- Coefficient1 Constant 0.4708409870, !- Coefficient2 x @@ -15592,7 +15502,7 @@ Dimensionless; !- Output Unit Type SubcoolSHRTempCoolingCAPFTemp, !- Sensible Heat Ratio Modifier Function of Temperature Curve Name SubcoolSHRFlowCoolingCAPFFF; !- Sensible Heat Ratio Modifier Function of Flow Fraction Curve Name - Curve:Biquadratic, + Curve:Biquadratic, SubcoolTempCoolingCAPFTemp, !- Name 1.0162460317, !- Coefficient1 Constant -0.0108091429, !- Coefficient2 x @@ -15610,7 +15520,7 @@ Dimensionless; !- Output Unit Type Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Biquadratic, + Curve:Biquadratic, SubcoolTempCoolingEIRFTemp, !- Name 0.2634289781, !- Coefficient1 Constant 0.0311157806, !- Coefficient2 x @@ -15628,7 +15538,7 @@ Dimensionless; !- Output Unit Type Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, SubcoolFlowCoolingCAPFFF, !- Name 0.6, !- Coefficient1 Constant 0.6285714286, !- Coefficient2 x @@ -15640,7 +15550,7 @@ Dimensionless; !- Output Unit Type Dimensionless, !- Input Unit Type for X Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, SubcoolFlowCoolingEIRFFF, !- Name 1.2856060606, !- Coefficient1 Constant -0.4563131313, !- Coefficient2 x @@ -15652,7 +15562,7 @@ Dimensionless; !- Output Unit Type Dimensionless, !- Input Unit Type for X Dimensionless; !- Output Unit Type - Curve:Biquadratic, + Curve:Biquadratic, SubcoolSHRTempCoolingCAPFTemp, !- Name 3.9903739056, !- Coefficient1 Constant -0.2158168778, !- Coefficient2 x @@ -15670,7 +15580,7 @@ Dimensionless; !- Output Unit Type Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, SubcoolSHRFlowCoolingCAPFFF, !- Name 0.4306934378, !- Coefficient1 Constant 0.606484437, !- Coefficient2 x @@ -15719,7 +15629,7 @@ Dimensionless; !- Output Unit Type ReheatSHRTempCoolingCAPFTemp, !- Sensible Heat Ratio Modifier Function of Temperature Curve Name ReheatSHRFlowCoolingCAPFFF; !- Sensible Heat Ratio Modifier Function of Flow Fraction Curve Name - Curve:Biquadratic, + Curve:Biquadratic, ReheatTempCoolingCAPFTemp, !- Name 1.5813223182, !- Coefficient1 Constant -0.0633198089, !- Coefficient2 x @@ -15737,7 +15647,7 @@ Dimensionless; !- Output Unit Type Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Biquadratic, + Curve:Biquadratic, ReheatTempCoolingEIRFTemp, !- Name 0.4050271551, !- Coefficient1 Constant 0.0140945368, !- Coefficient2 x @@ -15756,7 +15666,7 @@ Dimensionless; !- Output Unit Type Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, ReheatFlowCoolingCAPFFF, !- Name 0.7454545455, !- Coefficient1 Constant 0.4, !- Coefficient2 x @@ -15768,7 +15678,7 @@ Dimensionless; !- Output Unit Type Dimensionless, !- Input Unit Type for X Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, ReheatFlowCoolingEIRFFF, !- Name 1.3219073627, !- Coefficient1 Constant -0.5498593181, !- Coefficient2 x @@ -15780,7 +15690,7 @@ Dimensionless; !- Output Unit Type Dimensionless, !- Input Unit Type for X Dimensionless; !- Output Unit Type - Curve:Biquadratic, + Curve:Biquadratic, ReheatSHRTempCoolingCAPFTemp, !- Name 3.9903739056, !- Coefficient1 Constant -0.2158168778, !- Coefficient2 x @@ -15798,7 +15708,7 @@ Dimensionless; !- Output Unit Type Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type - Curve:Quadratic, + Curve:Quadratic, ReheatSHRFlowCoolingCAPFFF, !- Name -1.4384495222, !- Coefficient1 Constant 0.9171312178, !- Coefficient2 x @@ -16754,6 +16664,9 @@ Coil:Cooling:DX:VariableSpeed, autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level{ m3 / s } 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil{ s } 0.0, !- Initial Moisture Evaporation Rate Divided by Steady - State AC Latent Capacity{ dimensionless } + , !- Maximum Cycling Rate + , !- Latent Capacity Time Constant + , !- Fan Delay Time Quadratic, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type @@ -17007,10 +16920,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsNoLoadFlowRateSiz Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -17317,10 +17226,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_MultiSpeedDXCoilsDirectSolutionTes Autosize, !- Maximum Supply Air Temperature {C} 21, !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -18163,10 +18068,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_CheckBadInputOutputNodes) Autosize, !- Maximum Supply Air Temperature {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} , !- Ancillary On-Cycle Electric Power {W} , !- Ancillary Off-Cycle Electric Power {W} , !- Design Heat Recovery Water Flow Rate {m3/s} @@ -18398,10 +18299,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -18606,10 +18503,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -18803,10 +18696,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -20343,10 +20232,6 @@ TEST_F(ZoneUnitarySysTest, UnitarySystemModel_LowerSpeedFlowSizingTest) 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate @@ -20628,10 +20513,6 @@ AirLoopHVAC:UnitarySystem, 80.0, !- Maximum Supply Air Temperature{ C } , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name - , !- Maximum Cycling Rate - , !- Heat Pump Time Constant - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time , !- Ancilliary On-Cycle Electric Power , !- Ancilliary Off-Cycle Electric Power , !- Design Heat Recovery Water Flow Rate diff --git a/tst/EnergyPlus/unit/VariableSpeedCoils.unit.cc b/tst/EnergyPlus/unit/VariableSpeedCoils.unit.cc index 0d4818fdd7d..5fd6947eb32 100644 --- a/tst/EnergyPlus/unit/VariableSpeedCoils.unit.cc +++ b/tst/EnergyPlus/unit/VariableSpeedCoils.unit.cc @@ -75,6 +75,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " autosize, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLF Curve Multi Compressor 30prcnt unloading, !- Energy Part Load Fraction Curve Name", " PSZ-AC_1:5 OA Node, !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -91,8 +94,8 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.70, !- Speed 1 Reference Unit Sensible Heat Ratio At Rated Conditions {dimensionless}", " 4.328973, !- Speed 1 Reference Unit COP At Rated Conditions {dimensionless}", " 1.396964, !- Speed 1 Reference Unit Air Flow Rate At Rated Conditions {m3/s}", - " 773.3, !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate", - " 934.4, !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2017 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2023 Speed 1 Rated Evaporator Fan Power Per Volume Flow Rate", " , !- Speed 1 Reference Unit Condenser Flow Rate at Rated Conditions {m3/s}", " , !- Speed 1 Reference Unit Pad Effectiveness of Evap Precooling at Rated Conditions {dimensionless}", " 5CapacityCurveIpakCS, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name", @@ -103,8 +106,8 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.78, !- Speed 2 Reference Unit Sensible Heat Ratio At Rated Conditions {dimensionless}", " 4.540061, !- Speed 2 Reference Unit COP At Rated Conditions {dimensionless}", " 1.88779, !- Speed 2 Reference Unit Air Flow Rate At Rated Conditions {m3/s}", - " 773.3, !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate", - " 934.4, !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2017 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2023 Speed 2 Rated Evaporator Fan Power Per Volume Flow Rate", " , !- Speed 2 Reference Unit Condenser Flow Rate at Rated Conditions {m3/s}", " , !- Speed 2 Reference Unit Pad Effectiveness of Evap Precooling at Rated Conditions {dimensionless}", " 4CapacityCurve, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name", @@ -115,8 +118,8 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.70, !- Speed 3 Reference Unit Sensible Heat Ratio At Rated Conditions {dimensionless}", " 4.164418, !- Speed 3 Reference Unit COP At Rated Conditions {dimensionless}", " 2.831685, !- Speed 3 Reference Unit Air Flow Rate At Rated Conditions {m3/s}", - " 773.3, !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate", - " 934.4, !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2017 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2023 Speed 3 Rated Evaporator Fan Power Per Volume Flow Rate", " , !- Speed 3 Reference Unit Condenser Flow Rate at Rated Conditions {m3/s}", " , !- Speed 3 Reference Unit Pad Effectiveness of Evap Precooling at Rated Conditions {dimensionless}", " 3CapacityCurveIpakCS, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name", @@ -127,8 +130,8 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.62, !- Speed 4 Reference Unit Sensible Heat Ratio At Rated Conditions {dimensionless}", " 3.469661, !- Speed 4 Reference Unit COP At Rated Conditions {dimensionless}", " 3.553764, !- Speed 4 Reference Unit Air Flow Rate At Rated Conditions {m3/s}", - " 773.3, !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate", - " 934.4, !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2017 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2023 Speed 4 Rated Evaporator Fan Power Per Volume Flow Rate", " , !- Speed 4 Reference Unit Condenser Flow Rate at Rated Conditions {m3/s}", " , !- Speed 4 Reference Unit Pad Effectiveness of Evap Precooling at Rated Conditions {dimensionless}", " 2CapacityCurveIpakCS, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name", @@ -139,8 +142,8 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.69, !- Speed 5 Reference Unit Sensible Heat Ratio At Rated Conditions {dimensionless}", " 3.822957, !- Speed 5 Reference Unit COP At Rated Conditions {dimensionless}", " 5.66336932, !- Speed 5 Reference Unit Air Flow Rate At Rated Conditions {m3/s}", - " 773.3, !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate", - " 934.4, !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2017 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate", + " , !- 2023 Speed 5 Rated Evaporator Fan Power Per Volume Flow Rate", " , !- Speed 5 Reference Unit Condenser Flow Rate at Rated Conditions {m3/s}", " , !- Speed 5 Reference Unit Pad Effectiveness of Evap Precooling at Rated Conditions {dimensionless}", " 1CapacityCurveIpakCS, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name", @@ -169,10 +172,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " Lobby_ZN_1_FLR_2 WSHP Heating Mode, !- Heating Coil Name", " Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, !- Cooling Coil Object Type", " Lobby_ZN_1_FLR_2 WSHP Cooling Mode, !- Cooling Coil Name", - " 2.5, !- Maximum Cycling Rate {cycles/hr}", - " 60.0, !- Heat Pump Time Constant {s}", - " 0.01, !- Fraction of On-Cycle Power Use", - " 60, !- Heat Pump Fan Delay Time {s}", " Coil:Heating:Electric, !- Supplemental Heating Coil Object Type", " Lobby_ZN_1_FLR_2 WSHP Supp Heating Coil, !- Supplemental Heating Coil Name", " 50.0, !- Maximum Supply Air Temperature from Supplemental Heater {C}", @@ -199,14 +198,15 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " Autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " 2.5, !- Maximum Cycling Rate {cycles/hr}", + " 60.0, !- Latent Capacity Time Constant {s}", + " 60, !- Fan Delay Time {s}", " 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless}", " PLF Curve, !- Energy Part Load Fraction Curve Name", " 4682.3964854, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {w}", " 0.97, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.031554863, !- Speed 1 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.408706486, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s}", " 10CoolingCapacityCurve , !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name", " 10CoolingCAPFFCurve, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -220,8 +220,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.96, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.132826118, !- Speed 2 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.449293966, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s}", " 9CoolingCapacityCurve, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name", " 9CoolingCAPFFCurve, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -235,8 +233,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.95, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.133952107, !- Speed 3 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.489881446, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s}", " 8CoolingCapacityCurve, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name", " 8CoolingCAPFFCurve, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -250,8 +246,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.91, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.077619987, !- Speed 4 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.530468926, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s}", " 7CoolingCapacityCurve, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name", " 7CoolingCAPFFCurve, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -265,8 +259,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.871, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 7.974604129, !- Speed 5 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.571056406, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s}", " 6CoolingCapacityCurve, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name", " 6CoolingCAPFFCurve , !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -280,8 +272,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.816, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 7.661685232, !- Speed 6 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.652231367, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s}", " 5CoolingCapacityCurve, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name", " 5CoolingCAPFFCurve, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -295,8 +285,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.784, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 7.257778666, !- Speed 7 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.732934379, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s}", " 4CoolingCapacityCurve, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name", " 4CoolingCAPFFCurve, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -310,8 +298,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.766, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 6.804761759, !- Speed 8 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.81410934, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s}", " 3CoolingCapacityCurve, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name", " 3CoolingCAPFFCurve, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -325,8 +311,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_mixedCoilTypesInput) " 0.739, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 5.765971166, !- Speed 9 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.891980668, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s}", " 1CoolingCapacityCurve, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name", " 1CoolingCAPFFCurve, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -2728,6 +2712,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_Test_CalcTotCap_VSWSHP) " autosize, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLF Curve, !- Energy Part Load Fraction Curve Name", " PSZ-AC_1:5 OA Node, !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -2905,6 +2892,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_ContFanCycCoil_Test) " 5.00, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLF Curve, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -3010,28 +3000,14 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_ContFanCycCoil_Test) int DXCoilNum = 1; DataHVACGlobals::CompressorOperation CompressorOp = DataHVACGlobals::CompressorOperation::Off; int constexpr SpeedCal = 1; - Real64 RuntimeFrac = 1.0; Real64 SensLoad = 0.0; Real64 LatentLoad = 0.0; Real64 PartLoadFrac = 0.0; Real64 OnOffAirFlowRatio = 1.0; Real64 SpeedRatio = 0.0; - Real64 MaxONOFFCyclesperHour(0.0); - Real64 HPTimeConstant(0.0); - Real64 FanDelayTime(0.0); // run coil init - VariableSpeedCoils::InitVarSpeedCoil(*state, - DXCoilNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - SpeedRatio, - SpeedCal); + VariableSpeedCoils::InitVarSpeedCoil(*state, DXCoilNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, SpeedRatio, SpeedCal); // set coil inlet condition state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirDBTemp = 24.0; state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).InletAirHumRat = 0.009; @@ -3046,7 +3022,7 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_ContFanCycCoil_Test) state->dataLoopNodes->Node(state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirInletNodeNum).MassFlowRate = state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate; VariableSpeedCoils::CalcVarSpeedCoilCooling( - *state, DXCoilNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + *state, DXCoilNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); ; // check coil outlet and inlet air conditions match EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).OutletAirDBTemp, @@ -3071,7 +3047,7 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_ContFanCycCoil_Test) state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirMassFlowRate; // run the coil VariableSpeedCoils::CalcVarSpeedCoilCooling( - *state, DXCoilNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + *state, DXCoilNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal); // check coil air outlet conditions EXPECT_NEAR(state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).OutletAirDBTemp, 5.23333, 0.00001); EXPECT_NEAR(state->dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).OutletAirHumRat, 0.00810, 0.00001); @@ -3091,6 +3067,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_ASHP_Cooling) " 5.00, !- Rated Volumetric Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " PLF Curve, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -3527,14 +3506,15 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.00165, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " 2.5, !- Maximum Cycling Rate {cycles/hr}", + " 60.0, !- Latent Capacity Time Constant {s}", + " 60, !- Fan Delay Time {s}", " 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless}", " VS Energy Part Load Fraction 1, !- Energy Part Load Fraction Curve Name", " 1524.1, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {W}", " 0.75, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 1 Reference Unit Gross Rated Cooling COP {W/W}", " 0.1359072, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3548,8 +3528,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 2 Reference Unit Gross Rated Cooling COP {W/W}", " 0.151008, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3563,8 +3541,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 3 Reference Unit Gross Rated Cooling COP {W/W}", " 0.1661088, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3578,8 +3554,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 4 Reference Unit Gross Rated Cooling COP {W/W}", " 0.1963104, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3593,8 +3567,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 5 Reference Unit Gross Rated Cooling COP {W/W}", " 0.226512, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3608,8 +3580,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 6 Reference Unit Gross Rated Cooling COP {W/W}", " 0.2567136, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3623,8 +3593,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 7 Reference Unit Gross Rated Cooling COP {W/W}", " 0.2869152, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3638,8 +3606,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 8 Reference Unit Gross Rated Cooling COP {W/W}", " 0.3171168, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3653,8 +3619,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 9 Reference Unit Gross Rated Cooling COP {W/W}", " 0.3473184, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3668,8 +3632,6 @@ TEST_F(EnergyPlusFixture, VariableSpeedCoils_RatedSource_Temp_WSHP_Cooling) " 0.75, !- Speed 10 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 4.0, !- Speed 10 Reference Unit Gross Rated Cooling COP {W/W}", " 0.37752, !- Speed 10 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 10 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 10 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000381695, !- Speed 10 Reference Unit Rated Water Flow Rate {m3/s}", " TC VS Temp1 Test, !- Speed 10 Total Cooling Capacity Function of Temperature Curve Name", " TC VS AirFrac Test, !- Speed 10 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -3983,6 +3945,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_Initialization) " 0.4, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", @@ -4184,9 +4149,9 @@ TEST_F(EnergyPlusFixture, VariableSpeedCooling_Initialization) int NumAlphas = 0; int NumNumbers = 0; state->dataInputProcessing->inputProcessor->getObjectDefMaxArgs(*state, CurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); - EXPECT_EQ(TotalArgs, 141); + EXPECT_EQ(TotalArgs, 144); EXPECT_EQ(NumAlphas, 49); - EXPECT_EQ(NumNumbers, 92); + EXPECT_EQ(NumNumbers, 95); // get coil inputs EnergyPlus::VariableSpeedCoils::GetVarSpeedCoilInput(*state); auto _name = state->dataVariableSpeedCoils->VarSpeedCoil(1).Name; @@ -4405,14 +4370,15 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " Autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " 0, !- Flag for Using Hot Gas Reheat, 0 or 1 {dimensionless}", " PLF Curve, !- Energy Part Load Fraction Curve Name", " 4682.3964854, !- Speed 1 Reference Unit Gross Rated Total Cooling Capacity {w}", " 0.97, !- Speed 1 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.031554863, !- Speed 1 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.408706486, !- Speed 1 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 1 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 1 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 1 Reference Unit Rated Water Flow Rate {m3/s}", " 10CoolingCapacityCurve , !- Speed 1 Total Cooling Capacity Function of Temperature Curve Name", " 10CoolingCAPFFCurve, !- Speed 1 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4426,8 +4392,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.96, !- Speed 2 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.132826118, !- Speed 2 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.449293966, !- Speed 2 Reference Unit Rated Air Flow Rate {m3/s}", - " 770.3, !- Speed 2 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 2 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 2 Reference Unit Rated Water Flow Rate {m3/s}", " 9CoolingCapacityCurve, !- Speed 2 Total Cooling Capacity Function of Temperature Curve Name", " 9CoolingCAPFFCurve, !- Speed 2 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4441,8 +4405,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.95, !- Speed 3 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.133952107, !- Speed 3 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.489881446, !- Speed 3 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 3 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 3 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 3 Reference Unit Rated Water Flow Rate {m3/s}", " 8CoolingCapacityCurve, !- Speed 3 Total Cooling Capacity Function of Temperature Curve Name", " 8CoolingCAPFFCurve, !- Speed 3 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4456,8 +4418,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.91, !- Speed 4 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 8.077619987, !- Speed 4 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.530468926, !- Speed 4 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 4 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 4 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 4 Reference Unit Rated Water Flow Rate {m3/s}", " 7CoolingCapacityCurve, !- Speed 4 Total Cooling Capacity Function of Temperature Curve Name", " 7CoolingCAPFFCurve, !- Speed 4 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4471,8 +4431,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.871, !- Speed 5 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 7.974604129, !- Speed 5 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.571056406, !- Speed 5 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 5 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 5 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 5 Reference Unit Rated Water Flow Rate {m3/s}", " 6CoolingCapacityCurve, !- Speed 5 Total Cooling Capacity Function of Temperature Curve Name", " 6CoolingCAPFFCurve , !- Speed 5 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4486,8 +4444,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.816, !- Speed 6 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 7.661685232, !- Speed 6 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.652231367, !- Speed 6 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 6 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 6 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 6 Reference Unit Rated Water Flow Rate {m3/s}", " 5CoolingCapacityCurve, !- Speed 6 Total Cooling Capacity Function of Temperature Curve Name", " 5CoolingCAPFFCurve, !- Speed 6 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4501,8 +4457,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.784, !- Speed 7 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 7.257778666, !- Speed 7 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.732934379, !- Speed 7 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 7 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 7 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 7 Reference Unit Rated Water Flow Rate {m3/s}", " 4CoolingCapacityCurve, !- Speed 7 Total Cooling Capacity Function of Temperature Curve Name", " 4CoolingCAPFFCurve, !- Speed 7 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4516,8 +4470,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.766, !- Speed 8 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 6.804761759, !- Speed 8 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.81410934, !- Speed 8 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 8 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 8 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 8 Reference Unit Rated Water Flow Rate {m3/s}", " 3CoolingCapacityCurve, !- Speed 8 Total Cooling Capacity Function of Temperature Curve Name", " 3CoolingCAPFFCurve, !- Speed 8 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -4531,8 +4483,6 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) " 0.739, !- Speed 9 Reference Unit Gross Rated Sensible Heat Ratio {dimensionless}", " 5.765971166, !- Speed 9 Reference Unit Gross Rated Cooling COP {dimensionless}", " 0.891980668, !- Speed 9 Reference Unit Rated Air Flow Rate {m3/s}", - " 773.3, !- Speed 9 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- Speed 9 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0008201726 , !- Speed 9 Reference Unit Rated Water Flow Rate {m3/s}", " 1CoolingCapacityCurve, !- Speed 9 Total Cooling Capacity Function of Temperature Curve Name", " 1CoolingCAPFFCurve, !- Speed 9 Total Cooling Capacity Function of Air Flow Fraction Curve Name", @@ -6735,16 +6685,17 @@ TEST_F(EnergyPlusFixture, CoolingVariableSpeedEquationFit_Initialization) int NumAlphas = 0; int NumNumbers = 0; state->dataInputProcessing->inputProcessor->getObjectDefMaxArgs(*state, CurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); - EXPECT_EQ(TotalArgs, 164); + EXPECT_EQ(TotalArgs, 147); EXPECT_EQ(NumAlphas, 76); - EXPECT_EQ(NumNumbers, 88); + EXPECT_EQ(NumNumbers, 71); // get coil inputs EnergyPlus::VariableSpeedCoils::GetVarSpeedCoilInput(*state); auto _name = state->dataVariableSpeedCoils->VarSpeedCoil(1).Name; EXPECT_EQ(_name, "LOBBY_ZN_1_FLR_2 WSHP COOLING MODE"); EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedAirVolFlowRate(2), 0.449293966); - EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(1), 773.3); - EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(2), 770.3); + // These don't apply to water source heat pumps, so commenting out the tests + // EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(1), 773.3); + // EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedEvaporatorFanPowerPerVolumeFlowRate2017(2), 770.3); EXPECT_EQ(state->dataVariableSpeedCoils->VarSpeedCoil(1).MSRatedWaterVolFlowRate(2), 0.0008201726); } diff --git a/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc b/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc index e8bc0e82e5d..90299682446 100644 --- a/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc +++ b/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc @@ -2551,8 +2551,6 @@ TEST_F(EnergyPlusFixture, StratifiedTank_GSHP_DesuperheaterSourceHeat) " res gshp clg unitary system Fan - Cooling Coil Node, !- Air Inlet Node Name", " Node 45, !- Air Outlet Node Name", " 0.951796450842996, !- Rated Air Flow Rate {m3/s}", - " 773.3, !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.000567811767595478, !- Rated Water Flow Rate {m3/s}", " 14067.4113682534, !- Gross Rated Total Cooling Capacity {W}", " 10297.3451215615, !- Gross Rated Sensible Cooling Capacity {W}", @@ -2563,6 +2561,7 @@ TEST_F(EnergyPlusFixture, StratifiedTank_GSHP_DesuperheaterSourceHeat) " TotCoolCapCurve, !- Total Cooling Capacity Curve Name", " SensCoolCapCurve, !- Sensible Cooling Name", " CoolPowCurve, !- Cooling Power Consumption Curve Name", + " CoolPLFCurve, !- Cooling Power Consumption Curve Name", " 1000, !- Nominal Time for Condensate Removal to Begin {s}", " 1.5; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}", @@ -2622,6 +2621,9 @@ TEST_F(EnergyPlusFixture, StratifiedTank_GSHP_DesuperheaterSourceHeat) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", + + "Curve:Quadratic, CoolPLFCurve, 0.85, 0.83, 0.0, 0.0, 0.3, 0.85, 1.0, Dimensionless, Dimensionless; ", + }); ASSERT_TRUE(process_idf(idf_objects)); @@ -2680,13 +2682,13 @@ TEST_F(EnergyPlusFixture, StratifiedTank_GSHP_DesuperheaterSourceHeat) CoilBranch.Comp(CompNum).Name = "GSHP_COIL1"; state->dataGlobal->BeginEnvrnFlag = true; - WaterToAirHeatPumpSimple::InitSimpleWatertoAirHP(*state, HPNum, 10.0, 1.0, 0.0, 10.0, 10.0, CyclingScheme, 1.0, 1); - WaterToAirHeatPumpSimple::CalcHPCoolingSimple(*state, HPNum, CyclingScheme, 1.0, 10.0, 10.0, DataHVACGlobals::CompressorOperation::On, PLR, 1.0); + WaterToAirHeatPumpSimple::InitSimpleWatertoAirHP(*state, HPNum, 10.0, 10.0, CyclingScheme, 1.0, 1); + WaterToAirHeatPumpSimple::CalcHPCoolingSimple(*state, HPNum, CyclingScheme, 10.0, 10.0, DataHVACGlobals::CompressorOperation::On, PLR, 1.0); // Coil source side heat successfully passed to HeatReclaimSimple_WAHPCoil(1).AvailCapacity EXPECT_EQ(state->dataHeatBal->HeatReclaimSimple_WAHPCoil(1).AvailCapacity, state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(1).QSource); // Reclaimed heat successfully returned to reflect the plant impact state->dataHeatBal->HeatReclaimSimple_WAHPCoil(1).WaterHeatingDesuperheaterReclaimedHeat(1) = 100.0; - WaterToAirHeatPumpSimple::CalcHPCoolingSimple(*state, HPNum, CyclingScheme, 1.0, 10.0, 10.0, DataHVACGlobals::CompressorOperation::On, PLR, 1.0); + WaterToAirHeatPumpSimple::CalcHPCoolingSimple(*state, HPNum, CyclingScheme, 10.0, 10.0, DataHVACGlobals::CompressorOperation::On, PLR, 1.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(1).QSource, state->dataHeatBal->HeatReclaimSimple_WAHPCoil(1).AvailCapacity - 100.0); diff --git a/tst/EnergyPlus/unit/WaterToAirHeatPump.unit.cc b/tst/EnergyPlus/unit/WaterToAirHeatPump.unit.cc index 0fd697c38a8..f7a67b2011c 100644 --- a/tst/EnergyPlus/unit/WaterToAirHeatPump.unit.cc +++ b/tst/EnergyPlus/unit/WaterToAirHeatPump.unit.cc @@ -75,61 +75,66 @@ using namespace EnergyPlus::WaterToAirHeatPump; TEST_F(EnergyPlusFixture, WaterToAirHeatPumpTest_SimWaterToAir) { - std::string const idf_objects = - delimited_string({" Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, ", - " Sys 1 Heat Pump Cooling Mode, !- Name", - " Scroll, !- Compressor Type", - " R22, !- Refrigerant Type", - " 0.0015, !- Design Source Side Flow Rate{ m3 / s }", - " 38000, !- Nominal Cooling Coil Capacity{ W }", - " 0, !- Nominal Time for Condensate Removal to Begin{ s }", - " 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity{ dimensionless }", - " 3000000, !- High Pressure Cutoff{ Pa }", - " 0, !- Low Pressure Cutoff{ Pa }", - " Sys 1 Water to Air Heat Pump Source Side1 Inlet Node, !- Water Inlet Node Name", - " Sys 1 Water to Air Heat Pump Source Side1 Outlet Node, !- Water Outlet Node Name", - " Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name", - " Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name", - " 3.78019E+03, !- Load Side Total Heat Transfer Coefficient{ W / K }", - " 2.80303E+03, !- Load Side Outside Surface Heat Transfer Coefficient{ W / K }", - " 7.93591E-01, !- Superheat Temperature at the Evaporator Outlet{ C }", - " 1.91029E+03, !- Compressor Power Losses{ W }", - " 2.66127E+00, !- Compressor Efficiency", - " , !- Compressor Piston Displacement{ m3 / s }", - " , !- Compressor Suction / Discharge Pressure Drop{ Pa }", - " , !- Compressor Clearance Factor{ dimensionless }", - " 1.06009E-01, !- Refrigerant Volume Flow Rate{ m3 / s }", - " 1.65103E+00, !- Volume Ratio{ dimensionless }", - " 9.73887E-03, !- Leak Rate Coefficient", - " 1.04563E+03, !- Source Side Heat Transfer Coefficient{ W / K }", - " 0.8, !- Source Side Heat Transfer Resistance1{ dimensionless }", - " 20.0; !- Source Side Heat Transfer Resistance2{ W / K }", - - " Coil:Heating:WaterToAirHeatPump:ParameterEstimation,", - " Sys 1 Heat Pump HEATING Mode, !- Name", - " Scroll, !- Compressor Type", - " R22, !- Refrigerant Type", - " 0.0015, !- Design Source Side Flow Rate{ m3 / s }", - " 38000, !- Gross Rated Heating Capacity{ W }", - " 3000000, !- High Pressure Cutoff", - " 0, !- Low Pressure Cutoff{ Pa }", - " Sys 1 Water to Air Heat Pump Source Side2 Inlet Node, !- Water Inlet Node Name", - " Sys 1 Water to Air Heat Pump Source Side2 Outlet Node, !- Water Outlet Node Name", - " Sys 1 Heating Coil Air Inlet Node, !- Air Inlet Node Name", - " Sys 1 SuppHeating Coil Air Inlet Node, !- Air Outlet Node Name", - " 3.91379E+03, !- Load Side Total Heat Transfer Coefficient{ W / K }", - " 5.94753E-01, !- Superheat Temperature at the Evaporator Outlet{ C }", - " 2.49945E+03, !- Compressor Power Losses{ W }", - " 8.68734E-01, !- Compressor Efficiency", - " , !- Compressor Piston Displacement{ m3 / s }", - " , !- Compressor Suction / Discharge Pressure Drop{ Pa }", - " , !- Compressor Clearance Factor{ dimensionless }", - " 7.23595E-02, !- Refrigerant Volume Flow Rate{ m3 / s }", - " 3.69126E+00, !- Volume Ratio{ dimensionless }", - " 1.75701E-05, !- Leak Rate Coefficient{ dimensionless }", - " 3.65348E+03, !- Source Side Heat Transfer Coefficient{ W / K }", - " 0.8, !- Source Side Heat Transfer Resistance1{ dimensionless }", - " 20.0; !- Source Side Heat Transfer Resistance2{ W / K }"}); + std::string const idf_objects = delimited_string({ + " Coil:Cooling:WaterToAirHeatPump:ParameterEstimation, ", + " Sys 1 Heat Pump Cooling Mode, !- Name", + " Scroll, !- Compressor Type", + " R22, !- Refrigerant Type", + " 0.0015, !- Design Source Side Flow Rate{ m3 / s }", + " 38000, !- Nominal Cooling Coil Capacity{ W }", + " 0, !- Nominal Time for Condensate Removal to Begin{ s }", + " 0, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity{ dimensionless }", + " 3000000, !- High Pressure Cutoff{ Pa }", + " 0, !- Low Pressure Cutoff{ Pa }", + " Sys 1 Water to Air Heat Pump Source Side1 Inlet Node, !- Water Inlet Node Name", + " Sys 1 Water to Air Heat Pump Source Side1 Outlet Node, !- Water Outlet Node Name", + " Sys 1 Cooling Coil Air Inlet Node, !- Air Inlet Node Name", + " Sys 1 Heating Coil Air Inlet Node, !- Air Outlet Node Name", + " 3.78019E+03, !- Load Side Total Heat Transfer Coefficient{ W / K }", + " 2.80303E+03, !- Load Side Outside Surface Heat Transfer Coefficient{ W / K }", + " 7.93591E-01, !- Superheat Temperature at the Evaporator Outlet{ C }", + " 1.91029E+03, !- Compressor Power Losses{ W }", + " 2.66127E+00, !- Compressor Efficiency", + " , !- Compressor Piston Displacement{ m3 / s }", + " , !- Compressor Suction / Discharge Pressure Drop{ Pa }", + " , !- Compressor Clearance Factor{ dimensionless }", + " 1.06009E-01, !- Refrigerant Volume Flow Rate{ m3 / s }", + " 1.65103E+00, !- Volume Ratio{ dimensionless }", + " 9.73887E-03, !- Leak Rate Coefficient", + " 1.04563E+03, !- Source Side Heat Transfer Coefficient{ W / K }", + " 0.8, !- Source Side Heat Transfer Resistance1{ dimensionless }", + " 20.0, !- Source Side Heat Transfer Resistance2{ W / K }", + " PLFFPLR; !- Part Load Fraction Correlation Curve Name", + + " Coil:Heating:WaterToAirHeatPump:ParameterEstimation,", + " Sys 1 Heat Pump HEATING Mode, !- Name", + " Scroll, !- Compressor Type", + " R22, !- Refrigerant Type", + " 0.0015, !- Design Source Side Flow Rate{ m3 / s }", + " 38000, !- Gross Rated Heating Capacity{ W }", + " 3000000, !- High Pressure Cutoff", + " 0, !- Low Pressure Cutoff{ Pa }", + " Sys 1 Water to Air Heat Pump Source Side2 Inlet Node, !- Water Inlet Node Name", + " Sys 1 Water to Air Heat Pump Source Side2 Outlet Node, !- Water Outlet Node Name", + " Sys 1 Heating Coil Air Inlet Node, !- Air Inlet Node Name", + " Sys 1 SuppHeating Coil Air Inlet Node, !- Air Outlet Node Name", + " 3.91379E+03, !- Load Side Total Heat Transfer Coefficient{ W / K }", + " 5.94753E-01, !- Superheat Temperature at the Evaporator Outlet{ C }", + " 2.49945E+03, !- Compressor Power Losses{ W }", + " 8.68734E-01, !- Compressor Efficiency", + " , !- Compressor Piston Displacement{ m3 / s }", + " , !- Compressor Suction / Discharge Pressure Drop{ Pa }", + " , !- Compressor Clearance Factor{ dimensionless }", + " 7.23595E-02, !- Refrigerant Volume Flow Rate{ m3 / s }", + " 3.69126E+00, !- Volume Ratio{ dimensionless }", + " 1.75701E-05, !- Leak Rate Coefficient{ dimensionless }", + " 3.65348E+03, !- Source Side Heat Transfer Coefficient{ W / K }", + " 0.8, !- Source Side Heat Transfer Resistance1{ dimensionless }", + " 20.0, !- Source Side Heat Transfer Resistance2{ W / K }", + " PLFFPLR; !- Part Load Fraction Correlation Curve Name", + + "Curve:Quadratic, PLFFPLR, 0.85, 0.83, 0.0, 0.0, 0.3, 0.85, 1.0, Dimensionless, Dimensionless; ", + }); ASSERT_TRUE(process_idf(idf_objects)); @@ -233,22 +238,17 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpTest_SimWaterToAir) state->dataWaterToAirHeatPump->WatertoAirHP(HPNum).WaterInletNodeNum; bool InitFlag(true); - Real64 MaxONOFFCyclesperHour(4.0); - Real64 HPTimeConstant(0.1); - Real64 FanDelayTime(60.0); Real64 SensLoad(38000.0); Real64 LatentLoad(0.0); Real64 PartLoadRatio(1.0); int CyclingScheme(1); bool FirstHVACIteration(true); - Real64 RuntimeFrac(1.0); DataHVACGlobals::CompressorOperation CompressorOp = DataHVACGlobals::CompressorOperation::On; state->dataWaterToAirHeatPump->WatertoAirHP(HPNum).plantLoc.loopNum = 1; - InitWatertoAirHP( - *state, HPNum, InitFlag, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); + InitWatertoAirHP(*state, HPNum, InitFlag, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); - CalcWatertoAirHPCooling(*state, HPNum, CyclingScheme, FirstHVACIteration, RuntimeFrac, InitFlag, SensLoad, CompressorOp, PartLoadRatio); + CalcWatertoAirHPCooling(*state, HPNum, CyclingScheme, FirstHVACIteration, InitFlag, SensLoad, CompressorOp, PartLoadRatio); // make sure the coil is active EXPECT_NE(state->dataWaterToAirHeatPump->WatertoAirHP(HPNum).QSource, 0.0); @@ -291,10 +291,9 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpTest_SimWaterToAir) state->dataWaterToAirHeatPump->WatertoAirHP(HPNum).DesignWaterMassFlowRate = 15.0; - InitWatertoAirHP( - *state, HPNum, InitFlag, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); + InitWatertoAirHP(*state, HPNum, InitFlag, SensLoad, LatentLoad, DesignAirflow, PartLoadRatio); - CalcWatertoAirHPHeating(*state, HPNum, CyclingScheme, FirstHVACIteration, RuntimeFrac, InitFlag, SensLoad, CompressorOp, PartLoadRatio); + CalcWatertoAirHPHeating(*state, HPNum, CyclingScheme, FirstHVACIteration, InitFlag, SensLoad, CompressorOp, PartLoadRatio); // make sure the coil is active EXPECT_NE(state->dataWaterToAirHeatPump->WatertoAirHP(HPNum).QSource, 0.0); diff --git a/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc b/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc index 9c95756daab..57f7ed4e590 100644 --- a/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc +++ b/tst/EnergyPlus/unit/WaterToAirHeatPumpSimple.unit.cc @@ -234,8 +234,6 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) " Sys 5 Cooling Coil Air Inlet Node, !- Air Inlet Node Name", " Sys 5 Heating Coil Air Inlet Node, !- Air Outlet Node Name", " 2.0, !- Rated Air Flow Rate {m3/s}", - " 773.3, !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0033, !- Rated Water Flow Rate {m3/s}", " 20000, !- Gross Rated Total Cooling Capacity {W}", " 16000, !- Gross Rated Sensible Cooling Capacity {W}", @@ -246,6 +244,7 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) " TotCoolCapCurve, !- Total Cooling Capacity Curve Name", " SensCoolCapCurve, !- Sensible Cooling Capacity Curve Name", " CoolPowCurve, !- Cooling Power Consumption Curve Name", + " PLFFPLR, !- Part Load Fraction Correlation Curve Name", " 0, !- Nominal Time for Condensate Removal to Begin {s}", " 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}", @@ -263,7 +262,8 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) " , !- Rated Entering Air Dry-Bulb Temperature", " , !- Ratio of Rated Heating Capacity to Rated Cooling Capacity", " HeatCapCurve, !- Heating Capacity Curve Name", - " HeatPowCurve; !- Heating Power Curve Name", + " HeatPowCurve, !- Heating Power Curve Name", + " PLFFPLR; !- Part Load Fraction Correlation Curve Name", "Curve:QuintLinear,", " SensCoolCapCurve, ! Curve Name", @@ -358,6 +358,8 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", + "Curve:Quadratic, PLFFPLR, 0.85, 0.83, 0.0, 0.0, 0.3, 0.85, 1.0, Dimensionless, Dimensionless; ", + }); ASSERT_TRUE(process_idf(idf_objects)); @@ -410,29 +412,16 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) DataHVACGlobals::CompressorOperation CompressorOp = DataHVACGlobals::CompressorOperation::On; int CyclingScheme(1); bool FirstHVACIteration(true); - Real64 MaxONOFFCyclesperHour(4.0); - Real64 HPTimeConstant(0.1); - Real64 FanDelayTime(60.0); Real64 SensLoad(38000.0); Real64 LatentLoad(0.0); Real64 PartLoadRatio(1.0); - Real64 RuntimeFrac(1.0); Real64 OnOffAirFlowRatio(1.0); state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).plantLoc.loopNum = 1; state->dataEnvrn->OutBaroPress = 101325.0; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 1.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.85781, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 16000 * 0.89755, 0.1); @@ -444,20 +433,10 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletAirDBTemp, 26.0 - (14360.848 / 1.0 / CpAir), 0.0001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 0.5); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.85781 * 0.5, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 16000 * 0.89755 * 0.5, 0.1); @@ -471,20 +450,10 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) // constant fan CyclingScheme = 2; PartLoadRatio = 1.0; - RuntimeFrac = 1.0; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 1.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.85781, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 16000 * 0.89755, 0.1); @@ -496,19 +465,9 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletAirDBTemp, 26.0 - (14360.848 / 1.0 / CpAir), 0.0001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 1.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.85781 * 0.5, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 16000 * 0.89755 * 0.5, 0.1); @@ -551,32 +510,13 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) CpAir = PsyCpAirFnW(0.004); // cycling fan CyclingScheme = 1; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); PartLoadRatio = 1.0; - RuntimeFrac = 1.0; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 1.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.981844, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 20000 * 0.981844, 0.1); @@ -588,20 +528,10 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletAirDBTemp, 15.0 + (19636.8798 / 1.0 / CpAir), 0.0001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 0.5); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.981844 * 0.5, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 20000 * 0.981844 * 0.5, 0.1); @@ -615,20 +545,10 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) // constant fan CyclingScheme = 2; PartLoadRatio = 1.0; - RuntimeFrac = 1.0; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 1.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.981844, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 20000 * 0.981844, 0.1); @@ -640,19 +560,9 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestAirFlow) EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletAirDBTemp, 15.0 + (19636.8798 / 1.0 / CpAir), 0.0001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = ActualAirflow; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirMassFlowRate, 1.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QLoadTotal, 20000 * 0.981844 * 0.5, 0.1); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).QSensible, 20000 * 0.981844 * 0.5, 0.1); @@ -678,8 +588,6 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " Sys 5 Cooling Coil Air Inlet Node, !- Air Inlet Node Name", " Sys 5 Heating Coil Air Inlet Node, !- Air Outlet Node Name", " 1.0, !- Rated Air Flow Rate {m3/s}", - " 773.3, !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0033, !- Rated Water Flow Rate {m3/s}", " 23125.59, !- Gross Rated Total Cooling Capacity {W}", " 16267, !- Gross Rated Sensible Cooling Capacity {W}", @@ -690,6 +598,7 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " TotCoolCapCurve, !- Total Cooling Capacity Curve Name", " SensCoolCapCurve, !- Sensible Cooling Capacity Curve Name", " CoolPowCurve, !- Cooling Power Consumption Curve Name", + " PLFFPLR, !- Part Load Fraction Correlation Curve Name", " 0, !- Nominal Time for Condensate Removal to Begin {s}", " 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}", @@ -708,7 +617,8 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " , !- Rated Entering Air Dry-Bulb Temperature", " , !- Ratio of Rated Heating Capacity to Rated Cooling Capacity", " HeatCapCurve, !- Heating Capacity Curve Name", - " HeatPowCurve; !- Heating Power Curve Name", + " HeatPowCurve, !- Heating Power Curve Name", + " PLFFPLR; !- Part Load Fraction Correlation Curve Name", "Curve:QuintLinear,", " SensCoolCapCurve, ! Curve Name", @@ -803,6 +713,8 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", + "Curve:Quadratic, PLFFPLR, 0.85, 0.83, 0.0, 0.0, 0.3, 0.85, 1.0, Dimensionless, Dimensionless; ", + }); ASSERT_TRUE(process_idf(idf_objects)); @@ -854,108 +766,55 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) DataHVACGlobals::CompressorOperation CompressorOp = DataHVACGlobals::CompressorOperation::On; int CyclingScheme(1); bool FirstHVACIteration(true); - Real64 MaxONOFFCyclesperHour(4.0); - Real64 HPTimeConstant(0.1); - Real64 FanDelayTime(60.0); Real64 SensLoad(38000.0); Real64 LatentLoad(0.0); Real64 PartLoadRatio(1.0); - Real64 RuntimeFrac(1.0); Real64 OnOffAirFlowRatio(1.0); state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).plantLoc.loopNum = 1; state->dataEnvrn->OutBaroPress = 101325.0; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 15.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 5.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 5.20387, 0.00001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 15.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 5.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 5.10193, 0.00001); state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterCyclingMode = WaterCycling; PartLoadRatio = 1.0; - RuntimeFrac = 1.0; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 15.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 5.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 5.20387, 0.00001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 7.5); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 5.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 5.20387, 0.00001); // test reduced flow at coil water inlet node PartLoadRatio = 0.25; - RuntimeFrac = 0.25; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterInletNodeNum).MassFlowRate = 3.75; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPCoolingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPCoolingSimple(*state, HPNum, CyclingScheme, SensLoad, LatentLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 3.75); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 5.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 5.20387, 0.00001); @@ -995,111 +854,52 @@ TEST_F(EnergyPlusFixture, WaterToAirHeatPumpSimple_TestWaterFlowControl) state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).DesignWaterMassFlowRate = 15.0; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); PartLoadRatio = 1.0; - RuntimeFrac = 1.0; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 15.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 35.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 34.50472, 0.00001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 15.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 35.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 34.75236, 0.00001); state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterCyclingMode = WaterCycling; PartLoadRatio = 1.0; - RuntimeFrac = 1.0; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 15.0); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 35.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 34.50472, 0.00001); PartLoadRatio = 0.5; - RuntimeFrac = 0.5; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 7.5); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 35.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 34.50472, 0.00001); // test reduced flow at coil water inlet node PartLoadRatio = 0.25; - RuntimeFrac = 0.25; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).AirInletNodeNum).MassFlowRate = DesignAirflow * PartLoadRatio; state->dataLoopNodes->Node(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterInletNodeNum).MassFlowRate = 3.75; - InitSimpleWatertoAirHP(*state, - HPNum, - MaxONOFFCyclesperHour, - HPTimeConstant, - FanDelayTime, - SensLoad, - LatentLoad, - CyclingScheme, - OnOffAirFlowRatio, - FirstHVACIteration); - CalcHPHeatingSimple(*state, HPNum, CyclingScheme, RuntimeFrac, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); + InitSimpleWatertoAirHP(*state, HPNum, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, FirstHVACIteration); + CalcHPHeatingSimple(*state, HPNum, CyclingScheme, SensLoad, CompressorOp, PartLoadRatio, OnOffAirFlowRatio); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).WaterMassFlowRate, 3.75); EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).InletWaterTemp, 35.0); EXPECT_NEAR(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).OutletWaterTemp, 34.50472, 0.00001); @@ -1723,8 +1523,6 @@ TEST_F(EnergyPlusFixture, EquationFit_Initialization) " Sys 5 Cooling Coil Air Inlet Node, !- Air Inlet Node Name", " Sys 5 Heating Coil Air Inlet Node, !- Air Outlet Node Name", " 2.0, !- Rated Air Flow Rate {m3/s}", - " 773.3, !- 2017 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", - " 934.4, !- 2023 Rated Evaporator Fan Power Per Volume Flow Rate [W/(m3/s)]", " 0.0033, !- Rated Water Flow Rate {m3/s}", " 20000, !- Gross Rated Total Cooling Capacity {W}", " 16000, !- Gross Rated Sensible Cooling Capacity {W}", @@ -1735,6 +1533,7 @@ TEST_F(EnergyPlusFixture, EquationFit_Initialization) " TotCoolCapCurve, !- Total Cooling Capacity Curve Name", " SensCoolCapCurve, !- Sensible Cooling Capacity Curve Name", " CoolPowCurve, !- Cooling Power Consumption Curve Name", + " PLFFPLR, !- Part Load Fraction Correlation Curve Name", " 0, !- Nominal Time for Condensate Removal to Begin {s}", " 0; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}", @@ -1794,6 +1593,9 @@ TEST_F(EnergyPlusFixture, EquationFit_Initialization) " 100, ! Maximum Value of z", " 0., ! Minimum Curve Output", " 38.; ! Maximum Curve Output", + + "Curve:Quadratic, PLFFPLR, 0.85, 0.83, 0.0, 0.0, 0.3, 0.85, 1.0, Dimensionless, Dimensionless; ", + }); ASSERT_TRUE(process_idf(idf_objects)); @@ -1807,9 +1609,9 @@ TEST_F(EnergyPlusFixture, EquationFit_Initialization) int NumAlphas = 0; int NumNumbers = 0; state->dataInputProcessing->inputProcessor->getObjectDefMaxArgs(*state, CurrentModuleObject, TotalArgs, NumAlphas, NumNumbers); - EXPECT_EQ(TotalArgs, 20); - EXPECT_EQ(NumAlphas, 8); - EXPECT_EQ(NumNumbers, 12); + EXPECT_EQ(TotalArgs, 22); + EXPECT_EQ(NumAlphas, 9); + EXPECT_EQ(NumNumbers, 13); GetCurveInput(*state); WaterToAirHeatPumpSimple::GetSimpleWatertoAirHPInput(*state); @@ -1817,6 +1619,4 @@ TEST_F(EnergyPlusFixture, EquationFit_Initialization) EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).Name, "SYS 5 HEAT PUMP COOLING MODE"); auto &thisCoil(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum)); EXPECT_NEAR(thisCoil.RatedCOPCoolAtRatedCdts, 7.00776, 0.01); - EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedEvapFanPowerPerVolFlowRate2017, 773.3); - EXPECT_EQ(state->dataWaterToAirHeatPumpSimple->SimpleWatertoAirHP(HPNum).RatedEvapFanPowerPerVolFlowRate2023, 934.4); } diff --git a/tst/EnergyPlus/unit/WindowAC.unit.cc b/tst/EnergyPlus/unit/WindowAC.unit.cc index c7512510360..0bd1cfabd02 100644 --- a/tst/EnergyPlus/unit/WindowAC.unit.cc +++ b/tst/EnergyPlus/unit/WindowAC.unit.cc @@ -164,6 +164,9 @@ TEST_F(EnergyPlusFixture, WindowAC_VStest1) " AUTOSIZE, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s}", " 0.0, !- Nominal Time for Condensate to Begin Leaving the Coil {s}", " 0.0, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless}", + " , !- Maximum Cycling Rate", + " , !- Latent Capacity Time Constant", + " , !- Fan Delay Time", " HPACCOOLPLFFPLR, !- Energy Part Load Fraction Curve Name", " , !- Condenser Air Inlet Node Name", " AirCooled, !- Condenser Type", diff --git a/tst/EnergyPlus/unit/WindowManager.unit.cc b/tst/EnergyPlus/unit/WindowManager.unit.cc index a090f030a54..523b5fffc40 100644 --- a/tst/EnergyPlus/unit/WindowManager.unit.cc +++ b/tst/EnergyPlus/unit/WindowManager.unit.cc @@ -2834,6 +2834,8 @@ TEST_F(EnergyPlusFixture, WindowManager_SrdLWRTest) HeatBalanceSurfaceManager::InitSurfacePropertyViewFactors(*state); + HeatBalanceSurfaceManager::GetSurroundingSurfacesTemperatureAverage(*state); + WindowManager::CalcWindowHeatBalance(*state, surfNum2, state->dataHeatBalSurf->SurfHConvInt(surfNum2), inSurfTemp, outSurfTemp); state->dataHeatBalSurf->SurfTempOut(surfNum2) = outSurfTemp; diff --git a/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc b/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc index a5fa8a14194..aaf854de0c3 100644 --- a/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc +++ b/tst/EnergyPlus/unit/ZoneEquipmentManager.unit.cc @@ -4800,3 +4800,153 @@ TEST_F(EnergyPlusFixture, CalcAirFlowSimple_WindAndStackArea) EXPECT_NEAR(expectedCw, calcCw(thisVentilation.MCP), 0.0001) << formatFailure(); } } + +TEST_F(EnergyPlusFixture, ZoneEquipmentManager_SizeZoneEquipment_DOASLoadTest) +{ + + state->dataLoopNodes->Node.allocate(10); + state->dataGlobal->NumOfZones = 1; + state->dataSize->ZoneEqSizing.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBal->Zone.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBal->Zone(1).Multiplier = 1.0; + state->dataHeatBal->Zone(1).ListMultiplier = 1.0; + + state->dataSize->ZoneSizing.allocate(1, state->dataGlobal->NumOfZones); + state->dataSize->ZoneSizing(1, 1).DOASControlStrategy = DataSizing::DOASControl::NeutralSup; + state->dataSize->CalcZoneSizing.allocate(1, state->dataGlobal->NumOfZones); + state->dataSize->CalcFinalZoneSizing.allocate(state->dataGlobal->NumOfZones); + state->dataSize->FinalZoneSizing.allocate(state->dataGlobal->NumOfZones); + state->dataZoneTempPredictorCorrector->zoneHeatBalance.allocate(state->dataGlobal->NumOfZones); + state->dataZoneEquip->ZoneEquipConfig.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBalFanSys->TempControlType.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBalFanSys->TempZoneThermostatSetPoint.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBalFanSys->ZoneThermostatSetPointLo.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBalFanSys->ZoneThermostatSetPointHi.allocate(state->dataGlobal->NumOfZones); + state->dataZoneEnergyDemand->ZoneSysEnergyDemand.allocate(state->dataGlobal->NumOfZones); + state->dataZoneEnergyDemand->ZoneSysMoistureDemand.allocate(state->dataGlobal->NumOfZones); + auto &zoneSysMoistureDemand = state->dataZoneEnergyDemand->ZoneSysMoistureDemand(1); + state->dataZoneEnergyDemand->DeadBandOrSetback.allocate(state->dataGlobal->NumOfZones); + state->dataZoneEnergyDemand->CurDeadBandOrSetback.allocate(state->dataGlobal->NumOfZones); + state->dataZoneEquip->ZoneEquipConfig(1).InletNode.allocate(2); + state->dataZoneEquip->ZoneEquipConfig(1).ExhaustNode.allocate(1); + state->dataHeatBalFanSys->ZoneMassBalanceFlag.allocate(state->dataGlobal->NumOfZones); + state->dataHeatBal->MassConservation.allocate(state->dataGlobal->NumOfZones); + HeatBalanceManager::AllocateHeatBalArrays(*state); + state->dataHeatBalFanSys->TempControlType(1) = DataHVACGlobals::ThermostatType::DualSetPointWithDeadBand; + state->dataHeatBalFanSys->TempZoneThermostatSetPoint(1) = 23.5; + state->dataHeatBalFanSys->ZoneThermostatSetPointLo(1) = 22.5; + state->dataHeatBalFanSys->ZoneThermostatSetPointHi(1) = 23.5; + state->dataZoneEquip->ZoneEquipConfig(1).IsControlled = true; + state->dataSize->CalcZoneSizing(1, 1).ZoneNum = 1; + state->dataSize->CurOverallSimDay = 1; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).TotalOutputRequired = -23710.957638822721; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToHeatingSP = -23710.957638822721; + state->dataZoneEnergyDemand->ZoneSysEnergyDemand(1).OutputRequiredToCoolingSP = -26404.193133207900; + zoneSysMoistureDemand.TotalOutputRequired = 0.0; + zoneSysMoistureDemand.OutputRequiredToHumidifyingSP = 0.0; + zoneSysMoistureDemand.OutputRequiredToDehumidifyingSP = 0.0; + state->dataZoneEnergyDemand->DeadBandOrSetback(1) = true; + state->dataZoneEnergyDemand->CurDeadBandOrSetback(1) = true; + state->dataZoneEquip->ZoneEquipConfig(1).ZoneNode = 4; + state->dataZoneEquip->ZoneEquipConfig(1).NumInletNodes = 2; + state->dataZoneEquip->ZoneEquipConfig(1).NumExhaustNodes = 1; + state->dataZoneEquip->ZoneEquipConfig(1).InletNode(1) = 1; + state->dataZoneEquip->ZoneEquipConfig(1).InletNode(2) = 2; + state->dataZoneEquip->ZoneEquipConfig(1).ExhaustNode(1) = 3; + state->dataZoneEquip->ZoneEquipConfig(1).NumReturnNodes = 0; + state->dataEnvrn->StdBaroPress = 101325.; + state->dataEnvrn->StdRhoAir = 1.20; + + state->dataSize->CalcFinalZoneSizing(1).AccountForDOAS = true; + state->dataSize->CalcFinalZoneSizing(1).MinOA = 3.672; + state->dataSize->CalcFinalZoneSizing(1).OutTempAtCoolPeak = 32.12; + state->dataEnvrn->OutDryBulbTemp = 32.12; + state->dataEnvrn->OutHumRat = 0.01446; + state->dataLoopNodes->Node(4).Temp = 23.90; + state->dataLoopNodes->Node(4).HumRat = 0.01446; + state->dataHeatBal->ZoneAirMassFlow.EnforceZoneMassBalance = false; + state->dataHeatBalFanSys->ZoneMassBalanceFlag(1) = false; + + state->dataZoneEquipmentManager->SizeZoneEquipmentOneTimeFlag = false; + SizeZoneEquipment(*state); + UpdateZoneSizing(*state, Constant::CallIndicator::BeginDay); + state->dataSize->ZoneSizThermSetPtHi.allocate(state->dataGlobal->NumOfZones); + state->dataSize->ZoneSizThermSetPtLo.allocate(state->dataGlobal->NumOfZones); + state->dataSize->ZoneSizThermSetPtHi(1) = 23.5; + state->dataSize->ZoneSizThermSetPtLo(1) = 22.5; + state->dataGlobal->HourOfDay = 1; + state->dataGlobal->NumOfTimeStepInHour = 1; + state->dataGlobal->TimeStep = 1; + state->dataSize->NumTimeStepsInAvg = 1; + state->dataHVACGlobal->FracTimeStepZone = 1; + state->dataEnvrn->TotDesDays = 1; + state->dataZoneEquipmentManager->NumOfTimeStepInDay = 1; + state->dataSize->DesDayWeath.allocate(1); + state->dataSize->DesDayWeath(1).Temp.allocate(1); + state->dataSize->DesDayWeath(1).Temp(1) = 32.12; + state->dataZoneEquipmentManager->AvgData.allocate(1); + state->dataSize->ZoneSizing(1, 1).allocateMemberArrays(1); + state->dataSize->CalcZoneSizing(1, 1).allocateMemberArrays(1); + state->dataSize->CalcFinalZoneSizing(1).allocateMemberArrays(1); + state->dataSize->FinalZoneSizing(1).allocateMemberArrays(1); + + auto &calcZoneSizing = state->dataSize->CalcZoneSizing(1, 1); + auto &finalZoneSizing = state->dataSize->FinalZoneSizing(1); + auto &calcFinalZoneSizing = state->dataSize->CalcFinalZoneSizing(1); + calcZoneSizing.DOASControlStrategy = DataSizing::DOASControl::NeutralSup; + calcZoneSizing.AccountForDOAS = true; + calcZoneSizing.DOASLowSetpoint = 22.0; + calcZoneSizing.DOASHighSetpoint = 23.0; + finalZoneSizing.DOASControlStrategy = DataSizing::DOASControl::NeutralSup; + finalZoneSizing.AccountForDOAS = true; + finalZoneSizing.DOASLowSetpoint = calcZoneSizing.DOASLowSetpoint; + finalZoneSizing.DOASHighSetpoint = calcZoneSizing.DOASHighSetpoint; + UpdateZoneSizing(*state, Constant::CallIndicator::DuringDay); + UpdateZoneSizing(*state, Constant::CallIndicator::EndDay); + state->dataGlobal->isPulseZoneSizing = true; + UpdateZoneSizing(*state, Constant::CallIndicator::EndZoneSizingCalc); + // verify no heating or cooling load + EXPECT_DOUBLE_EQ(0.0, calcZoneSizing.HeatLoad); + EXPECT_DOUBLE_EQ(0.0, calcZoneSizing.CoolLoad); + // check for correct TstatTemps + EXPECT_DOUBLE_EQ(22.5, calcZoneSizing.HeatTstatTemp); + EXPECT_DOUBLE_EQ(23.5, calcZoneSizing.CoolTstatTemp); + // New calculated design values that get reported in the Zone Sensible Heating/Cooling table + EXPECT_DOUBLE_EQ(23.9, calcFinalZoneSizing.ZoneTempAtHeatPeak); + EXPECT_DOUBLE_EQ(23.9, calcFinalZoneSizing.ZoneTempAtCoolPeak); + // turn on latent sizing + calcZoneSizing.zoneLatentSizing = false; + SizeZoneEquipment(*state); + // test sizing results when no sensible load exists + auto &zoneNode = state->dataLoopNodes->Node(4); + auto &supplyNode = state->dataLoopNodes->Node(1); + // check supply air and zone condition + EXPECT_NEAR(zoneNode.Temp, 23.9, 0.000001); + EXPECT_NEAR(supplyNode.Temp, 23.0, 0.000001); + EXPECT_NEAR(zoneNode.HumRat, 0.01446, 0.000001); + EXPECT_NEAR(supplyNode.HumRat, 0.01446, 0.000001); + EXPECT_NEAR(supplyNode.MassFlowRate, 4.4064, 0.000001); + // check for correct doas loads and supply conditions + EXPECT_NEAR(4.4064, calcZoneSizing.DOASSupMassFlow, 0.00001); + EXPECT_NEAR(23.0, calcZoneSizing.DOASSupTemp, 0.001); + EXPECT_NEAR(0.01446, calcZoneSizing.DOASSupHumRat, 0.001); + EXPECT_NEAR(-4091.6, calcZoneSizing.DOASCoolLoad, 0.1); + EXPECT_NEAR(-4091.6, calcZoneSizing.DOASTotCoolLoad, 0.1); + EXPECT_NEAR(0.0, calcZoneSizing.DOASHeatLoad, 0.0001); + // check calculated doas mass flow rate + Real64 doas_mdot_result = calcFinalZoneSizing.MinOA * state->dataEnvrn->StdRhoAir; + EXPECT_NEAR(4.4064, doas_mdot_result, 0.000001); + EXPECT_NEAR(supplyNode.MassFlowRate, doas_mdot_result, 0.000001); + Real64 doas_temp = supplyNode.Temp; + Real64 doas_humrat = supplyNode.HumRat; + Real64 zone_temp = zoneNode.Temp; + Real64 zone_humrat = zoneNode.HumRat; + Real64 SensibleOutput; + Real64 TotalOutput; + // calculate the DOAS loads + SensibleOutput = doas_mdot_result * Psychrometrics::PsyDeltaHSenFnTdb2Tdb1W(doas_temp, zone_temp, doas_humrat); + TotalOutput = doas_mdot_result * (Psychrometrics::PsyHFnTdbW(doas_temp, doas_humrat) - Psychrometrics::PsyHFnTdbW(zone_temp, zone_humrat)); + // check sensible and total doas zone loads + EXPECT_NEAR(SensibleOutput, -4091.6, 0.1); // W + EXPECT_NEAR(TotalOutput, -4091.6, 0.1); // W +}