Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/origin/develop' into FixMinFiel…
Browse files Browse the repository at this point in the history
…dsAndIdfEd
  • Loading branch information
mjwitte committed Jan 15, 2020
2 parents 76953b2 + 80db327 commit 0eff486
Show file tree
Hide file tree
Showing 264 changed files with 105,384 additions and 11,857 deletions.
9 changes: 6 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ set( CMAKE_VERSION_MAJOR 9 )
set( CMAKE_VERSION_MINOR 3 )
set( CMAKE_VERSION_PATCH 0 )

set( CMAKE_POSITION_INDEPENDENT_CODE ON )

set( PREV_RELEASE_SHA "921312f" )

set( ENERGYPLUS_VERSION "${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}" )
Expand Down Expand Up @@ -181,6 +183,7 @@ ADD_SUBDIRECTORY(third_party/FMI)
ADD_SUBDIRECTORY(third_party/zlib)
ADD_SUBDIRECTORY(third_party/DElight)
ADD_SUBDIRECTORY(third_party/re2)
ADD_SUBDIRECTORY(third_party/fmt-6.1.2 )

ADD_SUBDIRECTORY(scripts/dev/generate_embeddable_epJSON_schema)
IF( NOT APPLE )
Expand Down Expand Up @@ -239,9 +242,9 @@ if( BUILD_FORTRAN )
cmake_add_fortran_subdirectory(src/ReadVars PROJECT ReadVars NO_EXTERNAL_INSTALL )
set(TRANSITION_EXTRA_FLAGS "-DCMAKE_VERSION_MAJOR:STRING=${CMAKE_VERSION_MAJOR}" "-DCMAKE_VERSION_MINOR:STRING=${CMAKE_VERSION_MINOR}" "-DCMAKE_VERSION_PATCH:STRING=${CMAKE_VERSION_PATCH}")
cmake_add_fortran_subdirectory(src/Transition PROJECT Transition CMAKE_COMMAND_LINE ${TRANSITION_EXTRA_FLAGS} NO_EXTERNAL_INSTALL )
file( COPY "idd/V9-1-0-Energy+.idd" DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
configure_file( idd/Energy+.idd.in "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/V9-2-0-Energy+.idd" )
file( COPY "src/Transition/SupportFiles/Report Variables 9-1-0 to 9-2-0.csv" DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
file( COPY "idd/V9-2-0-Energy+.idd" DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
configure_file( idd/Energy+.idd.in "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/V9-3-0-Energy+.idd" )
file( COPY "src/Transition/SupportFiles/Report Variables 9-2-0 to 9-3-0.csv" DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" )
cmake_add_fortran_subdirectory(src/Basement PROJECT Basement NO_EXTERNAL_INSTALL )
cmake_add_fortran_subdirectory(src/HVAC-Diagram PROJECT HVAC-Diagram NO_EXTERNAL_INSTALL )
cmake_add_fortran_subdirectory(src/ParametricPreprocessor PROJECT ParametricPreprocessor NO_EXTERNAL_INSTALL )
Expand Down
49 changes: 49 additions & 0 deletions design/FY2019/Carroll-MRT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
Carroll Mean Radiant Temperature option for Interior Radiant Exchange
=====================================================================

**Neal Kruis, Big Ladder Software, LLC**

## Justification for New Feature ##

A well-known performance bottleneck in EnergyPlus is the calculation of interior long-wave radiation exchange. This is a dense-matrix, linear algebra problem with O(n^2 ) complexity. One approach used in other programs with comparable accuracy is the Carroll method (see Carroll 1980, 1980a, & 1981). There are several similar MRT methods with linear complexity including methdods by Walton (used in BLAST) and Seem (used in TRNSYS). Unlike Walton's method, Carroll's method balances radiant heat without an additional term to balance the heat flow between surfaces.

## Approach ##

The Carroll method is an approximation of gray-body long-wave radiation exchange within an enclosure that simplifies the surface-to-surface radiation exchange by using a single, mean radiant temperature node, Tr, that act as a clearinghouse for the radiation heat exchange between surfaces. Instead of solving a dense-matrix, linear algebra problem, the mean radiant temperature can be calculated using a single equation, and subsequently used to determine the net long-wave radiation to/from each surface. Unlike the O(n^2 ) complexity of the current dense-matrix solution, this approach has linear complexity.

The mean radiant temperature is calculated using three steps:

1. Calculation of the mean radiant temperature “view factor”, Fi. These view factors represent each surface’s “view” to the mean radiant temperature node as though all surfaces were part of a spherical enclosure (i.e., they all have equal view of the node regardless of their orientation to each other). Fi is calculated as:

$$F_i=\frac{1}{1-\frac{A_i F_i}{\sum_1^n{A_j F_j} }}$$

Because of the circular reference in this equation, the collection of all “view factors” must be solved iteratively, but only once per simulation as surface areas do not change throughout. This converges for realistic enclosures but won’t necessarily converge for “enclosures” having only two or three surfaces, particularly if there are large area disparities.

2. Calculating the gray-body radiation resistance, F’i. This calculation must be computed every time surface emissivity changes. F’i is calculated as:

$$F'_i=\frac{\sigma\varepsilon_i}{\frac{\varepsilon_i}{F_i} +1-\varepsilon_i}$$

3. Finally, the mean radiant temperature, Tr, is:

$$T_r=\frac{\sum_1^nA_i F'_i T_i}{\sum_1^nA_i F'_i}$$

Once the mean radiant temperature is known, the net radiation heat transfer for each surface can be calculated as:

$$q=F'_i A_i (T_r^4-T_i^4)$$


## Input Output Reference Documentation ##

See proposed changes in [Energy+.idd.in](https://github.com/NREL/EnergyPlus/pull/7534/files#diff-23ccf090b80d26e885712256b9a6d888). Will draft document once IDD is reviewed.

## Engineering Reference ##

See approach.

## References ##

Carroll, J. A., 1980, An ‘MRT Method’ of Computing Radiant Energy Exchange in Rooms, Proceedings of the Second Systems Simulation and Economic Analysis Conference, San Diego, CA.

Carroll, J. A., 1980a, "An MRT method of computing radiant energy exchange in rooms," Proceedings of the 2nd Systems Simulation and Economic Analysis Conference, San Diego, CA.

Carroll, J. A., 1981, "A Comparison of Radiant Interchange Algorithms," Proceedings of the 3rd Annual Systems Simulation and Economics Analysis/Solar Heating and Cooling Operational Results Conference, Reno. Solar Engineering, Proceedings of the ASME Solar division.
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@ \subsubsection{LW Radiation Exchange Among Zone Surfaces}\label{lw-radiation-exc

The limiting case of completely absorbing air has been used for load calculations and also in some energy analysis calculations.~ This model is attractive because it can be formulated simply using a combined radiation and convection heat transfer coefficient from each surface to the zone air.~ However, it oversimplifies the zone surface exchange problem, and as a result, the heat balance formulation in EnergyPlus treats air as completely transparent.~ This means that it does not participate in the LW radiation exchange among the surfaces in the zone. The model, which considers room air to be completely transparent, is reasonable physically because of the low water vapor concentrations and the short mean path lengths.~ It also permits separating the radiant and convective parts of the heat transfer at the surface, which is an important attribute of the heat balance method.

EnergyPlus uses a grey interchange model for the longwave radiation among zone surfaces.~ This model is based on the ``ScriptF'' concept developed by Hottel (Hottel and Sarofim, Radiative Transfer, Chapter 3, McGraw Hill, 1967).~ This procedure relies on a matrix of exchange coefficients between pairs of surfaces that include all exchange paths between the surfaces.~ In other words all reflections, absorptions and re-emissions~ from other surfaces in the enclosure are included in the exchange coefficient, which is called ScriptF.~ The major assumptions are that all surface radiation properties are grey and all radiation is diffuse.~ Both assumptions are reasonable for building zone interchange.
EnergyPlus uses a grey interchange model for the longwave radiation among zone surfaces. EnergyPlus offers two algorithms for modeling long wave radiation: The ``ScriptF'' method, and the ``CarrollMRT'' methods. Users can select between these two algorithms using the ``PerformancePrecisionTradeoffs'' object.

\paragraph{ScriptF}

The ``ScriptF'' algorithm was developed by Hottel (Hottel and Sarofim, Radiative Transfer, Chapter 3, McGraw Hill, 1967).~ This procedure relies on a matrix of exchange coefficients between pairs of surfaces that include all exchange paths between the surfaces.~ In other words all reflections, absorptions and re-emissions~ from other surfaces in the enclosure are included in the exchange coefficient, which is called ScriptF.~ The major assumptions are that all surface radiation properties are grey and all radiation is diffuse.~ Both assumptions are reasonable for building zone interchange.

~The ScriptF coefficients are developed by starting with the traditional direct radiation view factors.~ In the case of building rooms and zones, there are several complicating factors in finding the direct view factors---the main one being that the location of surfaces such as thermal mass representing furniture and partitions are not known.~ The other limitation is that the exact calculation of direct view factors is computationally very intensive even if the positions of all surfaces are known. Accordingly, EnergyPlus uses a procedure to approximate the direct view factors.~ The procedure has two steps:

Expand Down Expand Up @@ -88,6 +92,48 @@ \subsubsection{LW Radiation Exchange Among Zone Surfaces}\label{lw-radiation-exc

where \textbf{\emph{F}}\(_{i,j}\) is the ScriptF between surfaces i and j.

\paragraph{CarrollMRT}

The Carroll method is an approximation of gray-body long-wave radiation exchange within an enclosure that simplifies the surface-to-surface radiation exchange by using a single, mean radiant temperature node, $Tr$, that acts as a clearinghouse for the radiation heat exchange between surfaces. Instead of solving a dense-matrix, linear algebra problem, the mean radiant temperature can be calculated using a single equation, and subsequently used to determine the net long-wave radiation to/from each surface. Unlike the $O(n^2)$ complexity of the current dense-matrix solution, this approach has linear complexity.

The mean radiant temperature is calculated using three steps:

\begin{enumerate}
\item Calculation of the mean radiant temperature ``view factor'', $Fi$. These view factors represent each surface's ``view'' to the mean radiant temperature node as though all surfaces were part of a spherical enclosure (i.e., they all have equal view of the node regardless of their orientation to each other). $Fi$ is calculated as:

\begin{equation}
F_i=\frac{1}{1-\frac{A_i F_i}{\sum_1^n{A_j F_j} }}
\end{equation}

Because of the circular reference in this equation, the collection of all ``view factors'' must be solved iteratively, but only once per simulation as surface areas do not change throughout. This converges for realistic enclosures but won't necessarily converge for ``enclosures'' having only two or three surfaces, particularly if there are large area disparities.

\item Calculating the gray-body radiation resistance, $F'i$. This calculation must be computed every time surface emissivity changes. $F'i$ is calculated as:

\begin{equation}
F'_i=\frac{\sigma\varepsilon_i}{\frac{\varepsilon_i}{F_i} +1-\varepsilon_i}
\end{equation}

\item Finally, the mean radiant temperature, $Tr$, is:

\begin{equation}
T_r=\frac{\sum_1^nA_i F'_i T_i}{\sum_1^nA_i F'_i}
\end{equation}

\end{enumerate}

Once the mean radiant temperature is known, the net radiation heat transfer for each surface can be calculated as:

\begin{equation}
q=F'_i A_i (T_r^4-T_i^4)
\end{equation}

Carroll, J. A., 1980, ``An `MRT Method' of Computing Radiant Energy Exchange in Rooms,'' Proceedings of the Second Systems Simulation and Economic Analysis Conference, San Diego, CA.

Carroll, J. A., 1980a, ``An MRT method of computing radiant energy exchange in rooms,'' Proceedings of the 2nd Systems Simulation and Economic Analysis Conference, San Diego, CA.

Carroll, J. A., 1981, ``A Comparison of Radiant Interchange Algorithms,'' Proceedings of the 3rd Annual Systems Simulation and Economics Analysis/Solar Heating and Cooling Operational Results Conference, Reno. Solar Engineering, Proceedings of the ASME Solar division.


\subsubsection{Thermal Mass and Furniture}\label{thermal-mass-and-furniture}

Furniture in a zone has the effect of increasing the amount of surface area that can participate in the radiation and convection heat exchanges.~ It also adds participating thermal mass to the zone.~ These two changes both affect the response to temperature changes in the zone and also affect the heat extraction characteristics.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,15 @@ \subsubsection{Inputs}\label{inputs-1-024}

If the choice in the Solar Model Indicator field is ASHRAEClearSky or ZhangHuang, then this numeric field should be entered. This value represents the ``clearness'' value for the day. This value, along with the solar position as defined by the Location information and the date entered for the design day, help define the solar radiation values for each hour of the day. Clearness may range from 0.0 to 1.2, where 1.0 represents a clear sky at sea level. Values greater than 1.0 may be used for high altitude locations. Traditionally, one uses 0.0 clearness for Winter Design Days. Note that this ``sky clearness'' does not have the same meaning as output variable ``Site Daylighting Model Sky Clearness''.

\paragraph{Field: Maximum Number Warmup Days}\label{field-max-num-warm-days}

Optional integer number of days for an upper limit on the number of warmup days when running this sizing period. This overrides the global maximum set in the Building object for this particular design day.

\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.


IDF Examples:

\begin{lstlisting}
Expand Down
Loading

6 comments on commit 0eff486

@nrel-bot-3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FixMinFieldsAndIdfEd (mjwitte) - x86_64-MacOS-10.13-clang: OK (2602 of 2602 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FixMinFieldsAndIdfEd (mjwitte) - x86_64-Linux-Ubuntu-18.04-gcc-7.4: OK (2642 of 2642 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FixMinFieldsAndIdfEd (mjwitte) - x86_64-Linux-Ubuntu-18.04-cppcheck: OK (0 of 0 tests passed, 0 test warnings)

Build Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FixMinFieldsAndIdfEd (mjwitte) - x86_64-Linux-Ubuntu-18.04-custom_check: OK (11 of 11 tests passed, 0 test warnings)

Build Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FixMinFieldsAndIdfEd (mjwitte) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-UnitTestsCoverage-Debug: OK (1258 of 1258 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FixMinFieldsAndIdfEd (mjwitte) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-IntegrationCoverage-Debug: OK (675 of 676 tests passed, 0 test warnings)

Failures:\n

integration Test Summary

  • Passed: 675
  • Timeout: 1

Build Badge Test Badge Coverage Badge

Please sign in to comment.