diff --git a/.decent_ci-Linux.yaml b/.decent_ci-Linux.yaml index 80916220ba9..b76c25ab9d0 100644 --- a/.decent_ci-Linux.yaml +++ b/.decent_ci-Linux.yaml @@ -6,7 +6,7 @@ compilers: release_build_training_cmake_extra_flags: -DPROFILE_GENERATE:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF release_build_training_ctest_filter: -R "integration.(RefBldg.*|.*Slab|.*[^g]Basement|.*5Zone.*|Rad|Pip|.*Network.*|Window|CentralChillerHeaterSystem_Cooling_Heating|CmplxGlz_.*|ConvectionAdaptiveSmallOffice|DElight.*|DaylightingDevice.*|DisplacementVent_Nat_AirflowNetwork_AdaptiveComfort|DOADualDuctSchool|EMS.*|Flr_Rf_8Sides|FluidCooler|GSHP.*|GeneratorswithPV|HeatPumpWaterToAir.*|HospitalBaselineReheatReportEMS|HospitalLowEnergy|MicroCogeneration|PlantApplicationsGuide.*|PlateHeatExchanger|PurchAirWithDaylighting|RefrigeratedWarehouse|SolarCollectorFlatPlateWater|SurfaceTest|ThermalChimneyTest|UserDefinedRoomAirPatterns|VSHeatPumpWaterToAirEquationFit|WaterHeater.*|_CTFTestsPart2|_HybridVentilationControlGlobalAN|CentralChillerHeaterSystem)" release_build_cmake_extra_flags: -DPROFILE_GENERATE:BOOL=OFF -DPROFILE_USE:BOOL=ON -DENABLE_LTO:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=ON - cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE: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=$COMMIT_SHA + cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE: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=$COMMIT_SHA -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF - name: cppcheck compiler_extra_flags: --enable=warning --suppress="*:*gtest*" --suppress="constStatement:*Objex*" --suppress="cppcheckError:*" --suppress="uninitvar:*" --suppress="syntaxError:*" --suppress="*:*sqlite*" --suppress="invalidscanf:*DElight*" --suppress="uninitMemberVar:*DElight*" --suppress="invalidScanfArgType_int:*DElight*" @@ -15,7 +15,7 @@ compilers: version: "4.8" build_type: Debug build_package_generator: "STGZ" - cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DREGRESSION_BASELINE_PATH:PATH=$REGRESSION_BASELINE -DREGRESSION_SCRIPT_PATH:PATH=$REGRESSION_DIR -DREGRESSION_BASELINE_SHA:STRING=$REGRESSION_BASELINE_SHA -DCOMMIT_SHA=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON + cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DREGRESSION_BASELINE_PATH:PATH=$REGRESSION_BASELINE -DREGRESSION_SCRIPT_PATH:PATH=$REGRESSION_DIR -DREGRESSION_BASELINE_SHA:STRING=$REGRESSION_BASELINE_SHA -DCOMMIT_SHA=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF coverage_enabled: true coverage_base_dir: src/EnergyPlus coverage_pass_limit: 2.32 @@ -31,7 +31,7 @@ compilers: version: "4.8" build_type: Debug build_package_generator: "STGZ" - cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DREGRESSION_BASELINE_PATH:PATH=$REGRESSION_BASELINE -DREGRESSION_SCRIPT_PATH:PATH=$REGRESSION_DIR -DREGRESSION_BASELINE_SHA:STRING=$REGRESSION_BASELINE_SHA -DCOMMIT_SHA=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON + cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DREGRESSION_BASELINE_PATH:PATH=$REGRESSION_BASELINE -DREGRESSION_SCRIPT_PATH:PATH=$REGRESSION_DIR -DREGRESSION_BASELINE_SHA:STRING=$REGRESSION_BASELINE_SHA -DCOMMIT_SHA=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF coverage_enabled: true coverage_base_dir: src/EnergyPlus coverage_pass_limit: 68.88 diff --git a/.decent_ci-MacOS.yaml b/.decent_ci-MacOS.yaml index b84e0576311..eaf65d53954 100644 --- a/.decent_ci-MacOS.yaml +++ b/.decent_ci-MacOS.yaml @@ -1,5 +1,5 @@ compilers: - name: clang release_build_cmake_extra_flags: -DENABLE_LTO:BOOL=ON - cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE: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=$COMMIT_SHA + cmake_extra_flags: -DBUILD_FORTRAN=ON -DBUILD_PACKAGE: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=$COMMIT_SHA -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF diff --git a/.decent_ci-Windows.yaml b/.decent_ci-Windows.yaml index a6c7ada44b3..c02f047891d 100644 --- a/.decent_ci-Windows.yaml +++ b/.decent_ci-Windows.yaml @@ -3,13 +3,13 @@ compilers: version: 12 release_build_enable_pgo: false release_build_cmake_extra_flags: -DENABLE_LTO:BOOL=ON - cmake_extra_flags: -DBUILD_FORTRAN:BOOL=ON -DBUILD_PACKAGE: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=%COMMIT_SHA% + cmake_extra_flags: -DBUILD_FORTRAN:BOOL=ON -DBUILD_PACKAGE: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=%COMMIT_SHA% -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF - name: Visual Studio version: 12 architecture: Win64 release_build_enable_pgo: false release_build_cmake_extra_flags: -DENABLE_LTO:BOOL=ON - cmake_extra_flags: -DBUILD_FORTRAN:BOOL=ON -DBUILD_PACKAGE: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=%COMMIT_SHA% + cmake_extra_flags: -DBUILD_FORTRAN:BOOL=ON -DBUILD_PACKAGE: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=%COMMIT_SHA% -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e5e153f75c..6f8122e83f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH} set( CMAKE_VERSION_MAJOR 8 ) set( CMAKE_VERSION_MINOR 2 ) -set( CMAKE_VERSION_PATCH 8 ) +set( CMAKE_VERSION_PATCH 9 ) set( ENERGYPLUS_VERSION "${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}" ) @@ -43,6 +43,9 @@ set(CPACK_PACKAGE_CONTACT "Kyle Benne ") option( BUILD_PACKAGE "Build package" OFF ) option( BUILD_TESTING "Build testing targets" OFF ) option( BUILD_FORTRAN "Build Fortran stuff" OFF ) +# Turning ENABLE_GTEST_DEBUG_MODE ON will cause assertions and exceptions to halt the test case and unwind. +# Turn this option OFF for automated testing. +option( ENABLE_GTEST_DEBUG_MODE "Enable options to help debug test failures" ON ) if( BUILD_TESTING ) option( ENABLE_REGRESSION_TESTING "Enable Regression Tests" OFF ) @@ -182,14 +185,14 @@ endif() set(OPTIMIZABLE_TARGETS - sqlite objexx bcvtb epexpat epfmiimport miniziplib DElight EnergyPlus EnergyPlusAPI EnergyPlusLib EnergyPlusLib2 + sqlite objexx bcvtb epexpat epfmiimport miniziplib DElight energyplus energyplusapi energypluslib energypluslib2 ) if(NOT APPLE AND NOT MSVC) list(APPEND OPTIMIZABLE_TARGETS parser) endif() if(NOT MSVC) - list(APPEND OPTIMIZABLE_TARGETS objexx_tests EnergyPlus_tests) + list(APPEND OPTIMIZABLE_TARGETS objexx_tests energyplus_tests) endif() if(MSVC AND (PROFILE_GENERATE OR PROFILE_USE OR ENABLE_LTO) ) @@ -260,12 +263,12 @@ elseif (CMAKE_COMPILER_IS_GNUCXX) if(ENABLE_LTO) set_target_properties(${OPTIMIZABLE_TARGETS} PROPERTIES LINK_FLAGS "-flto=7 -fno-use-linker-plugin" COMPILE_FLAGS "-flto=7 -fno-use-linker-plugin") - set_target_properties(EnergyPlus + set_target_properties(energyplus PROPERTIES LINK_FLAGS "-flto=7 -fuse-linker-plugin -fwhole-program" COMPILE_FLAGS "-flto=7 -fuse-linker-plugin -fwhole-program") endif() if (PROFILE_GENERATE) - set_target_properties(${OPTIMIZABLE_TARGETS} EnergyPlus_tests TestEnergyPlusCallbacks + set_target_properties(${OPTIMIZABLE_TARGETS} energyplus_tests TestEnergyPlusCallbacks PROPERTIES LINK_FLAGS "-fprofile-generate" COMPILE_FLAGS "-fprofile-generate") endif() @@ -277,12 +280,12 @@ elseif (CMAKE_COMPILER_IS_GNUCXX) if (PROFILE_USE AND ENABLE_LTO) set_target_properties(${OPTIMIZABLE_TARGETS} PROPERTIES LINK_FLAGS "-flto=7 -fno-use-linker-plugin -fprofile-use" COMPILE_FLAGS "-flto=7 -fno-use-linker-plugin -fprofile-use") - set_target_properties(EnergyPlus + set_target_properties(energyplus PROPERTIES LINK_FLAGS "-flto=7 -fuse-linker-plugin -fwhole-program -fprofile-use" COMPILE_FLAGS "-flto=7 -fuse-linker-plugin -fwhole-program -fprofile-use") endif() elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" ) # Clang if(ENABLE_LTO) - set_target_properties(EnergyPlus + set_target_properties(energyplus PROPERTIES LINK_FLAGS "-flto" COMPILE_FLAGS "-flto") endif() diff --git a/README.md b/README.md index ac7bd2ba814..23a26893eb7 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ The C++ code in EnergyPlus utilizes many C++11 features, and so a modern compile 6. Check the configuration settings, keeping them default should suffice, and click Generate. 7. Browse to the build folder and there will be a Visual Studio solution file you can click on, EnergyPlus.sln. It will include multiple projects for each build target. Choose the type of build (Debug or Release), then right click on EnergyPlus in the solution explorer and "Build". This will build EnergyPlus and all of its dependencies. The target executables will be found in the Products subfolder. 8. The solution will include the ZERO_CHECK project as the default target to run when you execute, so when you are ready to debug, manually set the default target to EnergyPlus. -9. In the EnergyPlus and EnergyPlusLib projects: right click on each project and select Properties. Under Configuration Properties select Debugging. In the Enviroment field, enter ```_NO_DEBUG_HEAP=1```. The debug heap in Visual Studio doesn't play nicely with the input processor in EnergyPlus, and for debug builds, skipping this will result in a _very_ long IDD reading time. +9. In the EnergyPlus and EnergyPlusLib projects: right click on each project and select Properties. Under Configuration Properties select Debugging. In the Environment field, enter ```_NO_DEBUG_HEAP=1```. The debug heap in Visual Studio doesn't play nicely with the input processor in EnergyPlus, and for debug builds, skipping this will result in a _very_ long IDD reading time. ## Linux @@ -61,5 +61,5 @@ These instructions were written for Mac OS X Version 10.9. Newer versions of OS # Building Installer Packages -Buildling an installer package is simply a matter of compiling the "Package" target. On Windows you must have the NSIS tool installed first. On Mac you must install PackageMaker. Once the appropriate packaging tool is installed, use the CMake interface to turn on the "BUILD\_PACKAGE" option and regenerate the project. A separate repository contains many binary pieces that are downloaded during the process of compilling the installer. These are being transitioned to build from source where possible, in which case they will end up in this repository along with the other source. Because this content is automatically downloaded from a separate GitHub repository during the packaging process, you will need to have an internet connection while generating an installer. The completed installer package will be copied into the root of the build directory. +Building an installer package is simply a matter of compiling the "Package" target. On Windows you must have the NSIS tool installed first. On Mac you must install PackageMaker. Once the appropriate packaging tool is installed, use the CMake interface to turn on the "BUILD\_PACKAGE" option and regenerate the project. A separate repository contains many binary pieces that are downloaded during the process of compiling the installer. These are being transitioned to build from source where possible, in which case they will end up in this repository along with the other source. Because this content is automatically downloaded from a separate GitHub repository during the packaging process, you will need to have an internet connection while generating an installer. The completed installer package will be copied into the root of the build directory. diff --git a/cmake/CompilerFlags.cmake b/cmake/CompilerFlags.cmake index 256400209a2..c376fc41836 100644 --- a/cmake/CompilerFlags.cmake +++ b/cmake/CompilerFlags.cmake @@ -1,41 +1,44 @@ # Compiler-agnostic compiler flags first -ADD_CXX_DEBUG_DEFINITIONS("-DOBJEXXFCL_FARRAY_INIT -DOBJEXXFCL_FARRAY_INIT_DEBUG") # Objexx DEFinition - +ADD_CXX_DEFINITIONS("-DOBJEXXFCL_ARRAY_NOALIGN") # Disable experimental ObjexxFCL array alignment +ADD_CXX_DEBUG_DEFINITIONS("-DOBJEXXFCL_FARRAY_INIT_DEBUG") # Initialize ObjexxFCL arrays to aid debugging + # Make sure expat is compiled as a static library ADD_DEFINITIONS("-DXML_STATIC") -IF ( MSVC ) # visual c++ (VS 2013) +IF ( MSVC ) # Visual C++ (VS 2013) - # Disabled Warnings: - # 4244 Narrowing conversions - # 4258 Definition from the loop is ignored - # 4355 Passing this pointer in class initializer (object is incomplete so bases/members can only use this in limited ways) - # 4996 Deprecated" STL functions (that MS has safer, non-std alternatives for) + # Disabled Warnings: Enable some of these as more serious warnings are addressed + # 4101 Unreferenced local variable + # 4102 Unreferenced label + # 4244 Narrowing conversions + # 4258 Definition from the loop is ignored + # 4355 Passing this pointer in class initializer (object is incomplete so bases/members can only use this in limited ways) + # 4996 Deprecated functions (/D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS) # need to figure out how to set this to avoid the major slow-down in debugging: - # Configuration Properties ->Debugging -> Environment, use drop-down list to choose and type _NO_DEBUG_HEAP=1 then click OK + # Configuration Properties ->Debugging -> Environment, use drop-down list to choose and type _NO_DEBUG_HEAP=1 then click OK # COMPILER FLAGS - ADD_CXX_DEFINITIONS("-MP") # Enables multi-processor compilation of source within a single project - - # Za must be set in the individual projects because gtest uses win.h and cannot compile with it - #ADD_DEFINITIONS("-Za") # Disables MS language extensions + ADD_CXX_DEFINITIONS("/nologo") + ADD_CXX_DEFINITIONS("/EHsc") + ADD_CXX_DEFINITIONS("/MP") # Enables multi-processor compilation of source within a single project + ADD_CXX_DEFINITIONS("/W1") # Increase to /W2 then /W3 as more serious warnings are addressed - ADD_CXX_DEFINITIONS("-wd4244 -wd4258 -wd4355 -wd4996") # Disables warning messages listed above - ADD_CXX_DEFINITIONS("-DNOMINMAX") # Avoid build errors due to STL/Windows min-max conflicts - ADD_CXX_DEFINITIONS("-W1") - - # -D_CRT_SECURE_NO_DEPRECATE hides function calls which make the library thread-unsafe - # -D_SCL_SECURE_NO_DEPRECATE is itself deprecated and replaced by _SCL_SECURE_NO_WARNING which is made irrelevant by -wd4996 above - # Todo remove this line entirely - #ADD_DEFINITIONS("-D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES") # ??? + ADD_CXX_DEFINITIONS("/wd4101 /wd4102 /wd4244 /wd4258 /wd4355 /wd4996") # Disables warning messages listed above + ADD_CXX_DEFINITIONS("/DNOMINMAX") # Avoid build errors due to STL/Windows min-max conflicts + ADD_CXX_DEFINITIONS("/DWIN32_LEAN_AND_MEAN") # Excludes rarely used services and headers from compilation + ADD_CXX_DEFINITIONS("/DMSC_EXTENSIONS") # ObjexxFCL needs this when not using /Za # ADDITIONAL RELEASE-MODE-SPECIFIC FLAGS - ADD_CXX_RELEASE_DEFINITIONS("-GS-") # Disable buffer overrun checks for performance in release mode - + ADD_CXX_RELEASE_DEFINITIONS("/GS-") # Disable buffer overrun checks for performance in release mode + + # ADDITIONAL DEBUG-MODE-SPECIFIC FLAGS + ADD_CXX_DEBUG_DEFINITIONS("/Ob0") # Disable inlining + ADD_CXX_DEBUG_DEFINITIONS("/RTCsu") # Runtime checks ELSEIF ( CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" ) # g++/Clang + option(ENABLE_THREAD_SANITIZER "Enable thread sanitizer testing in gcc/clang" FALSE) set(LINKER_FLAGS "") if(ENABLE_THREAD_SANITIZER) @@ -77,40 +80,106 @@ ELSEIF ( CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}") - # COMPILER FLAGS + ADD_CXX_DEFINITIONS("-pipe") # Faster compiler processing ADD_CXX_DEFINITIONS("-std=c++11") # Enable C++11 features in g++ ADD_CXX_DEFINITIONS("-pedantic") # Turn on warnings about constructs/situations that may be non-portable or outside of the standard - # ADD_CXX_DEFINITIONS("-Wall -Wextra -Wno-unused-parameter") # Turn on warnings (all, extra, "???don't warn about unused parameters???") + #ADD_CXX_DEFINITIONS("-Wall -Wextra") # Turn on warnings + ADD_CXX_DEFINITIONS("-Wno-unused-parameter -Wno-unused-variable -Wno-unused-label") # Suppress unused item warnings until more serious ones are addressed + if( CMAKE_COMPILER_IS_GNUCXX ) # g++ + ADD_CXX_DEFINITIONS("-Wno-unused-but-set-parameter -Wno-unused-but-set-variable") # Suppress unused-but-set warnings until more serious ones are addressed + endif() ADD_CXX_DEFINITIONS("-Wno-invalid-source-encoding") - + ADD_CXX_DEFINITIONS("-ffor-scope") + # ADDITIONAL DEBUG-MODE-SPECIFIC FLAGS + IF ( CMAKE_COMPILER_IS_GNUCXX ) # g++ + ADD_CXX_DEBUG_DEFINITIONS("-ffloat-store") # Improve debug run solution stability ADD_CXX_DEBUG_DEFINITIONS("-fsignaling-nans") # Disable optimizations that may have concealed NaN behavior + ENDIF () ADD_CXX_DEBUG_DEFINITIONS("-ggdb") # Produces debugging information specifically for gdb - -ELSEIF ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel" ) - - # Warnings ignored: - # 1786: Use of deprecated items - # 2259: Non-pointer conversion from "type" to "type" may lose significant bits - + +ELSEIF ( WIN32 AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel" ) + + # Disabled Warnings: Enable some of these as more serious warnings are addressed + # 177 Variable declared but never referenced + # 869 Parameter never referenced + # 1786 Use of deprecated items + # 2259 Non-pointer conversions may lose significant bits + # 3280 Declaration hides variable + # 11074 Inlining inhibited + # 11075 Inlining inhibited + # COMPILER FLAGS - #ADD_CXX_DEFINITIONS("/Wall") # Enable "all" warnings - ADD_CXX_DEFINITIONS("/Qdiag-disable:1786,2259") # Disable warnings listed above - ADD_CXX_DEFINITIONS("/DVC_EXTRALEAN /DWIN32_LEAN_AND_MEAN") # Excludes rarely used services and headers from compilation + ADD_CXX_DEFINITIONS("/Qstd=c++11") # Specify C++11 language + ADD_CXX_DEFINITIONS("/Qcxx-features") # Enables standard C++ features without disabling Microsoft extensions + ADD_CXX_DEFINITIONS("/Wall") # Enable "all" warnings + ADD_CXX_DEFINITIONS("/Wp64") # 64-bit warnings + ADD_CXX_DEFINITIONS("/Qdiag-disable:177,869,1786,2259,3280,11074,11075") # Disable warnings listed above ADD_CXX_DEFINITIONS("/DNOMINMAX") # Avoid build errors due to STL/Windows min-max conflicts - + ADD_CXX_DEFINITIONS("/DWIN32_LEAN_AND_MEAN") # Excludes rarely used services and headers from compilation + + # Optimization options that had no significant benefit for EnergyPlus + # /Qinline-factor:200 + # /Qipo instead of /Qip + # /Qopt-prefetch + # /Qparallel + # /Qunroll-aggressive + # /xHost + # ADDITIONAL RELEASE-MODE-SPECIFIC FLAGS + ADD_CXX_RELEASE_DEFINITIONS("/Qansi-alias") # Enables more aggressive optimizations on floating-point data ADD_CXX_RELEASE_DEFINITIONS("/fp:fast") # Enables more aggressive optimizations on floating-point data ADD_CXX_RELEASE_DEFINITIONS("/Qprec-div-") # ???If this is equivalent to /Qno-prec-div, it disables the improved division accuracy in favor of speed ADD_CXX_RELEASE_DEFINITIONS("/Qip") # Enables inter-procedural optimnization within a single file - ADD_CXX_RELEASE_DEFINITIONS("/Qoption,c,-ip_ninl_max_stats=500") # Sets the max increase in the # of intermediate language statements to 500 for each function - ADD_CXX_RELEASE_DEFINITIONS("/Qoption,c,-ip_ninl_max_total_stats=5000") # Sets the total max increase in the # of intermediate language statements to 5000 - + # ADDITIONAL DEBUG-MODE-SPECIFIC FLAGS + ADD_CXX_DEBUG_DEFINITIONS("/fp:source") # Use source-specified floating point precision + ADD_CXX_DEBUG_DEFINITIONS("/Qtrapuv") # Initialize local variables to unusual values to help detect use uninitialized ADD_CXX_DEBUG_DEFINITIONS("/check:stack,uninit") # Enables runtime checking of the stack (buffer over and underruns; pointer verification) and uninitialized variables - ADD_CXX_DEBUG_DEFINITIONS("/Gs0") # ??? Disable/Enable stack checking + ADD_CXX_DEBUG_DEFINITIONS("/Gs0") # Enable stack checking for all functions + ADD_CXX_DEBUG_DEFINITIONS("/GS") # Buffer overrun detection ADD_CXX_DEBUG_DEFINITIONS("/Qfp-stack-check") # Tells the compiler to generate extra code after every function call to ensure fp stack is as expected - ADD_CXX_DEBUG_DEFINITIONS("/Qtrapuv") # ??? Initializes variables with NaN - + ADD_CXX_DEBUG_DEFINITIONS("/traceback") # Enables traceback on error + +ELSEIF ( UNIX AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel" ) + + # Disabled Warnings: Enable some of these as more serious warnings are addressed + # 177 Variable declared but never referenced + # 869 Parameter never referenced + # 1786 Use of deprecated items + # 2259 Non-pointer conversions may lose significant bits + # 3280 Declaration hides variable + # 11074 Inlining inhibited + # 11075 Inlining inhibited + + # COMPILER FLAGS + ADD_CXX_DEFINITIONS("-std=c++11") # Specify C++11 language + ADD_CXX_DEFINITIONS("-Wall") # Enable "all" warnings + ADD_CXX_DEFINITIONS("-Wp64") # 64-bit warnings + ADD_CXX_DEFINITIONS("-diag-disable:177,869,1786,2259,3280,11074,11075") # Disable warnings listed above + + # Optimization options that had no significant benefit for EnergyPlus + # -inline-factor=200 + # -ipo instead of -ip + # -opt-prefetch + # -parallel + # -unroll-aggressive + # -xHost + + # ADDITIONAL RELEASE-MODE-SPECIFIC FLAGS + ADD_CXX_RELEASE_DEFINITIONS("-ansi-alias") # Enables more aggressive optimizations on floating-point data + ADD_CXX_RELEASE_DEFINITIONS("-fp:fast") # Enables more aggressive optimizations on floating-point data + ADD_CXX_RELEASE_DEFINITIONS("-prec-div-") # ???If this is equivalent to /Qno-prec-div, it disables the improved division accuracy in favor of speed + ADD_CXX_RELEASE_DEFINITIONS("-ip") # Enables inter-procedural optimnization within a single file + + # ADDITIONAL DEBUG-MODE-SPECIFIC FLAGS + ADD_CXX_DEBUG_DEFINITIONS("-strict-ansi") # Strict language conformance: Performance impact so limit to debug build + ADD_CXX_DEBUG_DEFINITIONS("-fp-model source") # Use source-specified floating point precision + ADD_CXX_DEBUG_DEFINITIONS("-ftrapuv") # Initialize local variables to unusual values to help detect use uninitialized + ADD_CXX_DEBUG_DEFINITIONS("-check=stack,uninit") # Enables runtime checking of the stack (buffer over and underruns; pointer verification) and uninitialized variables + ADD_CXX_DEBUG_DEFINITIONS("-fstack-security-check") # Buffer overrun detection + ADD_CXX_DEBUG_DEFINITIONS("-fp-stack-check") # Check the floating point stack after every function call + ADD_CXX_DEBUG_DEFINITIONS("-traceback") # Enables traceback on error + ENDIF () # COMPILER TYPE diff --git a/cmake/Install.cmake b/cmake/Install.cmake index 570dcbdc39e..799c5b8e436 100644 --- a/cmake/Install.cmake +++ b/cmake/Install.cmake @@ -269,9 +269,9 @@ if( APPLE ) install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/Mac/Uninstall%20EnergyPlus.app/Contents/Resources/Scripts/main.scpt" "Uninstall EnergyPlus.app/Contents/Resources/Scripts/") install_remote_plist("https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/Mac/Uninstall%20EnergyPlus.app/Contents/Info.plist" "Uninstall EnergyPlus.app/Contents/" "epuninstall") - install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/\\#CoreClasses.rbx_0.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/") - install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/\\#CoreClasses.rbx_1.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/") - install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/\\#CoreClasses.rbx_5.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/") + install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/%23CoreClasses.rbx_0.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/" "#CoreClasses.rbx_0.dylib") + install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/%23CoreClasses.rbx_1.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/" "#CoreClasses.rbx_1.dylib") + install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/%23CoreClasses.rbx_5.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/" "#CoreClasses.rbx_5.dylib") install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/MBS%20REALbasic%20ChartDirector%20Plugin.rbx_0.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/" "MBS REALbasic ChartDirector Plugin.rbx_0.dylib") install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/RBAppearancePak.rbx_0.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks/") install_remote(FILES "https://raw.github.com/NREL/EnergyPlusBuildSupport/v8.2.0/bin/EP-Compare/Run-Mac/EP-Compare.app/Contents/Frameworks/TreeView.rbx_0.dylib" "PostProcess/EP-Compare/EP-Compare.app/Contents/Frameworks") diff --git a/cmake/ProjectMacros.cmake b/cmake/ProjectMacros.cmake index 1dca6ff4425..0ac9ac6d609 100644 --- a/cmake/ProjectMacros.cmake +++ b/cmake/ProjectMacros.cmake @@ -89,6 +89,10 @@ macro( CREATE_TEST_TARGETS BASE_NAME SRC DEPENDENCIES ) if( BUILD_TESTING ) add_executable( ${BASE_NAME}_tests ${SRC} ) + if( ENABLE_GTEST_DEBUG_MODE ) + set_target_properties(${BASE_NAME}_tests PROPERTIES COMPILE_DEFINITIONS ENABLE_GTEST_DEBUG_MODE) + endif() + CREATE_SRC_GROUPS( "${SRC}" ) get_target_property(BASE_NAME_TYPE ${BASE_NAME} TYPE) @@ -103,7 +107,6 @@ macro( CREATE_TEST_TARGETS BASE_NAME SRC DEPENDENCIES ) target_link_libraries( ${BASE_NAME}_tests ${ALL_DEPENDENCIES} gtest - gtest_main ) ADD_GOOGLE_TESTS( ${BASE_NAME}_tests ${SRC} ) diff --git a/idd/Energy+.idd.in b/idd/Energy+.idd.in index 702983aed92..e5b62681802 100644 --- a/idd/Energy+.idd.in +++ b/idd/Energy+.idd.in @@ -372,7 +372,7 @@ Version, \format singleLine A1 ; \field Version Identifier \required-field - \default 7.0 + \default ${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR} SimulationControl, \unique-object @@ -1736,17 +1736,17 @@ Site:GroundDomain:Slab, \default 5 \units m \minimum> 0.0 - N4, \field Soil Thermal Conductivity + N4, \field Soil Thermal Conductivity \type real \default 1.5 \units W/m-K \minimum> 0.0 - N5, \field Soil Density + N5, \field Soil Density \type real \default 2800 \units kg/m3 \minimum> 0.0 - N6, \field Soil Specific Heat + N6, \field Soil Specific Heat \type real \default 850 \units J/kg-K @@ -4772,8 +4772,8 @@ WindowMaterial:Glazing, \note coefficient used for deflection calculations. Used only with complex \note fenestration when deflection model is set to TemperatureAndPressureInput \type real - \minimum > 0.0 - \maximum < 1.0 + \minimum> 0.0 + \maximum< 1.0 \default 0.22 WindowMaterial:GlazingGroup:Thermochromic, @@ -5233,7 +5233,7 @@ WindowMaterial:Gas, N12 ;\field Specific Heat Ratio \type real \note Used only if Gas Type = Custom - \minimum >1.0 + \minimum> 1.0 WindowGap:SupportPillar, \memo used to define pillar geometry for support pillars @@ -5353,7 +5353,7 @@ WindowMaterial:Gap, \required-field \units m \type real - \minimum >0 + \minimum> 0 A2 , \field Gas (or Gas Mixture) \note This field should reference only WindowMaterial:Gas \note or WindowMaterial:GasMixture objects @@ -6684,7 +6684,7 @@ WindowMaterial:Gap:EquivalentLayer, N12 ;\field Specific Heat Ratio \type real \note Used only if Gas Type = Custom - \minimum >1.0 + \minimum> 1.0 MaterialProperty:MoisturePenetrationDepth:Settings, \memo Additional properties for moisture using EMPD procedure @@ -8391,19 +8391,19 @@ WindowThermalModel:Params, N2 , \field Vacuum Pressure Limit \type real \units Pa - \minimum >0 + \minimum> 0 \default 13.238 N3 , \field Initial temperature \note This is temperature in time of window fabrication \type real \units C - \minimum >0 + \minimum> 0 \default 25 N4 ; \field Initial pressure \note This is pressure in time of window fabrication \type real \units Pa - \minimum >0 + \minimum> 0 \default 101325 Construction:ComplexFenestrationState, @@ -18802,7 +18802,8 @@ RoomAir:TemperaturePattern:SurfaceMapping, RoomAir:Node, \memo Define an air node for some types of nodal room air models A1, \field Name - \type Alpha + \type alpha + \reference RoomAirNodes A2, \field Node Type \required-field \type choice @@ -20026,11 +20027,11 @@ ElectricEquipment:ITE:AirCooled, \key RoomAirModel \default AdjustedSupply A11, \field Air Inlet Room Air Model Node Name - \note Name of a RoomAir:Node object which is connect to the ITE air inlet. + \note Name of a RoomAir:Node object which is connected to the ITE air inlet. \type object-list \object-list RoomAirNodes A12, \field Air Outlet Room Air Model Node Name - \note Name of a RoomAir:Node object which is connect to the ITE air outlet. + \note Name of a RoomAir:Node object which is connected to the ITE air outlet. \type object-list \object-list RoomAirNodes A13, \field Supply Air Node Name @@ -20229,7 +20230,7 @@ ZoneContaminantSourceAndSink:CarbonDioxide, N1 , \field Design Generation Rate \units m3/s \type real - \Note Positive values represent sources and negative values represent sinks. + \note Positive values represent sources and negative values represent sinks. A3 ; \field Schedule Name \required-field \type object-list @@ -20249,7 +20250,7 @@ ZoneContaminantSourceAndSink:Generic:Constant, \units m3/s \type real \minimum 0.0 - \Note The values represent source. + \note The values represent source. A3 , \field Generation Schedule Name \required-field \type object-list @@ -20259,7 +20260,7 @@ ZoneContaminantSourceAndSink:Generic:Constant, \units m3/s \type real \minimum 0.0 - \Note The value represent sink. + \note The value represent sink. A4 ; \field Removal Schedule Name \required-field \type object-list @@ -23682,7 +23683,7 @@ Exterior:WaterEquipment, !* --System Control and Controllers !************************************************************************************ -\Group HVAC Templates +\group HVAC Templates HVACTemplate:Thermostat, \min-fields 5 @@ -29351,7 +29352,6 @@ HVACTemplate:System:DedicatedOutdoorAir, \key FixedSetpoint \key Scheduled \key OutdoorAirTemperatureReset - \key None \default FixedSetpoint N6, \field Cooling Coil Design Setpoint \note Used for sizing and as constant setpoint if no Cooling Coil Setpoint Schedule Name is specified. @@ -29412,7 +29412,6 @@ HVACTemplate:System:DedicatedOutdoorAir, \key FixedSetpoint \key Scheduled \key OutdoorAirTemperatureReset - \key None \default FixedSetpoint N14, \field Heating Coil Design Setpoint \note Used for sizing and as constant setpoint if no Heating Coil Setpoint Schedule Name is specified. @@ -30764,8 +30763,9 @@ DesignSpecification:ZoneHVAC:Sizing, Sizing:System, \memo Specifies the input needed to perform sizing calculations for a central forced air - \memo system design air flow, heating capacity, and cooling capacity. - \min-fields 27 + \memo system. System design air flow, heating capacity, and cooling capacity will be calculated + \memo using this input data. + \min-fields 37 A1, \field AirLoop Name \required-field \type object-list @@ -30775,12 +30775,10 @@ Sizing:System, \note Sensible and VentilationRequirement are the only available options \note Sensible uses the zone design air flow rates \note VentilationRequirement uses the system ventilation requirement - \required-field \type choice \key Sensible + \key Total \key VentilationRequirement - !\key Latent - !\key Total \default Sensible N1, \field Design Outdoor Air Flow Rate \type real @@ -30788,11 +30786,12 @@ Sizing:System, \minimum 0.0 \units m3/s \autosizable - N2, \field Minimum System Air Flow Ratio + N2, \field Central Heating Maximum System Air Flow Ratio \required-field \type real \minimum 0.0 \maximum 1.0 + \default 0.5 N3, \field Preheat Design Temperature \required-field \type real @@ -30817,7 +30816,7 @@ Sizing:System, \required-field \type real \units C - A3, \field Sizing Option + A3, \field Type of Zone Sum to Use \type choice \key Coincident \key NonCoincident @@ -30951,8 +30950,7 @@ Sizing:System, \minimum 0.0 \autosizable \default autosize - \note Enter the design cooling capacity. Required field when the cooling design capacity method - \note CoolingDesignCapacity. + \note Enter the design cooling capacity. N22, \field Cooling Design Capacity Per Floor Area \type real \units W/m2 @@ -30986,19 +30984,26 @@ Sizing:System, \minimum 0.0 \autosizable \default autosize - \note Enter the design heating capacity. Required field when the heating design capacity method - \note HeatingDesignCapacity. + \note Enter the design heating capacity. N25, \field Heating Design Capacity Per Floor Area \type real \units W/m2 \minimum 0.0 \note Enter the heating design capacity per zone floor area. Required field when the heating design \note capacity method field is CapacityPerFloorArea. - N26; \field Fraction of Autosized Heating Design Capacity + N26, \field Fraction of Autosized Heating Design Capacity \type real \minimum 0.0 \note Enter the fraction of auto-sized heating design capacity. Required field when capacity the \note heating design capacity method field is FractionOfAutosizedHeatingCapacity. + A11; \field Central Cooling Capacity Control Method + \note Method used to control the coil's output + \type choice + \key VAV + \key Bypass + \key VT + \key OnOff + \default VAV Sizing:Plant, \memo Specifies the input needed to autosize plant loop flow rates and equipment capacities. @@ -31041,7 +31046,7 @@ OutputControl:Sizing:Style, \key Tab \key Fixed -\Group Zone HVAC Controls and Thermostats +\group Zone HVAC Controls and Thermostats ZoneControl:Humidistat, \memo Specifies zone relative humidity setpoint schedules for humidifying and dehumidifying. @@ -39584,7 +39589,7 @@ ZoneHVAC:EquipmentConnections, \required-field \type node -\Group Fans +\group Fans !*****************AIR LOOP COMPONENTS********************* Fan:ConstantVolume, \memo Constant volume fan that is intended to operate continuously based on a time schedule. @@ -40087,7 +40092,7 @@ Fan:ComponentModel, \retaincase \default General -\Group Coils +\group Coils !*****************COILS********************* Coil:Cooling:Water, @@ -42615,7 +42620,7 @@ Coil:Heating:Water, \required-field \type node A7 , \field Performance Input Method - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key NominalCapacity \default UFactorTimesAreaAndDesignWaterFlowRate @@ -47807,7 +47812,7 @@ Coil:Cooling:DX:SingleSpeed:ThermalStorage, \note For fluid storage tanks only, maximum limit for storage tank \note If omitted,then the maximum temperature limit is that used for fluid property data. -\Group Evaporative Coolers +\group Evaporative Coolers EvaporativeCooler:Direct:CelDekPad, \memo Direct evaporative cooler with rigid media evaporative pad and recirculating water @@ -47833,9 +47838,9 @@ EvaporativeCooler:Direct:CelDekPad, \type node A4 , \field Air Outlet Node Name \type node - A5 , \Field Control Type + A5 , \field Control Type \note This field is not currently used and can be left blank - A6 ; \Field Water Supply Storage Tank Name + A6 ; \field Water Supply Storage Tank Name \type object-list \object-list WaterStorageTankNames @@ -47879,9 +47884,9 @@ EvaporativeCooler:Indirect:CelDekPad, \type node A4 , \field Primary Air Outlet Node Name \type node - A5 , \Field Control Type + A5 , \field Control Type \note This field is not currently used and can be left blank - A6 , \Field Water Supply Storage Tank Name + A6 , \field Water Supply Storage Tank Name \type object-list \object-list WaterStorageTankNames A7 ; \field Secondary Air Inlet Node Name @@ -47923,9 +47928,9 @@ EvaporativeCooler:Indirect:WetCoil, \type node A4 , \field Primary Air Outlet Node Name \type node - A5 , \Field Control Type + A5 , \field Control Type \note This field is not currently used and can be left blank - A6 , \Field Water Supply Storage Tank Name + A6 , \field Water Supply Storage Tank Name \type object-list \object-list WaterStorageTankNames A7 ; \field Secondary Air Inlet Node Name @@ -47969,15 +47974,15 @@ EvaporativeCooler:Indirect:ResearchSpecial, \type node A4 , \field Primary Air Outlet Node Name \type node - A5 , \Field Control Type + A5 , \field Control Type N7 , \field Dewpoint Effectiveness Factor - A6 , \Field Secondary Air Inlet Node Name + A6 , \field Secondary Air Inlet Node Name \type node - A7 , \Field Sensor Node Name + A7 , \field Sensor Node Name \type node - A8 , \Field Relief Air Inlet Node Name + A8 , \field Relief Air Inlet Node Name \type node - A9 , \Field Water Supply Storage Tank Name + A9 , \field Water Supply Storage Tank Name \type object-list \object-list WaterStorageTankNames N8 , \field Drift Loss Fraction @@ -48018,9 +48023,9 @@ EvaporativeCooler:Direct:ResearchSpecial, \type node A4 , \field Air Outlet Node Name \type node - A5 , \Field Sensor Node Name + A5 , \field Sensor Node Name \type node - A6 , \Field Water Supply Storage Tank Name + A6 , \field Water Supply Storage Tank Name \type object-list \object-list WaterStorageTankNames N3 , \field Drift Loss Fraction @@ -48036,7 +48041,7 @@ EvaporativeCooler:Direct:ResearchSpecial, \note Ratio of solids in the blowdown water to solids in the make up water. \note A typical value is 3. If left blank then there is no blowdown. -\Group Humidifiers and Dehumidifiers +\group Humidifiers and Dehumidifiers Humidifier:Steam:Electric, \memo Electrically heated steam humidifier with fan. @@ -48352,7 +48357,7 @@ Dehumidifier:Desiccant:System, \object-list QuadraticCurves \object-list CubicCurves -\Group Heat Recovery +\group Heat Recovery HeatExchanger:AirToAir:FlatPlate, \memo Flat plate air-to-air heat exchanger, typically used for exhaust or relief air heat @@ -49032,7 +49037,7 @@ AirLoopHVAC:UnitarySystem, \key LatentOnlyLoadControl \key LatentWithSensibleLoadControl \key LatentOrSensibleLoadControl - \Default SensibleOnlyLoadControl + \default SensibleOnlyLoadControl \note SensibleOnlyLoadControl is selected when thermostat control is used. \note LatentOnlyLoadControl is selected when humidistat control is used. \note LatentWithSensibleLoadControl is selected when thermostat control is used and @@ -51417,7 +51422,7 @@ Controller:OutdoorAir, \note setpoint and the outdoor humidity ratio is less than the indoor humidity ratio. \note This field is only used when the field High Humidity Control = Yes. A19; \field Heat Recovery Bypass Control Type - \type Choice + \type choice \key BypassWhenWithinEconomizerLimits \key BypassWhenOAFlowGreaterThanMinimum \default BypassWhenWithinEconomizerLimits @@ -55777,7 +55782,7 @@ Duct, \required-field \type node -\Group Pumps +\group Pumps Pump:VariableSpeed, \memo This pump model is described in the ASHRAE secondary HVAC toolkit. @@ -56126,9 +56131,9 @@ HeaderedPumps:VariableSpeed, \autosizable \ip-units gal/min \minimum> 0 - N2 , \Field Number of Pumps in Bank + N2 , \field Number of Pumps in Bank \type integer - A4 , \Field Flow Sequencing Control Scheme + A4 , \field Flow Sequencing Control Scheme \type choice \key Sequential \default Sequential @@ -56220,7 +56225,7 @@ TemperingValve, \required-field \type node -\Group Non-Zone Equipment +\group Non-Zone Equipment LoadProfile:Plant, \memo Used to simulate a scheduled plant loop demand profile. Load and flow rate are @@ -56250,7 +56255,7 @@ LoadProfile:Plant, \type object-list \object-list ScheduleNames -\Group Solar Collectors +\group Solar Collectors SolarCollectorPerformance:FlatPlate, \memo Thermal and optical performance parameters for a single flat plate solar collector @@ -56359,7 +56364,7 @@ SolarCollector:FlatPlate:PhotovoltaicThermal, \type node A9 , \field Air Outlet Node Name \type node - N1 ; \Field Design Flow Rate + N1 ; \field Design Flow Rate \units m3/s \autosizable @@ -56411,9 +56416,9 @@ SolarCollector:IntegralCollectorStorage, A4 , \field Bottom Surface Boundary Conditions Type \required-field \type choice - \Key OtherSideConditionsModel - \Key AmbientAir - \Default AmbientAir + \key OtherSideConditionsModel + \key AmbientAir + \default AmbientAir A5 , \field Boundary Condition Model Name \type alpha \note Enter the name of a SurfaceProperty:OtherSideConditionsModel @@ -56440,7 +56445,7 @@ SolarCollectorPerformance:IntegralCollectorStorage, A2, \field ICS Collector Type \required-field \type choice - \Key RectangularTank + \key RectangularTank \note Currently only RectangularTank ICS collector type is available. N1, \field Gross Area \type real @@ -56797,7 +56802,7 @@ SolarCollector:UnglazedTranspired:Multisystem, ! must be specified for each node ! CLASS of the following comes first (naming convention) separated further by : -\Group Plant Heating and Cooling Equipment +\group Plant Heating and Cooling Equipment Boiler:HotWater, \min-fields 13 @@ -57162,7 +57167,7 @@ Chiller:Electric:EIR, \type node Chiller:Electric:ReformulatedEIR, -\min-fields 21 +\min-fields 22 \memo This chiller model is an empirical model, a reformulated version of Chiller:Electric:EIR \memo where the performance is a function of condenser leaving fluid Temperature instead of \memo condenser entering fluid Temperature. Chiller performance at off-reference conditions is @@ -57224,17 +57229,44 @@ Chiller:Electric:ReformulatedEIR, \note curve = a + b*CWS + c*CWS**2 + d*LCT + e*LCT**2 + f*CWS*LCT \note CWS = supply (leaving) chilled water temperature(C) \note LCT = leaving condenser fluid temperature(C) - A4 , \field Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name + A4 , \field Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type + \note Two curve types are available: + \note Type LeavingCondenserWaterTemperature: based on the leaving condenser water temperature. + \note Type Lift: based on the normalized lift, which is the temperature difference between the + \note leaving condenser water temperature and the leaving evaporator water temperature. + \required-field + \type choice + \key LeavingCondenserWaterTemperature + \key Lift + \default LeavingCondenserWaterTemperature + A5 , \field Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name \note Electric Input Ratio (EIR) as a function of Part Load Ratio (PLR) \note EIR = 1/COP \required-field \type object-list \object-list BicubicCurves \object-list BiVariateTables - \note curve = a + b*LCT + c*LCT**2 + d*PLR + e*PLR**2 + f*LCT*PLR + g*0 + h*PLR**3 + \object-list ChillerPartLoadWithLiftCurves + \object-list MultiVariateTables + \note The form of this curve is based on the input for + \note Electric Input to Cooling Output RatioFunction of Part Load Ratio Curve Type + \note Type=LeavingCondenserWaterTemperature: Calculated based on LCT and PLR + \note Curve object type should be Curve:Bicubic or Table:TwoIndependentVariables + \note Bicubic curve = a + b*LCT + c*LCT**2 + d*PLR + e*PLR**2 + f*LCT*PLR + g*0 + h*PLR**3 \note + i*0 + j*0 \note PLR = part load ratio (cooling load/steady state capacity) \note LCT = leaving condenser fluid temperature(C) + \note Type=Lift: Calculated based on dT*, Tdev* and PLR + \note Curve object type should be Curve:ChillerPartLoadWithLiftCurves or Table:MultiVariableLookup + \note ChillerPartLoadWithLiftCurves curve = a + b*(dT*) + c*(dT*)**2 + d*PLR + e*PLR**2 + f*(dT*)*PLR + g*(dT*)**3 + \note + h*PLR**3 + i*(dT*)**2*PLR + j*(dT*)*PLR**2 + k*(dT*)**2*PLR**2 + l*(Tdev*)*PLR**3 + \note x = dT* = normalized fractional Lift = dT / dTref + \note y = PLR = part load ratio (cooling load/steady state capacity) + \note z = Tdev* = normalized Tdev = Tdev / dTref + \note Where: + \note dT = Lift = Leaving Condenser Water Temperature - Leaving Chilled Water Temperature + \note dTref = dT at the reference condition + \note Tdev = Leaving Chilled Water Temperature - Reference Chilled Water Temperature N7 , \field Minimum Part Load Ratio \type real \note Part load ratio below which the chiller starts cycling on/off to meet the load. @@ -57260,16 +57292,16 @@ Chiller:Electric:ReformulatedEIR, \note and less than or equal to the Maximum Part Load Ratio. \minimum 0.0 \default 0.2 - A5 , \field Chilled Water Inlet Node Name + A6 , \field Chilled Water Inlet Node Name \type node \required-field - A6 , \field Chilled Water Outlet Node Name + A7 , \field Chilled Water Outlet Node Name \type node \required-field - A7 , \field Condenser Inlet Node Name + A8 , \field Condenser Inlet Node Name \type node \required-field - A8 , \field Condenser Outlet Node Name + A9 , \field Condenser Outlet Node Name \type node \required-field N11, \field Fraction of Compressor Electric Consumption Rejected by Condenser @@ -57285,7 +57317,7 @@ Chiller:Electric:ReformulatedEIR, \type real \default 2.0 \units C - A9, \field Chiller Flow Mode Type + A10, \field Chiller Flow Mode Type \note Select operating mode for fluid flow through the chiller. "NotModulated" is for \note either variable or constant pumping with flow controlled by the external plant system. \note "ConstantFlow" is for constant pumping with flow controlled by chiller to operate at @@ -57304,9 +57336,9 @@ Chiller:Electric:ReformulatedEIR, \default 0.0 \ip-units gal/min \autosizable - A10, \field Heat Recovery Inlet Node Name + A11, \field Heat Recovery Inlet Node Name \type node - A11, \field Heat Recovery Outlet Node Name + A12, \field Heat Recovery Outlet Node Name \type node N14, \field Sizing Factor \note Multiplies the autosized capacity and flow rates @@ -57318,11 +57350,11 @@ Chiller:Electric:ReformulatedEIR, \type real \minimum 0.0 \maximum 1.0 - A12, \field Heat Recovery Inlet High Temperature Limit Schedule Name + A13, \field Heat Recovery Inlet High Temperature Limit Schedule Name \note This optional schedule of temperatures will turn off heat recovery if inlet exceeds the value \type object-list \object-list ScheduleNames - A13; \field Heat Recovery Leaving Temperature Setpoint Node Name + A14; \field Heat Recovery Leaving Temperature Setpoint Node Name \note This optional field provides control over the heat recovery \note Using this triggers a model more suited to series bundle and chillers with higher temperature heat recovery \note If this field is not used, the bundles are modeled as being in parallel @@ -59629,7 +59661,7 @@ CoolingTower:SingleSpeed, \note This field is only used if the previous field is set to autocalculate and \note the Performance Input Method is UFactorTimesAreaAndDesignWaterFlowRate A4 , \field Performance Input Method - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key NominalCapacity \default UFactorTimesAreaAndDesignWaterFlowRate @@ -59742,7 +59774,7 @@ CoolingTower:SingleSpeed, \minimum 1 \default 1 A12, \field Cell Control - \type Choice + \type choice \key MinimalCell \key MaximalCell \default MinimalCell @@ -59888,7 +59920,7 @@ CoolingTower:TwoSpeed, \note This field is only used if the previous field is set to autocalculate and \note the Performance Input Method is UFactorTimesAreaAndDesignWaterFlowRate A4 , \field Performance Input Method - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key NominalCapacity \default UFactorTimesAreaAndDesignWaterFlowRate @@ -60016,7 +60048,7 @@ CoolingTower:TwoSpeed, \minimum 1 \default 1 A11, \field Cell Control - \type Choice + \type choice \key MinimalCell \key MaximalCell \default MinimalCell @@ -60059,7 +60091,7 @@ CoolingTower:VariableSpeed:Merkel, \note Name of tower water outlet node A4 , \field Performance Input Method \required-field - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key NominalCapacity \default NominalCapacity @@ -60293,7 +60325,7 @@ CoolingTower:VariableSpeed:Merkel, \minimum 1 \default 1 A15, \field Cell Control - \type Choice + \type choice \key MinimalCell \key MaximalCell \default MinimalCell @@ -60491,7 +60523,7 @@ CoolingTower:VariableSpeed, \minimum 1 \default 1 A13, \field Cell Control - \type Choice + \type choice \key MinimalCell \key MaximalCell \default MinimalCell @@ -60849,7 +60881,7 @@ EvaporativeFluidCooler:SingleSpeed, \minimum> 0.0 \ip-units gal/min A4 , \field Performance Input Method - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key StandardDesignCapacity \key UserSpecifiedDesignCapacity @@ -61045,7 +61077,7 @@ EvaporativeFluidCooler:TwoSpeed, \ip-units gal/min A4 , \field Performance Input Method \required-field - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key StandardDesignCapacity \key UserSpecifiedDesignCapacity @@ -61237,7 +61269,7 @@ FluidCooler:SingleSpeed, \type node \note Name of fluid cooler water outlet node A4 , \field Performance Input Method - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key NominalCapacity \default NominalCapacity @@ -61321,7 +61353,7 @@ FluidCooler:TwoSpeed, \type node \note Name of fluid cooler water outlet node A4 , \field Performance Input Method - \type Choice + \type choice \key UFactorTimesAreaAndDesignWaterFlowRate \key NominalCapacity \default NominalCapacity @@ -61476,7 +61508,6 @@ GroundHeatExchanger:Vertical, N7, \field Ground Temperature \units C \minimum> 0.0 - \ip-units gal/min N8, \field Grout Thermal Conductivity \units W/m-K \minimum> 0.0 @@ -63768,8 +63799,8 @@ PlantEquipmentList, \memo should be OFF (not operate) within the specified lower/upper limit. \min-fields 1 A1 , \field Name - \required-field - \reference PlantAndCondenserEquipmentLists + \required-field + \reference PlantAndCondenserEquipmentLists A2 , \field Equipment 1 Object Type A3 , \field Equipment 1 Name A4 , \field Equipment 2 Object Type @@ -65576,8 +65607,7 @@ EnergyManagementSystem:Sensor, A3 ; \field Output:Variable or Output:Meter Name \required-field \type external-list - \external-list autoRDDvariable - \external-list autoRDDmeter + \external-list autoRDDvariableMeter EnergyManagementSystem:Actuator, \memo Hardware portion of EMS used to set up actuators in the model @@ -66532,7 +66562,7 @@ ZoneHVAC:ForcedAir:UserDefined, \key MeetsLoadWithNominalCapacityHiOutLimit \required-field A6 , \field Plant Connection 1 Loop Flow Request Mode - \type Choice + \type choice \key NeedsFlowIfLoopOn \key NeedsFlowAndTurnsLoopOn \key ReceivesWhateverFlowAvailable @@ -66555,7 +66585,7 @@ ZoneHVAC:ForcedAir:UserDefined, \key MeetLoadWithNominalCapacityLowOutLimit \key MeetLoadWithNominalCapacityHiOutLimit A12, \field Plant Connection 2 Loop Flow Request Mode - \type Choice + \type choice \key NeedsFlowIfLoopOn \key NeedsFlowAndTurnsLoopOn \key ReceivesWhateverFlowAvailable @@ -66577,7 +66607,7 @@ ZoneHVAC:ForcedAir:UserDefined, \key MeetLoadWithNominalCapacityLowOutLimit \key MeetLoadWithNominalCapacityHiOutLimit A18, \field Plant Connection 3 Loop Flow Request Mode - \type Choice + \type choice \key NeedsFlowIfLoopOn \key NeedsFlowAndTurnsLoopOn \key ReceivesWhateverFlowAvailable @@ -66599,7 +66629,7 @@ ZoneHVAC:ForcedAir:UserDefined, \key MeetLoadWithNominalCapacityLowOutLimit \key MeetLoadWithNominalCapacityHiOutLimit A24, \field Plant Connection 4 Loop Flow Request Mode - \type Choice + \type choice \key NeedsFlowIfLoopOn \key NeedsFlowAndTurnsLoopOn \key ReceivesWhateverFlowAvailable @@ -69692,7 +69722,7 @@ Refrigeration:SecondarySystem, \type object-list \object-list ZoneNames N14, \field Evaporator Refrigerant Inventory - \Units kg + \units kg \type real \default 0.0 \note This value refers to the refrigerant circulating within the primary system providing @@ -69821,7 +69851,7 @@ Refrigeration:SecondarySystem, \note Schedule values should be in units of Watts \note Leave this field blank if no restocking is to be modeled N10, \field Average Refrigerant Charge Inventory - \Units kg + \units kg \type real \default 0.0 \note This value is only used if the Cooling Source Type is DXEvaporator @@ -70282,7 +70312,7 @@ Refrigeration:AirChiller, \key Floor \default Middle N16; \field Average Refrigerant Charge Inventory - \Units kg + \units kg \type real \default 0.0 \note This value is only used if the Cooling Source Type is DXEvaporator @@ -70405,7 +70435,7 @@ ZoneHVAC:RefrigerationChillerSet, A66,A67,A68,A69,A70,A71,A72,A73,A74,A75,A76,A77,A78,A79,A80,A81,A82,A83,A84,A85, \note fields as indicated A86,A87,A88,A89,A90,A91,A92,A93,A94,A95,A96,A97,A98,A99,A100; \note fields as indicated -\Group Demand Limiting Controls +\group Demand Limiting Controls DemandManagerAssignmentList, \extensible:2 Duplicate the last two fields DemandManager Object Type and DemandManager Name @@ -70965,7 +70995,7 @@ DemandManager:Thermostats, \type object-list \object-list ZoneControlThermostaticNames -\Group Electric Load Center-Generator Specifications +\group Electric Load Center-Generator Specifications Generator:InternalCombustionEngine, \memo This generator model is the empirical model from the Building Loads @@ -73790,7 +73820,7 @@ ElectricLoadCenter:Distribution, \type object-list \object-list TransformerNames -\Group Water Systems +\group Water Systems WaterUse:Equipment, \memo A generalized object for simulating all water end uses. Hot and cold water uses are @@ -74111,7 +74141,7 @@ WaterUse:RainCollector, \type object-list \object-list AllShadingAndHTSurfNames -\Group Operational Faults +\group Operational Faults !*****************Faults**************************** ! This group of objects are used to model operational faults of HVAC systems. ! @@ -76630,6 +76660,110 @@ Curve:DoubleExponentialDecay, \key Dimensionless \default Dimensionless +Curve:ChillerPartLoadWithLift, + \memo This chiller part-load performance curve has three independent variables. + \memo Input consists of the curve name, the twelve coefficients, and the maximum + \memo and minimum valid independent variable values. Optional inputs for the curve minimum + \memo and maximum may be used to limit the output of the performance curve. + \memo curve = C1 + C2*x + C3*x**2 + C4*y + C5*y**2 + C6*x*y + C7*x**3 + \memo + C8*y**3 + C9*x**2*y + C10*x*y**2 + C11*x**2*y**2 + C12*z*y**3 + \memo x = dT* = normalized fractional Lift = dT / dTref + \memo y = PLR = part load ratio (cooling load/steady state capacity) + \memo z = Tdev* = normalized Tdev = Tdev / dTref + \memo Where: + \memo dT = Lift = Leaving Condenser Water Temperature - Leaving Chilled Water Temperature + \memo dTref = dT at the reference condition + \memo Tdev = Leaving Chilled Water Temperature - Reference Chilled Water Temperature + A1 , \field Name + \required-field + \type alpha + \reference ChillerPartLoadWithLiftCurves + \reference AllCurves + N1 , \field Coefficient1 C1 + \required-field + \type real + N2 , \field Coefficient2 C2 + \required-field + \type real + N3 , \field Coefficient3 C3 + \required-field + \type real + N4 , \field Coefficient4 C4 + \required-field + \type real + N5 , \field Coefficient5 C5 + \required-field + \type real + N6 , \field Coefficient6 C6 + \required-field + \type real + N7 , \field Coefficient7 C7 + \required-field + \type real + N8 , \field Coefficient8 C8 + \required-field + \type real + N9 , \field Coefficient9 C9 + \required-field + \type real + N10, \field Coefficient10 C10 + \required-field + \type real + N11, \field Coefficient11 C11 + \required-field + \type real + N12, \field Coefficient12 C12 + \required-field + \type real + N13, \field Minimum Value of x + \required-field + \type real + \unitsBasedOnField A2 + N14, \field Maximum Value of x + \required-field + \type real + \unitsBasedOnField A2 + N15, \field Minimum Value of y + \required-field + \type real + \unitsBasedOnField A3 + N16, \field Maximum Value of y + \required-field + \type real + \unitsBasedOnField A3 + N17, \field Minimum Value of z + \required-field + \type real + \unitsBasedOnField A4 + N18, \field Maximum Value of z + \required-field + \type real + \unitsBasedOnField A4 + N19, \field Minimum Curve Output + \type real + \unitsBasedOnField A5 + \note Specify the minimum value calculated by this curve object + N20, \field Maximum Curve Output + \type real + \unitsBasedOnField A5 + \note Specify the maximum value calculated by this curve object + A2 , \field Input Unit Type for x + \type choice + \key Dimensionless + \default Dimensionless + A3 , \field Input Unit Type for y + \type choice + \key Dimensionless + \default Dimensionless + A4 , \field Input Unit Type for z + \type choice + \key Dimensionless + \default Dimensionless + A5; \field Output Unit Type + \type choice + \key Dimensionless + \default Dimensionless + \group Performance Tables Table:OneIndependentVariable, @@ -77222,7 +77356,7 @@ Table:MultiVariableLookup, N3060,N3061,N3062,N3063,N3064,N3065,N3066,N3067,N3068,N3069,N3070,N3071,N3072,N3073,N3074,N3075,N3076,N3077,N3078,N3079, \note fields as indicated N3080,N3081,N3082,N3083,N3084,N3085,N3086,N3087,N3088,N3089,N3090,N3091,N3092,N3093,N3094,N3095,N3096,N3097,N3098,N3099; \note fields as indicated -\Group Fluid Properties +\group Fluid Properties FluidProperties:Name, \memo potential fluid name/type in the input file @@ -80345,7 +80479,7 @@ FluidProperties:Concentration, \type real \unitsBasedOnField A2 -\Group Economics +\group Economics CurrencyType, \memo If CurrencyType is not specified, it will default to USD and produce $ in the reports. @@ -81650,7 +81784,7 @@ LifeCycleCost:UseAdjustment, \note The multiplier to be applied to the end-use cost for each following year. The total utility \note costs for the selected end-use is multiplied by this value. For no change enter 1.0. -\Group Parametrics +\group Parametrics Parametric:SetValueForRun, \memo Parametric objects allow a set of multiple simulations to be defined in a single idf @@ -82703,7 +82837,7 @@ Parametric:FileNameSuffix, A101; \field Suffix for File Name in Run 100 \type alpha -\Group Output Reporting +\group Output Reporting Output:VariableDictionary, \memo Produces a list summarizing the output variables and meters that are available for @@ -90763,7 +90897,7 @@ Output:Table:TimeBins, \note Optional input on the type of units for the variable used by other fields in the object. Output:Table:Monthly, - \Memo Provides a generic method of setting up tables of monthly results. The report + \memo Provides a generic method of setting up tables of monthly results. The report \memo has multiple columns that are each defined using a repeated group of fields for any \memo number of columns. A single Output:Table:Monthly object often produces multiple \memo tables in the output. A table is produced for every instance of a particular output diff --git a/src/EnergyPlus/BaseboardRadiator.cc b/src/EnergyPlus/BaseboardRadiator.cc index 2534aa60994..c0804f82e4e 100644 --- a/src/EnergyPlus/BaseboardRadiator.cc +++ b/src/EnergyPlus/BaseboardRadiator.cc @@ -1107,7 +1107,7 @@ namespace BaseboardRadiator { Real64 HWBaseboardUAResidual( Real64 const UA, // UA of coil - Optional< FArray1S< Real64 > const > Par // par(1) = design coil load [W] + FArray1< Real64 > const & Par // par(1) = design coil load [W] ) { @@ -1151,10 +1151,10 @@ namespace BaseboardRadiator { int BaseboardIndex; Real64 LoadMet; - BaseboardIndex = int( Par()( 2 ) ); + BaseboardIndex = int( Par( 2 ) ); Baseboard( BaseboardIndex ).UA = UA; SimHWConvective( BaseboardIndex, LoadMet ); - Residuum = ( Par()( 1 ) - LoadMet ) / Par()( 1 ); + Residuum = ( Par( 1 ) - LoadMet ) / Par( 1 ); return Residuum; } diff --git a/src/EnergyPlus/BaseboardRadiator.hh b/src/EnergyPlus/BaseboardRadiator.hh index e25b18be798..f3877bc3baa 100644 --- a/src/EnergyPlus/BaseboardRadiator.hh +++ b/src/EnergyPlus/BaseboardRadiator.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -246,7 +244,7 @@ namespace BaseboardRadiator { Real64 HWBaseboardUAResidual( Real64 const UA, // UA of coil - Optional< FArray1S< Real64 > const > Par = _ // par(1) = design coil load [W] + FArray1< Real64 > const & Par // par(1) = design coil load [W] ); void diff --git a/src/EnergyPlus/ChillerReformulatedEIR.cc b/src/EnergyPlus/ChillerReformulatedEIR.cc index 867affac366..ab902613895 100644 --- a/src/EnergyPlus/ChillerReformulatedEIR.cc +++ b/src/EnergyPlus/ChillerReformulatedEIR.cc @@ -50,6 +50,9 @@ namespace ChillerReformulatedEIR { // MODIFIED na // RE-ENGINEERED na + // MODIFIED + // Aug. 2014, Rongpeng Zhang, added An additional part-load performance curve type + // PURPOSE OF THIS MODULE: // This module simulates the performance of the electric vapor compression // chiller using a reformulated model based on the DOE-2 EIR chiller. @@ -94,6 +97,10 @@ namespace ChillerReformulatedEIR { int const NotModulated( 202 ); int const LeavingSetPointModulated( 203 ); + //chiller part load curve types + int const PLR_LeavingCondenserWaterTemperature( 1 ); //Type 1_LeavingCondenserWaterTemperature + int const PLR_Lift( 2 ); //Type 2_Lift + // MODULE VARIABLE DECLARATIONS: int NumElecReformEIRChillers( 0 ); // Number of electric reformulated EIR chillers specified in input Real64 CondMassFlowRate( 0.0 ); // Condenser mass flow rate [kg/s] @@ -254,6 +261,9 @@ namespace ChillerReformulatedEIR { // AUTHOR: Lixing Gu, FSEC // DATE WRITTEN: July 2006 + // MODIFIED + // Aug. 2014, Rongpeng Zhang, added an additional part-load performance curve type + // PURPOSE OF THIS SUBROUTINE: // This routine will get the input required by the Reformulated Electric EIR Chiller model @@ -265,10 +275,12 @@ namespace ChillerReformulatedEIR { using InputProcessor::GetNumObjectsFound; using InputProcessor::GetObjectItem; using InputProcessor::VerifyName; + using InputProcessor::SameString; using namespace DataIPShortCuts; // Data for field names, blank numerics using BranchNodeConnections::TestCompSet; using NodeInputManager::GetOnlySingleNode; using CurveManager::GetCurveIndex; + using CurveManager::GetCurveType; using FluidProperties::FindGlycol; using General::TrimSigDigits; using General::RoundSigDigits; @@ -292,6 +304,7 @@ namespace ChillerReformulatedEIR { bool IsBlank; // Flag for blank name bool errFlag; // Error flag, used to tell if a unique chiller name has been specified static bool AllocatedFlag( false ); // True when arrays are allocated + std::string PartLoadCurveType; // Part load curve type // FLOW @@ -342,56 +355,77 @@ namespace ChillerReformulatedEIR { ErrorsFound = true; } - ElecReformEIRChiller( EIRChillerNum ).EIRFPLRName = cAlphaArgs( 4 ); - ElecReformEIRChiller( EIRChillerNum ).ChillerEIRFPLR = GetCurveIndex( cAlphaArgs( 4 ) ); + //The default type of part-load curve is: LeavingCondenserWaterTemperature + if ( lAlphaFieldBlanks( 4 ) ) { + PartLoadCurveType = "LeavingCondenserWaterTemperature"; + } + else { + PartLoadCurveType = cAlphaArgs( 4 ); + } + + ElecReformEIRChiller( EIRChillerNum ).EIRFPLRName = cAlphaArgs( 5 ); + ElecReformEIRChiller( EIRChillerNum ).ChillerEIRFPLR = GetCurveIndex( cAlphaArgs( 5 ) ); if ( ElecReformEIRChiller( EIRChillerNum ).ChillerEIRFPLR == 0 ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( "Invalid " + cAlphaFieldNames( 4 ) + '=' + cAlphaArgs( 4 ) ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 5 ) + '=' + cAlphaArgs( 5 ) ); ErrorsFound = true; } - - // Chilled water inlet/outlet node names are necessary - if ( lAlphaFieldBlanks( 5 ) ) { + + //Check the type of part-load curves implemented: 1_LeavingCondenserWaterTemperature, 2_Lift zrp_Aug2014 + if ( SameString( PartLoadCurveType, "LeavingCondenserWaterTemperature" ) && SameString( GetCurveType( ElecReformEIRChiller( EIRChillerNum ).ChillerEIRFPLR ), "BICUBIC" ) ) { + ElecReformEIRChiller( EIRChillerNum ).PartLoadCurveType = PLR_LeavingCondenserWaterTemperature; + } + else if ( SameString( PartLoadCurveType, "Lift" ) && SameString( GetCurveType( ElecReformEIRChiller( EIRChillerNum ).ChillerEIRFPLR ), "CHILLERPARTLOADWITHLIFT" ) ) { + ElecReformEIRChiller( EIRChillerNum ).PartLoadCurveType = PLR_Lift; + } + else { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( cAlphaFieldNames( 5 ) + " is blank." ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 5 ) + '=' + cAlphaArgs( 5 ) + " for " + cAlphaFieldNames( 4 ) + '=' + cAlphaArgs( 4 ) ); ErrorsFound = true; } + + // Chilled water inlet/outlet node names are necessary if ( lAlphaFieldBlanks( 6 ) ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); ShowContinueError( cAlphaFieldNames( 6 ) + " is blank." ); ErrorsFound = true; } + if ( lAlphaFieldBlanks( 7 ) ) { + ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); + ShowContinueError( cAlphaFieldNames( 7 ) + " is blank." ); + ErrorsFound = true; + } - ElecReformEIRChiller( EIRChillerNum ).EvapInletNodeNum = GetOnlySingleNode( cAlphaArgs( 5 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Inlet, 1, ObjectIsNotParent ); - ElecReformEIRChiller( EIRChillerNum ).EvapOutletNodeNum = GetOnlySingleNode( cAlphaArgs( 6 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Outlet, 1, ObjectIsNotParent ); - TestCompSet( cCurrentModuleObject, cAlphaArgs( 1 ), cAlphaArgs( 5 ), cAlphaArgs( 6 ), "Chilled Water Nodes" ); + ElecReformEIRChiller( EIRChillerNum ).EvapInletNodeNum = GetOnlySingleNode( cAlphaArgs( 6 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Inlet, 1, ObjectIsNotParent ); + ElecReformEIRChiller( EIRChillerNum ).EvapOutletNodeNum = GetOnlySingleNode( cAlphaArgs( 7 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Outlet, 1, ObjectIsNotParent ); + TestCompSet( cCurrentModuleObject, cAlphaArgs( 1 ), cAlphaArgs( 6 ), cAlphaArgs( 7 ), "Chilled Water Nodes" ); ElecReformEIRChiller( EIRChillerNum ).CondenserType = WaterCooled; // Condenser inlet/outlet node names are necessary - if ( lAlphaFieldBlanks( 7 ) ) { + if ( lAlphaFieldBlanks( 8 ) ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( cAlphaFieldNames( 7 ) + " is blank." ); + ShowContinueError( cAlphaFieldNames( 8 ) + " is blank." ); ErrorsFound = true; } - if ( lAlphaFieldBlanks( 8 ) ) { + if ( lAlphaFieldBlanks( 9 ) ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( cAlphaFieldNames( 8 ) + " is blank." ); + ShowContinueError( cAlphaFieldNames( 9 ) + " is blank." ); ErrorsFound = true; } - ElecReformEIRChiller( EIRChillerNum ).CondInletNodeNum = GetOnlySingleNode( cAlphaArgs( 7 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Inlet, 2, ObjectIsNotParent ); - ElecReformEIRChiller( EIRChillerNum ).CondOutletNodeNum = GetOnlySingleNode( cAlphaArgs( 8 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Outlet, 2, ObjectIsNotParent ); + ElecReformEIRChiller( EIRChillerNum ).CondInletNodeNum = GetOnlySingleNode( cAlphaArgs( 8 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Inlet, 2, ObjectIsNotParent ); + ElecReformEIRChiller( EIRChillerNum ).CondOutletNodeNum = GetOnlySingleNode( cAlphaArgs( 9 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Outlet, 2, ObjectIsNotParent ); - TestCompSet( cCurrentModuleObject, cAlphaArgs( 1 ), cAlphaArgs( 7 ), cAlphaArgs( 8 ), "Condenser Water Nodes" ); + TestCompSet( cCurrentModuleObject, cAlphaArgs( 1 ), cAlphaArgs( 8 ), cAlphaArgs( 9 ), "Condenser Water Nodes" ); - { auto const SELECT_CASE_var( cAlphaArgs( 9 ) ); + { auto const SELECT_CASE_var( cAlphaArgs( 10 ) ); if ( SELECT_CASE_var == "CONSTANTFLOW" ) { ElecReformEIRChiller( EIRChillerNum ).FlowMode = ConstantFlow; } else if ( SELECT_CASE_var == "VARIABLEFLOW" ) { ElecReformEIRChiller( EIRChillerNum ).FlowMode = LeavingSetPointModulated; ShowWarningError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"," ); - ShowContinueError( "Invalid " + cAlphaFieldNames( 9 ) + '=' + cAlphaArgs( 9 ) ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 10 ) + '=' + cAlphaArgs( 10 ) ); ShowContinueError( "Key choice is now called \"LeavingSetpointModulated\" and the simulation continues" ); } else if ( SELECT_CASE_var == "LEAVINGSETPOINTMODULATED" ) { ElecReformEIRChiller( EIRChillerNum ).FlowMode = LeavingSetPointModulated; @@ -399,7 +433,7 @@ namespace ChillerReformulatedEIR { ElecReformEIRChiller( EIRChillerNum ).FlowMode = NotModulated; } else { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"," ); - ShowContinueError( "Invalid " + cAlphaFieldNames( 9 ) + '=' + cAlphaArgs( 9 ) ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 10 ) + '=' + cAlphaArgs( 10 ) ); ShowContinueError( "Available choices are ConstantFlow, NotModulated, or LeavingSetpointModulated" ); ShowContinueError( "Flow mode NotModulated is assumed and the simulation continues." ); ElecReformEIRChiller( EIRChillerNum ).FlowMode = NotModulated; @@ -412,14 +446,23 @@ namespace ChillerReformulatedEIR { ShowContinueError( "Invalid " + cNumericFieldNames( 1 ) + '=' + RoundSigDigits( rNumericArgs( 1 ), 2 ) ); ErrorsFound = true; } + ElecReformEIRChiller( EIRChillerNum ).RefCOP = rNumericArgs( 2 ); if ( rNumericArgs( 2 ) == 0.0 ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); ShowContinueError( "Invalid " + cNumericFieldNames( 2 ) + '=' + RoundSigDigits( rNumericArgs( 2 ), 2 ) ); ErrorsFound = true; } + ElecReformEIRChiller( EIRChillerNum ).TempRefEvapOut = rNumericArgs( 3 ); - ElecReformEIRChiller( EIRChillerNum ).TempRefCondOut = rNumericArgs( 4 ); + ElecReformEIRChiller( EIRChillerNum ).TempRefCondOut = rNumericArgs( 4 ); + if ( ElecReformEIRChiller( EIRChillerNum ).TempRefEvapOut >= ElecReformEIRChiller( EIRChillerNum ).TempRefCondOut ) { + ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); + ShowContinueError( cNumericFieldNames( 3 ) + " [" + RoundSigDigits( rNumericArgs( 3 ), 2 ) + "] >= " + cNumericFieldNames( 4 ) + " [" + RoundSigDigits( rNumericArgs( 4 ), 2 ) + ']' ); + ShowContinueError( "Reference Leaving Chilled Water Temperature must be less than Reference Leaving Condenser Water Temperature " ); + ErrorsFound = true; + } + ElecReformEIRChiller( EIRChillerNum ).EvapVolFlowRate = rNumericArgs( 5 ); ElecReformEIRChiller( EIRChillerNum ).CondVolFlowRate = rNumericArgs( 6 ); ElecReformEIRChiller( EIRChillerNum ).MinPartLoadRat = rNumericArgs( 7 ); @@ -428,7 +471,7 @@ namespace ChillerReformulatedEIR { ElecReformEIRChiller( EIRChillerNum ).MinUnloadRat = rNumericArgs( 10 ); ElecReformEIRChiller( EIRChillerNum ).SizFac = rNumericArgs( 14 ); if ( ElecReformEIRChiller( EIRChillerNum ).SizFac <= 0.0 ) ElecReformEIRChiller( EIRChillerNum ).SizFac = 1.0; - + if ( ElecReformEIRChiller( EIRChillerNum ).MinPartLoadRat > ElecReformEIRChiller( EIRChillerNum ).MaxPartLoadRat ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); ShowContinueError( cNumericFieldNames( 7 ) + " [" + RoundSigDigits( rNumericArgs( 7 ), 3 ) + "] > " + cNumericFieldNames( 8 ) + " [" + RoundSigDigits( rNumericArgs( 8 ), 3 ) + ']' ); @@ -468,16 +511,16 @@ namespace ChillerReformulatedEIR { ElecReformEIRChiller( EIRChillerNum ).DesignHeatRecVolFlowRate = rNumericArgs( 13 ); if ( ( ElecReformEIRChiller( EIRChillerNum ).DesignHeatRecVolFlowRate > 0.0 ) || ( ElecReformEIRChiller( EIRChillerNum ).DesignHeatRecVolFlowRate == AutoSize ) ) { ElecReformEIRChiller( EIRChillerNum ).HeatRecActive = true; - ElecReformEIRChiller( EIRChillerNum ).HeatRecInletNodeNum = GetOnlySingleNode( cAlphaArgs( 10 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Inlet, 3, ObjectIsNotParent ); + ElecReformEIRChiller( EIRChillerNum ).HeatRecInletNodeNum = GetOnlySingleNode( cAlphaArgs( 11 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Inlet, 3, ObjectIsNotParent ); if ( ElecReformEIRChiller( EIRChillerNum ).HeatRecInletNodeNum == 0 ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( "Invalid " + cAlphaFieldNames( 10 ) + '=' + cAlphaArgs( 10 ) ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 11 ) + '=' + cAlphaArgs( 11 ) ); ErrorsFound = true; } - ElecReformEIRChiller( EIRChillerNum ).HeatRecOutletNodeNum = GetOnlySingleNode( cAlphaArgs( 11 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Outlet, 3, ObjectIsNotParent ); + ElecReformEIRChiller( EIRChillerNum ).HeatRecOutletNodeNum = GetOnlySingleNode( cAlphaArgs( 12 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Outlet, 3, ObjectIsNotParent ); if ( ElecReformEIRChiller( EIRChillerNum ).HeatRecOutletNodeNum == 0 ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( "Invalid " + cAlphaFieldNames( 11 ) + '=' + cAlphaArgs( 11 ) ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 12 ) + '=' + cAlphaArgs( 12 ) ); ErrorsFound = true; } if ( ElecReformEIRChiller( EIRChillerNum ).CondenserType != WaterCooled ) { @@ -486,7 +529,7 @@ namespace ChillerReformulatedEIR { ErrorsFound = true; } - TestCompSet( cCurrentModuleObject, cAlphaArgs( 1 ), cAlphaArgs( 10 ), cAlphaArgs( 11 ), "Heat Recovery Nodes" ); + TestCompSet( cCurrentModuleObject, cAlphaArgs( 1 ), cAlphaArgs( 11 ), cAlphaArgs( 12 ), "Heat Recovery Nodes" ); if ( ElecReformEIRChiller( EIRChillerNum ).DesignHeatRecVolFlowRate > 0.0 ) { RegisterPlantCompDesignFlow( ElecReformEIRChiller( EIRChillerNum ).HeatRecInletNodeNum, ElecReformEIRChiller( EIRChillerNum ).DesignHeatRecVolFlowRate ); @@ -501,12 +544,12 @@ namespace ChillerReformulatedEIR { ElecReformEIRChiller( EIRChillerNum ).HeatRecCapacityFraction = 1.0; } - if ( NumAlphas > 11 ) { - if ( ! lAlphaFieldBlanks( 12 ) ) { - ElecReformEIRChiller( EIRChillerNum ).HeatRecInletLimitSchedNum = GetScheduleIndex( cAlphaArgs( 12 ) ); + if ( NumAlphas > 12 ) { + if ( ! lAlphaFieldBlanks( 13 ) ) { + ElecReformEIRChiller( EIRChillerNum ).HeatRecInletLimitSchedNum = GetScheduleIndex( cAlphaArgs( 13 ) ); if ( ElecReformEIRChiller( EIRChillerNum ).HeatRecInletLimitSchedNum == 0 ) { ShowSevereError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); - ShowContinueError( "Invalid " + cAlphaFieldNames( 12 ) + '=' + cAlphaArgs( 12 ) ); + ShowContinueError( "Invalid " + cAlphaFieldNames( 13 ) + '=' + cAlphaArgs( 13 ) ); ErrorsFound = true; } } else { @@ -516,9 +559,9 @@ namespace ChillerReformulatedEIR { ElecReformEIRChiller( EIRChillerNum ).HeatRecInletLimitSchedNum = 0; } - if ( NumAlphas > 12 ) { - if ( ! lAlphaFieldBlanks( 13 ) ) { - ElecReformEIRChiller( EIRChillerNum ).HeatRecSetPointNodeNum = GetOnlySingleNode( cAlphaArgs( 13 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Sensor, 1, ObjectIsNotParent ); + if ( NumAlphas > 13 ) { + if ( ! lAlphaFieldBlanks( 14 ) ) { + ElecReformEIRChiller( EIRChillerNum ).HeatRecSetPointNodeNum = GetOnlySingleNode( cAlphaArgs( 14 ), ErrorsFound, cCurrentModuleObject, cAlphaArgs( 1 ), NodeType_Water, NodeConnectionType_Sensor, 1, ObjectIsNotParent ); } else { ElecReformEIRChiller( EIRChillerNum ).HeatRecSetPointNodeNum = 0; } @@ -531,7 +574,7 @@ namespace ChillerReformulatedEIR { ElecReformEIRChiller( EIRChillerNum ).DesignHeatRecMassFlowRate = 0.0; ElecReformEIRChiller( EIRChillerNum ).HeatRecInletNodeNum = 0; ElecReformEIRChiller( EIRChillerNum ).HeatRecOutletNodeNum = 0; - if ( ( ! lAlphaFieldBlanks( 10 ) ) || ( ! lAlphaFieldBlanks( 11 ) ) ) { + if ( ( ! lAlphaFieldBlanks( 11 ) ) || ( ! lAlphaFieldBlanks( 12 ) ) ) { ShowWarningError( RoutineName + cCurrentModuleObject + "=\"" + cAlphaArgs( 1 ) + "\"" ); ShowWarningError( "Since Reference Heat Reclaim Volume Flow Rate = 0.0, heat recovery is inactive." ); ShowContinueError( "However, node names were specified for heat recovery inlet or outlet nodes." ); @@ -1205,14 +1248,25 @@ namespace ChillerReformulatedEIR { GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFT, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTXTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTXTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMax ); } + if ( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR > 0 ) { - CurveVal = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).TempRefCondOut, 1.0 ); + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + CurveVal = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).TempRefCondOut, 1.0 ); + } else if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_Lift ) { + CurveVal = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, 1.0, 1.0, 0.0 ); // zrp_Aug2014 + } if ( CurveVal > 1.10 || CurveVal < 0.90 ) { ShowWarningError( "Energy input ratio as a function of part-load ratio curve output is not equal to 1.0" ); ShowContinueError( "(+ or - 10%) at reference conditions for Chiller:Electric:ReformulatedEIR = " + equipName ); ShowContinueError( "Curve output at reference conditions = " + TrimSigDigits( CurveVal, 3 ) ); } - GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax ); + + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax ); + } else if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_Lift ) { // zrp_Aug2014 + GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).ChillerLiftNomMin, ElecReformEIRChiller( EIRChillNum ).ChillerLiftNomMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax, ElecReformEIRChiller( EIRChillNum ).ChillerTdevNomMin, ElecReformEIRChiller( EIRChillNum ).ChillerTdevNomMax ); + } + if ( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin < 0 || ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin >= ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax || ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin > 1 ) { ShowSevereError( "Invalid minimum value of PLR = " + TrimSigDigits( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, 3 ) + " in bicubic curve = " + ElecReformEIRChiller( EIRChillNum ).EIRFPLRName + " which is used" ); ShowContinueError( "by Chiller:Electric:ReformulatedEIR = " + equipName + '.' ); @@ -1235,6 +1289,7 @@ namespace ChillerReformulatedEIR { DeltaTCond = ( CondenserCapacity ) / ( ElecReformEIRChiller( EIRChillNum ).CondVolFlowRate * Density * SpecificHeat ); ElecReformEIRChiller( EIRChillNum ).TempRefCondIn = ElecReformEIRChiller( EIRChillNum ).TempRefCondOut - DeltaTCond; + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { // Check EIRFPLR curve output. Calculate condenser inlet temp based on reference condenser outlet temp, // chiller capacity, and mass flow rate. Starting with the calculated condenser inlet temp and PLR = 0, // calculate the condenser outlet temp proportional to PLR and test the EIRFPLR curve output for negative numbers. @@ -1255,8 +1310,8 @@ namespace ChillerReformulatedEIR { if ( CurveValTmp < 0.0 ) FoundNegValue = true; CurveValArray( CurveCheck + 1 ) = int( CurveValTmp * 100.0 ) / 100.0; CondTempArray( CurveCheck + 1 ) = int( CondTemp * 100.0 ) / 100.0; + } } - } // Output warning message if negative values are found in the EIRFPLR curve output. Results in Fatal error. if ( FoundNegValue ) { @@ -1277,11 +1332,16 @@ namespace ChillerReformulatedEIR { gio::write( StringVar ); ShowContinueError( StringVar ); ErrorsFound = true; + } } } else { // just get curve min/max values if capacity or cond volume flow rate = 0 GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerCapFT, ElecReformEIRChiller( EIRChillNum ).ChillerCAPFTXTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerCAPFTXTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerCAPFTYTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerCAPFTYTempMax ); GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFT, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTXTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTXTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMax ); - GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax ); + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax ); + } else if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_Lift ) { // zrp_Aug2014 + GetCurveMinMaxValues( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ElecReformEIRChiller( EIRChillNum ).ChillerLiftNomMin, ElecReformEIRChiller( EIRChillNum ).ChillerLiftNomMax, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin, ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMax, ElecReformEIRChiller( EIRChillNum ).ChillerTdevNomMin, ElecReformEIRChiller( EIRChillNum ).ChillerTdevNomMax ); + } } if ( ErrorsFound ) { @@ -1364,13 +1424,22 @@ namespace ChillerReformulatedEIR { // Find min/max condenser outlet temperature used by curve objects CAPFTYTmin = ElecReformEIRChiller( EIRChillNum ).ChillerCAPFTYTempMin; EIRFTYTmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMin; - EIRFPLRTmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin; - Tmin = min( CAPFTYTmin, EIRFTYTmin, EIRFPLRTmin ); + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + EIRFPLRTmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin; + Tmin = min( CAPFTYTmin, EIRFTYTmin, EIRFPLRTmin ); + } else if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_Lift ) { // zrp_Aug2014 + Tmin = min( CAPFTYTmin, EIRFTYTmin ); + } + CAPFTYTmax = ElecReformEIRChiller( EIRChillNum ).ChillerCAPFTYTempMax; EIRFTYTmax = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMax; - EIRFPLRTmax = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax; - Tmax = max( CAPFTYTmax, EIRFTYTmax, EIRFPLRTmax ); + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + EIRFPLRTmax = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax; + Tmax = max( CAPFTYTmax, EIRFTYTmax, EIRFPLRTmax ); + } else if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_Lift ) { // zrp_Aug2014 + Tmax = max( CAPFTYTmax, EIRFTYTmax ); + } // Check that condenser outlet temperature is within curve object limits prior to calling RegulaFalsi CalcReformEIRChillerModel( EIRChillNum, MyLoad, RunFlag, FirstIteration, EquipFlowCtrl, Tmin ); @@ -1688,7 +1757,7 @@ namespace ChillerReformulatedEIR { Real64 CondOutTempResidual( Real64 const FalsiCondOutTemp, // RegulaFalsi condenser outlet temperature result [C] - Optional< FArray1S< Real64 > const > Par // Parameter array used to interface with RegulaFalsi solver + FArray1< Real64 > const & Par // Parameter array used to interface with RegulaFalsi solver ) { @@ -1739,20 +1808,12 @@ namespace ChillerReformulatedEIR { // CondOutletTemp = Value calculated by CalcReformEIRChillerModel subroutine as shown below // CondOutletTemp = QCondenser/CondMassFlowRate/CPCW(CondInletTemp) + CondInletTemp - EIRChillNum = int( Par()( 1 ) ); - MyLoad = Par()( 2 ); - if ( int( Par()( 3 ) ) == 1 ) { - RunFlag = true; - } else { - RunFlag = false; - } - if ( int( Par()( 4 ) ) == 1 ) { - FirstIteration = true; - } else { - FirstIteration = false; - } + EIRChillNum = int( Par( 1 ) ); + MyLoad = Par( 2 ); + RunFlag = ( int( Par( 3 ) ) == 1 ); + FirstIteration = ( int( Par( 4 ) ) == 1 ); //FlowLock = INT(Par(5)) !DSU - EquipFlowCtrl = int( Par()( 6 ) ); + EquipFlowCtrl = int( Par( 6 ) ); CalcReformEIRChillerModel( EIRChillNum, MyLoad, RunFlag, FirstIteration, EquipFlowCtrl, FalsiCondOutTemp ); CondOutTempResidual = FalsiCondOutTemp - CondOutletTemp; // CondOutletTemp is module level variable, final value used for reporting @@ -1778,6 +1839,9 @@ namespace ChillerReformulatedEIR { // MODIFIED na // RE-ENGINEERED na + // MODIFIED + // Aug. 2014, Rongpeng Zhang, added an additional part-load performance curve type + // PURPOSE OF THIS SUBROUTINE: // Simulate a vapor compression chiller using the reformulated model developed by Mark Hydeman @@ -1841,6 +1905,14 @@ namespace ChillerReformulatedEIR { Real64 PartLoadRat; // Operating part load ratio Real64 TempLowLimitEout; // Evaporator low temp. limit cut off [C] Real64 EvapMassFlowRateMax; // Maximum evaporator mass flow rate converted from volume flow rate [kg/s] + + Real64 ChillerLift; //Chiller lift + Real64 ChillerLiftRef; //Chiller lift under the reference condition + Real64 ChillerLiftNom; //Normalized chiller lift + Real64 ChillerTdev; //Deviation of leaving chilled water temperature from the reference condition + Real64 ChillerTdevNom; //Normalized ChillerTdev + int PartLoadCurveType; //Part Load Ratio Curve Type: 1_LeavingCondenserWaterTemperature; 2_Lift + int EvapInletNode; // evaporator inlet node number int EvapOutletNode; // evaporator outlet node number int CondInletNode; // condenser inlet node number @@ -1942,6 +2014,7 @@ namespace ChillerReformulatedEIR { EvapOutletTemp = Node( ElecReformEIRChiller( EIRChillNum ).EvapOutletNodeNum ).Temp; TempLowLimitEout = ElecReformEIRChiller( EIRChillNum ).TempLowLimitEvapOut; EvapMassFlowRateMax = ElecReformEIRChiller( EIRChillNum ).EvapMassFlowRateMax; + PartLoadCurveType = ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType; //zrp_Aug2014 // Set mass flow rates @@ -2206,8 +2279,22 @@ namespace ChillerReformulatedEIR { ChillerEIRFT = max( 0.0, CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFT, EvapOutletTemp, AvgCondSinkTemp ) ); - ChillerEIRFPLR = max( 0.0, CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, AvgCondSinkTemp, PartLoadRat ) ); - + // Part Load Ratio Curve Type: 1_LeavingCondenserWaterTemperature; 2_Lift zrp_Aug2014 + if ( PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + ChillerEIRFPLR = max( 0.0, CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, AvgCondSinkTemp, PartLoadRat ) ); + } else if ( PartLoadCurveType == PLR_Lift) { + ChillerLift = AvgCondSinkTemp - EvapOutletTemp; + ChillerTdev = std::abs(EvapOutletTemp - ElecReformEIRChiller(EIRChillNum).TempRefEvapOut); + ChillerLiftRef = ElecReformEIRChiller( EIRChillNum ).TempRefCondOut - ElecReformEIRChiller( EIRChillNum ).TempRefEvapOut; + + if ( ChillerLiftRef <= 0 ) ChillerLiftRef = 35 - 6.67; + ChillerLiftNom = ChillerLift / ChillerLiftRef; + ChillerTdevNom = ChillerTdev / ChillerLiftRef; + + ChillerEIRFPLR = max(0.0, CurveValue( ElecReformEIRChiller(EIRChillNum).ChillerEIRFPLR, ChillerLiftNom, PartLoadRat, ChillerTdevNom)); + } + + if ( ReferenceCOP <= 0 ) ReferenceCOP = 5.5; Power = ( AvailChillerCap / ReferenceCOP ) * ChillerEIRFPLR * ChillerEIRFT * FRAC; QCondenser = Power * ElecReformEIRChiller( EIRChillNum ).CompPowerToCondenserFrac + QEvaporator + ChillerFalseLoadRate; @@ -2279,6 +2366,11 @@ namespace ChillerReformulatedEIR { Real64 EIRFPLRTmax; // Maximum condenser leaving temperature allowed by EIRFPLR curve [C] Real64 EIRFPLRPLRmin; // Minimum PLR allowed by EIRFPLR curve Real64 EIRFPLRPLRmax; // Maximum PLR allowed by EIRFPLR curve + Real64 ChillerLift; //Chiller lift [C] + Real64 ChillerLiftRef; //Chiller lift under the reference condition [C] + Real64 ChillerLiftNom; //Normalized chiller lift + Real64 ChillerTdev; //Deviation of leaving chilled water temperature from the reference condition + Real64 ChillerTdevNom; //Normalized ChillerTdev int PlantLoopNum; // Plant loop which contains the current chiller int LoopSideNum; // Plant loop side which contains the current chiller (usually supply side) int BranchNum; @@ -2331,8 +2423,10 @@ namespace ChillerReformulatedEIR { EIRFTYTmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMin; EIRFTYTmax = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFTYTempMax; - EIRFPLRTmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin; - EIRFPLRTmax = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax; + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + EIRFPLRTmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMin; + EIRFPLRTmax = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRTempMax; + } // Move EIRFPLR min/max part-load ratio values to local variables EIRFPLRPLRmin = ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRPLRMin; @@ -2361,14 +2455,16 @@ namespace ChillerReformulatedEIR { } } - if ( CondOutletTemp < EIRFPLRTmin || CondOutletTemp > EIRFPLRTmax ) { - ++ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIter; - if ( ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIter == 1 ) { - ShowWarningError( "CHILLER:ELECTRIC:REFORMULATEDEIR \"" + ElecReformEIRChiller( EIRChillNum ).Name + "\": The condenser outlet temperature (" + TrimSigDigits( CondOutletTemp, 2 ) + " C) is outside the range of condenser outlet temperatures (X var) given in Electric Input to Cooling Output Ratio Function of Part-load Ratio bicubic curve = " + ElecReformEIRChiller( EIRChillNum ).EIRFPLRName ); - ShowContinueErrorTimeStamp( "The range specified = " + TrimSigDigits( EIRFPLRTmin, 2 ) + " C to " + TrimSigDigits( EIRFPLRTmax, 2 ) + " C." ); - ShowRecurringWarningErrorAtEnd( "CHILLER:ELECTRIC:REFORMULATEDEIR \"" + ElecReformEIRChiller( EIRChillNum ).Name + "\": The cond outlet temp range in Electric Input to Cooling Output Ratio Function of PLR curve error continues.", ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIterIndex, CondOutletTemp, CondOutletTemp ); - } else { - ShowRecurringWarningErrorAtEnd( "CHILLER:ELECTRIC:REFORMULATEDEIR \"" + ElecReformEIRChiller( EIRChillNum ).Name + "\": The cond outlet temp range in Electric Input to Cooling Output Ratio Function of PLR curve error continues.", ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIterIndex, CondOutletTemp, CondOutletTemp ); + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + if ( CondOutletTemp < EIRFPLRTmin || CondOutletTemp > EIRFPLRTmax ) { + ++ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIter; + if ( ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIter == 1 ) { + ShowWarningError( "CHILLER:ELECTRIC:REFORMULATEDEIR \"" + ElecReformEIRChiller( EIRChillNum ).Name + "\": The condenser outlet temperature (" + TrimSigDigits( CondOutletTemp, 2 ) + " C) is outside the range of condenser outlet temperatures (X var) given in Electric Input to Cooling Output Ratio Function of Part-load Ratio bicubic curve = " + ElecReformEIRChiller( EIRChillNum ).EIRFPLRName ); + ShowContinueErrorTimeStamp( "The range specified = " + TrimSigDigits( EIRFPLRTmin, 2 ) + " C to " + TrimSigDigits( EIRFPLRTmax, 2 ) + " C." ); + ShowRecurringWarningErrorAtEnd( "CHILLER:ELECTRIC:REFORMULATEDEIR \"" + ElecReformEIRChiller( EIRChillNum ).Name + "\": The cond outlet temp range in Electric Input to Cooling Output Ratio Function of PLR curve error continues.", ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIterIndex, CondOutletTemp, CondOutletTemp ); + } else { + ShowRecurringWarningErrorAtEnd( "CHILLER:ELECTRIC:REFORMULATEDEIR \"" + ElecReformEIRChiller( EIRChillNum ).Name + "\": The cond outlet temp range in Electric Input to Cooling Output Ratio Function of PLR curve error continues.", ElecReformEIRChiller( EIRChillNum ).EIRFPLRTIterIndex, CondOutletTemp, CondOutletTemp ); + } } } @@ -2401,6 +2497,7 @@ namespace ChillerReformulatedEIR { } else { assert( false ); }} + ChillerCapFT = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerCapFT, EvapOutletTempSetPoint, CondOutletTemp ); if ( ChillerCapFT < 0 ) { @@ -2431,7 +2528,20 @@ namespace ChillerReformulatedEIR { } } - ChillerEIRFPLR = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, CondOutletTemp, ChillerPartLoadRatio ); + if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_LeavingCondenserWaterTemperature ) { + ChillerEIRFPLR = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, CondOutletTemp, ChillerPartLoadRatio ); + } else if ( ElecReformEIRChiller( EIRChillNum ).PartLoadCurveType == PLR_Lift ){ + ChillerLift = CondOutletTemp - EvapOutletTemp; + ChillerTdev = std::abs( EvapOutletTemp - ElecReformEIRChiller( EIRChillNum ).TempRefEvapOut ); + ChillerLiftRef = ElecReformEIRChiller( EIRChillNum ).TempRefCondOut - ElecReformEIRChiller( EIRChillNum ).TempRefEvapOut; + + if ( ChillerLiftRef <= 0 ) ChillerLiftRef = 35 - 6.67; + ChillerLiftNom = ChillerLift / ChillerLiftRef; + ChillerTdevNom = ChillerTdev / ChillerLiftRef; + + ChillerEIRFPLR = CurveValue( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLR, ChillerLiftNom, ChillerPartLoadRatio, ChillerTdevNom ); + } + if ( ChillerEIRFPLR < 0.0 ) { if ( ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRError < 1 && PlantLoop( PlantLoopNum ).LoopSide( LoopSideNum ).FlowLock != 0 && ! WarmupFlag ) { ++ElecReformEIRChiller( EIRChillNum ).ChillerEIRFPLRError; diff --git a/src/EnergyPlus/ChillerReformulatedEIR.hh b/src/EnergyPlus/ChillerReformulatedEIR.hh index e148c3071a8..b18f44f0296 100644 --- a/src/EnergyPlus/ChillerReformulatedEIR.hh +++ b/src/EnergyPlus/ChillerReformulatedEIR.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -66,6 +64,7 @@ namespace ChillerReformulatedEIR { std::string EIRFTName; // EIRFT curve name std::string EIRFPLRName; // EIRPLR curve name int CondenserType; // Type of Condenser. Water Cooled is the only available option for now + int PartLoadCurveType; // Part Load Ratio Curve Type: 1_LeavingCondenserWaterTemperature; 2_Lift //zrp Real64 RefCap; // Reference capacity of the chiller [W] Real64 RefCOP; // Reference coefficient of performance [W/W] int FlowMode; // one of 3 modes for componet flow during operation @@ -126,6 +125,10 @@ namespace ChillerReformulatedEIR { Real64 ChillerEIRFPLRTempMax; // Maximum value of EIRFPLR curve condenser outlet temperature [C] Real64 ChillerEIRFPLRPLRMin; // Minimum value of EIRFPLR curve part-load ratio Real64 ChillerEIRFPLRPLRMax; // Maximum value of EIRFPLR curve part-load ratio + Real64 ChillerLiftNomMin; // Minimum value of EIRFPLR curve Normalized Chiller lift + Real64 ChillerLiftNomMax; // Maximum value of EIRFPLR curve Normalized Chiller lift + Real64 ChillerTdevNomMin; // Minimum value of EIRFPLR curve Normalized Tdev + Real64 ChillerTdevNomMax; // Maximum value of EIRFPLR curve Normalized Tdev int CAPFTXIter; // Iteration counter for evaporator outlet temperature CAPFT warning messages int CAPFTXIterIndex; // Index for evaporator outlet temperature CAPFT warning messages int CAPFTYIter; // Iteration counter for condenser outlet temperature CAPFT warning messages @@ -170,6 +173,7 @@ namespace ChillerReformulatedEIR { ReformulatedEIRChillerSpecs() : TypeNum( 0 ), CondenserType( 0 ), + PartLoadCurveType( 0 ), RefCap( 0.0 ), RefCOP( 0.0 ), FlowMode( FlowModeNotSet ), @@ -223,6 +227,10 @@ namespace ChillerReformulatedEIR { ChillerEIRFPLRTempMax( 0.0 ), ChillerEIRFPLRPLRMin( 0.0 ), ChillerEIRFPLRPLRMax( 0.0 ), + ChillerLiftNomMin( 0.0 ), //zrp_Aug2014 + ChillerLiftNomMax( 10.0 ), + ChillerTdevNomMin( 0.0 ), + ChillerTdevNomMax( 10.0 ), CAPFTXIter( 0 ), CAPFTXIterIndex( 0 ), CAPFTYIter( 0 ), @@ -266,6 +274,7 @@ namespace ChillerReformulatedEIR { std::string const & EIRFTName, // EIRFT curve name std::string const & EIRFPLRName, // EIRPLR curve name int const CondenserType, // Type of Condenser. Water Cooled is the only available option for now + int const PartLoadCurveType, // Part Load Ratio Curve Type: 1_LeavingCondenserWaterTemperature; 2_Lift Real64 const RefCap, // Reference capacity of the chiller [W] Real64 const RefCOP, // Reference coefficient of performance [W/W] int const FlowMode, // one of 3 modes for componet flow during operation @@ -319,6 +328,10 @@ namespace ChillerReformulatedEIR { Real64 const ChillerEIRFPLRTempMax, // Maximum value of EIRFPLR curve condenser outlet temperature [C] Real64 const ChillerEIRFPLRPLRMin, // Minimum value of EIRFPLR curve part-load ratio Real64 const ChillerEIRFPLRPLRMax, // Maximum value of EIRFPLR curve part-load ratio + Real64 const ChillerLiftNomMin, // Minimum value of EIRFPLR curve Normalized Chiller lift + Real64 const ChillerLiftNomMax, // Maximum value of EIRFPLR curve Normalized Chiller lift + Real64 const ChillerTdevNomMin, // Minimum value of EIRFPLR curve Normalized Tdev + Real64 const ChillerTdevNomMax, // Maximum value of EIRFPLR curve Normalized Tdev int const CAPFTXIter, // Iteration counter for evaporator outlet temperature CAPFT warning messages int const CAPFTXIterIndex, // Index for evaporator outlet temperature CAPFT warning messages int const CAPFTYIter, // Iteration counter for condenser outlet temperature CAPFT warning messages @@ -359,6 +372,7 @@ namespace ChillerReformulatedEIR { EIRFTName( EIRFTName ), EIRFPLRName( EIRFPLRName ), CondenserType( CondenserType ), + PartLoadCurveType( PartLoadCurveType ), RefCap( RefCap ), RefCOP( RefCOP ), FlowMode( FlowMode ), @@ -412,6 +426,10 @@ namespace ChillerReformulatedEIR { ChillerEIRFPLRTempMax( ChillerEIRFPLRTempMax ), ChillerEIRFPLRPLRMin( ChillerEIRFPLRPLRMin ), ChillerEIRFPLRPLRMax( ChillerEIRFPLRPLRMax ), + ChillerLiftNomMin( ChillerLiftNomMin ), //zrp_Aug2014 + ChillerLiftNomMax( ChillerLiftNomMax ), + ChillerTdevNomMin( ChillerTdevNomMin ), + ChillerTdevNomMax( ChillerTdevNomMax ), CAPFTXIter( CAPFTXIter ), CAPFTXIterIndex( CAPFTXIterIndex ), CAPFTYIter( CAPFTYIter ), @@ -640,7 +658,7 @@ namespace ChillerReformulatedEIR { Real64 CondOutTempResidual( Real64 const FalsiCondOutTemp, // RegulaFalsi condenser outlet temperature result [C] - Optional< FArray1S< Real64 > const > Par = _ // Parameter array used to interface with RegulaFalsi solver + FArray1< Real64 > const & Par // Parameter array used to interface with RegulaFalsi solver ); void diff --git a/src/EnergyPlus/CondenserLoopTowers.cc b/src/EnergyPlus/CondenserLoopTowers.cc index fdb7b05cb18..244fa507f9e 100644 --- a/src/EnergyPlus/CondenserLoopTowers.cc +++ b/src/EnergyPlus/CondenserLoopTowers.cc @@ -3931,7 +3931,7 @@ namespace CondenserLoopTowers { Real64 VSMerkelResidual( Real64 const AirFlowRateRatio, // fan speed ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = Tower number + FArray1< Real64 > const & Par // par(1) = Tower number ) { @@ -3992,14 +3992,14 @@ namespace CondenserLoopTowers { Real64 Qdot; Real64 OutletWaterTempTrial; - TowerNum = int( Par()( 1 ) ); - TargetLoad = Par()( 2 ); - WaterMassFlowRatePerCell = Par()( 3 ); - UAdesignPerCell = Par()( 4 ); - UAwetbulbAdjFac = Par()( 5 ); - UAwaterflowAdjFac = Par()( 6 ); - CpWater = Par()( 7 ); - TotalWaterMassFlowRate = Par()( 8 ); + TowerNum = int( Par( 1 ) ); + TargetLoad = Par( 2 ); + WaterMassFlowRatePerCell = Par( 3 ); + UAdesignPerCell = Par( 4 ); + UAwetbulbAdjFac = Par( 5 ); + UAwaterflowAdjFac = Par( 6 ); + CpWater = Par( 7 ); + TotalWaterMassFlowRate = Par( 8 ); AirFlowRatePerCell = AirFlowRateRatio * SimpleTower( TowerNum ).HighSpeedAirFlowRate / SimpleTower( TowerNum ).NumCell; @@ -4921,7 +4921,7 @@ namespace CondenserLoopTowers { Real64 SimpleTowerUAResidual( Real64 const UA, // UA of cooling tower - Optional< FArray1S< Real64 > const > Par // par(1) = design tower load [W] + FArray1< Real64 > const & Par // par(1) = design tower load [W] ) { // FUNCTION INFORMATION: @@ -4969,17 +4969,17 @@ namespace CondenserLoopTowers { Real64 OutWaterTemp; // outlet water temperature [C] Real64 CoolingOutput; // tower cooling output [W] - TowerIndex = int( Par()( 2 ) ); - SimSimpleTower( TowerIndex, Par()( 3 ), Par()( 4 ), UA, OutWaterTemp ); - CoolingOutput = Par()( 5 ) * Par()( 3 ) * ( SimpleTowerInlet( TowerIndex ).WaterTemp - OutWaterTemp ); - Residuum = ( Par()( 1 ) - CoolingOutput ) / Par()( 1 ); + TowerIndex = int( Par( 2 ) ); + SimSimpleTower( TowerIndex, Par( 3 ), Par( 4 ), UA, OutWaterTemp ); + CoolingOutput = Par( 5 ) * Par( 3 ) * ( SimpleTowerInlet( TowerIndex ).WaterTemp - OutWaterTemp ); + Residuum = ( Par( 1 ) - CoolingOutput ) / Par( 1 ); return Residuum; } Real64 SimpleTowerTrResidual( Real64 const Trange, // cooling tower range temperature [C] - Optional< FArray1S< Real64 > const > Par // par(1) = tower number + FArray1< Real64 > const & Par // par(1) = tower number ) { // FUNCTION INFORMATION: @@ -5029,10 +5029,10 @@ namespace CondenserLoopTowers { Real64 InletAirWB; // inlet air wet-bulb temperature [C] Real64 Tapproach; // tower approach temperature [C] - TowerIndex = int( Par()( 1 ) ); - WaterFlowRateRatio = Par()( 2 ); - AirFlowRateRatio = Par()( 3 ); - InletAirWB = Par()( 4 ); + TowerIndex = int( Par( 1 ) ); + WaterFlowRateRatio = Par( 2 ); + AirFlowRateRatio = Par( 3 ); + InletAirWB = Par( 4 ); Tapproach = 0.0; // call model to determine approach temperature given other independent variables (range temp is being varied to find balance) @@ -5046,7 +5046,7 @@ namespace CondenserLoopTowers { Real64 SimpleTowerApproachResidual( Real64 const FlowRatio, // water or air flow ratio of cooling tower - Optional< FArray1S< Real64 > const > Par // par(1) = tower number + FArray1< Real64 > const & Par // par(1) = tower number ) { // FUNCTION INFORMATION: @@ -5100,17 +5100,17 @@ namespace CondenserLoopTowers { Real64 TapproachActual; // actual tower approach temperature [C] Real64 TapproachDesired; // desired tower approach temperature [C] - TowerIndex = int( Par()( 1 ) ); - if ( Par()( 6 ) == 0.0 ) { - AirFlowRateRatio = Par()( 2 ); + TowerIndex = int( Par( 1 ) ); + if ( Par( 6 ) == 0.0 ) { + AirFlowRateRatio = Par( 2 ); WaterFlowRateRatio = FlowRatio; } else { AirFlowRateRatio = FlowRatio; - WaterFlowRateRatio = Par()( 2 ); + WaterFlowRateRatio = Par( 2 ); } - InletAirWB = Par()( 3 ); - Trange = Par()( 4 ); - TapproachDesired = Par()( 5 ); + InletAirWB = Par( 3 ); + Trange = Par( 4 ); + TapproachDesired = Par( 5 ); TapproachActual = 0.0; // call model to determine tower approach temperature given other independent variables diff --git a/src/EnergyPlus/CondenserLoopTowers.hh b/src/EnergyPlus/CondenserLoopTowers.hh index a3c1bb8a48d..7ba410f5948 100644 --- a/src/EnergyPlus/CondenserLoopTowers.hh +++ b/src/EnergyPlus/CondenserLoopTowers.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -913,7 +911,7 @@ namespace CondenserLoopTowers { Real64 VSMerkelResidual( Real64 const AirFlowRateRatio, // fan speed ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = Tower number + FArray1< Real64 > const & Par // par(1) = Tower number ); void @@ -963,19 +961,19 @@ namespace CondenserLoopTowers { Real64 SimpleTowerUAResidual( Real64 const UA, // UA of cooling tower - Optional< FArray1S< Real64 > const > Par = _ // par(1) = design tower load [W] + FArray1< Real64 > const & Par // par(1) = design tower load [W] ); Real64 SimpleTowerTrResidual( Real64 const Trange, // cooling tower range temperature [C] - Optional< FArray1S< Real64 > const > Par = _ // par(1) = tower number + FArray1< Real64 > const & Par // par(1) = tower number ); Real64 SimpleTowerApproachResidual( Real64 const FlowRatio, // water or air flow ratio of cooling tower - Optional< FArray1S< Real64 > const > Par = _ // par(1) = tower number + FArray1< Real64 > const & Par // par(1) = tower number ); // End of the CondenserLoopTowers Module Simulation Subroutines diff --git a/src/EnergyPlus/ConductionTransferFunctionCalc.cc b/src/EnergyPlus/ConductionTransferFunctionCalc.cc index 78a8cfd6fb8..96dc3c44e8e 100644 --- a/src/EnergyPlus/ConductionTransferFunctionCalc.cc +++ b/src/EnergyPlus/ConductionTransferFunctionCalc.cc @@ -323,7 +323,7 @@ namespace ConductionTransferFunctionCalc { if ( ( rho( Layer ) * cp( Layer ) ) > 0.0 ) { Alpha = rk( Layer ) / ( rho( Layer ) * cp( Layer ) ); if ( Alpha > HighDiffusivityThreshold ) { - DeltaTimestep = TimeStepZone * SecInHour; + DeltaTimestep = TimeStepZoneSec; ThicknessThreshold = std::sqrt( Alpha * DeltaTimestep * 3.0 ); if ( Material( CurrentLayer ).Thickness < ThicknessThreshold ) { ShowSevereError( "InitConductionTransferFunctions: Found Material that is too thin and/or too highly conductive, material name = " + Material( CurrentLayer ).Name ); diff --git a/src/EnergyPlus/CurveManager.cc b/src/EnergyPlus/CurveManager.cc index 6155f4d4bcd..c6f50e6d636 100644 --- a/src/EnergyPlus/CurveManager.cc +++ b/src/EnergyPlus/CurveManager.cc @@ -55,6 +55,7 @@ namespace CurveManager { // FanPressureRise, ExponentialSkewNormal, Sigmoid, RectangularHyperbola1, // RectangularHyperbola2, ExponentialDecay // March 2012, Atefe Makhmalbaf and Heejin Cho, added a new curve type (QuadLinear) + // Aug. 2014, Rongpeng Zhang, added a new curve type (ChillerPartLoadWithLift) // RE-ENGINEERED na // PURPOSE OF THIS MODULE: @@ -105,6 +106,7 @@ namespace CurveManager { int const DoubleExponentialDecay( 19 ); int const QuadLinear( 20 ); int const CubicLinear( 21 ); + int const ChillerPartLoadWithLift( 22 ); // Interpolation Types int const LinearInterpolationOfTable( 1 ); @@ -119,7 +121,7 @@ namespace CurveManager { int const DESCENDING( 2 ); // parameters describing curve object/table types - int const NumAllCurveTypes( 22 ); + int const NumAllCurveTypes( 23 ); // curve object/table types (used for warning messages) int const CurveType_Linear( 1 ); @@ -144,8 +146,9 @@ namespace CurveManager { int const CurveType_DoubleExponentialDecay( 20 ); int const CurveType_QuadLinear( 21 ); int const CurveType_CubicLinear( 22 ); + int const CurveType_ChillerPartLoadWithLift( 23 ); - FArray1D_string const cCurveTypes( NumAllCurveTypes, { "Curve:Linear", "Curve:Quadratic", "Curve:Cubic", "Curve:Quartic", "Curve:Exponent", "Curve:BiCubic", "Curve:BiQuadratic", "Curve:QuadraitcLinear", "Curve:TriQuadratic", "Curve:Functional:PressureDrop", "Table:OneIndependentVariable", "Table:TwoIndependentVariables", "Table:MultiVariableLookup", "Curve:FanPressureRise", "Curve:ExponentialSkewNormal", "Curve:Sigmoid", "Curve:RectangularHyperbola1", "Curve:RectangularHyperbola2", "Curve:ExponentialDecay", "Curve:DoubleExponentialDecay", "Curve:QuadLinear", "Curve:CubicLinear" } ); + FArray1D_string const cCurveTypes( NumAllCurveTypes, { "Curve:Linear", "Curve:Quadratic", "Curve:Cubic", "Curve:Quartic", "Curve:Exponent", "Curve:BiCubic", "Curve:BiQuadratic", "Curve:QuadraitcLinear", "Curve:TriQuadratic", "Curve:Functional:PressureDrop", "Table:OneIndependentVariable", "Table:TwoIndependentVariables", "Table:MultiVariableLookup", "Curve:FanPressureRise", "Curve:ExponentialSkewNormal", "Curve:Sigmoid", "Curve:RectangularHyperbola1", "Curve:RectangularHyperbola2", "Curve:ExponentialDecay", "Curve:DoubleExponentialDecay", "Curve:QuadLinear", "Curve:CubicLinear", "Curve:ChillerPartLoadWithLift" } ); // DERIVED TYPE DEFINITIONS @@ -316,6 +319,7 @@ namespace CurveManager { // 22Aug2010 Craig Wray, added new curves for fan component model: // FanPressureRise, ExponentialSkewNormal, Sigmoid, RectangularHyperbola1, // RectangularHyperbola2, ExponentialDecay + // Aug. 2014, Rongpeng Zhang, added a new curve type (ChillerPartLoadWithLift) // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -364,6 +368,7 @@ namespace CurveManager { int NumExponent; // Number of exponent curve objects in the input file int NumOneVarTab; // Number of one variable table objects in the input file int NumTwoVarTab; // Number of two variable table objects in the input file + int NumChillerPartLoadWithLift; // Number of ChillerPartLoadWithLift curve objects in the input data file int NumMultVarLookup; // Number of multivariable tables int NumLookupTables; // total number of one, two, and multivariable tables int NumFanPressRise; // cpw22Aug2010 Number of fan pressure rise curve objects in the input file @@ -432,12 +437,14 @@ namespace CurveManager { NumRectHyper2 = GetNumObjectsFound( "Curve:RectangularHyperbola2" ); //cpw22Aug2010 NumExpDecay = GetNumObjectsFound( "Curve:ExponentialDecay" ); //cpw22Aug2010 NumDoubleExpDecay = GetNumObjectsFound( "Curve:DoubleExponentialDecay" ); //ykt July 2011 + NumChillerPartLoadWithLift = GetNumObjectsFound( "Curve:ChillerPartLoadWithLift" ); // zrp_Aug2014 + NumOneVarTab = GetNumObjectsFound( "Table:OneIndependentVariable" ); NumTwoVarTab = GetNumObjectsFound( "Table:TwoIndependentVariables" ); NumCurves = NumBiQuad + NumCubic + NumQuad + NumQuadLinear + NumCubicLinear + NumLinear + NumBicubic + NumTriQuad + NumExponent + NumQuartic + NumOneVarTab + NumTwoVarTab + NumMultVarLookup + NumFanPressRise + NumExpSkewNorm + NumSigmoid + NumRectHyper1 + NumRectHyper2 + - NumExpDecay + NumDoubleExpDecay + NumQLinear; + NumExpDecay + NumDoubleExpDecay + NumQLinear + NumChillerPartLoadWithLift; // intermediate count for one and two variable performance tables NumTables = NumOneVarTab + NumTwoVarTab; @@ -537,6 +544,85 @@ namespace CurveManager { } } + + // Loop over ChillerPartLoadWithLift curves and load data //zrp_Aug2014 + CurrentModuleObject = "Curve:ChillerPartLoadWithLift"; + for ( CurveIndex = 1; CurveIndex <= NumChillerPartLoadWithLift; ++CurveIndex ) { + GetObjectItem( CurrentModuleObject, CurveIndex, Alphas, NumAlphas, Numbers, NumNumbers, IOStatus, lNumericFieldBlanks, _, cAlphaFieldNames, cNumericFieldNames ); + ++CurveNum; + IsNotOK = false; + IsBlank = false; + VerifyName( Alphas( 1 ), PerfCurve.Name(), CurveNum - 1, IsNotOK, IsBlank, CurrentModuleObject + " Name" ); + if ( IsNotOK ) { + ErrorsFound = true; + if ( IsBlank ) Alphas( 1 ) = "xxxxx"; + } + // Need to verify that this name isn't used in Pressure Curves as well. + if ( NumPressureCurves > 0 ) { + CurveFound = FindItemInList( Alphas( 1 ), PressureCurve.Name(), NumPressureCurves ); + if ( CurveFound != 0 ) { + ShowSevereError( "GetCurveInput: " + CurrentModuleObject + "=\"" + Alphas( 1 ) + "\", duplicate curve name." ); + ShowContinueError( "...Curve name duplicates one of the Pressure Curves. Names must be unique across all curves." ); + ErrorsFound = true; + } + } + PerfCurve( CurveNum ).Name = Alphas( 1 ); + + PerfCurve( CurveNum ).CurveType = ChillerPartLoadWithLift; + PerfCurve( CurveNum ).ObjectType = CurveType_ChillerPartLoadWithLift; + PerfCurve( CurveNum ).InterpolationType = EvaluateCurveToLimits; + + PerfCurve( CurveNum ).Coeff1 = Numbers( 1 ); + PerfCurve( CurveNum ).Coeff2 = Numbers( 2 ); + PerfCurve( CurveNum ).Coeff3 = Numbers( 3 ); + PerfCurve( CurveNum ).Coeff4 = Numbers( 4 ); + PerfCurve( CurveNum ).Coeff5 = Numbers( 5 ); + PerfCurve( CurveNum ).Coeff6 = Numbers( 6 ); + PerfCurve( CurveNum ).Coeff7 = Numbers( 7 ); + PerfCurve( CurveNum ).Coeff8 = Numbers( 8 ); + PerfCurve( CurveNum ).Coeff9 = Numbers( 9 ); + PerfCurve( CurveNum ).Coeff10 = Numbers( 10 ); + PerfCurve( CurveNum ).Coeff11 = Numbers( 11 ); + PerfCurve( CurveNum ).Coeff12 = Numbers( 12 ); + + PerfCurve( CurveNum ).Var1Min = Numbers( 13 ); + PerfCurve( CurveNum ).Var1Max = Numbers( 14 ); + PerfCurve( CurveNum ).Var2Min = Numbers( 15 ); + PerfCurve( CurveNum ).Var2Max = Numbers( 16 ); + PerfCurve( CurveNum ).Var3Min = Numbers( 17 ); + PerfCurve( CurveNum ).Var3Max = Numbers( 18 ); + + if ( NumNumbers > 18 && ! lNumericFieldBlanks( 19 ) ) { + PerfCurve( CurveNum ).CurveMin = Numbers( 19 ); + PerfCurve( CurveNum ).CurveMinPresent = true; + } + if ( NumNumbers > 19 && ! lNumericFieldBlanks( 20 ) ) { + PerfCurve( CurveNum ).CurveMax = Numbers( 20 ); + PerfCurve( CurveNum ).CurveMaxPresent = true; + } + + if ( NumAlphas >= 2 ) { + if ( ! IsCurveInputTypeValid( Alphas( 2 ) ) ) { + ShowWarningError( "In " + CurrentModuleObject + " named " + Alphas( 1 ) + " the Input Unit Type for X is invalid." ); + } + } + if ( NumAlphas >= 3 ) { + if ( ! IsCurveInputTypeValid( Alphas( 3 ) ) ) { + ShowWarningError( "In " + CurrentModuleObject + " named " + Alphas( 1 ) + " the Input Unit Type for Y is invalid." ); + } + } + if ( NumAlphas >= 4 ) { + if ( ! IsCurveOutputTypeValid( Alphas( 4 ) ) ) { + ShowWarningError( "In " + CurrentModuleObject + " named " + Alphas( 1 ) + " the OInput Unit Type for Z is invalid." ); + } + } + if ( NumAlphas >= 5 ) { + if ( ! IsCurveOutputTypeValid( Alphas( 5 ) ) ) { + ShowWarningError( "In " + CurrentModuleObject + " named " + Alphas( 1 ) + " the Output Unit Type is invalid." ); + } + } + + } // Loop over cubic curves and load data CurrentModuleObject = "Curve:Cubic"; @@ -2447,7 +2533,7 @@ namespace CurveManager { // CurrentModuleObject='Curve:BiQuadratic/QuadraticLinear/BiCubic/CubicLinear' SetupOutputVariable( "Performance Curve Input Variable 1 Value []", PerfCurve( CurveIndex ).CurveInput1, "HVAC", "Average", PerfCurve( CurveIndex ).Name ); SetupOutputVariable( "Performance Curve Input Variable 2 Value []", PerfCurve( CurveIndex ).CurveInput2, "HVAC", "Average", PerfCurve( CurveIndex ).Name ); - } else if ( SELECT_CASE_var1 == TriQuadratic ) { + } else if ( ( SELECT_CASE_var1 == TriQuadratic ) || ( SELECT_CASE_var1 == ChillerPartLoadWithLift ) ) { // CurrentModuleObject='Curve:TriQuadratic' SetupOutputVariable( "Performance Curve Input Variable 1 Value []", PerfCurve( CurveIndex ).CurveInput1, "HVAC", "Average", PerfCurve( CurveIndex ).Name ); SetupOutputVariable( "Performance Curve Input Variable 2 Value []", PerfCurve( CurveIndex ).CurveInput2, "HVAC", "Average", PerfCurve( CurveIndex ).Name ); @@ -3530,6 +3616,8 @@ Label999: ; CurveValue = ( Curve.Coeff1 + V1 * ( Curve.Coeff2 + V1 * ( Curve.Coeff3 + V1 * Curve.Coeff4 ) ) ) + ( Curve.Coeff5 + V1 * Curve.Coeff6 ) * V2; } else if ( SELECT_CASE_var == BiCubic ) { CurveValue = Curve.Coeff1 + V1 * Curve.Coeff2 + V1 * V1 * Curve.Coeff3 + V2 * Curve.Coeff4 + V2 * V2 * Curve.Coeff5 + V1 * V2 * Curve.Coeff6 + V1 * V1 * V1 * Curve.Coeff7 + V2 * V2 * V2 * Curve.Coeff8 + V1 * V1 * V2 * Curve.Coeff9 + V1 * V2 * V2 * Curve.Coeff10; + } else if ( SELECT_CASE_var == ChillerPartLoadWithLift ) { + CurveValue = Curve.Coeff1 + Curve.Coeff2*V1 + Curve.Coeff3*V1*V1 + Curve.Coeff4*V2 + Curve.Coeff5*V2*V2 + Curve.Coeff6*V1*V2 + Curve.Coeff7*V1*V1*V1 + Curve.Coeff8*V2*V2*V2 + Curve.Coeff9*V1*V1*V2 + Curve.Coeff10*V1*V2*V2 + Curve.Coeff11*V1*V1*V2*V2 + Curve.Coeff12*V3*V2*V2*V2; } else if ( SELECT_CASE_var == TriQuadratic ) { auto const & Tri2ndOrder( Curve.Tri2ndOrder( 1 ) ); auto const V1s( V1 * V1 ); @@ -4830,7 +4918,7 @@ Label999: ; // FUNCTION INFORMATION: // AUTHOR Kenneth Tang // DATE WRITTEN Oct 2004 - // MODIFIED January 2006, Rick Strand; July 2006, Lixing Gu + // MODIFIED January 2006, Rick Strand; July 2006, Lixing Gu; Aug. 2014, Rongpeng Zhang // RE-ENGINEERED na // PURPOSE OF THIS FUNCTION: @@ -4903,7 +4991,8 @@ Label999: ; GetCurveType = "EXPONENTIALDECAY"; } else if ( SELECT_CASE_var == DoubleExponentialDecay ) { GetCurveType = "DOUBLEEXPONENTIALDECAY"; - + } else if ( SELECT_CASE_var == ChillerPartLoadWithLift ) { + GetCurveType = "CHILLERPARTLOADWITHLIFT"; }} } else { GetCurveType = ""; diff --git a/src/EnergyPlus/CurveManager.hh b/src/EnergyPlus/CurveManager.hh index 3927db8cccf..63a21f8f0cf 100644 --- a/src/EnergyPlus/CurveManager.hh +++ b/src/EnergyPlus/CurveManager.hh @@ -45,6 +45,7 @@ namespace CurveManager { extern int const DoubleExponentialDecay; extern int const QuadLinear; extern int const CubicLinear; + extern int const ChillerPartLoadCustom; // Interpolation Types extern int const LinearInterpolationOfTable; @@ -84,6 +85,7 @@ namespace CurveManager { extern int const CurveType_DoubleExponentialDecay; extern int const CurveType_QuadLinear; extern int const CurveType_CubicLinear; + extern int const CurveType_ChillerPartLoadCustom; extern FArray1D_string const cCurveTypes; @@ -298,6 +300,8 @@ namespace CurveManager { Real64 Coeff8; // cubic coeff for bicubic (2nd ind var) Real64 Coeff9; // cross coeff for bicubic (1st quadratic & 2nd linear) Real64 Coeff10; // cross coeff for bicubic (1st linear & 2nd quadratic) + Real64 Coeff11; // cross coeff + Real64 Coeff12; // cross coeff Real64 Var1Max; // maximum of 1st independent variable Real64 Var1Min; // minimum of 1st independent variable Real64 Var2Max; // maximum of 2nd independent variable @@ -345,6 +349,8 @@ namespace CurveManager { Coeff8( 0.0 ), Coeff9( 0.0 ), Coeff10( 0.0 ), + Coeff11( 0.0 ), + Coeff12( 0.0 ), Var1Max( 0.0 ), Var1Min( 0.0 ), Var2Max( 0.0 ), @@ -392,6 +398,8 @@ namespace CurveManager { Real64 const Coeff8, // cubic coeff for bicubic (2nd ind var) Real64 const Coeff9, // cross coeff for bicubic (1st quadratic & 2nd linear) Real64 const Coeff10, // cross coeff for bicubic (1st linear & 2nd quadratic) + Real64 const Coeff11, // cross coeff + Real64 const Coeff12, // cross coeff Real64 const Var1Max, // maximum of 1st independent variable Real64 const Var1Min, // minimum of 1st independent variable Real64 const Var2Max, // maximum of 2nd independent variable @@ -437,6 +445,8 @@ namespace CurveManager { Coeff8( Coeff8 ), Coeff9( Coeff9 ), Coeff10( Coeff10 ), + Coeff11( Coeff11 ), + Coeff12( Coeff12 ), Var1Max( Var1Max ), Var1Min( Var1Min ), Var2Max( Var2Max ), diff --git a/src/EnergyPlus/DXCoils.cc b/src/EnergyPlus/DXCoils.cc index 47facde26ca..e124050b758 100644 --- a/src/EnergyPlus/DXCoils.cc +++ b/src/EnergyPlus/DXCoils.cc @@ -5545,16 +5545,16 @@ namespace DXCoils { VolFlowRate = DXCoil( DXCoilNum ).MSRatedAirVolFlowRate( Mode ); if ( VolFlowRate >= SmallAirVolFlow ) { if ( CurOASysNum > 0 ) { // coil is in the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; } else { // coil is on the main air loop SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / VolFlowRate; @@ -5562,11 +5562,11 @@ namespace DXCoils { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); @@ -11331,7 +11331,7 @@ Label50: ; Real64 CalcTwoSpeedDXCoilIEERResidual( Real64 const SupplyAirMassFlowRate, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -11404,18 +11404,18 @@ Label50: ; Real64 HighSpeedNetCoolingCap; Real64 LowSpeedNetCoolingCap; - DXCoilNum = int( Par()( 1 ) ); - TargetCoilLeavingDryBulb = Par()( 2 ); - TargetNetCapacity = Par()( 3 ); - OutdoorUnitInletDryBulb = Par()( 4 ); - IndoorUnitInletWetBulb = Par()( 5 ); - IndoorUnitInletDryBulb = Par()( 6 ); - NetCoolingCapRated = Par()( 7 ); - FanPowerPerEvapAirFlowRate = Par()( 8 ); - FanInletNodeNum = int( Par()( 9 ) ); - FanOutletNodeNum = int( Par()( 10 ) ); - FanExternalStaticFull = Par()( 11 ); - FanIndex = int( Par()( 12 ) ); + DXCoilNum = int( Par( 1 ) ); + TargetCoilLeavingDryBulb = Par( 2 ); + TargetNetCapacity = Par( 3 ); + OutdoorUnitInletDryBulb = Par( 4 ); + IndoorUnitInletWetBulb = Par( 5 ); + IndoorUnitInletDryBulb = Par( 6 ); + NetCoolingCapRated = Par( 7 ); + FanPowerPerEvapAirFlowRate = Par( 8 ); + FanInletNodeNum = int( Par( 9 ) ); + FanOutletNodeNum = int( Par( 10 ) ); + FanExternalStaticFull = Par( 11 ); + FanIndex = int( Par( 12 ) ); if ( DXCoil( DXCoilNum ).RatedAirMassFlowRate( 1 ) > 0.0 ) { AirMassFlowRatio = SupplyAirMassFlowRate / DXCoil( DXCoilNum ).RatedAirMassFlowRate( 1 ); diff --git a/src/EnergyPlus/DXCoils.hh b/src/EnergyPlus/DXCoils.hh index 6edb94d8345..abd834df3db 100644 --- a/src/EnergyPlus/DXCoils.hh +++ b/src/EnergyPlus/DXCoils.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -1320,7 +1319,7 @@ namespace DXCoils { Real64 CalcTwoSpeedDXCoilIEERResidual( Real64 const SupplyAirMassFlowRate, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); // ====================== Utility routines ====================================== diff --git a/src/EnergyPlus/DataGlobals.cc b/src/EnergyPlus/DataGlobals.cc index 578e793a19d..e562334deeb 100644 --- a/src/EnergyPlus/DataGlobals.cc +++ b/src/EnergyPlus/DataGlobals.cc @@ -168,7 +168,8 @@ namespace DataGlobals { bool CreateMinimalSurfaceVariables( false ); // True when selection for "CreateMinimalSurfaceVariables" is entered Real64 CurrentTime( 0.0 ); // CurrentTime, in fractional hours, from start of day. Uses Loads time step. int SimTimeSteps( 0 ); // Number of (Loads) timesteps since beginning of run period (environment). - int MinutesPerTimeStep; // Minutes per time step calculated from NumTimeStepInHour (number of minutes per load time step) + int MinutesPerTimeStep( 0 ); // Minutes per time step calculated from NumTimeStepInHour (number of minutes per load time step) + Real64 TimeStepZoneSec( 0.0 ); // Seconds per time step bool MetersHaveBeenInitialized( false ); bool KickOffSimulation( false ); // Kick off simulation -- meaning run each environment for 1 or 2 time steps. bool KickOffSizing( false ); // Kick off sizing -- meaning run each environment for 1 or 2 time steps. @@ -190,7 +191,7 @@ namespace DataGlobals { void ( *fMessagePtr )( std::string const & ); // NOTICE - // Copyright © 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/DataGlobals.hh b/src/EnergyPlus/DataGlobals.hh index 51e8ac75144..819b54f8f33 100644 --- a/src/EnergyPlus/DataGlobals.hh +++ b/src/EnergyPlus/DataGlobals.hh @@ -41,7 +41,6 @@ namespace DataGlobals { extern Real64 const TwoPi; // 2*Pi 6.2831853071795864769252868 extern Real64 const GravityConstant; extern Real64 const DegToRadians; // Conversion for Degrees to Radians - extern Real64 const DegToRad; // Conversion for Degrees to Radians extern Real64 const RadToDeg; // Conversion for Radians to Degrees extern Real64 const SecInHour; // Conversion for hours to seconds extern Real64 const HoursInDay; // Number of Hourse in Day @@ -145,6 +144,7 @@ namespace DataGlobals { extern Real64 CurrentTime; // CurrentTime, in fractional hours, from start of day. Uses Loads time step. extern int SimTimeSteps; // Number of (Loads) timesteps since beginning of run period (environment). extern int MinutesPerTimeStep; // Minutes per time step calculated from NumTimeStepInHour (number of minutes per load time step) + extern Real64 TimeStepZoneSec; // Seconds per time step extern bool MetersHaveBeenInitialized; extern bool KickOffSimulation; // Kick off simulation -- meaning run each environment for 1 or 2 time steps. extern bool KickOffSizing; // Kick off sizing -- meaning run each environment for 1 or 2 time steps. diff --git a/src/EnergyPlus/DataHeatBalFanSys.cc b/src/EnergyPlus/DataHeatBalFanSys.cc index b810eab26ce..aacf4cb5822 100644 --- a/src/EnergyPlus/DataHeatBalFanSys.cc +++ b/src/EnergyPlus/DataHeatBalFanSys.cc @@ -191,7 +191,7 @@ namespace DataHeatBalFanSys { FArray1D< ZoneComfortControlsFangerData > ZoneComfortControlsFanger; // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/DataHeatBalSurface.hh b/src/EnergyPlus/DataHeatBalSurface.hh index 114cf83af90..2d073e4480a 100644 --- a/src/EnergyPlus/DataHeatBalSurface.hh +++ b/src/EnergyPlus/DataHeatBalSurface.hh @@ -171,10 +171,10 @@ namespace DataHeatBalSurface { //the next user requested time step) extern FArray3D< Real64 > THM; // Master Temperature History (on the time step for the construct) extern FArray3D< Real64 > QHM; // Master Flux History (on the time step for the construct) - extern FArray2D< Real64 > TsrcHist; // Temperature history at the source location (SurfNum,Term) - extern FArray2D< Real64 > QsrcHist; // Heat source/sink history for the surface (SurfNum,Term) - extern FArray2D< Real64 > TsrcHistM; // Master temperature history at the source location (SurfNum,Term) - extern FArray2D< Real64 > QsrcHistM; // Master heat source/sink history for the surface (SurfNum,Term) + extern FArray2D< Real64 > TsrcHist; // Temperature history at the source location (Term,SurfNum) + extern FArray2D< Real64 > QsrcHist; // Heat source/sink history for the surface (Term,SurfNum) + extern FArray2D< Real64 > TsrcHistM; // Master temperature history at the source location (Term,SurfNum) + extern FArray2D< Real64 > QsrcHistM; // Master heat source/sink history for the surface (Term,SurfNum) extern FArray2D< Real64 > FractDifShortZtoZ; // Fraction of diffuse short radiation in Zone 2 transmitted to Zone 1 extern FArray1D_bool RecDifShortFromZ; // True if Zone gets short radiation from another diff --git a/src/EnergyPlus/DataHeatBalance.cc b/src/EnergyPlus/DataHeatBalance.cc index c0228012edf..377f3898d9c 100644 --- a/src/EnergyPlus/DataHeatBalance.cc +++ b/src/EnergyPlus/DataHeatBalance.cc @@ -199,10 +199,10 @@ namespace DataHeatBalance { int const AddInfiltrationFlow( 1 ); int const AdjustInfiltrationFlow( 2 ); - int const NumZoneIntGainDeviceTypes( 45 ); - FArray1D_string const ZoneIntGainDeviceTypes( NumZoneIntGainDeviceTypes, { "PEOPLE", "LIGHTS", "ELECTRICEQUIPMENT", "GASEQUIPMENT", "HOTWATEREQUIPMENT", "STEAMEQUIPMENT", "OTHEREQUIPMENT", "ZONEBASEBOARD:OUTDOORTEMPERATURECONTROLLED", "ZONECONTAMINANTSOURCEANDSINK:CARBONDIOXIDE", "WATERUSE:EQUIPMENT", "DAYLIGHTINGDEVICE:TUBULAR", "WATERHEATER:MIXED", "WATERHEATER:STRATIFIED", "THERMALSTORAGE:CHILLEDWATER:MIXED", "THERMALSTORAGE:CHILLEDWATER:STRATIFIED", "GENERATOR:FUELCELL", "GENERATOR:MICROCHP", "ELECTRICLOADCENTER:TRANSFORMER", "ELECTRICLOADCENTER:INVERTER:SIMPLE", "ELECTRICLOADCENTER:INVERTER:FUNCTIONOFPOWER", "ELECTRICLOADCENTER:INVERTER:LOOKUPTABLE", "ELECTRICLOADCENTER:STORAGE:BATTERY", "ELECTRICLOADCENTER:STORAGE:SIMPLE", "PIPE:INDOOR", "REFRIGERATION:CASE", "REFRIGERATION:COMPRESSORRACK", "REFRIGERATION:SYSTEM:CONDENSER:AIRCOOLED", "REFRIGERATION:TRANSCRITICALSYSTEM:GASCOOLER:AIRCOOLED", "REFRIGERATION:SYSTEM:SUCTIONPIPE", "REFRIGERATION:TRANSCRITICALSYSTEM:SUCTIONPIPEMT", "REFRIGERATION:TRANSCRITICALSYSTEM:SUCTIONPIPELT", "REFRIGERATION:SECONDARYSYSTEM:RECEIVER", "REFRIGERATION:SECONDARYSYSTEM:PIPE", "REFRIGERATION:WALKIN", "PUMP:VARIABLESPEED", "PUMP:CONSTANTSPEED", "PUMP:VARIABLESPEED:CONDENSATE", "HEADEREDPUMPS:VARIABLESPEED", "HEADEREDPUMPS:CONSTANTSPEED", "ZONECONTAMINANTSOURCEANDSINK:GENERICCONTAMINANT", "PLANTCOMPONENT:USERDEFINED", "COIL:USERDEFINED", "ZONEHVAC:FORCEDAIR:USERDEFINED", "AIRTERMINAL:SINGLEDUCT:USERDEFINED", "COIL:COOLING:DX:SINGLESPEED:THERMALSTORAGE" } ); // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 + int const NumZoneIntGainDeviceTypes( 46 ); + FArray1D_string const ZoneIntGainDeviceTypes( NumZoneIntGainDeviceTypes, { "PEOPLE", "LIGHTS", "ELECTRICEQUIPMENT", "GASEQUIPMENT", "HOTWATEREQUIPMENT", "STEAMEQUIPMENT", "OTHEREQUIPMENT", "ZONEBASEBOARD:OUTDOORTEMPERATURECONTROLLED", "ZONECONTAMINANTSOURCEANDSINK:CARBONDIOXIDE", "WATERUSE:EQUIPMENT", "DAYLIGHTINGDEVICE:TUBULAR", "WATERHEATER:MIXED", "WATERHEATER:STRATIFIED", "THERMALSTORAGE:CHILLEDWATER:MIXED", "THERMALSTORAGE:CHILLEDWATER:STRATIFIED", "GENERATOR:FUELCELL", "GENERATOR:MICROCHP", "ELECTRICLOADCENTER:TRANSFORMER", "ELECTRICLOADCENTER:INVERTER:SIMPLE", "ELECTRICLOADCENTER:INVERTER:FUNCTIONOFPOWER", "ELECTRICLOADCENTER:INVERTER:LOOKUPTABLE", "ELECTRICLOADCENTER:STORAGE:BATTERY", "ELECTRICLOADCENTER:STORAGE:SIMPLE", "PIPE:INDOOR", "REFRIGERATION:CASE", "REFRIGERATION:COMPRESSORRACK", "REFRIGERATION:SYSTEM:CONDENSER:AIRCOOLED", "REFRIGERATION:TRANSCRITICALSYSTEM:GASCOOLER:AIRCOOLED", "REFRIGERATION:SYSTEM:SUCTIONPIPE", "REFRIGERATION:TRANSCRITICALSYSTEM:SUCTIONPIPEMT", "REFRIGERATION:TRANSCRITICALSYSTEM:SUCTIONPIPELT", "REFRIGERATION:SECONDARYSYSTEM:RECEIVER", "REFRIGERATION:SECONDARYSYSTEM:PIPE", "REFRIGERATION:WALKIN", "PUMP:VARIABLESPEED", "PUMP:CONSTANTSPEED", "PUMP:VARIABLESPEED:CONDENSATE", "HEADEREDPUMPS:VARIABLESPEED", "HEADEREDPUMPS:CONSTANTSPEED", "ZONECONTAMINANTSOURCEANDSINK:GENERICCONTAMINANT", "PLANTCOMPONENT:USERDEFINED", "COIL:USERDEFINED", "ZONEHVAC:FORCEDAIR:USERDEFINED", "AIRTERMINAL:SINGLEDUCT:USERDEFINED", "COIL:COOLING:DX:SINGLESPEED:THERMALSTORAGE", "ELECTRICEQUIPMENT:ITE:AIRCOOLED" } ); // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 - FArray1D_string const ccZoneIntGainDeviceTypes( NumZoneIntGainDeviceTypes, { "People", "Lights", "ElectricEquipment", "GasEquipment", "HotWaterEquipment", "SteamEquipment", "OtherEquipment", "ZoneBaseboard:OutdoorTemperatureControlled", "ZoneContaminantSourceAndSink:CarbonDioxide", "WaterUse:Equipment", "DaylightingDevice:Tubular", "WaterHeater:Mixed", "WaterHeater:Stratified", "ThermalStorage:ChilledWater:Mixed", "ThermalStorage:ChilledWater:Stratified", "Generator:FuelCell", "Generator:MicroCHP", "ElectricLoadCenter:Transformer", "ElectricLoadCenter:Inverter:Simple", "ElectricLoadCenter:Inverter:FunctionOfPower", "ElectricLoadCenter:Inverter:LookUpTable", "ElectricLoadCenter:Storage:Battery", "ElectricLoadCenter:Storage:Simple", "Pipe:Indoor", "Refrigeration:Case", "Refrigeration:CompressorRack", "Refrigeration:System:Condenser:AirCooled", "Refrigeration:TranscriticalSystem:GasCooler:AirCooled", "Refrigeration:System:SuctionPipe", "Refrigeration:TranscriticalSystem:SuctionPipeMT", "Refrigeration:TranscriticalSystem:SuctionPipeLT", "Refrigeration:SecondarySystem:Receiver", "Refrigeration:SecondarySystem:Pipe", "Refrigeration:WalkIn", "Pump:VariableSpeed", "Pump:ConstantSpeed", "Pump:VariableSpeed:Condensate", "HeaderedPumps:VariableSpeed", "HeaderedPumps:ConstantSpeed", "ZoneContaminantSourceAndSink:GenericContaminant", "PlantComponent:UserDefined", "Coil:UserDefined", "ZoneHVAC:ForcedAir:UserDefined", "AirTerminal:SingleDuct:UserDefined", "Coil:Cooling:DX:SingleSpeed:ThermalStorage" } ); // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 + FArray1D_string const ccZoneIntGainDeviceTypes( NumZoneIntGainDeviceTypes, { "People", "Lights", "ElectricEquipment", "GasEquipment", "HotWaterEquipment", "SteamEquipment", "OtherEquipment", "ZoneBaseboard:OutdoorTemperatureControlled", "ZoneContaminantSourceAndSink:CarbonDioxide", "WaterUse:Equipment", "DaylightingDevice:Tubular", "WaterHeater:Mixed", "WaterHeater:Stratified", "ThermalStorage:ChilledWater:Mixed", "ThermalStorage:ChilledWater:Stratified", "Generator:FuelCell", "Generator:MicroCHP", "ElectricLoadCenter:Transformer", "ElectricLoadCenter:Inverter:Simple", "ElectricLoadCenter:Inverter:FunctionOfPower", "ElectricLoadCenter:Inverter:LookUpTable", "ElectricLoadCenter:Storage:Battery", "ElectricLoadCenter:Storage:Simple", "Pipe:Indoor", "Refrigeration:Case", "Refrigeration:CompressorRack", "Refrigeration:System:Condenser:AirCooled", "Refrigeration:TranscriticalSystem:GasCooler:AirCooled", "Refrigeration:System:SuctionPipe", "Refrigeration:TranscriticalSystem:SuctionPipeMT", "Refrigeration:TranscriticalSystem:SuctionPipeLT", "Refrigeration:SecondarySystem:Receiver", "Refrigeration:SecondarySystem:Pipe", "Refrigeration:WalkIn", "Pump:VariableSpeed", "Pump:ConstantSpeed", "Pump:VariableSpeed:Condensate", "HeaderedPumps:VariableSpeed", "HeaderedPumps:ConstantSpeed", "ZoneContaminantSourceAndSink:GenericContaminant", "PlantComponent:UserDefined", "Coil:UserDefined", "ZoneHVAC:ForcedAir:UserDefined", "AirTerminal:SingleDuct:UserDefined", "Coil:Cooling:DX:SingleSpeed:ThermalStorage", "ElectricEquipment:ITE:AirCooled" } ); // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 int const IntGainTypeOf_People( 1 ); int const IntGainTypeOf_Lights( 2 ); @@ -249,6 +249,7 @@ namespace DataHeatBalance { int const IntGainTypeOf_ZoneHVACForcedAirUserDefined( 43 ); int const IntGainTypeOf_AirTerminalUserDefined( 44 ); int const IntGainTypeOf_PackagedTESCoilTank( 45 ); + int const IntGainTypeOf_ElectricEquipmentITEAirCooled( 46 ); //Parameters for checking surface heat transfer models Real64 const HighDiffusivityThreshold( 1.e-5 ); // used to check if Material properties are out of line. diff --git a/src/EnergyPlus/DataHeatBalance.hh b/src/EnergyPlus/DataHeatBalance.hh index 040202700fb..8785ffceebe 100644 --- a/src/EnergyPlus/DataHeatBalance.hh +++ b/src/EnergyPlus/DataHeatBalance.hh @@ -181,9 +181,9 @@ namespace DataHeatBalance { extern int const AdjustInfiltrationFlow; extern int const NumZoneIntGainDeviceTypes; - extern FArray1D_string const ZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 + extern FArray1D_string const ZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 - extern FArray1D_string const ccZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 + extern FArray1D_string const ccZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 extern int const IntGainTypeOf_People; extern int const IntGainTypeOf_Lights; @@ -230,6 +230,7 @@ namespace DataHeatBalance { extern int const IntGainTypeOf_ZoneHVACForcedAirUserDefined; extern int const IntGainTypeOf_AirTerminalUserDefined; extern int const IntGainTypeOf_PackagedTESCoilTank; + extern int const IntGainTypeOf_ElectricEquipmentITEAirCooled; //Parameters for checking surface heat transfer models extern Real64 const HighDiffusivityThreshold; // used to check if Material properties are out of line. @@ -2800,9 +2801,9 @@ namespace DataHeatBalance { TimeAboveDryBulbT( 0.0 ), TimeBelowDryBulbT( 0.0 ), TimeAboveDewpointT( 0.0 ), + TimeBelowDewpointT( 0.0 ), TimeAboveRH( 0.0 ), TimeBelowRH( 0.0 ), - TimeBelowDewpointT( 0.0 ), DryBulbTAboveDeltaT( 0.0 ), DryBulbTBelowDeltaT( 0.0 ), DewpointTAboveDeltaT( 0.0 ), diff --git a/src/EnergyPlus/DataPlant.cc b/src/EnergyPlus/DataPlant.cc index f97af6dec00..82e9f067025 100644 --- a/src/EnergyPlus/DataPlant.cc +++ b/src/EnergyPlus/DataPlant.cc @@ -46,29 +46,6 @@ namespace DataPlant { // Parameters for scheme types - // Used in TYPE(OperationData)%OpSchemeType - // As in PlantLoop(:)%OpScheme(:)%OpSchemeType - // Also in PlantLoop()LoopSide()Branch()Comp()%CurOpSchemeType - int const UnknownStatusOpSchemeType( -2 ); - int const NoControlOpSchemeType( -1 ); // Scheme Type placeholder for items such as pipes - int const LoadRBOpSchemeType( 0 ); // Scheme Type for Load Range Based Operation (Deprecated) - int const HeatingRBOpSchemeType( 1 ); // Scheme Type for Heating Load Range Based Operation - int const CoolingRBOpSchemeType( 2 ); // Scheme Type for Cooling Load Range Based Operation - int const WetBulbRBOpSchemeType( 3 ); // Scheme Type for Wet bulb range based Operation - int const DryBulbRBOpSchemeType( 4 ); // Scheme Type for Dry bulb range based Operation - int const DewPointRBOpSchemeType( 5 ); // Scheme Type for Dewpoint range based Operation - int const RelHumRBOpSchemeType( 6 ); // Scheme Type for relative humidity range based Operation - int const DryBulbTDBOpSchemeType( 7 ); // Scheme Type for relative humidity range based Operation - int const WetBulbTDBOpSchemeType( 8 ); // Scheme Type for Wet bulb range based Operation - int const DewPointTDBOpSchemeType( 9 ); // Scheme Type for Wet bulb range based Operation - int const CompSetPtBasedSchemeType( 10 ); // *Sankar Temp Based Control - int const UncontrolledOpSchemeType( 11 ); // Scheme Type for Uncontrolled Operation - int const EMSOpSchemeType( 12 ); // Scheme Type for EMS based operation user Define scheme - int const PumpOpSchemeType( 13 ); // Not really an OpScheme, just a placeholder - int const DemandOpSchemeType( 14 ); // Plcaeholder for demand side equipment such as coils - int const FreeRejectionOpSchemeType( 15 ); // Scheme Type for waterside economizers and the like - int const WSEconOpSchemeType( 16 ); // Scheme Type for waterside economizers and the like - // this may be changed later... // These are useful for SELECT CASE statements rather than listing all of the individual types listed above int const LoadRangeBasedMin( 0 ); @@ -274,7 +251,7 @@ namespace DataPlant { int const TypeOf_UnitarySystemRecovery( 87 ); int const TypeOf_PackagedTESCoolingCoil( 88 ); int const TypeOf_CoolingTower_VarSpdMerkel( 89 ); - int const TypeOf_SwimmingPool_Indoor(90); + int const TypeOf_SwimmingPool_Indoor( 90 ); // Parameters for General Equipment Types int const NumGeneralEquipTypes( 23 ); @@ -963,7 +940,7 @@ namespace DataPlant { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/DataPlant.hh b/src/EnergyPlus/DataPlant.hh index 53c62a7534f..986cd9fa2ea 100644 --- a/src/EnergyPlus/DataPlant.hh +++ b/src/EnergyPlus/DataPlant.hh @@ -37,26 +37,28 @@ namespace DataPlant { // Used in TYPE(OperationData)%OpSchemeType // As in PlantLoop(:)%OpScheme(:)%OpSchemeType // Also in PlantLoop()LoopSide()Branch()Comp()%CurOpSchemeType - extern int const UnknownStatusOpSchemeType; - extern int const NoControlOpSchemeType; // Scheme Type placeholder for items such as pipes - extern int const LoadRBOpSchemeType; // Scheme Type for Load Range Based Operation (Deprecated) - extern int const HeatingRBOpSchemeType; // Scheme Type for Heating Load Range Based Operation - extern int const CoolingRBOpSchemeType; // Scheme Type for Cooling Load Range Based Operation - extern int const WetBulbRBOpSchemeType; // Scheme Type for Wet bulb range based Operation - extern int const DryBulbRBOpSchemeType; // Scheme Type for Dry bulb range based Operation - extern int const DewPointRBOpSchemeType; // Scheme Type for Dewpoint range based Operation - extern int const RelHumRBOpSchemeType; // Scheme Type for relative humidity range based Operation - extern int const DryBulbTDBOpSchemeType; // Scheme Type for relative humidity range based Operation - extern int const WetBulbTDBOpSchemeType; // Scheme Type for Wet bulb range based Operation - extern int const DewPointTDBOpSchemeType; // Scheme Type for Wet bulb range based Operation - extern int const CompSetPtBasedSchemeType; // *Sankar Temp Based Control - extern int const UncontrolledOpSchemeType; // Scheme Type for Uncontrolled Operation - extern int const EMSOpSchemeType; // Scheme Type for EMS based operation user Define scheme - extern int const PumpOpSchemeType; // Not really an OpScheme, just a placeholder - extern int const DemandOpSchemeType; // Plcaeholder for demand side equipment such as coils - extern int const FreeRejectionOpSchemeType; // Scheme Type for waterside economizers and the like - extern int const WSEconOpSchemeType; // Scheme Type for waterside economizers and the like // this may be changed later... + enum OpSchemeType { // Changed to enum: Better semantic fit and allows use in switch statements: Suggest this migration throughout EnergyPlus (and probably C++11 enum "class") + UnknownStatusOpSchemeType = -2, + NoControlOpSchemeType = -1, // Scheme Type placeholder for items such as pipes + LoadRBOpSchemeType = 0, // Scheme Type for Load Range Based Operation (Deprecated) + HeatingRBOpSchemeType = 1, // Scheme Type for Heating Load Range Based Operation + CoolingRBOpSchemeType = 2, // Scheme Type for Cooling Load Range Based Operation + WetBulbRBOpSchemeType = 3, // Scheme Type for Wet bulb range based Operation + DryBulbRBOpSchemeType = 4, // Scheme Type for Dry bulb range based Operation + DewPointRBOpSchemeType = 5, // Scheme Type for Dewpoint range based Operation + RelHumRBOpSchemeType = 6, // Scheme Type for relative humidity range based Operation + DryBulbTDBOpSchemeType = 7, // Scheme Type for relative humidity range based Operation + WetBulbTDBOpSchemeType = 8, // Scheme Type for Wet bulb range based Operation + DewPointTDBOpSchemeType = 9, // Scheme Type for Wet bulb range based Operation + CompSetPtBasedSchemeType = 10, // *Sankar Temp Based Control + UncontrolledOpSchemeType = 11, // Scheme Type for Uncontrolled Operation + EMSOpSchemeType = 12, // Scheme Type for EMS based operation user Define scheme + PumpOpSchemeType = 13, // Not really an OpScheme, just a placeholder + DemandOpSchemeType = 14, // Plcaeholder for demand side equipment such as coils + FreeRejectionOpSchemeType = 15, // Scheme Type for waterside economizers and the like + WSEconOpSchemeType = 16 // Scheme Type for waterside economizers and the like + }; // These are useful for SELECT CASE statements rather than listing all of the individual types listed above extern int const LoadRangeBasedMin; @@ -2355,7 +2357,7 @@ namespace DataPlant { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/DataPlantPipingSystems.cc b/src/EnergyPlus/DataPlantPipingSystems.cc index 8beb54050e6..28ff3d87889 100644 --- a/src/EnergyPlus/DataPlantPipingSystems.cc +++ b/src/EnergyPlus/DataPlantPipingSystems.cc @@ -114,7 +114,7 @@ namespace DataPlantPipingSystems { FArray1D< PipeSegmentInfo > PipingSystemSegments; // NOTICE - // Copyright © 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/DataRuntimeLanguage.cc b/src/EnergyPlus/DataRuntimeLanguage.cc index 0e563df1c31..83e637f8f38 100644 --- a/src/EnergyPlus/DataRuntimeLanguage.cc +++ b/src/EnergyPlus/DataRuntimeLanguage.cc @@ -204,6 +204,9 @@ namespace DataRuntimeLanguage { ErlValueType False( 0, 0.0, "", 0, 0, false, 0, "" ); // special "false" Erl variable value instance ErlValueType True( 0, 0.0, "", 0, 0, false, 0, "" ); // special "True" Erl variable value instance, gets reset + // EMS Actuator fast duplicate check lookup support + std::unordered_set< std::tuple< std::string, std::string, std::string >, EMSActuatorKey_hash > EMSActuator_lookup; // Fast duplicate lookup structure + // Functions void diff --git a/src/EnergyPlus/DataRuntimeLanguage.hh b/src/EnergyPlus/DataRuntimeLanguage.hh index 2a887adcd45..c6cf0c8c3ca 100644 --- a/src/EnergyPlus/DataRuntimeLanguage.hh +++ b/src/EnergyPlus/DataRuntimeLanguage.hh @@ -1,6 +1,11 @@ #ifndef DataRuntimeLanguage_hh_INCLUDED #define DataRuntimeLanguage_hh_INCLUDED +// C++ Headers +#include +#include +#include + // ObjexxFCL Headers #include #include @@ -671,6 +676,32 @@ namespace DataRuntimeLanguage { extern ErlValueType False; // special "false" Erl variable value instance extern ErlValueType True; // special "True" Erl variable value instance, gets reset + // EMS Actuator fast duplicate check lookup support + typedef std::tuple< std::string, std::string, std::string > EMSActuatorKey; + struct EMSActuatorKey_hash : public std::unary_function< EMSActuatorKey, std::size_t > + { + inline + static + void + hash_combine( std::size_t & seed, std::string const & s ) + { + std::hash< std::string > hasher; + seed ^= hasher( s ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 ); + } + + inline + std::size_t + operator ()( EMSActuatorKey const & key ) const + { + std::size_t seed( 0 ); + hash_combine( seed, std::get< 0 >( key ) ); + hash_combine( seed, std::get< 1 >( key ) ); + hash_combine( seed, std::get< 2 >( key ) ); + return seed; + } + }; + extern std::unordered_set< std::tuple< std::string, std::string, std::string >, EMSActuatorKey_hash > EMSActuator_lookup; // Fast duplicate lookup structure + // Functions void diff --git a/src/EnergyPlus/DataSizing.cc b/src/EnergyPlus/DataSizing.cc index 00ff575611e..b9fd13e4186 100644 --- a/src/EnergyPlus/DataSizing.cc +++ b/src/EnergyPlus/DataSizing.cc @@ -60,6 +60,16 @@ namespace DataSizing { int const NonCoincident( 1 ); int const Coincident( 2 ); + // parameters for Cooling Peak Load TYpe + int const SensibleCoolingLoad( 1 ); + int const TotalCoolingLoad( 2 ); + + // parameters for Central Cooling Capacity Control Method + int const VAV( 1 ); + int const Bypass( 2 ); + int const VT( 3 ); + int const OnOff( 4 ); + // paramters for supply air flow rate method int const SupplyAirTemperature( 1 ); int const TemperatureDifference( 2 ); @@ -180,6 +190,7 @@ namespace DataSizing { Real64 DataDesInletAirHumRat( 0.0 ); // coil inlet air humidity ratio used for warning messages Real64 DataDesInletAirTemp( 0.0 ); // coil inlet air temperature used for warning messages Real64 DataDesOutletAirTemp( 0.0 ); // coil outlet air temperature used for sizing + Real64 DataDesOutletAirHumRat( 0.0 ); // coil air outlet humidity ratio used in sizing calculations [kg water / kg dry air] Real64 DataCoolCoilCap( 0.0 ); // cooling coil capacity used for sizing with scalable inputs [W] Real64 DataFlowUsedForSizing( 0.0 ); // air flow rate used for sizing with scalable inputs [m3/s] Real64 DataAirFlowUsedForSizing( 0.0 ); // air flow rate used for sizing with scalable inputs [m3/s] @@ -225,6 +236,7 @@ namespace DataSizing { FArray2D< SystemSizingData > SysSizing; // Data array for system sizing (all data) FArray1D< SystemSizingData > FinalSysSizing; // Data array for system sizing (max heat/cool) FArray1D< SystemSizingData > CalcSysSizing; // Data array for system sizing (max heat/cool) + FArray1D< SysSizPeakDDNumData > SysSizPeakDDNum; // data array for peak des day indices FArray1D< TermUnitSizingData > TermUnitSizing; // Data added in sizing routines FArray1D< ZoneEqSizingData > ZoneEqSizing; // Data added in zone eq component sizing routines FArray1D< ZoneEqSizingData > UnitarySysEqSizing; // Data added in unitary system sizing routines diff --git a/src/EnergyPlus/DataSizing.hh b/src/EnergyPlus/DataSizing.hh index 24dc625cdf8..1b0e533e3aa 100644 --- a/src/EnergyPlus/DataSizing.hh +++ b/src/EnergyPlus/DataSizing.hh @@ -49,6 +49,16 @@ namespace DataSizing { extern int const NonCoincident; extern int const Coincident; + // parameters for Cooling Peak Load Type + extern int const SensibleCoolingLoad; + extern int const TotalCoolingLoad; + + // parameters for Central Cooling Capacity Control Method + extern int const VAV; + extern int const Bypass; + extern int const VT; + extern int const OnOff; + // paramters for supply air flow rate method extern int const SupplyAirTemperature; extern int const TemperatureDifference; @@ -169,6 +179,7 @@ namespace DataSizing { extern Real64 DataDesInletAirHumRat; // coil inlet air humidity ratio used for warning messages extern Real64 DataDesInletAirTemp; // coil inlet air temperature used for warning messages extern Real64 DataDesOutletAirTemp; // coil outlet air temperature used for sizing + extern Real64 DataDesOutletAirHumRat; // coil air outlet humidity ratio used in sizing calculations [kg water / kg dry air] extern Real64 DataCoolCoilCap; // cooling coil capacity used for sizing with scalable inputs extern Real64 DataFlowUsedForSizing; // air flow rate used for sizing with scalable inputs [m3/s] extern Real64 DataAirFlowUsedForSizing; // air flow rate used for sizing with scalable inputs [m3/s] @@ -1163,9 +1174,9 @@ namespace DataSizing { int ScaleHeatSAFMethod; // choice of how to get system heating scalable air flow rates; // (FlowPerFloorArea, FractionOfAutosizedCoolingAirflow, FractionOfAutosizedHeatingAirflow, FlowPerHeatingCapacity) int SystemOAMethod; // System Outdoor Air Method; 1 = SOAM_ZoneSum, 2 = SOAM_VRP Real64 MaxZoneOAFraction; // maximum value of min OA for zones served by system - bool OAAutoSized; // Set to true if design OA vol flow is set to 'autosize' - int CoolingCapMethod; // - Method for cooling capacity scaledsizing calculation (CoolingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity) - int HeatingCapMethod; // - Method for heatiing capacity scaledsizing calculation (HeatingDesignCapacity, CapacityPerFloorArea, FracOfAutosizedHeatingCapacity) + bool OAAutoSized; // Set to true if design OA vol flow is set to 'autosize' in Sizing:System + int CoolingCapMethod; // - Method for cooling capacity scaledsizing calculation (CoolingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity) + int HeatingCapMethod; // - Method for heatiing capacity scaledsizing calculation (HeatingDesignCapacity, CapacityPerFloorArea, FracOfAutosizedHeatingCapacity) Real64 ScaledCoolingCapacity; // - scaled maximum cooling capacity of cooling coil in an air loop Real64 ScaledHeatingCapacity; // - scaled maximum heating capacity of cooling coil in an air loop Real64 FloorAreaOnAirLoopCooled; // total floor of cooled zones served by an airloop @@ -1176,8 +1187,8 @@ namespace DataSizing { Real64 FractionOfAutosizedHeatingAirflow; // fraction of of heating supply air flow rate an airloop Real64 FlowPerCoolingCapacity; // ratio of cooling supply air flow rate to cooling capacity of an airloop Real64 FlowPerHeatingCapacity; // ratio of heating supply air flow rate to heating capacity of an airloop - - // in Sizing:System + int CoolingPeakLoadType; //Type of peak to size cooling coils on 1=SensibleCoolingLoad; 2=TotalCoolingLoad + int CoolCapControl; // type of control of cooling coil 1=VAV; 2=Bypass; 3=VT; 4=OnOff // Default Constructor SystemSizingInputData() : @@ -1216,7 +1227,9 @@ namespace DataSizing { FractionOfAutosizedCoolingAirflow( 1.0 ), FractionOfAutosizedHeatingAirflow( 1.0 ), FlowPerCoolingCapacity( 0.0 ), - FlowPerHeatingCapacity( 0.0 ) + FlowPerHeatingCapacity( 0.0 ), + CoolingPeakLoadType( 0 ), // wfb + CoolCapControl( 0 ) // wfb {} // Member Constructor @@ -1257,7 +1270,10 @@ namespace DataSizing { Real64 const FractionOfAutosizedCoolingAirflow, // fraction of of cooling supply air flow rate an airloop Real64 const FractionOfAutosizedHeatingAirflow, // fraction of of heating supply air flow rate an airloop Real64 const FlowPerCoolingCapacity, // ratio of cooling supply air flow rate to cooling capacity of an airloop - Real64 const FlowPerHeatingCapacity // ratio of heating supply air flow rate to heating capacity of an airloop + Real64 const FlowPerHeatingCapacity, // ratio of heating supply air flow rate to heating capacity of an airloop + // wfb + int const CoolingPeakLoadType, // Type of peak to size cooling coils on 1=SensibleCoolingLoad; 2=TotalCoolingLoad + int const CoolCapControl // type of control of cooling coil 1=VAV; 2=Bypass; 3=VT; 4=OnOff ) : AirPriLoopName( AirPriLoopName ), AirLoopNum( AirLoopNum ), @@ -1295,7 +1311,9 @@ namespace DataSizing { FractionOfAutosizedCoolingAirflow( FractionOfAutosizedCoolingAirflow ), FractionOfAutosizedHeatingAirflow( FractionOfAutosizedHeatingAirflow ), FlowPerCoolingCapacity( FlowPerCoolingCapacity ), - FlowPerHeatingCapacity( FlowPerHeatingCapacity ) + FlowPerHeatingCapacity( FlowPerHeatingCapacity ), + CoolingPeakLoadType( CoolingPeakLoadType ), // wfb + CoolCapControl( CoolCapControl) // wfb {} }; @@ -1348,14 +1366,16 @@ namespace DataSizing { bool EMSOverrideDesCoolVolFlowOn; // If true, EMS is acting to change DesCoolVolFlow Real64 EMSValueDesCoolVolFlow; // Value EMS providing for design cool supply duct volume flow [m3/s] Real64 SensCoolCap; // design sensible cooling capacity [W] + Real64 TotCoolCap; // design total cooling capacity [W] Real64 HeatCap; // design heating capacity [W] Real64 PreheatCap; // design preheat capacity [W] - Real64 CoolMixTemp; // design mixed air temperature for cooling [C] - Real64 CoolMixHumRat; // design mixed air hum ratio for cooling [kg water/kg dry air] - Real64 CoolRetTemp; // design return air temperature for cooling [C] - Real64 CoolRetHumRat; // design return air hum ratio for cooling [kg water/kg dry air] - Real64 CoolOutTemp; // design outside air temperature for cooling [C] - Real64 CoolOutHumRat; // design outside air hum ratio for cooling [kg water/kg dry air] + Real64 MixTempAtCoolPeak; // design mixed air temperature for cooling [C] + Real64 MixHumRatAtCoolPeak; // design mixed air hum ratio for cooling [kg water/kg dry air] + Real64 RetTempAtCoolPeak; // design return air temperature for cooling [C] + Real64 RetHumRatAtCoolPeak; // design return air hum ratio for cooling [kg water/kg dry air] + Real64 OutTempAtCoolPeak; // design outside air temperature for cooling [C] + Real64 OutHumRatAtCoolPeak; // design outside air hum ratio for cooling [kg water/kg dry air] + Real64 MassFlowAtCoolPeak; // air mass flow rate at the cooling peak [kg/s] Real64 HeatMixTemp; // design mixed air temperature for heating [C] Real64 HeatMixHumRat; // design mixed air hum ratio for heating [kg water/kg dry air] Real64 HeatRetTemp; // design return air temperature for heating [C] @@ -1367,8 +1387,14 @@ namespace DataSizing { // (zone time step) FArray1D< Real64 > CoolFlowSeq; // daily sequence of system cooling air mass flow rate // (zone time step) + FArray1D< Real64 > SumZoneCoolLoadSeq; // daily sequence of zones summed cooling load [W] + // (zone time step) + FArray1D< Real64 > CoolZoneAvgTempSeq; // daily sequence of zones flow weighted average temperature [C] + // (zone time step) FArray1D< Real64 > SensCoolCapSeq; // daily sequence of system sensible cooling capacity // (zone time step) + FArray1D< Real64 > TotCoolCapSeq; // daily sequence of system total cooling capacity + // (zone time step) FArray1D< Real64 > HeatCapSeq; // daily sequence of system heating capacity [zone time step] FArray1D< Real64 > PreheatCapSeq; // daily sequence of system preheat capacity [zone time step] FArray1D< Real64 > SysCoolRetTempSeq; // daily sequence of system cooling return temperatures [C] @@ -1409,8 +1435,8 @@ namespace DataSizing { Real64 FractionOfAutosizedHeatingCapacity; // fraction of of heating total capacity Real64 CoolingTotalCapacity; // system total cooling capacity Real64 HeatingTotalCapacity; // system total heating capacity - - // in Sizing:System + int CoolingPeakLoadType; //Type of peak to size cooling coils on 1=SensibleCoolingLoad; 2=TotalCooligLoad + int CoolCapControl; // type of control of cooling coil 1=VAV; 2=Bypass; 3=VT; 4=OnOff // Default Constructor SystemSizingData() : @@ -1454,14 +1480,16 @@ namespace DataSizing { EMSOverrideDesCoolVolFlowOn( false ), EMSValueDesCoolVolFlow( 0.0 ), SensCoolCap( 0.0 ), + TotCoolCap( 0.0 ), HeatCap( 0.0 ), PreheatCap( 0.0 ), - CoolMixTemp( 0.0 ), - CoolMixHumRat( 0.0 ), - CoolRetTemp( 0.0 ), - CoolRetHumRat( 0.0 ), - CoolOutTemp( 0.0 ), - CoolOutHumRat( 0.0 ), + MixTempAtCoolPeak( 0.0 ), + MixHumRatAtCoolPeak( 0.0 ), + RetTempAtCoolPeak( 0.0 ), + RetHumRatAtCoolPeak( 0.0 ), + OutTempAtCoolPeak( 0.0 ), + OutHumRatAtCoolPeak( 0.0 ), + MassFlowAtCoolPeak( 0.0 ), HeatMixTemp( 0.0 ), HeatMixHumRat( 0.0 ), HeatRetTemp( 0.0 ), @@ -1490,8 +1518,9 @@ namespace DataSizing { FractionOfAutosizedCoolingCapacity( 1.0 ), FractionOfAutosizedHeatingCapacity( 1.0 ), CoolingTotalCapacity( 0.0 ), - HeatingTotalCapacity( 0.0 ) - + HeatingTotalCapacity( 0.0 ), + CoolingPeakLoadType( 0 ), // wfb + CoolCapControl( 0 ) // wfb {} // Member Constructor @@ -1539,14 +1568,16 @@ namespace DataSizing { bool const EMSOverrideDesCoolVolFlowOn, // If true, EMS is acting to change DesCoolVolFlow Real64 const EMSValueDesCoolVolFlow, // Value EMS providing for design cool supply duct volume flow [m3/s] Real64 const SensCoolCap, // design sensible cooling capacity [W] + Real64 const TotCoolCap, //design total cooling capacity [W] Real64 const HeatCap, // design heating capacity [W] Real64 const PreheatCap, // design preheat capacity [W] - Real64 const CoolMixTemp, // design mixed air temperature for cooling [C] - Real64 const CoolMixHumRat, // design mixed air hum ratio for cooling [kg water/kg dry air] - Real64 const CoolRetTemp, // design return air temperature for cooling [C] - Real64 const CoolRetHumRat, // design return air hum ratio for cooling [kg water/kg dry air] - Real64 const CoolOutTemp, // design outside air temperature for cooling [C] - Real64 const CoolOutHumRat, // design outside air hum ratio for cooling [kg water/kg dry air] + Real64 const MixTempAtCoolPeak, // design mixed air temperature for cooling [C] + Real64 const MixHumRatAtCoolPeak, // design mixed air hum ratio for cooling [kg water/kg dry air] + Real64 const RetTempAtCoolPeak, // design return air temperature for cooling [C] + Real64 const RetHumRatAtCoolPeak, // design return air hum ratio for cooling [kg water/kg dry air] + Real64 const OutTempAtCoolPeak, // design outside air temperature for cooling [C] + Real64 const OutHumRatAtCoolPeak, // design outside air hum ratio for cooling [kg water/kg dry air] + Real64 const MassFlowAtCoolPeak, // air mass flow rate at the cooling peak [kg/s] Real64 const HeatMixTemp, // design mixed air temperature for heating [C] Real64 const HeatMixHumRat, // design mixed air hum ratio for heating [kg water/kg dry air] Real64 const HeatRetTemp, // design return air temperature for heating [C] @@ -1556,7 +1587,10 @@ namespace DataSizing { Real64 const DesCoolVolFlowMin, // design minimum system cooling flow rate [m3/s] FArray1< Real64 > const & HeatFlowSeq, // daily sequence of system heating air mass flow rate FArray1< Real64 > const & CoolFlowSeq, // daily sequence of system cooling air mass flow rate + FArray1< Real64 > const & SumZoneCoolLoadSeq, // daily sequence of zones summed cooling load [W] + FArray1< Real64 > const & CoolZoneAvgTempSeq, // daily sequence of zone average temperature [c] FArray1< Real64 > const & SensCoolCapSeq, // daily sequence of system sensible cooling capacity + FArray1< Real64 > const & TotCoolCapSeq, // daily sequence of system total cooling capacity FArray1< Real64 > const & HeatCapSeq, // daily sequence of system heating capacity [zone time step] FArray1< Real64 > const & PreheatCapSeq, // daily sequence of system preheat capacity [zone time step] FArray1< Real64 > const & SysCoolRetTempSeq, // daily sequence of system cooling return temperatures [C] @@ -1588,7 +1622,9 @@ namespace DataSizing { Real64 const FractionOfAutosizedCoolingCapacity, // fraction of of cooling total capacity Real64 const FractionOfAutosizedHeatingCapacity, // fraction of of heating total capacity Real64 const CoolingTotalCapacity, // system total cooling capacity - Real64 const HeatingTotalCapacity // system total heating capacity + Real64 const HeatingTotalCapacity, // system total heating capacity + int const CoolingPeakLoadType, // Type of peak to size cooling coils on 1=SensibleCoolingLoad; 2=TotalCooligLoad + int const CoolCapControl // type of control of cooling coil 1=VAV; 2=Bypass; 3=VT; 4=OnOff ) : AirPriLoopName( AirPriLoopName ), CoolDesDay( CoolDesDay ), @@ -1633,14 +1669,16 @@ namespace DataSizing { EMSOverrideDesCoolVolFlowOn( EMSOverrideDesCoolVolFlowOn ), EMSValueDesCoolVolFlow( EMSValueDesCoolVolFlow ), SensCoolCap( SensCoolCap ), + TotCoolCap( TotCoolCap ), HeatCap( HeatCap ), PreheatCap( PreheatCap ), - CoolMixTemp( CoolMixTemp ), - CoolMixHumRat( CoolMixHumRat ), - CoolRetTemp( CoolRetTemp ), - CoolRetHumRat( CoolRetHumRat ), - CoolOutTemp( CoolOutTemp ), - CoolOutHumRat( CoolOutHumRat ), + MixTempAtCoolPeak( MixTempAtCoolPeak ), + MixHumRatAtCoolPeak( MixHumRatAtCoolPeak ), + RetTempAtCoolPeak( RetTempAtCoolPeak ), + RetHumRatAtCoolPeak( RetHumRatAtCoolPeak ), + OutTempAtCoolPeak( OutTempAtCoolPeak ), + OutHumRatAtCoolPeak( OutHumRatAtCoolPeak ), + MassFlowAtCoolPeak( MassFlowAtCoolPeak ), HeatMixTemp( HeatMixTemp ), HeatMixHumRat( HeatMixHumRat ), HeatRetTemp( HeatRetTemp ), @@ -1650,7 +1688,10 @@ namespace DataSizing { DesCoolVolFlowMin( DesCoolVolFlowMin ), HeatFlowSeq( HeatFlowSeq ), CoolFlowSeq( CoolFlowSeq ), + SumZoneCoolLoadSeq(SumZoneCoolLoadSeq ), + CoolZoneAvgTempSeq(CoolZoneAvgTempSeq ), SensCoolCapSeq( SensCoolCapSeq ), + TotCoolCapSeq( TotCoolCapSeq ), HeatCapSeq( HeatCapSeq ), PreheatCapSeq( PreheatCapSeq ), SysCoolRetTempSeq( SysCoolRetTempSeq ), @@ -1682,8 +1723,47 @@ namespace DataSizing { FractionOfAutosizedCoolingCapacity( FractionOfAutosizedCoolingCapacity ), FractionOfAutosizedHeatingCapacity( FractionOfAutosizedHeatingCapacity ), CoolingTotalCapacity( CoolingTotalCapacity ), - HeatingTotalCapacity( HeatingTotalCapacity ) + HeatingTotalCapacity( HeatingTotalCapacity ), + CoolingPeakLoadType( CoolingPeakLoadType ), + CoolCapControl( CoolCapControl ) // + {} + + }; + + struct SysSizPeakDDNumData + { + // Members + int SensCoolPeakDD; // design day containing the sensible cooling peak + int TotCoolPeakDD; // design day containing total cooling peak + int CoolFlowPeakDD; // design day containing the cooling air flow peak + FArray1D< int > TimeStepAtSensCoolPk; // time step of the sensible cooling peak + FArray1D< int > TimeStepAtTotCoolPk; // time step of the total cooling peak + FArray1D< int > TimeStepAtCoolFlowPk; // time step of the cooling air flow peak + + // Default Constructor + SysSizPeakDDNumData() : + SensCoolPeakDD( 0 ), + TotCoolPeakDD( 0 ), + CoolFlowPeakDD( 0 ) + {} + + // Member Constructor + SysSizPeakDDNumData( + int const SensCoolPeakDD, // design day containing the sensible cooling peak + int const TotCoolPeakDD, // design day containing total cooling peak + int const CoolFlowPeakDD, // design day containing the cooling air flow peak + FArray1< int > const & TimeStepAtSensCoolPk, // time step of the sensible cooling peak + FArray1< int > const & TimeStepAtTotCoolPk, // time step of the total cooling peak + FArray1< int > const & TimeStepAtCoolFlowPk // time step of the cooling air flow peak + ) : + SensCoolPeakDD( SensCoolPeakDD ), + TotCoolPeakDD( TotCoolPeakDD ), + CoolFlowPeakDD( CoolFlowPeakDD ), + TimeStepAtSensCoolPk( TimeStepAtSensCoolPk ), + TimeStepAtTotCoolPk( TimeStepAtTotCoolPk ), + TimeStepAtCoolFlowPk( TimeStepAtCoolFlowPk ) {} + }; struct PlantSizingData @@ -1880,6 +1960,7 @@ namespace DataSizing { extern FArray1D< PlantSizingData > PlantSizData; // Input data array for plant sizing extern FArray1D< DesDayWeathData > DesDayWeath; // design day weather saved at major time step extern FArray1D< CompDesWaterFlowData > CompDesWaterFlow; // array to store components' design water flow + extern FArray1D< SysSizPeakDDNumData > SysSizPeakDDNum; // data array for peak des day indices extern FArray1D< ZoneHVACSizingData > ZoneHVACSizing; // Input data for zone HVAC sizing } // DataSizing diff --git a/src/EnergyPlus/DataSurfaces.hh b/src/EnergyPlus/DataSurfaces.hh index 39caa21f705..241ceed7895 100644 --- a/src/EnergyPlus/DataSurfaces.hh +++ b/src/EnergyPlus/DataSurfaces.hh @@ -1713,6 +1713,59 @@ namespace DataSurfaces { ComplexFen( ComplexFen ) {} + void + InitSolarHeatGains() + { + FrameQRadOutAbs = 0.0; + FrameQRadInAbs = 0.0; + DividerQRadOutAbs = 0.0; + DividerQRadInAbs = 0.0; + ExtBeamAbsByShade = 0.0; + ExtDiffAbsByShade = 0.0; + IntBeamAbsByShade = 0.0; + IntSWAbsByShade = 0.0; + InitialDifSolAbsByShade = 0.0; + IntLWAbsByShade = 0.0; + ConvHeatFlowNatural = 0.0; + ConvHeatGainToZoneAir = 0.0; + RetHeatGainToZoneAir = 0.0; + DividerConduction = 0.0; + BlTsolBmBm = 0.0; + BlTsolBmDif = 0.0; + BlTsolDifDif = 0.0; + BlGlSysTsolBmBm = 0.0; + BlGlSysTsolDifDif = 0.0; + ScTsolBmBm = 0.0; + ScTsolBmDif = 0.0; + ScTsolDifDif = 0.0; + ScGlSysTsolBmBm = 0.0; + ScGlSysTsolDifDif = 0.0; + GlTsolBmBm = 0.0; + GlTsolBmDif = 0.0; + GlTsolDifDif = 0.0; + BmSolTransThruIntWinRep = 0.0; + BmSolAbsdOutsReveal = 0.0; + BmSolRefldOutsRevealReport = 0.0; + BmSolAbsdInsReveal = 0.0; + BmSolRefldInsReveal = 0.0; + BmSolRefldInsRevealReport = 0.0; + OutsRevealDiffOntoGlazing = 0.0; + InsRevealDiffOntoGlazing = 0.0; + InsRevealDiffIntoZone = 0.0; + OutsRevealDiffOntoFrame = 0.0; + InsRevealDiffOntoFrame = 0.0; + InsRevealDiffOntoGlazingReport = 0.0; + InsRevealDiffIntoZoneReport = 0.0; + InsRevealDiffOntoFrameReport = 0.0; + BmSolAbsdInsRevealReport = 0.0; + BmSolTransThruIntWinRepEnergy = 0.0; + BmSolRefldOutsRevealRepEnergy = 0.0; + BmSolRefldInsRevealRepEnergy = 0.0; + ProfileAngHor = 0.0; + ProfileAngVert = 0.0; + SkySolarInc = 0.0; + GndSolarInc = 0.0; + } }; struct FrameDividerProperties @@ -2484,7 +2537,7 @@ namespace DataSurfaces { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/DaylightingManager.cc b/src/EnergyPlus/DaylightingManager.cc index 4772027d395..c45dc62dc51 100644 --- a/src/EnergyPlus/DaylightingManager.cc +++ b/src/EnergyPlus/DaylightingManager.cc @@ -9388,7 +9388,7 @@ namespace DaylightingManager { RefPt += IllumMap( MapNum ).Xnum; } // X - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { if ( SQFirstTime ) { XValue.allocate( maxval( IllumMap( {1,TotIllumMaps} ).Xnum() ) ); YValue.allocate( maxval( IllumMap( {1,TotIllumMaps} ).Ynum() ) ); @@ -10273,7 +10273,7 @@ Label903: ; fullmapName = Zone( ZoneNum ).Name + ':' + environmentName + ':' + mapName + " Illuminance [lux] (Hourly)"; gio::write( unitNo, FmtA ) << "Date/Time," + fullmapName + MapColSep + refPt1 + MapColSep + refPt2 + MapColSep + MapColSep; - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->createSQLiteDaylightMapTitle( mapNum, fullmapName, environmentName, ZoneNum, refPt1, refPt2, zcoord ); } @@ -10281,7 +10281,7 @@ Label903: ; // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/DemandManager.cc b/src/EnergyPlus/DemandManager.cc index 290c3dfb5a8..141d4cbe094 100644 --- a/src/EnergyPlus/DemandManager.cc +++ b/src/EnergyPlus/DemandManager.cc @@ -226,7 +226,7 @@ namespace DemandManager { // Using/Aliasing using ScheduleManager::GetCurrentScheduleValue; - using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using DataGlobals::SecInHour; using DataHVACGlobals::TimeStepSys; @@ -244,7 +244,7 @@ namespace DemandManager { DemandManagerList( ListNum ).ScheduledLimit = GetCurrentScheduleValue( DemandManagerList( ListNum ).LimitSchedule ); DemandManagerList( ListNum ).DemandLimit = DemandManagerList( ListNum ).ScheduledLimit * DemandManagerList( ListNum ).SafetyFraction; - DemandManagerList( ListNum ).MeterDemand = GetInstantMeterValue( DemandManagerList( ListNum ).Meter, 1 ) / ( TimeStepZone * SecInHour ) + GetInstantMeterValue( DemandManagerList( ListNum ).Meter, 2 ) / ( TimeStepSys * SecInHour ); + DemandManagerList( ListNum ).MeterDemand = GetInstantMeterValue( DemandManagerList( ListNum ).Meter, 1 ) / TimeStepZoneSec + GetInstantMeterValue( DemandManagerList( ListNum ).Meter, 2 ) / ( TimeStepSys * SecInHour ); // Calculate average demand over the averaging window including the current timestep meter demand AverageDemand = DemandManagerList( ListNum ).AverageDemand + ( DemandManagerList( ListNum ).MeterDemand - DemandManagerList( ListNum ).History( 1 ) ) / DemandManagerList( ListNum ).AveragingWindow; diff --git a/src/EnergyPlus/DesiccantDehumidifiers.cc b/src/EnergyPlus/DesiccantDehumidifiers.cc index 8d57a25aeba..6d7abdc730f 100644 --- a/src/EnergyPlus/DesiccantDehumidifiers.cc +++ b/src/EnergyPlus/DesiccantDehumidifiers.cc @@ -2741,7 +2741,7 @@ namespace DesiccantDehumidifiers { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ) { @@ -2788,13 +2788,9 @@ namespace DesiccantDehumidifiers { Real64 RegenCoilHeatLoad; // requested coild load, W Real64 mdot; - DesicDehumNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - RegenCoilHeatLoad = Par()( 3 ); + DesicDehumNum = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + RegenCoilHeatLoad = Par( 3 ); RegenCoilActual = RegenCoilHeatLoad; mdot = HWFlow; SetComponentFlowRate( mdot, DesicDehum( DesicDehumNum ).CoilControlNode, DesicDehum( DesicDehumNum ).CoilOutletNode, DesicDehum( DesicDehumNum ).LoopNum, DesicDehum( DesicDehumNum ).LoopSide, DesicDehum( DesicDehumNum ).BranchNum, DesicDehum( DesicDehumNum ).CompNum ); diff --git a/src/EnergyPlus/DesiccantDehumidifiers.hh b/src/EnergyPlus/DesiccantDehumidifiers.hh index 42936e64199..566dec94024 100644 --- a/src/EnergyPlus/DesiccantDehumidifiers.hh +++ b/src/EnergyPlus/DesiccantDehumidifiers.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -550,7 +549,7 @@ namespace DesiccantDehumidifiers { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ); // End of Reporting subroutines for the SimAir Module diff --git a/src/EnergyPlus/DisplayRoutines.cc b/src/EnergyPlus/DisplayRoutines.cc index 77c71acb588..34c7021ec7b 100644 --- a/src/EnergyPlus/DisplayRoutines.cc +++ b/src/EnergyPlus/DisplayRoutines.cc @@ -201,7 +201,7 @@ DisplaySimDaysProgress( // This doesn't do anything! } // NOTICE -// Copyright © 1996-2014 The Board of Trustees of the University of Illinois +// Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/DualDuct.cc b/src/EnergyPlus/DualDuct.cc index 8e1326400bd..233ada4c878 100644 --- a/src/EnergyPlus/DualDuct.cc +++ b/src/EnergyPlus/DualDuct.cc @@ -778,7 +778,10 @@ namespace DualDuct { PeopleFlow = 0.0; for ( Loop = 1; Loop <= TotPeople; ++Loop ) { if ( People( Loop ).ZonePtr != Damper( DamperNum ).ActualZoneNum ) continue; - PeopleFlow += People( Loop ).NumberOfPeople * OARequirements( Damper( DamperNum ).OARequirementsPtr ).OAFlowPerPerson; + int damperOAFlowMethod = OARequirements( Damper( DamperNum ).OARequirementsPtr ).OAFlowMethod; + if ( damperOAFlowMethod == OAFlowPPer || damperOAFlowMethod == OAFlowSum || damperOAFlowMethod == OAFlowMax ){ + PeopleFlow += People( Loop ).NumberOfPeople * OARequirements( Damper( DamperNum ).OARequirementsPtr ).OAFlowPerPerson; + } } Damper( DamperNum ).OAPerPersonByDesignLevel = PeopleFlow; diff --git a/src/EnergyPlus/EMSManager.cc b/src/EnergyPlus/EMSManager.cc index 85fd0fa6749..d2bd7cb100d 100644 --- a/src/EnergyPlus/EMSManager.cc +++ b/src/EnergyPlus/EMSManager.cc @@ -2065,57 +2065,42 @@ SetupEMSActuator( // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int ActuatorVariableNum; - bool FoundActuatorType; - bool FoundDuplicate; // Object Data // FLOW: - FoundActuatorType = false; - FoundDuplicate = false; - std::string const UpperCaseObjectType( MakeUPPERCase( cComponentTypeName ) ); std::string const UpperCaseObjectName( MakeUPPERCase( cUniqueIDName ) ); std::string const UpperCaseActuatorName( MakeUPPERCase( cControlTypeName ) ); - for ( ActuatorVariableNum = 1; ActuatorVariableNum <= numEMSActuatorsAvailable; ++ActuatorVariableNum ) { - if ( ( EMSActuatorAvailable( ActuatorVariableNum ).ComponentTypeName == UpperCaseObjectType ) && ( EMSActuatorAvailable( ActuatorVariableNum ).ControlTypeName == UpperCaseActuatorName ) ) { + EMSActuatorKey const key( UpperCaseObjectType, UpperCaseObjectName, UpperCaseActuatorName ); - FoundActuatorType = true; - - if ( EMSActuatorAvailable( ActuatorVariableNum ).UniqueIDName == UpperCaseObjectName ) { - FoundDuplicate = true; - break; - } - } - } - - if ( FoundDuplicate ) { + if ( EMSActuator_lookup.find( key ) != EMSActuator_lookup.end() ) { ShowSevereError( "Duplicate actuator was sent to SetupEMSActuator." ); - } else { - // Add new actuator + ShowContinueError( "Actuator variable type = " + cComponentTypeName + " ; name = " + cUniqueIDName + " ; control = " + cControlTypeName ); + } else { // Add new actuator if ( numEMSActuatorsAvailable == 0 ) { EMSActuatorAvailable.allocate( varsAvailableAllocInc ); numEMSActuatorsAvailable = 1; maxEMSActuatorsAvailable = varsAvailableAllocInc; } else { if ( numEMSActuatorsAvailable + 1 > maxEMSActuatorsAvailable ) { - EMSActuatorAvailable.redimension( maxEMSActuatorsAvailable += varsAvailableAllocInc ); + EMSActuatorAvailable.redimension( maxEMSActuatorsAvailable *= 2 ); } ++numEMSActuatorsAvailable; } - ActuatorVariableNum = numEMSActuatorsAvailable; - EMSActuatorAvailable( ActuatorVariableNum ).ComponentTypeName = cComponentTypeName; - EMSActuatorAvailable( ActuatorVariableNum ).UniqueIDName = cUniqueIDName; - EMSActuatorAvailable( ActuatorVariableNum ).ControlTypeName = cControlTypeName; - EMSActuatorAvailable( ActuatorVariableNum ).Units = cUnits; - EMSActuatorAvailable( ActuatorVariableNum ).Actuated >>= lEMSActuated; // Pointer assigment - EMSActuatorAvailable( ActuatorVariableNum ).RealValue >>= rValue; // Pointer assigment - EMSActuatorAvailable( ActuatorVariableNum ).PntrVarTypeUsed = PntrReal; - + auto & actuator( EMSActuatorAvailable( numEMSActuatorsAvailable ) ); + actuator.ComponentTypeName = cComponentTypeName; + actuator.UniqueIDName = cUniqueIDName; + actuator.ControlTypeName = cControlTypeName; + actuator.Units = cUnits; + actuator.Actuated >>= lEMSActuated; // Pointer assigment + actuator.RealValue >>= rValue; // Pointer assigment + actuator.PntrVarTypeUsed = PntrReal; +// EMSActuator_lookup.insert( key ); + EMSActuator_lookup.insert( EMSActuatorKey( cComponentTypeName, cUniqueIDName, cControlTypeName ) ); //Bug Replicate bug pending DOE fix } } @@ -2154,9 +2139,6 @@ SetupEMSActuator( // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int ActuatorVariableNum; - bool FoundActuatorType; - bool FoundDuplicate; // Object Data @@ -2167,49 +2149,37 @@ SetupEMSActuator( // ActuatorFileOpen = .TRUE. // END IF - FoundActuatorType = false; - FoundDuplicate = false; - std::string const UpperCaseObjectType( MakeUPPERCase( cComponentTypeName ) ); std::string const UpperCaseObjectName( MakeUPPERCase( cUniqueIDName ) ); std::string const UpperCaseActuatorName( MakeUPPERCase( cControlTypeName ) ); - for ( ActuatorVariableNum = 1; ActuatorVariableNum <= numEMSActuatorsAvailable; ++ActuatorVariableNum ) { - if ( ( EMSActuatorAvailable( ActuatorVariableNum ).ComponentTypeName == UpperCaseObjectType ) && ( EMSActuatorAvailable( ActuatorVariableNum ).ControlTypeName == UpperCaseActuatorName ) ) { - - FoundActuatorType = true; + EMSActuatorKey const key( UpperCaseObjectType, UpperCaseObjectName, UpperCaseActuatorName ); - if ( EMSActuatorAvailable( ActuatorVariableNum ).UniqueIDName == UpperCaseObjectName ) { - FoundDuplicate = true; - break; - } - } - } - - if ( FoundDuplicate ) { + if ( EMSActuator_lookup.find( key ) != EMSActuator_lookup.end() ) { ShowSevereError( "Duplicate actuator was sent to SetupEMSActuator." ); - } else { - // Add new actuator + ShowContinueError( "Actuator variable type = " + cComponentTypeName + " ; name = " + cUniqueIDName + " ; control = " + cControlTypeName ); + } else { // Add new actuator if ( numEMSActuatorsAvailable == 0 ) { EMSActuatorAvailable.allocate( varsAvailableAllocInc ); numEMSActuatorsAvailable = 1; maxEMSActuatorsAvailable = varsAvailableAllocInc; } else { if ( numEMSActuatorsAvailable + 1 > maxEMSActuatorsAvailable ) { - EMSActuatorAvailable.redimension( maxEMSActuatorsAvailable += varsAvailableAllocInc ); + EMSActuatorAvailable.redimension( maxEMSActuatorsAvailable *= 2 ); } ++numEMSActuatorsAvailable; } - ActuatorVariableNum = numEMSActuatorsAvailable; - EMSActuatorAvailable( ActuatorVariableNum ).ComponentTypeName = cComponentTypeName; - EMSActuatorAvailable( ActuatorVariableNum ).UniqueIDName = cUniqueIDName; - EMSActuatorAvailable( ActuatorVariableNum ).ControlTypeName = cControlTypeName; - EMSActuatorAvailable( ActuatorVariableNum ).Units = cUnits; - EMSActuatorAvailable( ActuatorVariableNum ).Actuated >>= lEMSActuated; // Pointer assigment - EMSActuatorAvailable( ActuatorVariableNum ).IntValue >>= iValue; // Pointer assigment - EMSActuatorAvailable( ActuatorVariableNum ).PntrVarTypeUsed = PntrInteger; - + auto & actuator( EMSActuatorAvailable( numEMSActuatorsAvailable ) ); + actuator.ComponentTypeName = cComponentTypeName; + actuator.UniqueIDName = cUniqueIDName; + actuator.ControlTypeName = cControlTypeName; + actuator.Units = cUnits; + actuator.Actuated >>= lEMSActuated; // Pointer assigment + actuator.IntValue >>= iValue; // Pointer assigment + actuator.PntrVarTypeUsed = PntrInteger; +// EMSActuator_lookup.insert( key ); + EMSActuator_lookup.insert( EMSActuatorKey( cComponentTypeName, cUniqueIDName, cControlTypeName ) ); //Bug Replicate bug pending DOE fix } } @@ -2248,56 +2218,42 @@ SetupEMSActuator( // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int ActuatorVariableNum; - bool FoundActuatorType; - bool FoundDuplicate; // Object Data // FLOW: - FoundActuatorType = false; - FoundDuplicate = false; std::string const UpperCaseObjectType( MakeUPPERCase( cComponentTypeName ) ); std::string const UpperCaseObjectName( MakeUPPERCase( cUniqueIDName ) ); std::string const UpperCaseActuatorName( MakeUPPERCase( cControlTypeName ) ); - for ( ActuatorVariableNum = 1; ActuatorVariableNum <= numEMSActuatorsAvailable; ++ActuatorVariableNum ) { - if ( ( EMSActuatorAvailable( ActuatorVariableNum ).ComponentTypeName == UpperCaseObjectType ) && ( EMSActuatorAvailable( ActuatorVariableNum ).ControlTypeName == UpperCaseActuatorName ) ) { - - FoundActuatorType = true; + EMSActuatorKey const key( UpperCaseObjectType, UpperCaseObjectName, UpperCaseActuatorName ); - if ( EMSActuatorAvailable( ActuatorVariableNum ).UniqueIDName == UpperCaseObjectName ) { - FoundDuplicate = true; - break; - } - } - } - - if ( FoundDuplicate ) { + if ( EMSActuator_lookup.find( key ) != EMSActuator_lookup.end() ) { ShowSevereError( "Duplicate actuator was sent to SetupEMSActuator." ); - } else { - // Add new actuator + ShowContinueError( "Actuator variable type = " + cComponentTypeName + " ; name = " + cUniqueIDName + " ; control = " + cControlTypeName ); + } else { // Add new actuator if ( numEMSActuatorsAvailable == 0 ) { EMSActuatorAvailable.allocate( varsAvailableAllocInc ); numEMSActuatorsAvailable = 1; maxEMSActuatorsAvailable = varsAvailableAllocInc; } else { if ( numEMSActuatorsAvailable + 1 > maxEMSActuatorsAvailable ) { - EMSActuatorAvailable.redimension( maxEMSActuatorsAvailable += varsAvailableAllocInc ); + EMSActuatorAvailable.redimension( maxEMSActuatorsAvailable *= 2 ); } ++numEMSActuatorsAvailable; } - ActuatorVariableNum = numEMSActuatorsAvailable; - EMSActuatorAvailable( ActuatorVariableNum ).ComponentTypeName = cComponentTypeName; - EMSActuatorAvailable( ActuatorVariableNum ).UniqueIDName = cUniqueIDName; - EMSActuatorAvailable( ActuatorVariableNum ).ControlTypeName = cControlTypeName; - EMSActuatorAvailable( ActuatorVariableNum ).Units = cUnits; - EMSActuatorAvailable( ActuatorVariableNum ).Actuated >>= lEMSActuated; // Pointer assigment - EMSActuatorAvailable( ActuatorVariableNum ).LogValue >>= lValue; // Pointer assigment - EMSActuatorAvailable( ActuatorVariableNum ).PntrVarTypeUsed = PntrLogical; - + auto & actuator( EMSActuatorAvailable( numEMSActuatorsAvailable ) ); + actuator.ComponentTypeName = cComponentTypeName; + actuator.UniqueIDName = cUniqueIDName; + actuator.ControlTypeName = cControlTypeName; + actuator.Units = cUnits; + actuator.Actuated >>= lEMSActuated; // Pointer assigment + actuator.LogValue >>= lValue; // Pointer assigment + actuator.PntrVarTypeUsed = PntrLogical; +// EMSActuator_lookup.insert( key ); + EMSActuator_lookup.insert( EMSActuatorKey( cComponentTypeName, cUniqueIDName, cControlTypeName ) ); //Bug Replicate bug pending DOE fix } } @@ -2472,5 +2428,4 @@ SetupEMSInternalVariable( } - } // EnergyPlus diff --git a/src/EnergyPlus/EcoRoofManager.cc b/src/EnergyPlus/EcoRoofManager.cc index 908a9723dd8..1341a9cda22 100644 --- a/src/EnergyPlus/EcoRoofManager.cc +++ b/src/EnergyPlus/EcoRoofManager.cc @@ -388,7 +388,7 @@ namespace EcoRoofManager { if ( Construct( ConstrNum ).CTFCross( 0 ) > 0.01 ) { QuickConductionSurf = true; F1temp = Construct( ConstrNum ).CTFCross( 0 ) / ( Construct( ConstrNum ).CTFInside( 0 ) + HConvIn( SurfNum ) ); - Qsoilpart1 = -CTFConstOutPart( SurfNum ) + F1temp * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( SurfNum, 1 ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ); + Qsoilpart1 = -CTFConstOutPart( SurfNum ) + F1temp * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( 1, SurfNum ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ); } else { Qsoilpart1 = -CTFConstOutPart( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TempSurfIn( SurfNum ); F1temp = 0.0; @@ -668,7 +668,7 @@ namespace EcoRoofManager { static Real64 TopDepth; // Thickness of "near-surface" soil layer static Real64 RootDepth( 0.0 ); // Thickness of "root zone" soil layer //Autodesk Was used uninitialized // Note TopDepth+RootDepth = thickness of ecoroof soil layer - static Real64 SecondsPerTimeStep; // Seconds per TimeStep + static Real64 TimeStepZoneSec; // Seconds per TimeStep Real64 SoilConductivity; // Moisture dependent conductivity to be fed back into CTF Calculator Real64 SoilSpecHeat; // Moisture dependent Spec. Heat to be fed back into CTF Calculator Real64 SoilAbsorpSolar; // Moisture dependent Solar absorptance (1-albedo) @@ -745,7 +745,7 @@ namespace EcoRoofManager { RootDepth = SoilThickness - TopDepth; //Next create a timestep in seconds - SecondsPerTimeStep = MinutesPerTimeStep * 60.0; + TimeStepZoneSec = MinutesPerTimeStep * 60.0; UpdatebeginFlag = false; } @@ -890,7 +890,7 @@ namespace EcoRoofManager { //Next, using the soil parameters, solve for the soil moisture SoilConductivityAveTop = ( SoilHydroConductivityTop + SoilHydroConductivityRoot ) * 0.5; - Moisture += ( SecondsPerTimeStep / TopDepth ) * ( ( SoilConductivityAveTop * ( CapillaryPotentialTop - CapillaryPotentialRoot ) / TopDepth ) - SoilConductivityAveTop ); + Moisture += ( TimeStepZoneSec / TopDepth ) * ( ( SoilConductivityAveTop * ( CapillaryPotentialTop - CapillaryPotentialRoot ) / TopDepth ) - SoilConductivityAveTop ); //Now limit the soil from going over the moisture maximum and takes excess to create runoff if ( Moisture >= MoistureMax ) { //This statement makes sure that the top layer is not over the moisture maximum for the soil. @@ -913,7 +913,7 @@ namespace EcoRoofManager { //Using the parameters above, distribute the Root Layer moisture TestMoisture = MeanRootMoisture; - MeanRootMoisture += ( SecondsPerTimeStep / RootDepth ) * ( ( SoilConductivityAveTop * ( CapillaryPotentialTop - CapillaryPotentialRoot ) / RootDepth ) + SoilConductivityAveTop - SoilConductivityAveRoot ); + MeanRootMoisture += ( TimeStepZoneSec / RootDepth ) * ( ( SoilConductivityAveTop * ( CapillaryPotentialTop - CapillaryPotentialRoot ) / RootDepth ) + SoilConductivityAveTop - SoilConductivityAveRoot ); //Limit the moisture from going over the saturation limit and create runoff: if ( MeanRootMoisture >= MoistureMax ) { @@ -927,7 +927,7 @@ namespace EcoRoofManager { } //Next, track runoff from the bottom of the soil: - CurrentRunoff += SoilConductivityAveRoot * SecondsPerTimeStep; + CurrentRunoff += SoilConductivityAveRoot * TimeStepZoneSec; //~~~END SF EDITS } diff --git a/src/EnergyPlus/EconomicLifeCycleCost.cc b/src/EnergyPlus/EconomicLifeCycleCost.cc index 16666b884c8..42d18d0dd80 100644 --- a/src/EnergyPlus/EconomicLifeCycleCost.cc +++ b/src/EnergyPlus/EconomicLifeCycleCost.cc @@ -2013,7 +2013,9 @@ namespace EconomicLifeCycleCost { columnWidth = 14; //array assignment - same for all columns WriteSubtitle( "Life-Cycle Cost Parameters" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Life-Cycle Cost Parameters" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Life-Cycle Cost Parameters" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2043,7 +2045,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Use Price Escalation" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Use Price Escalation" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Use Price Escalation" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2073,7 +2077,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Use Adjustment" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Use Adjustment" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Use Adjustment" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2105,7 +2111,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Cash Flow for Recurring and Nonrecurring Costs (Without Escalation)" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Cash Flow for Recurring and Nonrecurring Costs (Without Escalation)" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Cash Flow for Recurring and Nonrecurring Costs (Without Escalation)" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2129,7 +2137,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Energy Cost Cash Flows (Without Escalation)" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Energy Cost Cash Flows (Without Escalation)" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Energy Cost Cash Flows (Without Escalation)" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2154,7 +2164,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Capital Cash Flow by Category (Without Escalation)" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Capital Cash Flow by Category (Without Escalation)" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Capital Cash Flow by Category (Without Escalation)" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2192,7 +2204,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Operating Cash Flow by Category (Without Escalation)" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Operating Cash Flow by Category (Without Escalation)" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Operating Cash Flow by Category (Without Escalation)" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2264,7 +2278,9 @@ namespace EconomicLifeCycleCost { } WriteSubtitle( "Monthly Total Cash Flow (Without Escalation)" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Monthly Total Cash Flow (Without Escalation)" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Monthly Total Cash Flow (Without Escalation)" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2337,7 +2353,9 @@ namespace EconomicLifeCycleCost { tableBody( numRows + 1, 4 ) = RealToStr( totalPV, 2 ); WriteSubtitle( "Present Value for Recurring, Nonrecurring and Energy Costs (Before Tax)" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Present Value for Recurring, Nonrecurring and Energy Costs (Before Tax)" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Present Value for Recurring, Nonrecurring and Energy Costs (Before Tax)" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2386,7 +2404,9 @@ namespace EconomicLifeCycleCost { WriteSubtitle( "Present Value by Category" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Present Value by Category" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Present Value by Category" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2414,7 +2434,9 @@ namespace EconomicLifeCycleCost { WriteSubtitle( "Present Value by Year" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Present Value by Year" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "Present Value by Year" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -2449,7 +2471,9 @@ namespace EconomicLifeCycleCost { WriteSubtitle( "After Tax Estimate" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "After Tax Estimate" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Life-Cycle Cost Report", "Entire Facility", "After Tax Estimate" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); diff --git a/src/EnergyPlus/EconomicTariff.cc b/src/EnergyPlus/EconomicTariff.cc index d59e94e2a43..a12cd7e3886 100644 --- a/src/EnergyPlus/EconomicTariff.cc +++ b/src/EnergyPlus/EconomicTariff.cc @@ -3004,7 +3004,7 @@ namespace EconomicTariff { using DataGlobals::HourOfDay; using DataGlobals::TimeStep; using DataGlobals::SecInHour; - using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using ScheduleManager::GetCurrentScheduleValue; using DataEnvironment::Month; @@ -3049,7 +3049,7 @@ namespace EconomicTariff { // remember the demand is still energy over a period of time divided by the // length of time. This gathers the energy also. tariff( iTariff ).collectEnergy += curInstantValue; - tariff( iTariff ).collectTime += ( TimeStepZone * SecInHour ); + tariff( iTariff ).collectTime += TimeStepZoneSec; //added *SecInHour when adding RTP support August 2008 if ( tariff( iTariff ).collectTime >= tariff( iTariff ).demWinTime * SecInHour ) { //get current value that has been converted into desired units @@ -4858,7 +4858,9 @@ namespace EconomicTariff { columnWidth = 14; //array assignment - same for all columns WriteSubtitle( "Annual Cost" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Economics Results Summary Report", "Entire Facility", "Annual Cost" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Economics Results Summary Report", "Entire Facility", "Annual Cost" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -4906,7 +4908,9 @@ namespace EconomicTariff { columnWidth = 14; //array assignment - same for all columns WriteSubtitle( "Tariff Summary" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Economics Results Summary Report", "Entire Facility", "Tariff Summary" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Economics Results Summary Report", "Entire Facility", "Tariff Summary" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -4976,7 +4980,9 @@ namespace EconomicTariff { columnWidth = 14; //array assignment - same for all columns WriteSubtitle( "General" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Tariff Report", tariff( iTariff ).tariffName, "General" ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Tariff Report", tariff( iTariff ).tariffName, "General" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -5416,7 +5422,9 @@ namespace EconomicTariff { columnWidth = 14; //array assignment - same for all columns WriteSubtitle( titleString ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Tariff Report", forString, titleString ); + if( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Tariff Report", forString, titleString ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); diff --git a/src/EnergyPlus/EnergyPlusPgm.cc b/src/EnergyPlus/EnergyPlusPgm.cc index 01d2ea48a4b..d937ab28f5b 100644 --- a/src/EnergyPlus/EnergyPlusPgm.cc +++ b/src/EnergyPlus/EnergyPlusPgm.cc @@ -240,9 +240,12 @@ EnergyPlusPgm( std::string const & filepath ) #endif #ifdef _MSC_VER +#ifndef _DEBUG + // If _MSC_VER and not debug then prevent dialogs on error SetErrorMode(SEM_NOGPFAULTERRORBOX); _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG); _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_DEBUG); +#endif #endif // Locals diff --git a/src/EnergyPlus/EvaporativeCoolers.cc b/src/EnergyPlus/EvaporativeCoolers.cc index b2e1073f57b..1f51edd7e05 100644 --- a/src/EnergyPlus/EvaporativeCoolers.cc +++ b/src/EnergyPlus/EvaporativeCoolers.cc @@ -3129,7 +3129,7 @@ namespace EvaporativeCoolers { Real64 VSEvapUnitLoadResidual( Real64 const FanSpeedRatio, - Optional< FArray1S< Real64 > const > Par // parameters + FArray1< Real64 > const & Par // parameters ) { @@ -3178,10 +3178,10 @@ namespace EvaporativeCoolers { Real64 MinHumRat; Real64 SensibleOutputProvided; - UnitNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); - ZoneNodeNum = int( Par()( 3 ) ); - LoadToBeMet = Par()( 5 ); + UnitNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); + ZoneNodeNum = int( Par( 3 ) ); + LoadToBeMet = Par( 5 ); Node( ZoneEvapUnit( UnitNum ).OAInletNodeNum ).MassFlowRate = ZoneEvapUnit( UnitNum ).DesignAirMassFlowRate * FanSpeedRatio; Node( ZoneEvapUnit( UnitNum ).OAInletNodeNum ).MassFlowRateMaxAvail = Node( ZoneEvapUnit( UnitNum ).OAInletNodeNum ).MassFlowRate; diff --git a/src/EnergyPlus/EvaporativeCoolers.hh b/src/EnergyPlus/EvaporativeCoolers.hh index 7053865b575..87e66ed75a5 100644 --- a/src/EnergyPlus/EvaporativeCoolers.hh +++ b/src/EnergyPlus/EvaporativeCoolers.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -719,7 +717,7 @@ namespace EvaporativeCoolers { Real64 VSEvapUnitLoadResidual( Real64 const FanSpeedRatio, - Optional< FArray1S< Real64 > const > Par = _ // parameters + FArray1< Real64 > const & Par // parameters ); void diff --git a/src/EnergyPlus/EvaporativeFluidCoolers.cc b/src/EnergyPlus/EvaporativeFluidCoolers.cc index a01ebb62220..bff0ecb3f34 100644 --- a/src/EnergyPlus/EvaporativeFluidCoolers.cc +++ b/src/EnergyPlus/EvaporativeFluidCoolers.cc @@ -2110,7 +2110,7 @@ namespace EvaporativeFluidCoolers { Real64 SimpleEvapFluidCoolerUAResidual( Real64 const UA, // UA of evaporative fluid cooler - Optional< FArray1S< Real64 > const > Par // par(1) = design evaporative fluid cooler load [W] + FArray1< Real64 > const & Par // par(1) = design evaporative fluid cooler load [W] ) { @@ -2161,10 +2161,10 @@ namespace EvaporativeFluidCoolers { Real64 OutWaterTemp; // outlet water temperature [C] Real64 CoolingOutput; // Evaporative fluid cooler cooling output [W] - EvapFluidCoolerIndex = int( Par()( 2 ) ); - SimSimpleEvapFluidCooler( EvapFluidCoolerIndex, Par()( 3 ), Par()( 4 ), UA, OutWaterTemp ); - CoolingOutput = Par()( 5 ) * Par()( 3 ) * ( SimpleEvapFluidCoolerInlet( EvapFluidCoolerIndex ).WaterTemp - OutWaterTemp ); - Residuum = ( Par()( 1 ) - CoolingOutput ) / Par()( 1 ); + EvapFluidCoolerIndex = int( Par( 2 ) ); + SimSimpleEvapFluidCooler( EvapFluidCoolerIndex, Par( 3 ), Par( 4 ), UA, OutWaterTemp ); + CoolingOutput = Par( 5 ) * Par( 3 ) * ( SimpleEvapFluidCoolerInlet( EvapFluidCoolerIndex ).WaterTemp - OutWaterTemp ); + Residuum = ( Par( 1 ) - CoolingOutput ) / Par( 1 ); return Residuum; } diff --git a/src/EnergyPlus/EvaporativeFluidCoolers.hh b/src/EnergyPlus/EvaporativeFluidCoolers.hh index 5df97a0eba4..1f11ed5e6ea 100644 --- a/src/EnergyPlus/EvaporativeFluidCoolers.hh +++ b/src/EnergyPlus/EvaporativeFluidCoolers.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -562,7 +560,7 @@ namespace EvaporativeFluidCoolers { Real64 SimpleEvapFluidCoolerUAResidual( Real64 const UA, // UA of evaporative fluid cooler - Optional< FArray1S< Real64 > const > Par = _ // par(1) = design evaporative fluid cooler load [W] + FArray1< Real64 > const & Par // par(1) = design evaporative fluid cooler load [W] ); // End of the EvaporativeFluidCoolers Module Simulation Subroutines diff --git a/src/EnergyPlus/ExteriorEnergyUse.cc b/src/EnergyPlus/ExteriorEnergyUse.cc index 237fa416678..bf63d284aee 100644 --- a/src/EnergyPlus/ExteriorEnergyUse.cc +++ b/src/EnergyPlus/ExteriorEnergyUse.cc @@ -43,6 +43,7 @@ namespace ExteriorEnergyUse { // Using/Aliasing using namespace DataPrecisionGlobals; using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; // Use statements for access to subroutines in other modules @@ -574,7 +575,7 @@ namespace ExteriorEnergyUse { if ( SELECT_CASE_var == ScheduleOnly ) { ExteriorLights( Item ).Power = ExteriorLights( Item ).DesignLevel * GetCurrentScheduleValue( ExteriorLights( Item ).SchedPtr ); - ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZone * SecInHour; + ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZoneSec; } else if ( SELECT_CASE_var == AstroClockOverride ) { @@ -583,7 +584,7 @@ namespace ExteriorEnergyUse { ExteriorLights( Item ).CurrentUse = 0.0; } else { ExteriorLights( Item ).Power = ExteriorLights( Item ).DesignLevel * GetCurrentScheduleValue( ExteriorLights( Item ).SchedPtr ); - ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZone * SecInHour; + ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZoneSec; } } else { @@ -594,12 +595,12 @@ namespace ExteriorEnergyUse { // Reduce lighting power due to demand limiting if ( ExteriorLights( Item ).ManageDemand && ( ExteriorLights( Item ).Power > ExteriorLights( Item ).DemandLimit ) ) { ExteriorLights( Item ).Power = ExteriorLights( Item ).DemandLimit; - ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZone * SecInHour; + ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZoneSec; } // EMS controls if ( ExteriorLights( Item ).PowerActuatorOn ) ExteriorLights( Item ).Power = ExteriorLights( Item ).PowerActuatorValue; - ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZone * SecInHour; + ExteriorLights( Item ).CurrentUse = ExteriorLights( Item ).Power * TimeStepZoneSec; //gather for tabular reports if ( ! WarmupFlag ) { @@ -618,14 +619,14 @@ namespace ExteriorEnergyUse { for ( Item = 1; Item <= NumExteriorEqs; ++Item ) { ExteriorEquipment( Item ).Power = ExteriorEquipment( Item ).DesignLevel * GetCurrentScheduleValue( ExteriorEquipment( Item ).SchedPtr ); - ExteriorEquipment( Item ).CurrentUse = ExteriorEquipment( Item ).Power * TimeStepZone * SecInHour; + ExteriorEquipment( Item ).CurrentUse = ExteriorEquipment( Item ).Power * TimeStepZoneSec; } } // NOTICE - // Copyright © 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/FluidCoolers.cc b/src/EnergyPlus/FluidCoolers.cc index 8cbb25344a9..754df509c8f 100644 --- a/src/EnergyPlus/FluidCoolers.cc +++ b/src/EnergyPlus/FluidCoolers.cc @@ -1660,7 +1660,7 @@ namespace FluidCoolers { Real64 SimpleFluidCoolerUAResidual( Real64 const UA, // UA of fluid cooler - Optional< FArray1S< Real64 > const > Par // par(1) = design fluid cooler load [W] + FArray1< Real64 > const & Par // par(1) = design fluid cooler load [W] ) { @@ -1710,10 +1710,10 @@ namespace FluidCoolers { Real64 OutWaterTemp; // outlet water temperature [C] Real64 Output; // Fluid cooler output [W] - FluidCoolerIndex = int( Par()( 2 ) ); - SimSimpleFluidCooler( FluidCoolerIndex, Par()( 3 ), Par()( 4 ), UA, OutWaterTemp ); - Output = Par()( 5 ) * Par()( 3 ) * ( SimpleFluidCoolerInlet( FluidCoolerIndex ).WaterTemp - OutWaterTemp ); - Residuum = ( Par()( 1 ) - Output ) / Par()( 1 ); + FluidCoolerIndex = int( Par( 2 ) ); + SimSimpleFluidCooler( FluidCoolerIndex, Par( 3 ), Par( 4 ), UA, OutWaterTemp ); + Output = Par( 5 ) * Par( 3 ) * ( SimpleFluidCoolerInlet( FluidCoolerIndex ).WaterTemp - OutWaterTemp ); + Residuum = ( Par( 1 ) - Output ) / Par( 1 ); return Residuum; } diff --git a/src/EnergyPlus/FluidCoolers.hh b/src/EnergyPlus/FluidCoolers.hh index 997f94ca216..f9ec73ab8be 100644 --- a/src/EnergyPlus/FluidCoolers.hh +++ b/src/EnergyPlus/FluidCoolers.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -389,7 +387,7 @@ namespace FluidCoolers { Real64 SimpleFluidCoolerUAResidual( Real64 const UA, // UA of fluid cooler - Optional< FArray1S< Real64 > const > Par = _ // par(1) = design fluid cooler load [W] + FArray1< Real64 > const & Par // par(1) = design fluid cooler load [W] ); // End of the CondenserLoopFluidCoolers Module Simulation Subroutines diff --git a/src/EnergyPlus/FluidProperties.cc b/src/EnergyPlus/FluidProperties.cc index ffe4b2080eb..317ecc2d220 100644 --- a/src/EnergyPlus/FluidProperties.cc +++ b/src/EnergyPlus/FluidProperties.cc @@ -4807,7 +4807,7 @@ namespace FluidProperties { //} //assert( std::is_sorted( glycol_CpTemps.begin(), glycol_CpTemps.end() ) ); // Sorted temperature array is assumed: Enable if/when arrays have begin()/end() assert( glycol_CpTemps.size() <= static_cast< std::size_t >( std::numeric_limits< int >::max() ) ); // Array indexes are int now so this is future protection - int beg( 1 ), mid, end( static_cast< int >( glycol_CpTemps.size() ) ); // 1-based indexing + int beg( 1 ), mid, end( glycol_CpTemps.isize() ); // 1-based indexing assert( end > 0 ); while ( beg + 1 < end ) { mid = ( ( beg + end ) >> 1 ); // bit shifting is faster than /2 diff --git a/src/EnergyPlus/FluidProperties.hh b/src/EnergyPlus/FluidProperties.hh index 2cc700cac85..6752123ee1d 100644 --- a/src/EnergyPlus/FluidProperties.hh +++ b/src/EnergyPlus/FluidProperties.hh @@ -9,7 +9,6 @@ #include #include #include -#include // EnergyPlus Headers #include diff --git a/src/EnergyPlus/FuelCellElectricGenerator.cc b/src/EnergyPlus/FuelCellElectricGenerator.cc index 188a1aa0fb6..9a78a066592 100644 --- a/src/EnergyPlus/FuelCellElectricGenerator.cc +++ b/src/EnergyPlus/FuelCellElectricGenerator.cc @@ -1858,7 +1858,7 @@ namespace FuelCellElectricGenerator { Real64 FuelCellProductGasEnthResidual( Real64 const TprodGas, // temperature, this is "x" being searched - Optional< FArray1S< Real64 > const > Par // par(1) = Generator Number + FArray1< Real64 > const & Par // par(1) = Generator Number ) { @@ -1906,9 +1906,9 @@ namespace FuelCellElectricGenerator { Real64 desiredHprodGases; Real64 NdotProdGases; - GeneratorNum = std::floor( Par()( 1 ) ); - desiredHprodGases = Par()( 2 ); - NdotProdGases = Par()( 3 ); + GeneratorNum = std::floor( Par( 1 ) ); + desiredHprodGases = Par( 2 ); + NdotProdGases = Par( 3 ); FigureProductGasesEnthalpy( GeneratorNum, TprodGas, thisHmolalProdGases ); diff --git a/src/EnergyPlus/FuelCellElectricGenerator.hh b/src/EnergyPlus/FuelCellElectricGenerator.hh index 4b4440e2e1f..1cfa9951e0e 100644 --- a/src/EnergyPlus/FuelCellElectricGenerator.hh +++ b/src/EnergyPlus/FuelCellElectricGenerator.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -73,7 +71,7 @@ namespace FuelCellElectricGenerator { Real64 FuelCellProductGasEnthResidual( Real64 const TprodGas, // temperature, this is "x" being searched - Optional< FArray1S< Real64 > const > Par = _ // par(1) = Generator Number + FArray1< Real64 > const & Par // par(1) = Generator Number ); void diff --git a/src/EnergyPlus/Furnaces.cc b/src/EnergyPlus/Furnaces.cc index f093095378f..101461af1e3 100644 --- a/src/EnergyPlus/Furnaces.cc +++ b/src/EnergyPlus/Furnaces.cc @@ -7348,7 +7348,7 @@ namespace Furnaces { Real64 CalcFurnaceResidual( Real64 const PartLoadRatio, // DX cooling coil part load ratio - Optional< FArray1S< Real64 > const > Par // Function parameters + FArray1< Real64 > const & Par // Function parameters ) { @@ -7417,17 +7417,17 @@ namespace Furnaces { bool errFlag; // flag denoting error in runtime calculation // Convert parameters to usable variables - FurnaceNum = int( Par()( 1 ) ); - if ( Par()( 2 ) == 1.0 ) { + FurnaceNum = int( Par( 1 ) ); + if ( Par( 2 ) == 1.0 ) { FirstHVACIteration = true; } else { FirstHVACIteration = false; } - FanOpMode = int( Par()( 3 ) ); - CompOp = int( Par()( 4 ) ); - LoadToBeMet = Par()( 5 ); + FanOpMode = int( Par( 3 ) ); + CompOp = int( Par( 4 ) ); + LoadToBeMet = Par( 5 ); - if ( Par()( 6 ) == 1.0 ) { + if ( Par( 6 ) == 1.0 ) { CoolPartLoadRatio = PartLoadRatio; HeatPartLoadRatio = 0.0; HeatCoilLoad = 0.0; @@ -7435,28 +7435,29 @@ namespace Furnaces { CoolPartLoadRatio = 0.0; HeatPartLoadRatio = PartLoadRatio; - if ( Furnace( FurnaceNum ).HeatingCoilType_Num == Coil_HeatingGas || Furnace( FurnaceNum ).HeatingCoilType_Num == Coil_HeatingElectric || Furnace( FurnaceNum ).HeatingCoilType_Num == Coil_HeatingWater || Furnace( FurnaceNum ).HeatingCoilType_Num == Coil_HeatingSteam ) { + auto const HeatingCoilType_Num( Furnace( FurnaceNum ).HeatingCoilType_Num ); + if ( HeatingCoilType_Num == Coil_HeatingGas || HeatingCoilType_Num == Coil_HeatingElectric || HeatingCoilType_Num == Coil_HeatingWater || HeatingCoilType_Num == Coil_HeatingSteam ) { HeatCoilLoad = Furnace( FurnaceNum ).DesignHeatingCapacity * PartLoadRatio; } else { HeatCoilLoad = 0.0; } } - // OnOffAirFlowRatio = Par()(8) + // OnOffAirFlowRatio = Par(8) if ( Furnace( FurnaceNum ).FurnaceType_Num == UnitarySys_HeatPump_WaterToAir ) { HeatPumpRunFrac( FurnaceNum, PartLoadRatio, errFlag, RuntimeFrac ); Furnace( FurnaceNum ).CompPartLoadRatio = PartLoadRatio; Furnace( FurnaceNum ).WSHPRuntimeFrac = RuntimeFrac; } - if ( Par()( 9 ) == 1.0 ) { + if ( Par( 9 ) == 1.0 ) { HXUnitOn = true; } else { HXUnitOn = false; } - if ( Par()( 10 ) > 0.0 ) { - // Par()(10) = Furnace(FurnaceNum)%HeatPartLoadRatio + if ( Par( 10 ) > 0.0 ) { + // Par(10) = Furnace(FurnaceNum)%HeatPartLoadRatio // FanOpMode = CycFan and Furnace(FurnaceNum)%HeatPartLoadRatio must be > 0 for Part(10) to be greater than 0 // This variable used when in heating mode and dehumidification (cooling) is required. CoolingHeatingPLRRatio = min( 1.0, CoolPartLoadRatio / Furnace( FurnaceNum ).HeatPartLoadRatio ); @@ -7470,7 +7471,7 @@ namespace Furnaces { CalcFurnaceOutput( FurnaceNum, FirstHVACIteration, FanOpMode, CompOp, CoolPartLoadRatio, HeatPartLoadRatio, HeatCoilLoad, 0.0, SensibleLoadMet, LatentLoadMet, OnOffAirFlowRatio, HXUnitOn, CoolingHeatingPLRRatio ); // Calculate residual based on output calculation flag - if ( Par()( 7 ) == 1.0 ) { + if ( Par( 7 ) == 1.0 ) { if ( LoadToBeMet == 0.0 ) { Residuum = ( SensibleLoadMet - LoadToBeMet ) / 100.0; } else { @@ -7490,7 +7491,7 @@ namespace Furnaces { Real64 CalcWaterToAirResidual( Real64 const PartLoadRatio, // DX cooling coil part load ratio - Optional< FArray1S< Real64 > const > Par // Function parameters + FArray1< Real64 > const & Par // Function parameters ) { @@ -7560,17 +7561,17 @@ namespace Furnaces { bool HXUnitOn; // flag to enable HX based on zone moisture load (not valid for water-to-air HP's // Convert parameters to usable variables - FurnaceNum = int( Par()( 1 ) ); - if ( Par()( 2 ) == 1.0 ) { + FurnaceNum = int( Par( 1 ) ); + if ( Par( 2 ) == 1.0 ) { FirstHVACIteration = true; } else { FirstHVACIteration = false; } - FanOpMode = int( Par()( 3 ) ); - CompOp = int( Par()( 4 ) ); - LoadToBeMet = Par()( 5 ); + FanOpMode = int( Par( 3 ) ); + CompOp = int( Par( 4 ) ); + LoadToBeMet = Par( 5 ); - if ( Par()( 6 ) == 1.0 ) { + if ( Par( 6 ) == 1.0 ) { CoolPartLoadRatio = PartLoadRatio; HeatPartLoadRatio = 0.0; HeatCoilLoad = 0.0; @@ -7578,13 +7579,13 @@ namespace Furnaces { CoolPartLoadRatio = 0.0; HeatPartLoadRatio = PartLoadRatio; } - ZoneSensLoadMetFanONCompOFF = Par()( 8 ); + ZoneSensLoadMetFanONCompOFF = Par( 8 ); //calculate the run time fraction HeatPumpRunFrac( FurnaceNum, PartLoadRatio, errFlag, RuntimeFrac ); //update the fan part load factor //see 'Note' under INITIAL CALCULATIONS - if ( Par()( 6 ) == 1.0 ) { + if ( Par( 6 ) == 1.0 ) { if ( RuntimeFrac > 0.0 ) { OnOffFanPartLoadFraction = CoolPartLoadRatio / RuntimeFrac; } else { @@ -7615,7 +7616,7 @@ namespace Furnaces { //Set input parameters for heat pump coil model HPCoilSensDemand = LoadToBeMet - RuntimeFrac * ZoneSensLoadMetFanONCompOFF; // HPCoilSensDemand = LoadToBeMet - PartLoadRatio*ZoneSensLoadMetFanONCompOFF - if ( Par()( 6 ) == 1.0 ) { + if ( Par( 6 ) == 1.0 ) { Furnace( FurnaceNum ).HeatingCoilSensDemand = 0.0; Furnace( FurnaceNum ).CoolingCoilSensDemand = std::abs( HPCoilSensDemand ); } else { @@ -7627,7 +7628,7 @@ namespace Furnaces { //Calculate the zone loads met and the new part load ratio and for the specified run time Dummy = 0.0; OnOffAirFlowRatio = 1.0; - if ( Par()( 9 ) == 1.0 ) { + if ( Par( 9 ) == 1.0 ) { HXUnitOn = true; } else { HXUnitOn = false; @@ -7639,7 +7640,7 @@ namespace Furnaces { CalcFurnaceOutput( FurnaceNum, FirstHVACIteration, FanOpMode, CompOp, CoolPartLoadRatio, HeatPartLoadRatio, Dummy, Dummy, ZoneSensLoadMet, ZoneLatLoadMet, OnOffAirFlowRatio, HXUnitOn ); // Calculate residual based on output calculation flag - if ( Par()( 7 ) == 1.0 ) { + if ( Par( 7 ) == 1.0 ) { Residuum = ( ZoneSensLoadMet - LoadToBeMet ) / LoadToBeMet; } else { Residuum = ( ZoneLatLoadMet - LoadToBeMet ) / LoadToBeMet; @@ -8076,7 +8077,7 @@ namespace Furnaces { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ) { @@ -8125,22 +8126,13 @@ namespace Furnaces { Real64 mdot; bool SuppHeatingCoilFlag; // .TRUE. if supplemental heating coil - FurnaceNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - QCoilRequested = Par()( 3 ); - if ( Par()( 4 ) > 0.0 ) { - SuppHeatingCoilFlag = true; - } else { - SuppHeatingCoilFlag = false; - } + FurnaceNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + QCoilRequested = Par( 3 ); + SuppHeatingCoilFlag = ( Par( 4 ) > 0.0 ); QCoilActual = QCoilRequested; mdot = HWFlow; if ( ! SuppHeatingCoilFlag ) { - SetComponentFlowRate( mdot, Furnace( FurnaceNum ).CoilControlNode, Furnace( FurnaceNum ).CoilOutletNode, Furnace( FurnaceNum ).LoopNum, Furnace( FurnaceNum ).LoopSide, Furnace( FurnaceNum ).BranchNum, Furnace( FurnaceNum ).CompNum ); SimulateWaterCoilComponents( Furnace( FurnaceNum ).HeatingCoilName, FirstHVACIteration, Furnace( FurnaceNum ).HeatingCoilIndex, QCoilActual, Furnace( FurnaceNum ).OpMode ); } else { @@ -8985,7 +8977,7 @@ namespace Furnaces { Real64 VSHPCyclingResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = FurnaceNum + FArray1< Real64 > const & Par // par(1) = FurnaceNum ) { // FUNCTION INFORMATION: @@ -9048,29 +9040,25 @@ namespace Furnaces { Real64 ResScale; // Residual scale int CompOp; // compressor operation; 1=on, 0=off - FurnaceNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + FurnaceNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); QZnReq = 0.0; QZnLat = 0.0; - LoadToBeMet = Par()( 5 ); - if ( Par()( 10 ) == 1.0 ) { - QZnReq = Par()( 5 ); + LoadToBeMet = Par( 5 ); + if ( Par( 10 ) == 1.0 ) { + QZnReq = Par( 5 ); } else { - QZnLat = Par()( 5 ); + QZnLat = Par( 5 ); } - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ); - CompOp = int( Par()( 9 ) ); + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ); + CompOp = int( Par( 9 ) ); CalcVarSpeedHeatPump( FurnaceNum, FirstHVACIteration, CompOp, 1, 0.0, PartLoadFrac, ZoneSensLoadMet, ZoneLatLoadMet, QZnReq, QZnLat, OnOffAirFlowRatio, SupHeaterLoad ); @@ -9082,7 +9070,7 @@ namespace Furnaces { } // Calculate residual based on output calculation flag - if ( Par()( 10 ) == 1.0 ) { + if ( Par( 10 ) == 1.0 ) { VSHPCyclingResidual = ( ZoneSensLoadMet - LoadToBeMet ) / ResScale; } else { VSHPCyclingResidual = ( ZoneLatLoadMet - LoadToBeMet ) / ResScale; @@ -9097,7 +9085,7 @@ namespace Furnaces { Real64 VSHPSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ) { // FUNCTION INFORMATION: @@ -9161,30 +9149,26 @@ namespace Furnaces { int SpeedNum; // Speed number int CompOp; // compressor operation; 1=on, 0=off - FurnaceNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + FurnaceNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); QZnReq = 0.0; QZnLat = 0.0; - LoadToBeMet = Par()( 5 ); - if ( Par()( 10 ) == 1.0 ) { - QZnReq = Par()( 5 ); + LoadToBeMet = Par( 5 ); + if ( Par( 10 ) == 1.0 ) { + QZnReq = Par( 5 ); } else { - QZnLat = Par()( 5 ); + QZnLat = Par( 5 ); } - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ); - SpeedNum = int( Par()( 8 ) ); - CompOp = int( Par()( 9 ) ); + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ); + SpeedNum = int( Par( 8 ) ); + CompOp = int( Par( 9 ) ); CalcVarSpeedHeatPump( FurnaceNum, FirstHVACIteration, CompOp, SpeedNum, SpeedRatio, 1.0, ZoneSensLoadMet, ZoneLatLoadMet, QZnReq, QZnLat, OnOffAirFlowRatio, SupHeaterLoad ); @@ -9196,7 +9180,7 @@ namespace Furnaces { } // Calculate residual based on output calculation flag - if ( Par()( 10 ) == 1.0 ) { + if ( Par( 10 ) == 1.0 ) { VSHPSpeedResidual = ( ZoneSensLoadMet - LoadToBeMet ) / ResScale; } else { VSHPSpeedResidual = ( ZoneLatLoadMet - LoadToBeMet ) / ResScale; diff --git a/src/EnergyPlus/Furnaces.hh b/src/EnergyPlus/Furnaces.hh index de34bb4275e..c62d0643695 100644 --- a/src/EnergyPlus/Furnaces.hh +++ b/src/EnergyPlus/Furnaces.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -774,13 +773,13 @@ namespace Furnaces { Real64 CalcFurnaceResidual( Real64 const PartLoadRatio, // DX cooling coil part load ratio - Optional< FArray1S< Real64 > const > Par = _ // Function parameters + FArray1< Real64 > const & Par // Function parameters ); Real64 CalcWaterToAirResidual( Real64 const PartLoadRatio, // DX cooling coil part load ratio - Optional< FArray1S< Real64 > const > Par = _ // Function parameters + FArray1< Real64 > const & Par // Function parameters ); void @@ -817,7 +816,7 @@ namespace Furnaces { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ); // End of Reporting subroutines for the Furnace Module @@ -874,7 +873,7 @@ namespace Furnaces { Real64 VSHPCyclingResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = FurnaceNum + FArray1< Real64 > const & Par // par(1) = FurnaceNum ); //****************************************************************************** @@ -882,7 +881,7 @@ namespace Furnaces { Real64 VSHPSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ); void diff --git a/src/EnergyPlus/General.cc b/src/EnergyPlus/General.cc index 8680c97e34a..576a7a36625 100644 --- a/src/EnergyPlus/General.cc +++ b/src/EnergyPlus/General.cc @@ -73,11 +73,11 @@ namespace General { Real64 const Eps, // required absolute accuracy int const MaxIte, // maximum number of allowed iterations int & Flag, // integer storing exit status - Real64 & XRes, // value of x that solves f(x [,Par]) = 0 - std::function< Real64( Real64 const, Optional< FArray1S< Real64 > const > ) > f, + Real64 & XRes, // value of x that solves f(x,Par) = 0 + std::function< Real64( Real64 const, FArray1< Real64 > const & ) > f, Real64 const X_0, // 1st bound of interval that contains the solution Real64 const X_1, // 2nd bound of interval that contains the solution - Optional< FArray1S< Real64 > const > Par // array with additional parameters used for function evaluation + FArray1< Real64 > const & Par // array with additional parameters used for function evaluation ) { @@ -88,7 +88,7 @@ namespace General { // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: - // Find the value of x between x0 and x1 such that f(x,[,Par]) + // Find the value of x between x0 and x1 such that f(x,Par) // is equal to zero. // METHODOLOGY EMPLOYED: @@ -137,13 +137,8 @@ namespace General { Cont = true; NIte = 0; - if ( present( Par ) ) { - Y0 = f( X0, Par ); - Y1 = f( X1, Par ); - } else { - Y0 = f( X0, _ ); - Y1 = f( X1, _ ); - } + Y0 = f( X0, Par ); + Y1 = f( X1, Par ); // check initial values if ( Y0 * Y1 > 0 ) { Flag = -2; @@ -157,12 +152,140 @@ namespace General { if ( std::abs( DY ) < SMALL ) DY = SMALL; // new estimation XTemp = ( Y0 * X1 - Y1 * X0 ) / DY; - if ( present( Par ) ) { - YTemp = f( XTemp, Par ); + YTemp = f( XTemp, Par ); + + ++NIte; + + // check convergence + if ( std::abs( YTemp ) < Eps ) Conv = true; + + if ( NIte > MaxIte ) StopMaxIte = true; + + if ( ( ! Conv ) && ( ! StopMaxIte ) ) { + Cont = true; } else { - YTemp = f( XTemp, _ ); + Cont = false; } + if ( Cont ) { + + // reassign values (only if further iteration required) + if ( Y0 < 0.0 ) { + if ( YTemp < 0.0 ) { + X0 = XTemp; + Y0 = YTemp; + } else { + X1 = XTemp; + Y1 = YTemp; + } + } else { + if ( YTemp < 0.0 ) { + X1 = XTemp; + Y1 = YTemp; + } else { + X0 = XTemp; + Y0 = YTemp; + } + } // ( Y0 < 0 ) + + } // (Cont) + + } // Cont + + if ( Conv ) { + Flag = NIte; + } else { + Flag = -1; + } + XRes = XTemp; + + } + + void + SolveRegulaFalsi( + Real64 const Eps, // required absolute accuracy + int const MaxIte, // maximum number of allowed iterations + int & Flag, // integer storing exit status + Real64 & XRes, // value of x that solves f(x) = 0 + std::function< Real64( Real64 const ) > f, + Real64 const X_0, // 1st bound of interval that contains the solution + Real64 const X_1 // 2nd bound of interval that contains the solution + ) + { + + // SUBROUTINE INFORMATION: + // AUTHOR Michael Wetter + // DATE WRITTEN March 1999 + // MODIFIED Fred Buhl November 2000, R. Raustad October 2006 - made subroutine RECURSIVE + // RE-ENGINEERED na + + // PURPOSE OF THIS SUBROUTINE: + // Find the value of x between x0 and x1 such that f(x) + // is equal to zero. + + // METHODOLOGY EMPLOYED: + // Uses the Regula Falsi (false position) method (similar to secant method) + + // REFERENCES: + // See Press et al., Numerical Recipes in Fortran, Cambridge University Press, + // 2nd edition, 1992. Page 347 ff. + + // USE STATEMENTS: + // na + + // Argument array dimensioning + + // Locals + // SUBROUTINE ARGUMENT DEFINITIONS: + // = -2: f(x0) and f(x1) have the same sign + // = -1: no convergence + // > 0: number of iterations performed + // optional + // SUBROUTINE PARAMETER DEFINITIONS: + Real64 const SMALL( 1.e-10 ); + + // INTERFACE BLOCK SPECIFICATIONS + + // DERIVED TYPE DEFINITIONS + // na + + // SUBROUTINE LOCAL VARIABLE DECLARATIONS: + Real64 X0; // present 1st bound + Real64 X1; // present 2nd bound + Real64 XTemp; // new estimate + Real64 Y0; // f at X0 + Real64 Y1; // f at X1 + Real64 YTemp; // f at XTemp + Real64 DY; // DY = Y0 - Y1 + bool Conv; // flag, true if convergence is achieved + bool StopMaxIte; // stop due to exceeding of maximum # of iterations + bool Cont; // flag, if true, continue searching + int NIte; // number of interations + + X0 = X_0; + X1 = X_1; + Conv = false; + StopMaxIte = false; + Cont = true; + NIte = 0; + + Y0 = f( X0 ); + Y1 = f( X1 ); + // check initial values + if ( Y0 * Y1 > 0 ) { + Flag = -2; + XRes = X0; + return; + } + + while ( Cont ) { + + DY = Y0 - Y1; + if ( std::abs( DY ) < SMALL ) DY = SMALL; + // new estimation + XTemp = ( Y0 * X1 - Y1 * X0 ) / DY; + YTemp = f( XTemp ); + ++NIte; // check convergence @@ -3310,7 +3433,7 @@ namespace General { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/General.hh b/src/EnergyPlus/General.hh index c67fc5e5aa3..af554fde67c 100644 --- a/src/EnergyPlus/General.hh +++ b/src/EnergyPlus/General.hh @@ -45,10 +45,21 @@ namespace General { int const MaxIte, // maximum number of allowed iterations int & Flag, // integer storing exit status Real64 & XRes, // value of x that solves f(x [,Par]) = 0 - std::function< Real64( Real64 const, Optional< FArray1S< Real64 > const > ) > f, + std::function< Real64( Real64 const, FArray1< Real64 > const & ) > f, Real64 const X_0, // 1st bound of interval that contains the solution Real64 const X_1, // 2nd bound of interval that contains the solution - Optional< FArray1S< Real64 > const > Par = _ // array with additional parameters used for function evaluation + FArray1< Real64 > const & Par // array with additional parameters used for function evaluation + ); + + void + SolveRegulaFalsi( + Real64 const Eps, // required absolute accuracy + int const MaxIte, // maximum number of allowed iterations + int & Flag, // integer storing exit status + Real64 & XRes, // value of x that solves f(x) = 0 + std::function< Real64( Real64 const ) > f, + Real64 const X_0, // 1st bound of interval that contains the solution + Real64 const X_1 // 2nd bound of interval that contains the solution ); Real64 diff --git a/src/EnergyPlus/GeneralRoutines.cc b/src/EnergyPlus/GeneralRoutines.cc index e4c5474e31d..010d8fbba26 100644 --- a/src/EnergyPlus/GeneralRoutines.cc +++ b/src/EnergyPlus/GeneralRoutines.cc @@ -1077,7 +1077,7 @@ CalcPassiveExteriorBaffleGap( if ( IsRain ) HExt = 1000.0; -// Tso = sum( TH( ( SurfPtrARR ), 1, 1 ) * Surface( SurfPtrARR ).Area ) / A; //Autodesk:F2C++ Array subscript usage: Replaced by below +// Tso = sum( TH( SurfPtrARR, 1, 1 ) * Surface( SurfPtrARR ).Area ) / A; //Autodesk:F2C++ Array subscript usage: Replaced by below Tso = sum_product_sub( TH( _, 1, 1 ), Surface.Area(), SurfPtrARR ) / A; //Autodesk:F2C++ Functions handle array subscript usage // Isc = sum( QRadSWOutIncident( SurfPtrARR ) * Surface( SurfPtrARR ).Area ) / A; //Autodesk:F2C++ Array subscript usage: Replaced by below Isc = sum_product_sub( QRadSWOutIncident, Surface.Area(), SurfPtrARR ) / A; //Autodesk:F2C++ Functions handle array subscript usage diff --git a/src/EnergyPlus/GroundHeatExchangers.cc b/src/EnergyPlus/GroundHeatExchangers.cc index f80a5e23f06..30c8d5b6bac 100644 --- a/src/EnergyPlus/GroundHeatExchangers.cc +++ b/src/EnergyPlus/GroundHeatExchangers.cc @@ -792,18 +792,12 @@ namespace GroundHeatExchangers { VerticalGlhe( GlheNum ).AGG = 192; // Allocation of all the dynamic arrays - VerticalGlhe( GlheNum ).LNTTS.allocate( VerticalGlhe( GlheNum ).NPairs ); - VerticalGlhe( GlheNum ).LNTTS = 0.0; - VerticalGlhe( GlheNum ).GFNC.allocate( VerticalGlhe( GlheNum ).NPairs ); - VerticalGlhe( GlheNum ).GFNC = 0.0; - VerticalGlhe( GlheNum ).QnMonthlyAgg.allocate( VerticalGlhe( GlheNum ).MaxSimYears * 12 ); - VerticalGlhe( GlheNum ).QnMonthlyAgg = 0.0; - VerticalGlhe( GlheNum ).QnHr.allocate( 730 + VerticalGlhe( GlheNum ).AGG + VerticalGlhe( GlheNum ).SubAGG ); - VerticalGlhe( GlheNum ).QnHr = 0.0; - VerticalGlhe( GlheNum ).QnSubHr.allocate( ( VerticalGlhe( GlheNum ).SubAGG + 1 ) * MaxTSinHr + 1 ); - VerticalGlhe( GlheNum ).QnSubHr = 0.0; - VerticalGlhe( GlheNum ).LastHourN.allocate( VerticalGlhe( GlheNum ).SubAGG + 1 ); - VerticalGlhe( GlheNum ).LastHourN = 0; + VerticalGlhe( GlheNum ).LNTTS.dimension( VerticalGlhe( GlheNum ).NPairs, 0.0 ); + VerticalGlhe( GlheNum ).GFNC.dimension( VerticalGlhe( GlheNum ).NPairs, 0.0 ); + VerticalGlhe( GlheNum ).QnMonthlyAgg.dimension( VerticalGlhe( GlheNum ).MaxSimYears * 12, 0.0 ); + VerticalGlhe( GlheNum ).QnHr.dimension( 730 + VerticalGlhe( GlheNum ).AGG + VerticalGlhe( GlheNum ).SubAGG, 0.0 ); + VerticalGlhe( GlheNum ).QnSubHr.dimension( ( VerticalGlhe( GlheNum ).SubAGG + 1 ) * MaxTSinHr + 1, 0.0 ); + VerticalGlhe( GlheNum ).LastHourN.dimension( VerticalGlhe( GlheNum ).SubAGG + 1, 0 ); if ( ! Allocated ) { PrevTimeSteps.allocate( ( VerticalGlhe( GlheNum ).SubAGG + 1 ) * MaxTSinHr + 1 ); diff --git a/src/EnergyPlus/HVACCooledBeam.cc b/src/EnergyPlus/HVACCooledBeam.cc index 976d12a7d56..675d2178a13 100644 --- a/src/EnergyPlus/HVACCooledBeam.cc +++ b/src/EnergyPlus/HVACCooledBeam.cc @@ -1068,7 +1068,7 @@ namespace HVACCooledBeam { Real64 CoolBeamResidual( Real64 const CWFlow, // cold water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par + FArray1< Real64 > const & Par ) { @@ -1113,10 +1113,10 @@ namespace HVACCooledBeam { static Real64 UnitOutput( 0.0 ); static Real64 TWOut( 0.0 ); - CBIndex = int( Par()( 1 ) ); - ZoneNodeIndex = int( Par()( 2 ) ); + CBIndex = int( Par( 1 ) ); + ZoneNodeIndex = int( Par( 2 ) ); CalcCoolBeam( CBIndex, ZoneNodeIndex, CWFlow, UnitOutput, TWOut ); - Residuum = ( Par()( 3 ) - UnitOutput ) / ( Par()( 5 ) - Par()( 4 ) ); + Residuum = ( Par( 3 ) - UnitOutput ) / ( Par( 5 ) - Par( 4 ) ); return Residuum; } diff --git a/src/EnergyPlus/HVACCooledBeam.hh b/src/EnergyPlus/HVACCooledBeam.hh index 1877ac5ef43..6a933a93079 100644 --- a/src/EnergyPlus/HVACCooledBeam.hh +++ b/src/EnergyPlus/HVACCooledBeam.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -289,7 +287,7 @@ namespace HVACCooledBeam { Real64 CoolBeamResidual( Real64 const CWFlow, // cold water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ + FArray1< Real64 > const & Par ); void diff --git a/src/EnergyPlus/HVACDXHeatPumpSystem.cc b/src/EnergyPlus/HVACDXHeatPumpSystem.cc index dc8242f3feb..adba1133af9 100644 --- a/src/EnergyPlus/HVACDXHeatPumpSystem.cc +++ b/src/EnergyPlus/HVACDXHeatPumpSystem.cc @@ -887,7 +887,7 @@ namespace HVACDXHeatPumpSystem { Real64 DXHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -933,13 +933,13 @@ namespace HVACDXHeatPumpSystem { Real64 OutletAirTemp; // Outlet air temperature [C] Real64 OnOffAirFlowFrac; // Ratio of compressor ON to compressor OFF air mass flow rate - CoilIndex = int( Par()( 1 ) ); - OnOffAirFlowFrac = Par()( 3 ); + CoilIndex = int( Par( 1 ) ); + OnOffAirFlowFrac = Par( 3 ); CalcDXHeatingCoil( CoilIndex, PartLoadFrac, ContFanCycCoil, OnOffAirFlowFrac ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -949,7 +949,7 @@ namespace HVACDXHeatPumpSystem { Real64 VSCoilCyclingResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -1002,13 +1002,13 @@ namespace HVACDXHeatPumpSystem { static Real64 OnOffAirFlowRatio( 1.0 ); // ratio of compressor on flow to average flow over time step static Real64 SpeedRatio( 0.0 ); // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); SimVariableSpeedCoils( "", CoilIndex, FanOpMode, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, On, PartLoadRatio, SpeedNum, SpeedRatio, QZnReq, QLatReq, OnOffAirFlowRatio ); OutletAirTemp = VarSpeedCoil( CoilIndex ).OutletAirDBTemp; - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; @@ -1019,7 +1019,7 @@ namespace HVACDXHeatPumpSystem { Real64 VSCoilSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -1072,14 +1072,14 @@ namespace HVACDXHeatPumpSystem { static Real64 OnOffAirFlowRatio( 1.0 ); // ratio of compressor on flow to average flow over time step static Real64 PartLoadRatio( 1.0 ); // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); - SpeedNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); + SpeedNum = int( Par( 3 ) ); SimVariableSpeedCoils( "", CoilIndex, FanOpMode, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, On, PartLoadRatio, SpeedNum, SpeedRatio, QZnReq, QLatReq, OnOffAirFlowRatio ); OutletAirTemp = VarSpeedCoil( CoilIndex ).OutletAirDBTemp; - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; diff --git a/src/EnergyPlus/HVACDXHeatPumpSystem.hh b/src/EnergyPlus/HVACDXHeatPumpSystem.hh index aaa2e31defd..5d8a9f4ce68 100644 --- a/src/EnergyPlus/HVACDXHeatPumpSystem.hh +++ b/src/EnergyPlus/HVACDXHeatPumpSystem.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -191,7 +190,7 @@ namespace HVACDXHeatPumpSystem { Real64 DXHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); //****************************************************************************** @@ -199,7 +198,7 @@ namespace HVACDXHeatPumpSystem { Real64 VSCoilCyclingResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); //****************************************************************************** @@ -207,7 +206,7 @@ namespace HVACDXHeatPumpSystem { Real64 VSCoilSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); } // HVACDXHeatPumpSystem diff --git a/src/EnergyPlus/HVACDXSystem.cc b/src/EnergyPlus/HVACDXSystem.cc index bdcb7a6ef5c..76a1559bd08 100644 --- a/src/EnergyPlus/HVACDXSystem.cc +++ b/src/EnergyPlus/HVACDXSystem.cc @@ -2079,7 +2079,7 @@ namespace HVACDXSystem { Real64 DXCoilVarSpeedResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2124,10 +2124,10 @@ namespace HVACDXSystem { int CoilIndex; // index of this coil Real64 OutletAirTemp; // outlet air temperature [C] - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); CalcMultiSpeedDXCoil( CoilIndex, SpeedRatio, 1.0 ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2135,7 +2135,7 @@ namespace HVACDXSystem { Real64 DXCoilVarSpeedHumRatResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2180,10 +2180,10 @@ namespace HVACDXSystem { int CoilIndex; // index of this coil Real64 OutletAirHumRat; // outlet air humidity ratio [kg/kg] - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); CalcMultiSpeedDXCoil( CoilIndex, SpeedRatio, 1.0 ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -2191,7 +2191,7 @@ namespace HVACDXSystem { Real64 DXCoilCyclingResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2236,10 +2236,10 @@ namespace HVACDXSystem { int CoilIndex; // index of this coil Real64 OutletAirTemp; // outlet air temperature [C] - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); CalcMultiSpeedDXCoil( CoilIndex, 0.0, CycRatio ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2247,7 +2247,7 @@ namespace HVACDXSystem { Real64 DXCoilCyclingHumRatResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2292,10 +2292,10 @@ namespace HVACDXSystem { int CoilIndex; // index of this coil Real64 OutletAirHumRat; // outlet air humidity ratio [kg/kg] - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); CalcMultiSpeedDXCoil( CoilIndex, 0.0, CycRatio ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -2303,7 +2303,7 @@ namespace HVACDXSystem { Real64 DOE2DXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2350,11 +2350,11 @@ namespace HVACDXSystem { Real64 OutletAirTemp; // outlet air temperature [C] int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); CalcDoe2DXCoil( CoilIndex, On, true, PartLoadRatio, FanOpMode ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2362,7 +2362,7 @@ namespace HVACDXSystem { Real64 DOE2DXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2409,11 +2409,11 @@ namespace HVACDXSystem { Real64 OutletAirHumRat; // outlet air humidity ratio [kg/kg] int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); CalcDoe2DXCoil( CoilIndex, On, true, PartLoadRatio, FanOpMode ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -2421,7 +2421,7 @@ namespace HVACDXSystem { Real64 MultiModeDXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2471,12 +2471,12 @@ namespace HVACDXSystem { int DehumidMode; // dehumidification mode (par3) int FanOpMode; // supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - DehumidMode = int( Par()( 3 ) ); - FanOpMode = int( Par()( 4 ) ); + CoilIndex = int( Par( 1 ) ); + DehumidMode = int( Par( 3 ) ); + FanOpMode = int( Par( 4 ) ); SimDXCoilMultiMode( "", On, false, PartLoadRatio, DehumidMode, CoilIndex, FanOpMode ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2484,7 +2484,7 @@ namespace HVACDXSystem { Real64 MultiModeDXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2533,12 +2533,12 @@ namespace HVACDXSystem { int DehumidMode; // dehumidification mode (par3) int FanOpMode; // supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - DehumidMode = int( Par()( 3 ) ); - FanOpMode = int( Par()( 4 ) ); + CoilIndex = int( Par( 1 ) ); + DehumidMode = int( Par( 3 ) ); + FanOpMode = int( Par( 4 ) ); SimDXCoilMultiMode( "", On, false, PartLoadRatio, DehumidMode, CoilIndex, FanOpMode ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -2546,7 +2546,7 @@ namespace HVACDXSystem { Real64 HXAssistedCoolCoilTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2597,22 +2597,14 @@ namespace HVACDXSystem { bool HXUnitOn; // flag to enable heat exchanger heat recovery int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1=TRUE and 0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) == 1.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } - FanOpMode = int( Par()( 5 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + HXUnitOn = ( Par( 4 ) == 1.0 ); + FanOpMode = int( Par( 5 ) ); CalcHXAssistedCoolingCoil( CoilIndex, FirstHVACIteration, On, PartLoadRatio, HXUnitOn, FanOpMode ); OutletAirTemp = HXAssistedCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2620,7 +2612,7 @@ namespace HVACDXSystem { Real64 HXAssistedCoolCoilHRResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2671,22 +2663,14 @@ namespace HVACDXSystem { bool HXUnitOn; // flag to enable heat exchanger heat recovery int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1=TRUE and 0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) == 1.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } - FanOpMode = int( Par()( 5 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + HXUnitOn = ( Par( 4 ) == 1.0 ); + FanOpMode = int( Par( 5 ) ); CalcHXAssistedCoolingCoil( CoilIndex, FirstHVACIteration, On, PartLoadRatio, HXUnitOn, FanOpMode, _, EconomizerFlag ); OutletAirHumRat = HXAssistedCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -2694,7 +2678,7 @@ namespace HVACDXSystem { Real64 TESCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2748,10 +2732,10 @@ namespace HVACDXSystem { int TESOpMode; int OutletNodeNum; - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); - OutletNodeNum = int( Par()( 4 ) ); - TESOpMode = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); + OutletNodeNum = int( Par( 4 ) ); + TESOpMode = int( Par( 3 ) ); { auto const SELECT_CASE_var( TESOpMode ); if ( SELECT_CASE_var == CoolingOnlyMode ) { @@ -2765,7 +2749,7 @@ namespace HVACDXSystem { }} OutletAirTemp = Node( OutletNodeNum ).Temp; - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2773,7 +2757,7 @@ namespace HVACDXSystem { Real64 TESCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2827,10 +2811,10 @@ namespace HVACDXSystem { int TESOpMode; int OutletNodeNum; - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); - OutletNodeNum = int( Par()( 4 ) ); - TESOpMode = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); + OutletNodeNum = int( Par( 4 ) ); + TESOpMode = int( Par( 3 ) ); { auto const SELECT_CASE_var( TESOpMode ); if ( SELECT_CASE_var == CoolingOnlyMode ) { @@ -2844,7 +2828,7 @@ namespace HVACDXSystem { }} OutletAirHumRat = Node( OutletNodeNum ).HumRat; - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -3017,7 +3001,7 @@ namespace HVACDXSystem { Real64 VSCoilCyclingResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -3061,13 +3045,13 @@ namespace HVACDXSystem { static Real64 OnOffAirFlowRatio( 1.0 ); // ratio of compressor on flow to average flow over time step static Real64 SpeedRatio( 0.0 ); // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); SimVariableSpeedCoils( "", CoilIndex, FanOpMode, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, On, PartLoadRatio, SpeedNum, SpeedRatio, QZnReq, QLatReq, OnOffAirFlowRatio ); OutletAirTemp = VarSpeedCoil( CoilIndex ).OutletAirDBTemp; - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; @@ -3078,7 +3062,7 @@ namespace HVACDXSystem { Real64 VSCoilSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -3130,14 +3114,14 @@ namespace HVACDXSystem { static Real64 OnOffAirFlowRatio( 1.0 ); // ratio of compressor on flow to average flow over time step static Real64 PartLoadRatio( 1.0 ); // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); - SpeedNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); + SpeedNum = int( Par( 3 ) ); SimVariableSpeedCoils( "", CoilIndex, FanOpMode, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, On, PartLoadRatio, SpeedNum, SpeedRatio, QZnReq, QLatReq, OnOffAirFlowRatio ); OutletAirTemp = VarSpeedCoil( CoilIndex ).OutletAirDBTemp; - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; @@ -3146,7 +3130,7 @@ namespace HVACDXSystem { Real64 VSCoilCyclingHumResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -3198,13 +3182,13 @@ namespace HVACDXSystem { static Real64 OnOffAirFlowRatio( 1.0 ); // ratio of compressor on flow to average flow over time step static Real64 SpeedRatio( 0.0 ); // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); SimVariableSpeedCoils( "", CoilIndex, FanOpMode, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, On, PartLoadRatio, SpeedNum, SpeedRatio, QZnReq, QLatReq, OnOffAirFlowRatio ); OutletAirHumRat = VarSpeedCoil( CoilIndex ).OutletAirHumRat; - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; @@ -3215,7 +3199,7 @@ namespace HVACDXSystem { Real64 VSCoilSpeedHumResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -3268,14 +3252,14 @@ namespace HVACDXSystem { static Real64 OnOffAirFlowRatio( 1.0 ); // ratio of compressor on flow to average flow over time step static Real64 PartLoadRatio( 1.0 ); // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); - SpeedNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); + SpeedNum = int( Par( 3 ) ); SimVariableSpeedCoils( "", CoilIndex, FanOpMode, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, On, PartLoadRatio, SpeedNum, SpeedRatio, QZnReq, QLatReq, OnOffAirFlowRatio ); OutletAirHumRat = VarSpeedCoil( CoilIndex ).OutletAirHumRat; - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; diff --git a/src/EnergyPlus/HVACDXSystem.hh b/src/EnergyPlus/HVACDXSystem.hh index f1d6684a412..3ab9235cb28 100644 --- a/src/EnergyPlus/HVACDXSystem.hh +++ b/src/EnergyPlus/HVACDXSystem.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -390,73 +389,73 @@ namespace HVACDXSystem { Real64 DXCoilVarSpeedResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilVarSpeedHumRatResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilCyclingResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilCyclingHumRatResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DOE2DXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DOE2DXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 MultiModeDXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 MultiModeDXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HXAssistedCoolCoilTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HXAssistedCoolCoilHRResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 TESCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 TESCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); void @@ -486,7 +485,7 @@ namespace HVACDXSystem { Real64 VSCoilCyclingResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); //****************************************************************************** @@ -494,13 +493,13 @@ namespace HVACDXSystem { Real64 VSCoilSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 VSCoilCyclingHumResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); //****************************************************************************** @@ -508,7 +507,7 @@ namespace HVACDXSystem { Real64 VSCoilSpeedHumResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); // End of Calculation subroutines for the DXCoolingSystem Module diff --git a/src/EnergyPlus/HVACInterfaceManager.hh b/src/EnergyPlus/HVACInterfaceManager.hh index 52a85c664a3..2178576b879 100644 --- a/src/EnergyPlus/HVACInterfaceManager.hh +++ b/src/EnergyPlus/HVACInterfaceManager.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include // EnergyPlus Headers #include diff --git a/src/EnergyPlus/HVACManager.hh b/src/EnergyPlus/HVACManager.hh index c3c5eada25f..3385c19e426 100644 --- a/src/EnergyPlus/HVACManager.hh +++ b/src/EnergyPlus/HVACManager.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include // EnergyPlus Headers #include diff --git a/src/EnergyPlus/HVACMultiSpeedHeatPump.cc b/src/EnergyPlus/HVACMultiSpeedHeatPump.cc index b351a89da23..287d147ae07 100644 --- a/src/EnergyPlus/HVACMultiSpeedHeatPump.cc +++ b/src/EnergyPlus/HVACMultiSpeedHeatPump.cc @@ -2901,7 +2901,7 @@ namespace HVACMultiSpeedHeatPump { Real64 MSHPCyclingResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ) { // FUNCTION INFORMATION: @@ -2959,19 +2959,15 @@ namespace HVACMultiSpeedHeatPump { Real64 ActualOutput; // delivered capacity of MSHP int CompOp; // compressor operation; 1=on, 0=off - MSHeatPumpNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + MSHeatPumpNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); - QZnReq = Par()( 5 ); - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ); - CompOp = int( Par()( 9 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); + QZnReq = Par( 5 ); + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ); + CompOp = int( Par( 9 ) ); CalcMSHeatPump( MSHeatPumpNum, FirstHVACIteration, CompOp, 1, 0.0, PartLoadFrac, ActualOutput, QZnReq, OnOffAirFlowRatio, SupHeaterLoad ); @@ -2985,7 +2981,7 @@ namespace HVACMultiSpeedHeatPump { Real64 MSHPVarSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ) { // FUNCTION INFORMATION: @@ -3045,20 +3041,16 @@ namespace HVACMultiSpeedHeatPump { int SpeedNum; // Speed number int CompOp; // compressor operation; 1=on, 0=off - MSHeatPumpNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + MSHeatPumpNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); - QZnReq = Par()( 5 ); - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ); - SpeedNum = int( Par()( 8 ) ); - CompOp = int( Par()( 9 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); + QZnReq = Par( 5 ); + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ); + SpeedNum = int( Par( 8 ) ); + CompOp = int( Par( 9 ) ); CalcMSHeatPump( MSHeatPumpNum, FirstHVACIteration, CompOp, SpeedNum, SpeedRatio, 1.0, ActualOutput, QZnReq, OnOffAirFlowRatio, SupHeaterLoad ); @@ -3566,7 +3558,7 @@ namespace HVACMultiSpeedHeatPump { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ) { @@ -3614,13 +3606,9 @@ namespace HVACMultiSpeedHeatPump { Real64 HeatCoilLoad; // requested coild load, W Real64 mdot; - MSHeatPumpNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - HeatCoilLoad = Par()( 3 ); + MSHeatPumpNum = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + HeatCoilLoad = Par( 3 ); QCoilActual = HeatCoilLoad; mdot = HWFlow; SetComponentFlowRate( mdot, MSHeatPump( MSHeatPumpNum ).HotWaterCoilControlNode, MSHeatPump( MSHeatPumpNum ).HotWaterCoilOutletNode, MSHeatPump( MSHeatPumpNum ).HotWaterLoopNum, MSHeatPump( MSHeatPumpNum ).HotWaterLoopSide, MSHeatPump( MSHeatPumpNum ).HotWaterBranchNum, MSHeatPump( MSHeatPumpNum ).HotWaterCompNum ); diff --git a/src/EnergyPlus/HVACMultiSpeedHeatPump.hh b/src/EnergyPlus/HVACMultiSpeedHeatPump.hh index 024b519d445..991589bf5ea 100644 --- a/src/EnergyPlus/HVACMultiSpeedHeatPump.hh +++ b/src/EnergyPlus/HVACMultiSpeedHeatPump.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -688,7 +687,7 @@ namespace HVACMultiSpeedHeatPump { Real64 MSHPCyclingResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ); //****************************************************************************** @@ -696,7 +695,7 @@ namespace HVACMultiSpeedHeatPump { Real64 MSHPVarSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ); //****************************************************************************** @@ -734,7 +733,7 @@ namespace HVACMultiSpeedHeatPump { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ); // NOTICE diff --git a/src/EnergyPlus/HVACSingleDuctInduc.cc b/src/EnergyPlus/HVACSingleDuctInduc.cc index 7b59e865578..15d6e7440f2 100644 --- a/src/EnergyPlus/HVACSingleDuctInduc.cc +++ b/src/EnergyPlus/HVACSingleDuctInduc.cc @@ -1219,7 +1219,7 @@ namespace HVACSingleDuctInduc { Real64 FourPipeIUHeatingResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par(5) is the requested zone load + FArray1< Real64 > const & Par // Par(5) is the requested zone load ) { @@ -1266,16 +1266,12 @@ namespace HVACSingleDuctInduc { Real64 MinCWFlow; Real64 UnitOutput; - IUIndex = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - ZoneNodeIndex = int( Par()( 3 ) ); - MinCWFlow = Par()( 4 ); + IUIndex = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + ZoneNodeIndex = int( Par( 3 ) ); + MinCWFlow = Par( 4 ); CalcFourPipeIndUnit( IUIndex, FirstHVACSoln, ZoneNodeIndex, HWFlow, MinCWFlow, UnitOutput ); - Residuum = ( Par()( 5 ) - UnitOutput ) / ( Par()( 7 ) - Par()( 6 ) ); + Residuum = ( Par( 5 ) - UnitOutput ) / ( Par( 7 ) - Par( 6 ) ); return Residuum; } @@ -1283,7 +1279,7 @@ namespace HVACSingleDuctInduc { Real64 FourPipeIUCoolingResidual( Real64 const CWFlow, // cold water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par()(5) is the requested zone load + FArray1< Real64 > const & Par // Par(5) is the requested zone load ) { @@ -1330,16 +1326,12 @@ namespace HVACSingleDuctInduc { Real64 MinHWFlow; Real64 UnitOutput; - IUIndex = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - ZoneNodeIndex = int( Par()( 3 ) ); - MinHWFlow = Par()( 4 ); + IUIndex = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + ZoneNodeIndex = int( Par( 3 ) ); + MinHWFlow = Par( 4 ); CalcFourPipeIndUnit( IUIndex, FirstHVACSoln, ZoneNodeIndex, MinHWFlow, CWFlow, UnitOutput ); - Residuum = ( Par()( 5 ) - UnitOutput ) / ( Par()( 7 ) - Par()( 6 ) ); + Residuum = ( Par( 5 ) - UnitOutput ) / ( Par( 7 ) - Par( 6 ) ); return Residuum; } diff --git a/src/EnergyPlus/HVACSingleDuctInduc.hh b/src/EnergyPlus/HVACSingleDuctInduc.hh index 56ee0904170..15eafc1fa32 100644 --- a/src/EnergyPlus/HVACSingleDuctInduc.hh +++ b/src/EnergyPlus/HVACSingleDuctInduc.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -291,13 +289,13 @@ namespace HVACSingleDuctInduc { Real64 FourPipeIUHeatingResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested zone load + FArray1< Real64 > const & Par // Par(5) is the requested zone load ); Real64 FourPipeIUCoolingResidual( Real64 const CWFlow, // cold water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested zone load + FArray1< Real64 > const & Par // Par(5) is the requested zone load ); // ========================= Utilities ======================= diff --git a/src/EnergyPlus/HVACUnitaryBypassVAV.cc b/src/EnergyPlus/HVACUnitaryBypassVAV.cc index eaf331e11bb..99c05aa1aae 100644 --- a/src/EnergyPlus/HVACUnitaryBypassVAV.cc +++ b/src/EnergyPlus/HVACUnitaryBypassVAV.cc @@ -2609,7 +2609,7 @@ namespace HVACUnitaryBypassVAV { Real64 DOE2DXCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2655,13 +2655,13 @@ namespace HVACUnitaryBypassVAV { Real64 OutletAirTemp; // Outlet air temperature [C] Real64 OnOffAirFlowFrac; // Ratio of compressor ON to compressor OFF air mass flow rate - CoilIndex = int( Par()( 1 ) ); - OnOffAirFlowFrac = Par()( 3 ); + CoilIndex = int( Par( 1 ) ); + OnOffAirFlowFrac = Par( 3 ); CalcDoe2DXCoil( CoilIndex, On, false, PartLoadFrac, ContFanCycCoil, _, OnOffAirFlowFrac ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2669,7 +2669,7 @@ namespace HVACUnitaryBypassVAV { Real64 HXAssistDXCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2717,24 +2717,16 @@ namespace HVACUnitaryBypassVAV { bool FirstHVACIter; // Local Flag denoting the first pass on the air loop simulation bool HXUnitOn; // flag to enable heat exchanger - CoilIndex = int( Par()( 1 ) ); - OnOffAirFlowFrac = Par()( 3 ); - CBVAVNumTemp = int( Par()( 4 ) ); - if ( Par()( 5 ) == 1.0 ) { - FirstHVACIter = true; - } else { - FirstHVACIter = false; - } - if ( Par()( 6 ) == 1.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } + CoilIndex = int( Par( 1 ) ); + OnOffAirFlowFrac = Par( 3 ); + CBVAVNumTemp = int( Par( 4 ) ); + FirstHVACIter = ( Par( 5 ) == 1.0 ); + HXUnitOn = ( Par( 6 ) == 1.0 ); SimHXAssistedCoolingCoil( CBVAV( CBVAVNumTemp ).DXCoolCoilName, FirstHVACIter, On, PartLoadFrac, CoilIndex, ContFanCycCoil, HXUnitOn ); OutletAirTemp = Node( CBVAV( CBVAVNumTemp ).DXCoilOutletNode ).Temp; - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2742,7 +2734,7 @@ namespace HVACUnitaryBypassVAV { Real64 DXHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2788,13 +2780,13 @@ namespace HVACUnitaryBypassVAV { Real64 OutletAirTemp; // Outlet air temperature [C] Real64 OnOffAirFlowFrac; // Ratio of compressor ON to compressor OFF air mass flow rate - CoilIndex = int( Par()( 1 ) ); - OnOffAirFlowFrac = Par()( 3 ); + CoilIndex = int( Par( 1 ) ); + OnOffAirFlowFrac = Par( 3 ); CalcDXHeatingCoil( CoilIndex, PartLoadFrac, ContFanCycCoil, OnOffAirFlowFrac ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -2802,7 +2794,7 @@ namespace HVACUnitaryBypassVAV { Real64 MultiModeDXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -2851,12 +2843,12 @@ namespace HVACUnitaryBypassVAV { int DehumidMode; // dehumidification mode (par3) int FanOpMode; // allows parent object to control fan mode - CoilIndex = int( Par()( 1 ) ); - DehumidMode = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + DehumidMode = int( Par( 3 ) ); FanOpMode = 2; SimDXCoilMultiMode( "", On, false, PartLoadRatio, DehumidMode, CoilIndex, FanOpMode ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -3177,7 +3169,7 @@ namespace HVACUnitaryBypassVAV { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(1) = DX coil number ) { @@ -3224,13 +3216,9 @@ namespace HVACUnitaryBypassVAV { Real64 HeatCoilLoad; // requested coild load, W Real64 mdot; - CBVAVNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - HeatCoilLoad = Par()( 3 ); + CBVAVNum = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + HeatCoilLoad = Par( 3 ); QCoilActual = HeatCoilLoad; mdot = HWFlow; SetComponentFlowRate( mdot, CBVAV( CBVAVNum ).CoilControlNode, CBVAV( CBVAVNum ).CoilOutletNode, CBVAV( CBVAVNum ).LoopNum, CBVAV( CBVAVNum ).LoopSide, CBVAV( CBVAVNum ).BranchNum, CBVAV( CBVAVNum ).CompNum ); diff --git a/src/EnergyPlus/HVACUnitaryBypassVAV.hh b/src/EnergyPlus/HVACUnitaryBypassVAV.hh index 8248cd49e5a..ab9e294ec38 100644 --- a/src/EnergyPlus/HVACUnitaryBypassVAV.hh +++ b/src/EnergyPlus/HVACUnitaryBypassVAV.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -659,25 +657,25 @@ namespace HVACUnitaryBypassVAV { Real64 DOE2DXCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ); Real64 HXAssistDXCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ); Real64 DXHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ); Real64 MultiModeDXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // Par(1) = DX coil number ); void @@ -702,7 +700,7 @@ namespace HVACUnitaryBypassVAV { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ); // NOTICE diff --git a/src/EnergyPlus/HVACUnitarySystem.cc b/src/EnergyPlus/HVACUnitarySystem.cc index b98916ff2dc..fe5c443ee81 100644 --- a/src/EnergyPlus/HVACUnitarySystem.cc +++ b/src/EnergyPlus/HVACUnitarySystem.cc @@ -1864,11 +1864,11 @@ namespace HVACUnitarySystem { OASysEqSizing( CurOASysNum ).AirVolFlow = SysCoolingFlow; } else if ( SELECT_CASE_var == FlowPerCoolingCapacity ) { VolFlowRate = FinalSysSizing( CurSysNum ).DesOutAirVolFlow; - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); @@ -1971,11 +1971,11 @@ namespace HVACUnitarySystem { OASysEqSizing( CurOASysNum ).AirFlow = true; } else if ( SELECT_CASE_var == FlowPerCoolingCapacity ) { VolFlowRate = FinalSysSizing( CurSysNum ).DesOutAirVolFlow; - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); @@ -2085,8 +2085,8 @@ namespace HVACUnitarySystem { SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / VolFlowRate; @@ -2094,10 +2094,10 @@ namespace HVACUnitarySystem { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); @@ -2220,8 +2220,8 @@ namespace HVACUnitarySystem { SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesMainVolFlow / VolFlowRate; @@ -2229,10 +2229,10 @@ namespace HVACUnitarySystem { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); @@ -7771,7 +7771,7 @@ namespace HVACUnitarySystem { Real64 CalcUnitarySystemLoadResidual( Real64 const PartLoadRatio, // DX cooling coil part load ratio - Optional< FArray1S< Real64 > const > Par // Function parameters + FArray1< Real64 > const & Par // Function parameters ) { @@ -7836,21 +7836,19 @@ namespace HVACUnitarySystem { Real64 SensOutput; // sensible output of system Real64 LatOutput; // latent output of system - assert( present( Par ) ); // Only optional to match std::function specs for SolveRegularFalsi - // Convert parameters to usable variables - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) == 1.0 ) { + UnitarySysNum = int( Par( 1 ) ); + if ( Par( 2 ) == 1.0 ) { FirstHVACIteration = true; } else { FirstHVACIteration = false; } - FanOpMode = int( Par()( 3 ) ); - CompOp = int( Par()( 4 ) ); - LoadToBeMet = Par()( 5 ); - OnOffAirFlowRatio = Par()( 8 ); + FanOpMode = int( Par( 3 ) ); + CompOp = int( Par( 4 ) ); + LoadToBeMet = Par( 5 ); + OnOffAirFlowRatio = Par( 8 ); - if ( Par()( 6 ) == 1.0 ) { + if ( Par( 6 ) == 1.0 ) { CoolPLR = PartLoadRatio; HeatPLR = 0.0; } else { @@ -7859,9 +7857,9 @@ namespace HVACUnitarySystem { } SensibleLoad = false; - if ( Par()( 7 ) == 1.0 ) SensibleLoad = true; + if ( Par( 7 ) == 1.0 ) SensibleLoad = true; - if ( Par()( 9 ) == 1.0 ) { + if ( Par( 9 ) == 1.0 ) { HXUnitOn = true; } else { HXUnitOn = false; @@ -8201,7 +8199,7 @@ namespace HVACUnitarySystem { if ( SELECT_CASE_var == CoilDX_CoolingSingleSpeed ) { // Coil:Cooling:DX:SingleSpeed - SimDXCoil( BlankString, CompOn, FirstHVACIteration, CompIndex, UnitarySystem( UnitarySysNum ).FanOpMode, PartLoadRatio, _, CoilCoolHeatRat ); + SimDXCoil( BlankString, CompOn, FirstHVACIteration, CompIndex, UnitarySystem( UnitarySysNum ).FanOpMode, PartLoadRatio, OnOffAirFlowRatio, CoilCoolHeatRat ); UnitarySystem( UnitarySysNum ).CoolCompPartLoadRatio = PartLoadRatio * double( CompOn ); } else if ( ( SELECT_CASE_var == CoilDX_CoolingHXAssisted ) || ( SELECT_CASE_var == CoilWater_CoolingHXAssisted ) ) { // CoilSystem:Cooling:*:HeatExchangerAssisted @@ -8210,7 +8208,7 @@ namespace HVACUnitarySystem { mdot = min( Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidOutletNodeNum ).MassFlowRateMaxAvail, UnitarySystem( UnitarySysNum ).MaxCoolCoilFluidFlow * PartLoadRatio ); Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidInletNode ).MassFlowRate = mdot; } - SimHXAssistedCoolingCoil( BlankString, FirstHVACIteration, CompOn, PartLoadRatio, CompIndex, UnitarySystem( UnitarySysNum ).FanOpMode, HXUnitOn, _, EconomizerFlag ); + SimHXAssistedCoolingCoil( BlankString, FirstHVACIteration, CompOn, PartLoadRatio, CompIndex, UnitarySystem( UnitarySysNum ).FanOpMode, HXUnitOn, OnOffAirFlowRatio, EconomizerFlag ); if ( UnitarySystem( UnitarySysNum ).CoolingCoilType_Num == CoilDX_CoolingHXAssisted ) UnitarySystem( UnitarySysNum ).CoolCompPartLoadRatio = PartLoadRatio * double( CompOn ); } else if ( SELECT_CASE_var == CoilDX_CoolingTwoSpeed ) { // Coil:Cooling:DX:TwoSpeed @@ -11317,7 +11315,7 @@ namespace HVACUnitarySystem { Real64 DXHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -11363,13 +11361,13 @@ namespace HVACUnitarySystem { Real64 OutletAirTemp; // Outlet air temperature [C] Real64 OnOffAirFlowFrac; // Ratio of compressor ON to compressor OFF air mass flow rate - CoilIndex = int( Par()( 1 ) ); - OnOffAirFlowFrac = Par()( 3 ); + CoilIndex = int( Par( 1 ) ); + OnOffAirFlowFrac = Par( 3 ); CalcDXHeatingCoil( CoilIndex, PartLoadFrac, ContFanCycCoil, OnOffAirFlowFrac ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -11377,7 +11375,7 @@ namespace HVACUnitarySystem { Real64 DXCoilVarSpeedResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -11433,8 +11431,8 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; Real64 OnOffAirFlowRatio; - CoilIndex = int( Par()( 1 ) ); - UnitarySysNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + UnitarySysNum = int( Par( 3 ) ); { auto const SELECT_CASE_var( UnitarySystem( UnitarySysNum ).CoolingCoilType_Num ); @@ -11445,21 +11443,21 @@ namespace HVACUnitarySystem { } else if ( SELECT_CASE_var == CoilDX_MultiSpeedCooling ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); CalcMultiSpeedDXCoilCooling( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode, CompOp ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); } else if ( ( SELECT_CASE_var == Coil_CoolingAirToAirVariableSpeed ) || ( SELECT_CASE_var == Coil_CoolingWaterToAirHPVSEquationFit ) ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); - ReqOutput = Par()( 8 ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); + ReqOutput = Par( 8 ); dummy = 0.0; RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; @@ -11472,7 +11470,7 @@ namespace HVACUnitarySystem { assert( false ); }} - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -11480,7 +11478,7 @@ namespace HVACUnitarySystem { Real64 HeatingCoilVarSpeedResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -11537,16 +11535,16 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; Real64 OnOffAirFlowRatio; - CoilIndex = int( Par()( 1 ) ); - UnitarySysNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + UnitarySysNum = int( Par( 3 ) ); { auto const SELECT_CASE_var( UnitarySystem( UnitarySysNum ).HeatingCoilType_Num ); if ( SELECT_CASE_var == CoilDX_MultiSpeedHeating ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); CalcMultiSpeedDXCoilHeating( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode ); @@ -11554,11 +11552,11 @@ namespace HVACUnitarySystem { } else if ( ( SELECT_CASE_var == Coil_HeatingAirToAirVariableSpeed ) || ( SELECT_CASE_var == Coil_HeatingWaterToAirHPVSEquationFit ) ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); - ReqOutput = Par()( 8 ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); + ReqOutput = Par( 8 ); RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; @@ -11568,9 +11566,9 @@ namespace HVACUnitarySystem { } else if ( SELECT_CASE_var == Coil_HeatingElectric_MultiStage ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); CalcMultiStageElectricHeatingCoil( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode ); @@ -11578,9 +11576,9 @@ namespace HVACUnitarySystem { } else if ( SELECT_CASE_var == Coil_HeatingGas_MultiStage ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); CalcMultiStageElectricHeatingCoil( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode ); @@ -11590,7 +11588,7 @@ namespace HVACUnitarySystem { assert( false ); }} - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -11598,7 +11596,7 @@ namespace HVACUnitarySystem { Real64 DXCoilVarSpeedHumRatResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -11654,8 +11652,8 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; Real64 OnOffAirFlowRatio; - CoilIndex = int( Par()( 1 ) ); - UnitarySysNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + UnitarySysNum = int( Par( 3 ) ); { auto const SELECT_CASE_var( UnitarySystem( UnitarySysNum ).CoolingCoilType_Num ); if ( SELECT_CASE_var == CoilDX_CoolingTwoSpeed ) { @@ -11665,21 +11663,21 @@ namespace HVACUnitarySystem { } else if ( SELECT_CASE_var == CoilDX_MultiSpeedCooling ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); CalcMultiSpeedDXCoilCooling( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode, CompOp ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); } else if ( ( SELECT_CASE_var == Coil_CoolingAirToAirVariableSpeed ) || ( SELECT_CASE_var == Coil_CoolingWaterToAirHPVSEquationFit ) ) { - CycRatio = Par()( 4 ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); - ReqOutput = Par()( 8 ); + CycRatio = Par( 4 ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); + ReqOutput = Par( 8 ); dummy = 0.0; RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; @@ -11692,7 +11690,7 @@ namespace HVACUnitarySystem { assert( false ); }} - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -11700,7 +11698,7 @@ namespace HVACUnitarySystem { Real64 DXCoilCyclingResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { // FUNCTION INFORMATION: @@ -11764,8 +11762,8 @@ namespace HVACUnitarySystem { // Par(6) = UnitarySystem(UnitarySysNum)%FanOpMode // Par(7) = 1.0d0 ! CompOp - CoilIndex = int( Par()( 1 ) ); - UnitarySysNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + UnitarySysNum = int( Par( 3 ) ); { auto const SELECT_CASE_var( UnitarySystem( UnitarySysNum ).CoolingCoilType_Num ); @@ -11776,21 +11774,21 @@ namespace HVACUnitarySystem { OutletAirTemp = DXCoilOutletTemp( CoilIndex ); } else if ( SELECT_CASE_var == CoilDX_MultiSpeedCooling ) { - SpeedRatio = int( Par()( 4 ) ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); + SpeedRatio = int( Par( 4 ) ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); CalcMultiSpeedDXCoilCooling( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode, CompOp ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); } else if ( ( SELECT_CASE_var == Coil_CoolingAirToAirVariableSpeed ) || ( SELECT_CASE_var == Coil_CoolingWaterToAirHPVSEquationFit ) ) { - SpeedRatio = int( Par()( 4 ) ); //Autodesk:Init Added line to elim use uninitialized - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); - ReqOutput = Par()( 8 ); + SpeedRatio = int( Par( 4 ) ); //Autodesk:Init Added line to elim use uninitialized + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); + ReqOutput = Par( 8 ); dummy = 0.0; RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; @@ -11803,7 +11801,7 @@ namespace HVACUnitarySystem { assert( false ); }} - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -11811,7 +11809,7 @@ namespace HVACUnitarySystem { Real64 HeatingCoilVarSpeedCycResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -11878,28 +11876,28 @@ namespace HVACUnitarySystem { // Par(6) = UnitarySystem(UnitarySysNum)%FanOpMode // Par(7) = 1.0d0 ! CompOp - CoilIndex = int( Par()( 1 ) ); - UnitarySysNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + UnitarySysNum = int( Par( 3 ) ); { auto const SELECT_CASE_var( UnitarySystem( UnitarySysNum ).HeatingCoilType_Num ); if ( SELECT_CASE_var == CoilDX_MultiSpeedHeating ) { - SpeedRatio = int( Par()( 4 ) ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); + SpeedRatio = int( Par( 4 ) ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); CalcMultiSpeedDXCoilHeating( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); } else if ( ( SELECT_CASE_var == Coil_HeatingAirToAirVariableSpeed ) || ( SELECT_CASE_var == Coil_HeatingWaterToAirHPVSEquationFit ) ) { - SpeedRatio = int( Par()( 4 ) ); //Autodesk:Init Added line to elim use uninitialized - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); - ReqOutput = Par()( 8 ); + SpeedRatio = int( Par( 4 ) ); //Autodesk:Init Added line to elim use uninitialized + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); + ReqOutput = Par( 8 ); dummy = 0.0; RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; @@ -11910,9 +11908,9 @@ namespace HVACUnitarySystem { } else if ( SELECT_CASE_var == Coil_HeatingElectric_MultiStage ) { - SpeedRatio = int( Par()( 4 ) ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); + SpeedRatio = int( Par( 4 ) ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); CalcMultiStageElectricHeatingCoil( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode ); @@ -11920,9 +11918,9 @@ namespace HVACUnitarySystem { } else if ( SELECT_CASE_var == Coil_HeatingGas_MultiStage ) { - SpeedRatio = int( Par()( 4 ) ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); + SpeedRatio = int( Par( 4 ) ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); CalcMultiStageElectricHeatingCoil( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode ); @@ -11932,7 +11930,7 @@ namespace HVACUnitarySystem { assert( false ); }} - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -11940,7 +11938,7 @@ namespace HVACUnitarySystem { Real64 DXCoilCyclingHumRatResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -11997,8 +11995,8 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; Real64 OnOffAirFlowRatio; - CoilIndex = int( Par()( 1 ) ); - UnitarySysNum = int( Par()( 3 ) ); + CoilIndex = int( Par( 1 ) ); + UnitarySysNum = int( Par( 3 ) ); { auto const SELECT_CASE_var( UnitarySystem( UnitarySysNum ).CoolingCoilType_Num ); @@ -12009,21 +12007,21 @@ namespace HVACUnitarySystem { OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); } else if ( SELECT_CASE_var == CoilDX_MultiSpeedCooling ) { - SpeedRatio = int( Par()( 4 ) ); - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); + SpeedRatio = int( Par( 4 ) ); + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); CalcMultiSpeedDXCoilCooling( CoilIndex, SpeedRatio, CycRatio, SpeedNum, FanOpMode, CompOp ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); } else if ( ( SELECT_CASE_var == Coil_CoolingAirToAirVariableSpeed ) || ( SELECT_CASE_var == Coil_CoolingWaterToAirHPVSEquationFit ) ) { - SpeedRatio = int( Par()( 4 ) ); //Autodesk:Init Added line to elim use uninitialized - SpeedNum = int( Par()( 5 ) ); - FanOpMode = int( Par()( 6 ) ); - CompOp = int( Par()( 7 ) ); - ReqOutput = Par()( 8 ); + SpeedRatio = int( Par( 4 ) ); //Autodesk:Init Added line to elim use uninitialized + SpeedNum = int( Par( 5 ) ); + FanOpMode = int( Par( 6 ) ); + CompOp = int( Par( 7 ) ); + ReqOutput = Par( 8 ); dummy = 0.0; RuntimeFrac = 1.0; OnOffAirFlowRatio = 1.0; @@ -12036,7 +12034,7 @@ namespace HVACUnitarySystem { assert( false ); }} - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -12044,7 +12042,7 @@ namespace HVACUnitarySystem { Real64 DOE2DXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12092,11 +12090,11 @@ namespace HVACUnitarySystem { Real64 OutletAirTemp; // outlet air temperature [C] int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); CalcDoe2DXCoil( CoilIndex, On, true, PartLoadRatio, FanOpMode ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -12104,7 +12102,7 @@ namespace HVACUnitarySystem { Real64 DOE2DXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12152,11 +12150,11 @@ namespace HVACUnitarySystem { Real64 OutletAirHumRat; // outlet air humidity ratio [kg/kg] int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - FanOpMode = int( Par()( 5 ) ); + CoilIndex = int( Par( 1 ) ); + FanOpMode = int( Par( 5 ) ); CalcDoe2DXCoil( CoilIndex, On, true, PartLoadRatio, FanOpMode ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -12164,7 +12162,7 @@ namespace HVACUnitarySystem { Real64 CoolWaterHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = CoolWater coil number + FArray1< Real64 > const & Par // par(1) = CoolWater coil number ) { @@ -12212,19 +12210,15 @@ namespace HVACUnitarySystem { Real64 mdot; bool FirstHVACIteration; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); mdot = min( Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidOutletNodeNum ).MassFlowRateMaxAvail, UnitarySystem( UnitarySysNum ).MaxCoolCoilFluidFlow * PartLoadRatio ); Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidInletNode ).MassFlowRate = mdot; SimulateWaterCoilComponents( UnitarySystem( UnitarySysNum ).CoolingCoilName, FirstHVACIteration, UnitarySystem( UnitarySysNum ).CoolingCoilIndex, _, _, PartLoadRatio ); OutletAirHumRat = Node( UnitarySystem( UnitarySysNum ).CoolCoilOutletNodeNum ).HumRat; - Residuum = Par()( 3 ) - OutletAirHumRat; + Residuum = Par( 3 ) - OutletAirHumRat; return Residuum; } @@ -12232,7 +12226,7 @@ namespace HVACUnitarySystem { Real64 CoolWaterTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = CoolWater coil number + FArray1< Real64 > const & Par // par(1) = CoolWater coil number ) { // FUNCTION INFORMATION: @@ -12279,19 +12273,15 @@ namespace HVACUnitarySystem { Real64 mdot; bool FirstHVACIteration; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); mdot = min( Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidOutletNodeNum ).MassFlowRateMaxAvail, UnitarySystem( UnitarySysNum ).MaxCoolCoilFluidFlow * PartLoadRatio ); Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidInletNode ).MassFlowRate = mdot; SimulateWaterCoilComponents( UnitarySystem( UnitarySysNum ).CoolingCoilName, FirstHVACIteration, UnitarySystem( UnitarySysNum ).CoolingCoilIndex, _, _, PartLoadRatio ); OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).CoolCoilOutletNodeNum ).Temp; - Residuum = Par()( 3 ) - OutletAirTemp; + Residuum = Par( 3 ) - OutletAirTemp; return Residuum; } @@ -12299,7 +12289,7 @@ namespace HVACUnitarySystem { Real64 CoolWatertoAirHPHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = CoolWatertoAirHP coil number + FArray1< Real64 > const & Par // par(1) = CoolWatertoAirHP coil number ) { @@ -12351,13 +12341,9 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; // heat pump runtime fraction Real64 dummy; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - ReqOutput = Par()( 4 ); + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + ReqOutput = Par( 4 ); HeatPumpRunFrac( UnitarySysNum, PartLoadRatio, errFlag, RuntimeFrac ); @@ -12372,7 +12358,7 @@ namespace HVACUnitarySystem { } OutletAirHumRat = Node( UnitarySystem( UnitarySysNum ).CoolCoilOutletNodeNum ).HumRat; - Residuum = Par()( 3 ) - OutletAirHumRat; + Residuum = Par( 3 ) - OutletAirHumRat; return Residuum; } @@ -12380,7 +12366,7 @@ namespace HVACUnitarySystem { Real64 CoolWatertoAirHPTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = CoolWatertoAirHP coil number + FArray1< Real64 > const & Par // par(1) = CoolWatertoAirHP coil number ) { @@ -12432,13 +12418,9 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; Real64 dummy; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - ReqOutput = Par()( 4 ); + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + ReqOutput = Par( 4 ); HeatPumpRunFrac( UnitarySysNum, PartLoadRatio, errFlag, RuntimeFrac ); @@ -12459,7 +12441,7 @@ namespace HVACUnitarySystem { } OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).CoolCoilOutletNodeNum ).Temp; - Residuum = Par()( 3 ) - OutletAirTemp; + Residuum = Par( 3 ) - OutletAirTemp; return Residuum; } @@ -12467,7 +12449,7 @@ namespace HVACUnitarySystem { Real64 HeatWatertoAirHPTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = HeatWatertoAirHP coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12519,20 +12501,16 @@ namespace HVACUnitarySystem { Real64 RuntimeFrac; Real64 dummy; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - ReqOutput = Par()( 1 ); + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + ReqOutput = Par( 1 ); HeatPumpRunFrac( UnitarySysNum, PartLoadRatio, errFlag, RuntimeFrac ); if ( RuntimeFrac > 0.0 && UnitarySystem( UnitarySysNum ).FanOpMode == CycFanCycCoil ) { OnOffFanPartLoadFraction = PartLoadRatio / RuntimeFrac; } else { - OnOffFanPartLoadFraction = 1; + OnOffFanPartLoadFraction = 1.0; } UnitarySystem( UnitarySysNum ).CompPartLoadRatio = PartLoadRatio; @@ -12546,7 +12524,7 @@ namespace HVACUnitarySystem { } OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).HeatCoilOutletNodeNum ).Temp; - Residuum = Par()( 3 ) - OutletAirTemp; + Residuum = Par( 3 ) - OutletAirTemp; return Residuum; } @@ -12685,7 +12663,7 @@ namespace HVACUnitarySystem { Real64 MultiModeDXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12736,12 +12714,12 @@ namespace HVACUnitarySystem { int DehumidMode; // dehumidification mode (par3) int FanOpMode; // supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - DehumidMode = int( Par()( 3 ) ); - FanOpMode = int( Par()( 4 ) ); + CoilIndex = int( Par( 1 ) ); + DehumidMode = int( Par( 3 ) ); + FanOpMode = int( Par( 4 ) ); SimDXCoilMultiMode( "", On, false, PartLoadRatio, DehumidMode, CoilIndex, FanOpMode ); OutletAirTemp = DXCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -12749,7 +12727,7 @@ namespace HVACUnitarySystem { Real64 MultiModeDXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12799,12 +12777,12 @@ namespace HVACUnitarySystem { int DehumidMode; // dehumidification mode (par3) int FanOpMode; // supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); - DehumidMode = int( Par()( 3 ) ); - FanOpMode = int( Par()( 4 ) ); + CoilIndex = int( Par( 1 ) ); + DehumidMode = int( Par( 3 ) ); + FanOpMode = int( Par( 4 ) ); SimDXCoilMultiMode( "", On, false, PartLoadRatio, DehumidMode, CoilIndex, FanOpMode ); OutletAirHumRat = DXCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -12812,7 +12790,7 @@ namespace HVACUnitarySystem { Real64 HXAssistedCoolCoilTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12865,26 +12843,18 @@ namespace HVACUnitarySystem { int FanOpMode; // Supply air fan operating mode int UnitarySysNum; // index to unitary system - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1=TRUE and 0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) == 1.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } - FanOpMode = int( Par()( 5 ) ); - UnitarySysNum = int( Par()( 6 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + HXUnitOn = ( Par( 4 ) == 1.0 ); + FanOpMode = int( Par( 5 ) ); + UnitarySysNum = int( Par( 6 ) ); if ( UnitarySystem( UnitarySysNum ).CoolCoilFluidInletNode > 0 ) { Node( UnitarySystem( UnitarySysNum ).CoolCoilFluidInletNode ).MassFlowRate = UnitarySystem( UnitarySysNum ).MaxCoolCoilFluidFlow * PartLoadRatio; } CalcHXAssistedCoolingCoil( CoilIndex, FirstHVACIteration, On, PartLoadRatio, HXUnitOn, FanOpMode ); OutletAirTemp = HXAssistedCoilOutletTemp( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirTemp; + Residuum = Par( 2 ) - OutletAirTemp; return Residuum; } @@ -12892,7 +12862,7 @@ namespace HVACUnitarySystem { Real64 HXAssistedCoolCoilHRResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -12944,22 +12914,14 @@ namespace HVACUnitarySystem { bool HXUnitOn; // flag to enable heat exchanger heat recovery int FanOpMode; // Supply air fan operating mode - CoilIndex = int( Par()( 1 ) ); + CoilIndex = int( Par( 1 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1=TRUE and 0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) == 1.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } - FanOpMode = int( Par()( 5 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + HXUnitOn = ( Par( 4 ) == 1.0 ); + FanOpMode = int( Par( 5 ) ); CalcHXAssistedCoolingCoil( CoilIndex, FirstHVACIteration, On, PartLoadRatio, HXUnitOn, FanOpMode, _, EconomizerFlag ); OutletAirHumRat = HXAssistedCoilOutletHumRat( CoilIndex ); - Residuum = Par()( 2 ) - OutletAirHumRat; + Residuum = Par( 2 ) - OutletAirHumRat; return Residuum; } @@ -12967,7 +12929,7 @@ namespace HVACUnitarySystem { Real64 GasElecHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -13016,18 +12978,10 @@ namespace HVACUnitarySystem { static int FanOpMode( 0 ); // Fan operating mode (see parameter above) bool FirstHVACIteration; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) > 0.0 ) { - SuppHeatingCoilFlag = true; - } else { - SuppHeatingCoilFlag = false; - } - FanOpMode = Par()( 4 ); + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + SuppHeatingCoilFlag = ( Par( 4 ) > 0.0 ); + FanOpMode = Par( 4 ); if ( ! SuppHeatingCoilFlag ) { SimulateHeatingCoilComponents( UnitarySystem( UnitarySysNum ).HeatingCoilName, FirstHVACIteration, _, UnitarySystem( UnitarySysNum ).HeatingCoilIndex, _, _, FanOpMode, PartLoadFrac ); OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).HeatCoilOutletNodeNum ).Temp; @@ -13035,7 +12989,7 @@ namespace HVACUnitarySystem { SimulateHeatingCoilComponents( UnitarySystem( UnitarySysNum ).SuppHeatCoilName, FirstHVACIteration, _, UnitarySystem( UnitarySysNum ).SuppHeatCoilIndex, _, true, FanOpMode, PartLoadFrac ); OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).SuppCoilAirOutletNode ).Temp; } - Residuum = Par()( 3 ) - OutletAirTemp; + Residuum = Par( 3 ) - OutletAirTemp; return Residuum; } @@ -13043,7 +12997,7 @@ namespace HVACUnitarySystem { Real64 HotWaterHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -13094,22 +13048,10 @@ namespace HVACUnitarySystem { int UnitarySysNum; // index to unitary system bool FirstHVACIteration; // iteration flag - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) > 0.0 ) { - SuppHeatingCoilFlag = true; - } else { - SuppHeatingCoilFlag = false; - } - if ( Par()( 5 ) > 0.0 ) { - LoadBased = true; - } else { - LoadBased = false; - } + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + SuppHeatingCoilFlag = ( Par( 4 ) > 0.0 ); + LoadBased = ( Par( 5 ) > 0.0 ); QActual = 0.0; if ( ! SuppHeatingCoilFlag ) { mdot = min( Node( UnitarySystem( UnitarySysNum ).HeatCoilFluidOutletNodeNum ).MassFlowRateMaxAvail, UnitarySystem( UnitarySysNum ).MaxHeatCoilFluidFlow * PartLoadFrac ); @@ -13123,9 +13065,9 @@ namespace HVACUnitarySystem { OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).SuppCoilAirOutletNode ).Temp; } if ( LoadBased ) { - Residuum = Par()( 3 ) - QActual; + Residuum = Par( 3 ) - QActual; } else { - Residuum = Par()( 3 ) - OutletAirTemp; + Residuum = Par( 3 ) - OutletAirTemp; } return Residuum; @@ -13134,7 +13076,7 @@ namespace HVACUnitarySystem { Real64 SteamHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ) { @@ -13183,17 +13125,9 @@ namespace HVACUnitarySystem { int UnitarySysNum; bool FirstHVACIteration; - UnitarySysNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - if ( Par()( 4 ) > 0.0 ) { - SuppHeatingCoilFlag = true; - } else { - SuppHeatingCoilFlag = false; - } + UnitarySysNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) > 0.0 ); + SuppHeatingCoilFlag = ( Par( 4 ) > 0.0 ); if ( ! SuppHeatingCoilFlag ) { mdot = min( Node( UnitarySystem( UnitarySysNum ).HeatCoilFluidOutletNodeNum ).MassFlowRateMaxAvail, UnitarySystem( UnitarySysNum ).MaxHeatCoilFluidFlow * PartLoadFrac ); @@ -13205,7 +13139,7 @@ namespace HVACUnitarySystem { SimulateSteamCoilComponents( UnitarySystem( UnitarySysNum ).SuppHeatCoilName, FirstHVACIteration, UnitarySystem( UnitarySysNum ).SuppHeatCoilIndex, 1.0, _, UnitarySystem( UnitarySysNum ).FanOpMode, PartLoadFrac ); } OutletAirTemp = Node( UnitarySystem( UnitarySysNum ).HeatCoilOutletNodeNum ).Temp; - Residuum = Par()( 3 ) - OutletAirTemp; + Residuum = Par( 3 ) - OutletAirTemp; return Residuum; } diff --git a/src/EnergyPlus/HVACUnitarySystem.hh b/src/EnergyPlus/HVACUnitarySystem.hh index 31ac9d3aa14..1e61a7825ff 100644 --- a/src/EnergyPlus/HVACUnitarySystem.hh +++ b/src/EnergyPlus/HVACUnitarySystem.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -1310,7 +1309,7 @@ namespace HVACUnitarySystem { Real64 CalcUnitarySystemLoadResidual( Real64 const PartLoadRatio, // DX cooling coil part load ratio - Optional< FArray1S< Real64 > const > Par = _ // Function parameters + FArray1< Real64 > const & Par // Function parameters ); void @@ -1441,85 +1440,85 @@ namespace HVACUnitarySystem { Real64 DXHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilVarSpeedResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HeatingCoilVarSpeedResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilVarSpeedHumRatResidual( Real64 const SpeedRatio, // compressor speed ratio (1.0 is max, 0.0 is min) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilCyclingResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HeatingCoilVarSpeedCycResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DXCoilCyclingHumRatResidual( Real64 const CycRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DOE2DXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 DOE2DXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 CoolWaterHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = CoolWater coil number + FArray1< Real64 > const & Par // par(1) = CoolWater coil number ); Real64 CoolWaterTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = CoolWater coil number + FArray1< Real64 > const & Par // par(1) = CoolWater coil number ); Real64 CoolWatertoAirHPHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = CoolWatertoAirHP coil number + FArray1< Real64 > const & Par // par(1) = CoolWatertoAirHP coil number ); Real64 CoolWatertoAirHPTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = CoolWatertoAirHP coil number + FArray1< Real64 > const & Par // par(1) = CoolWatertoAirHP coil number ); Real64 HeatWatertoAirHPTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = HeatWatertoAirHP coil number + FArray1< Real64 > const & Par // par(1) = HeatWatertoAirHP coil number ); void @@ -1533,43 +1532,43 @@ namespace HVACUnitarySystem { Real64 MultiModeDXCoilResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 MultiModeDXCoilHumRatResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HXAssistedCoolCoilTempResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HXAssistedCoolCoilHRResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 GasElecHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 HotWaterHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); Real64 SteamHeatingCoilResidual( Real64 const PartLoadFrac, // Compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = DX coil number + FArray1< Real64 > const & Par // par(1) = DX coil number ); void diff --git a/src/EnergyPlus/HVACVariableRefrigerantFlow.cc b/src/EnergyPlus/HVACVariableRefrigerantFlow.cc index eedd1662fbe..821ff103ae3 100644 --- a/src/EnergyPlus/HVACVariableRefrigerantFlow.cc +++ b/src/EnergyPlus/HVACVariableRefrigerantFlow.cc @@ -5326,7 +5326,7 @@ namespace HVACVariableRefrigerantFlow { Real64 PLRResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = VRFTUNum + FArray1< Real64 > const & Par // par(1) = VRFTUNum ) { // FUNCTION INFORMATION: @@ -5380,18 +5380,14 @@ namespace HVACVariableRefrigerantFlow { Real64 OnOffAirFlowRatio; // ratio of compressor ON airflow to average airflow over timestep Real64 ActualOutput; // delivered capacity of VRF terminal unit - VRFTUNum = int( Par()( 1 ) ); + VRFTUNum = int( Par( 1 ) ); // FirstHVACIteration is a logical, Par is real, so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); - QZnReq = Par()( 5 ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); + QZnReq = Par( 5 ); QZnReqTemp = QZnReq; if ( std::abs( QZnReq ) < 100.0 ) QZnReqTemp = sign( 100.0, QZnReq ); - OnOffAirFlowRatio = Par()( 6 ); + OnOffAirFlowRatio = Par( 6 ); CalcVRF( VRFTUNum, FirstHVACIteration, PartLoadRatio, ActualOutput, OnOffAirFlowRatio ); PLRResidual = ( ActualOutput - QZnReq ) / QZnReqTemp; @@ -5998,6 +5994,106 @@ namespace HVACVariableRefrigerantFlow { } + int + GetVRFTUOutAirNode( int const VRFTUNum ) { + + // FUNCTION INFORMATION: + // AUTHOR R. Raustad (copy of B Griffith routine) + // DATE WRITTEN Jan 2015 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // lookup function for VRF terminal unit OA inlet node + + if( GetVRFInputFlag ) { + GetVRFInput(); + GetVRFInputFlag = false; + } + + if( VRFTUNum > 0 && VRFTUNum <= NumVRFTU ) { + return VRFTU( VRFTUNum ).VRFTUOAMixerOANodeNum; + } else { + return 0; + } + + } + + int + GetVRFTUZoneInletAirNode( int const VRFTUNum ) { + + // FUNCTION INFORMATION: + // AUTHOR R. Raustad (copy of B Griffith routine) + // DATE WRITTEN Jan 2015 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // lookup function for VRF terminal unit zone inlet node + + if( GetVRFInputFlag ) { + GetVRFInput(); + GetVRFInputFlag = false; + } + + if( VRFTUNum > 0 && VRFTUNum <= NumVRFTU ) { + return VRFTU( VRFTUNum ).VRFTUOutletNodeNum; + } else { + return 0; + } + + } + + int + GetVRFTUMixedAirNode( int const VRFTUNum ) { + + // FUNCTION INFORMATION: + // AUTHOR R. Raustad (copy of B Griffith routine) + // DATE WRITTEN Jan 2015 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // lookup function for VRF terminal unit mixed air node + + if( GetVRFInputFlag ) { + GetVRFInput(); + GetVRFInputFlag = false; + } + + if( VRFTUNum > 0 && VRFTUNum <= NumVRFTU ) { + return VRFTU( VRFTUNum ).VRFTUOAMixerOANodeNum; + } else { + return 0; + } + + } + + int + GetVRFTUReturnAirNode( int const VRFTUNum ) { + + // FUNCTION INFORMATION: + // AUTHOR R. Raustad (copy of B Griffith routine) + // DATE WRITTEN Jan 2015 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // lookup function for VRF terminal unit return air node + + if( GetVRFInputFlag ) { + GetVRFInput(); + GetVRFInputFlag = false; + } + + if( VRFTUNum > 0 && VRFTUNum <= NumVRFTU ) { + return VRFTU( VRFTUNum ).VRFTUOAMixerRetNodeNum; + } else { + return 0; + } + + } + // End of Utility subroutines for the Module // ***************************************************************************** diff --git a/src/EnergyPlus/HVACVariableRefrigerantFlow.hh b/src/EnergyPlus/HVACVariableRefrigerantFlow.hh index 9111584fb7e..7b252e0ff9f 100644 --- a/src/EnergyPlus/HVACVariableRefrigerantFlow.hh +++ b/src/EnergyPlus/HVACVariableRefrigerantFlow.hh @@ -1282,57 +1282,17 @@ namespace HVACVariableRefrigerantFlow { Optional< Real64 > LatOutputProvided = _ // delivered latent capacity (W) ); - // End Algorithm Section of the Module - // ***************************************************************************** - - // Beginning of Update subroutines - // ***************************************************************************** - - //SUBROUTINE UpdateVRF() - - // ! SUBROUTINE INFORMATION: - // ! AUTHOR Richard Raustad, FSEC - // ! DATE WRITTEN August 2010 - // ! MODIFIED na - // ! RE-ENGINEERED na - - // ! PURPOSE OF THIS SUBROUTINE: - // ! This subroutine updates the fan outlet nodes. - - // ! METHODOLOGY EMPLOYED: - // ! Data is moved from the fan data structure to the fan outlet nodes. - - // ! REFERENCES: - // ! na - - // ! USE STATEMENTS: - // ! na - - // IMPLICIT NONE ! Enforce explicit typing of all variables in this routine + int + GetVRFTUOutAirNode( int const VRFTUNum ); - // ! SUBROUTINE ARGUMENT DEFINITIONS: - // ! na + int + GetVRFTUZoneInletAirNode( int const VRFTUNum ); - // ! SUBROUTINE PARAMETER DEFINITIONS: - // ! na + int + GetVRFTUMixedAirNode( int const VRFTUNum ); - // ! INTERFACE BLOCK SPECIFICATIONS - // ! na - - // ! DERIVED TYPE DEFINITIONS - // ! na - - // ! SUBROUTINE LOCAL VARIABLE DECLARATIONS: - // ! na - - // RETURN - //END Subroutine UpdateVRF - - // End of Update subroutines for the Fan Module - // ***************************************************************************** - - // Beginning of Reporting subroutines - // ***************************************************************************** + int + GetVRFTUReturnAirNode( int const VRFTUNum ); void ReportVRFTerminalUnit( int const VRFTUNum ); // index to VRF terminal unit @@ -1343,15 +1303,10 @@ namespace HVACVariableRefrigerantFlow { void UpdateVRFCondenser( int const VRFCond ); // index to VRF condensing unit - // End of Reporting subroutines for the Module - // ***************************************************************************** - - // Utility subroutines for the Module - Real64 PLRResidual( Real64 const PartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = VRFTUNum + FArray1< Real64 > const & Par // par(1) = VRFTUNum ); void diff --git a/src/EnergyPlus/HeatBalFiniteDiffManager.cc b/src/EnergyPlus/HeatBalFiniteDiffManager.cc index 7eacd732f89..3a44afa0e62 100644 --- a/src/EnergyPlus/HeatBalFiniteDiffManager.cc +++ b/src/EnergyPlus/HeatBalFiniteDiffManager.cc @@ -59,7 +59,7 @@ namespace HeatBalFiniteDiffManager { using DataGlobals::OutputFileDebug; using DataGlobals::NumOfTimeStepInHour; using DataGlobals::DisplayExtraWarnings; - using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using DataGlobals::HourOfDay; using DataGlobals::TimeStep; using DataGlobals::OutputFileInits; @@ -86,7 +86,6 @@ namespace HeatBalFiniteDiffManager { using DataHeatBalSurface::OpaqSurfInsFaceConductionFlux; using DataHeatBalSurface::OpaqSurfOutsideFaceConductionFlux; using DataHeatBalSurface::OpaqSurfOutsideFaceConduction; - using DataHeatBalSurface::QsrcHist; using DataHeatBalSurface::OpaqSurfInsFaceConduction; using DataHeatBalSurface::QdotRadOutRepPerArea; using DataHeatBalSurface::MinSurfaceTempLimit; @@ -840,7 +839,7 @@ namespace HeatBalFiniteDiffManager { //check for Material layers that are too thin and highly conductivity (not appropriate for surface models) if ( Alpha > HighDiffusivityThreshold && ! Material( CurrentLayer ).WarnedForHighDiffusivity ) { - DeltaTimestep = TimeStepZone * SecInHour; + DeltaTimestep = TimeStepZoneSec; ThicknessThreshold = std::sqrt( Alpha * DeltaTimestep * 3.0 ); if ( Material( CurrentLayer ).Thickness < ThicknessThreshold ) { ShowSevereError( "InitialInitHeatBalFiniteDiff: Found Material that is too thin and/or too highly conductive, material name = " + Material( CurrentLayer ).Name ); @@ -1109,7 +1108,7 @@ namespace HeatBalFiniteDiffManager { Real64 AbsExt; // exterior absorptivity movable insulation EvalOutsideMovableInsulation( Surf, HMovInsul, RoughIndexMovInsul, AbsExt ); // Start stepping through the slab with time. - for ( int J = 1, J_end = nint( ( TimeStepZone * SecInHour ) / Delt ); J <= J_end; ++J ) { //PT testing higher time steps + for ( int J = 1, J_end = nint( TimeStepZoneSec / Delt ); J <= J_end; ++J ) { //PT testing higher time steps int GSiter; // iteration counter for implicit repeat calculation for ( GSiter = 1; GSiter <= MaxGSiter; ++GSiter ) { // Iterate implicit equations @@ -1670,7 +1669,7 @@ namespace HeatBalFiniteDiffManager { // Report all outside BC heat fluxes QdotRadOutRepPerArea( Surf ) = -( hgnd * ( TDT_i - Tgnd ) + hrad * ( -Toa_TDT_i ) + hsky * ( TDT_i - Tsky ) ); QdotRadOutRep( Surf ) = surface.Area * QdotRadOutRepPerArea( Surf ); - QRadOutReport( Surf ) = QdotRadOutRep( Surf ) * SecInHour * TimeStepZone; + QRadOutReport( Surf ) = QdotRadOutRep( Surf ) * TimeStepZoneSec; } // regular BC part of the ground and Rain check diff --git a/src/EnergyPlus/HeatBalanceIntRadExchange.cc b/src/EnergyPlus/HeatBalanceIntRadExchange.cc index 3f3b9dc9b96..bd5d55cb0a6 100644 --- a/src/EnergyPlus/HeatBalanceIntRadExchange.cc +++ b/src/EnergyPlus/HeatBalanceIntRadExchange.cc @@ -275,7 +275,9 @@ namespace HeatBalanceIntRadExchange { auto const & surface_window( SurfaceWindow( SendSurfNum ) ); ConstrNumSend = Surface( SendSurfNum ).Construction; auto const & construct( Construct( ConstrNumSend ) ); - if ( construct.TypeIsWindow && surface_window.OriginalClass != SurfaceClass_TDD_Diffuser && ! construct.WindowTypeEQL ) { + if ( construct.WindowTypeEQL ) { + SendSurfTemp = surface_window.EffInsSurfTemp; + } else if ( construct.TypeIsWindow && surface_window.OriginalClass != SurfaceClass_TDD_Diffuser ) { if ( SurfIterations == 0 && surface_window.ShadingFlag <= 0 ) { SendSurfTemp = surface_window.ThetaFace( 2 * construct.TotGlassLayers ) - KelvinConv; } else if ( surface_window.ShadingFlag == IntShadeOn || surface_window.ShadingFlag == IntBlindOn ) { @@ -283,8 +285,6 @@ namespace HeatBalanceIntRadExchange { } else { SendSurfTemp = SurfaceTemp( SendSurfNum ); } - } else if ( construct.WindowTypeEQL ) { - SendSurfTemp = surface_window.EffInsSurfTemp; } else { SendSurfTemp = SurfaceTemp( SendSurfNum ); } @@ -303,7 +303,10 @@ namespace HeatBalanceIntRadExchange { auto const & construct( Construct( ConstrNumRec ) ); auto & surface_window( SurfaceWindow( RecSurfNum ) ); auto & netLWRadToRecSurf( NetLWRadToSurf( RecSurfNum ) ); - if ( construct.TypeIsWindow && surface_window.OriginalClass != SurfaceClass_TDD_Diffuser && ! construct.WindowTypeEQL ) { + if ( construct.WindowTypeEQL ) { + RecSurfEmiss = EQLWindowInsideEffectiveEmiss( ConstrNumRec ); + RecSurfTemp = surface_window.EffInsSurfTemp; + } else if ( construct.TypeIsWindow && surface_window.OriginalClass != SurfaceClass_TDD_Diffuser ) { if ( SurfIterations == 0 && surface_window.ShadingFlag <= 0 ) { // If the window is bare this TS and it is the first time through we use the previous TS glass // temperature whether or not the window was shaded in the previous TS. If the window was shaded @@ -319,9 +322,6 @@ namespace HeatBalanceIntRadExchange { RecSurfTemp = SurfaceTemp( RecSurfNum ); RecSurfEmiss = construct.InsideAbsorpThermal; } - } else if ( construct.WindowTypeEQL ) { - RecSurfEmiss = EQLWindowInsideEffectiveEmiss( ConstrNumRec ); - RecSurfTemp = surface_window.EffInsSurfTemp; } else { RecSurfTemp = SurfaceTemp( RecSurfNum ); RecSurfEmiss = construct.InsideAbsorpThermal; diff --git a/src/EnergyPlus/HeatBalanceManager.cc b/src/EnergyPlus/HeatBalanceManager.cc index b37e33c77c0..f8ab17e70de 100644 --- a/src/EnergyPlus/HeatBalanceManager.cc +++ b/src/EnergyPlus/HeatBalanceManager.cc @@ -8004,7 +8004,7 @@ Label1000: ; // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/HeatBalanceSurfaceManager.cc b/src/EnergyPlus/HeatBalanceSurfaceManager.cc index 8beddd5fb81..b60a58530d7 100644 --- a/src/EnergyPlus/HeatBalanceSurfaceManager.cc +++ b/src/EnergyPlus/HeatBalanceSurfaceManager.cc @@ -345,6 +345,8 @@ namespace HeatBalanceSurfaceManager { // FLOW: + assert( equal_dimensions( TH, QH ) ); + if ( firstTime ) DisplayString( "Initializing Outdoor environment for Surfaces" ); // Initialize zone outdoor environmental variables // Bulk Initialization for Temperatures & WindSpeed @@ -650,7 +652,10 @@ namespace HeatBalanceSurfaceManager { QIC = 0.0; QOC = 0.0; TSC = 0.0; - for ( Term = 1; Term <= construct.NumCTFTerms; ++Term ) { + auto l11( TH.index( SurfNum, 2, 1 ) ); + auto l12( TH.index( SurfNum, 2, 2 ) ); + auto const s1( TH.size1() ); + for ( Term = 1; Term <= construct.NumCTFTerms; ++Term, l11 += s1, l12 += s1 ) { // [ l11 ] == ( SurfNum, Term + 1, 1 ), [ l12 ] == ( SurfNum, Term + 1, 2 ) // Sign convention for the various terms in the following two equations // is based on the form of the Conduction Transfer Function equation @@ -662,25 +667,21 @@ namespace HeatBalanceSurfaceManager { //Tuned Aliases and linear indexing Real64 const ctf_cross( construct.CTFCross( Term ) ); Real64 const ctf_flux( construct.CTFFlux( Term ) ); - assert( equal_dimensions( TH, QH ) ); - auto const l11( TH.index( SurfNum, Term + 1, 1 ) ); - auto const l12( TH.index( SurfNum, Term + 1, 2 ) ); - Real64 const TH11( TH[ l11 ] ); // TH( SurfNum, Term + 1, 1 ) - Real64 const TH12( TH[ l12 ] ); // TH( SurfNum, Term + 1, 2 ) + Real64 const TH11( TH[ l11 ] ); + Real64 const TH12( TH[ l12 ] ); - QIC += ctf_cross * TH11 - construct.CTFInside( Term ) * TH12 + construct.CTFFlux( Term ) * QH[ l12 ]; //Tuned QH( SurfNum, Term + 1, 2 ) + QIC += ctf_cross * TH11 - construct.CTFInside( Term ) * TH12 + construct.CTFFlux( Term ) * QH[ l12 ]; - QOC += construct.CTFOutside( Term ) * TH11 - ctf_cross * TH12 + construct.CTFFlux( Term ) * QH[ l11 ]; //Tuned QH( SurfNum, Term + 1, 1 ) + QOC += construct.CTFOutside( Term ) * TH11 - ctf_cross * TH12 + construct.CTFFlux( Term ) * QH[ l11 ]; if ( construct.SourceSinkPresent ) { - Real64 const QsrcHist1( QsrcHist( SurfNum, Term + 1 ) ); + Real64 const QsrcHist1( QsrcHist( Term + 1, SurfNum ) ); QIC += construct.CTFSourceIn( Term ) * QsrcHist1; QOC += construct.CTFSourceOut( Term ) * QsrcHist1; - TSC += construct.CTFTSourceOut( Term ) * TH11 + construct.CTFTSourceIn( Term ) * TH12 + construct.CTFTSourceQ( Term ) * QsrcHist1 + construct.CTFFlux( Term ) * TsrcHist( SurfNum, Term + 1 ); - + TSC += construct.CTFTSourceOut( Term ) * TH11 + construct.CTFTSourceIn( Term ) * TH12 + construct.CTFTSourceQ( Term ) * QsrcHist1 + construct.CTFFlux( Term ) * TsrcHist( Term + 1, SurfNum ); } } @@ -1254,10 +1255,10 @@ namespace HeatBalanceSurfaceManager { QH.dimension( TotSurfaces, MaxCTFTerms, 2, 0.0 ); THM.dimension( TotSurfaces, MaxCTFTerms, 2, 0.0 ); QHM.dimension( TotSurfaces, MaxCTFTerms, 2, 0.0 ); - TsrcHist.dimension( TotSurfaces, MaxCTFTerms, 0.0 ); - QsrcHist.dimension( TotSurfaces, MaxCTFTerms, 0.0 ); - TsrcHistM.dimension( TotSurfaces, MaxCTFTerms, 0.0 ); - QsrcHistM.dimension( TotSurfaces, MaxCTFTerms, 0.0 ); + TsrcHist.dimension( MaxCTFTerms, TotSurfaces, 0.0 ); + QsrcHist.dimension( MaxCTFTerms, TotSurfaces, 0.0 ); + TsrcHistM.dimension( MaxCTFTerms, TotSurfaces, 0.0 ); + QsrcHistM.dimension( MaxCTFTerms, TotSurfaces, 0.0 ); NetLWRadToSurf.dimension( TotSurfaces, 0.0 ); QRadSWLightsInAbs.dimension( TotSurfaces, 0.0 ); @@ -1278,7 +1279,7 @@ namespace HeatBalanceSurfaceManager { // allocate terms used for pool surface heat balance QPoolSurfNumerator.dimension( TotSurfaces, 0.0 ); PoolHeatTransCoefs.dimension( TotSurfaces, 0.0 ); - + // allocate term used as sink for PV electricity QPVSysSource.dimension( TotSurfaces, 0.0 ); @@ -1788,55 +1789,7 @@ namespace HeatBalanceSurfaceManager { OpaqSurfInsFaceBeamSolAbsorbed = 0.0; for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { - SurfaceWindow( SurfNum ).FrameQRadOutAbs = 0.0; - SurfaceWindow( SurfNum ).FrameQRadInAbs = 0.0; - SurfaceWindow( SurfNum ).DividerQRadOutAbs = 0.0; - SurfaceWindow( SurfNum ).DividerQRadInAbs = 0.0; - SurfaceWindow( SurfNum ).ExtBeamAbsByShade = 0.0; - SurfaceWindow( SurfNum ).ExtDiffAbsByShade = 0.0; - SurfaceWindow( SurfNum ).IntBeamAbsByShade = 0.0; - SurfaceWindow( SurfNum ).IntSWAbsByShade = 0.0; - SurfaceWindow( SurfNum ).InitialDifSolAbsByShade = 0.0; - SurfaceWindow( SurfNum ).IntLWAbsByShade = 0.0; - SurfaceWindow( SurfNum ).ConvHeatFlowNatural = 0.0; - SurfaceWindow( SurfNum ).ConvHeatGainToZoneAir = 0.0; - SurfaceWindow( SurfNum ).RetHeatGainToZoneAir = 0.0; - SurfaceWindow( SurfNum ).DividerConduction = 0.0; - SurfaceWindow( SurfNum ).BlTsolBmBm = 0.0; - SurfaceWindow( SurfNum ).BlTsolBmDif = 0.0; - SurfaceWindow( SurfNum ).BlTsolDifDif = 0.0; - SurfaceWindow( SurfNum ).BlGlSysTsolBmBm = 0.0; - SurfaceWindow( SurfNum ).BlGlSysTsolDifDif = 0.0; - SurfaceWindow( SurfNum ).ScTsolBmBm = 0.0; - SurfaceWindow( SurfNum ).ScTsolBmDif = 0.0; - SurfaceWindow( SurfNum ).ScTsolDifDif = 0.0; - SurfaceWindow( SurfNum ).ScGlSysTsolBmBm = 0.0; - SurfaceWindow( SurfNum ).ScGlSysTsolDifDif = 0.0; - SurfaceWindow( SurfNum ).GlTsolBmBm = 0.0; - SurfaceWindow( SurfNum ).GlTsolBmDif = 0.0; - SurfaceWindow( SurfNum ).GlTsolDifDif = 0.0; - SurfaceWindow( SurfNum ).BmSolTransThruIntWinRep = 0.0; - SurfaceWindow( SurfNum ).BmSolAbsdOutsReveal = 0.0; - SurfaceWindow( SurfNum ).BmSolRefldOutsRevealReport = 0.0; - SurfaceWindow( SurfNum ).BmSolAbsdInsReveal = 0.0; - SurfaceWindow( SurfNum ).BmSolRefldInsReveal = 0.0; - SurfaceWindow( SurfNum ).BmSolRefldInsRevealReport = 0.0; - SurfaceWindow( SurfNum ).OutsRevealDiffOntoGlazing = 0.0; - SurfaceWindow( SurfNum ).InsRevealDiffOntoGlazing = 0.0; - SurfaceWindow( SurfNum ).InsRevealDiffIntoZone = 0.0; - SurfaceWindow( SurfNum ).OutsRevealDiffOntoFrame = 0.0; - SurfaceWindow( SurfNum ).InsRevealDiffOntoFrame = 0.0; - SurfaceWindow( SurfNum ).InsRevealDiffOntoGlazingReport = 0.0; - SurfaceWindow( SurfNum ).InsRevealDiffIntoZoneReport = 0.0; - SurfaceWindow( SurfNum ).InsRevealDiffOntoFrameReport = 0.0; - SurfaceWindow( SurfNum ).BmSolAbsdInsRevealReport = 0.0; - SurfaceWindow( SurfNum ).BmSolTransThruIntWinRepEnergy = 0.0; - SurfaceWindow( SurfNum ).BmSolRefldOutsRevealRepEnergy = 0.0; - SurfaceWindow( SurfNum ).BmSolRefldInsRevealRepEnergy = 0.0; - SurfaceWindow( SurfNum ).ProfileAngHor = 0.0; - SurfaceWindow( SurfNum ).ProfileAngVert = 0.0; - SurfaceWindow( SurfNum ).SkySolarInc = 0.0; - SurfaceWindow( SurfNum ).GndSolarInc = 0.0; + SurfaceWindow( SurfNum ).InitSolarHeatGains(); } WinHeatGain = 0.0; @@ -2042,7 +1995,7 @@ namespace HeatBalanceSurfaceManager { // Zone(ZoneNum)%TotalSurfArea // DifIncInsSurfAmountRep(SurfNum) = (Surface(SurfNum)%Area + SurfaceWindow(SurfNum)%DividerArea) * & // DifIncInsSurfIntensRep(SurfNum) - // DifIncInsSurfAmountRepEnergy(SurfNum) = DifIncInsSurfAmountRep(SurfNum) * TimeStepZone * SecInHour + // DifIncInsSurfAmountRepEnergy(SurfNum) = DifIncInsSurfAmountRep(SurfNum) * TimeStepZoneSec // END DO for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { @@ -2224,7 +2177,7 @@ namespace HeatBalanceSurfaceManager { // Total solar absorbed in all glass layers (W), for reporting QRadSWwinAbsTot( SurfNum ) += QRadSWwinAbsLayer( SurfNum, Lay ); } - QRadSWwinAbsTotEnergy( SurfNum ) = QRadSWwinAbsTot( SurfNum ) * TimeStepZone * SecInHour; + QRadSWwinAbsTotEnergy( SurfNum ) = QRadSWwinAbsTot( SurfNum ) * TimeStepZoneSec; } else if ( SurfaceWindow( SurfNum ).WindowModelType == WindowBSDFModel ) { TotSolidLay = Construct( ConstrNum ).TotSolidLayers; @@ -2250,7 +2203,7 @@ namespace HeatBalanceSurfaceManager { // Total solar absorbed in all glass layers (W), for reporting QRadSWwinAbsTot( SurfNum ) += QRadSWwinAbsLayer( SurfNum, Lay ); } - QRadSWwinAbsTotEnergy( SurfNum ) = QRadSWwinAbsTot( SurfNum ) * TimeStepZone * SecInHour; + QRadSWwinAbsTotEnergy( SurfNum ) = QRadSWwinAbsTot( SurfNum ) * TimeStepZoneSec; ShadeFlag = SurfaceWindow( SurfNum ).ShadingFlag; @@ -2273,7 +2226,7 @@ namespace HeatBalanceSurfaceManager { // Total solar absorbed in all glass layers (W), for reporting QRadSWwinAbsTot( SurfNum ) += QRadSWwinAbsLayer( SurfNum, Lay ); } - QRadSWwinAbsTotEnergy( SurfNum ) = QRadSWwinAbsTot( SurfNum ) * TimeStepZone * SecInHour; + QRadSWwinAbsTotEnergy( SurfNum ) = QRadSWwinAbsTot( SurfNum ) * TimeStepZoneSec; } // IF (SurfaceWindow(SurfNum)%WindowModelType /= WindowBSDFModel) THEN // Solar absorbed by window frame and dividers @@ -2459,7 +2412,7 @@ namespace HeatBalanceSurfaceManager { if ( Surface( SurfNum ).HeatTransSurf && Construct( ConstrNum ).TransDiff <= 0.0 ) { // Opaque heat transfer surface QRadSWOutAbs( SurfNum ) = AOSurf( SurfNum ) * BeamSolarRad + AbsExt * ( SkySolarInc + GndSolarInc ); SWOutAbsTotalReport( SurfNum ) = QRadSWOutAbs( SurfNum ) * Surface( SurfNum ).Area; - SWOutAbsEnergyReport( SurfNum ) = SWOutAbsTotalReport( SurfNum ) * SecInHour * TimeStepZone; + SWOutAbsEnergyReport( SurfNum ) = SWOutAbsTotalReport( SurfNum ) * TimeStepZoneSec; } } // Surface(SurfNum)%HeatTransSurf @@ -2590,7 +2543,7 @@ namespace HeatBalanceSurfaceManager { if ( ( OtherZoneNum != ZoneNum ) && ( RecDifShortFromZ( OtherZoneNum ) ) ) { QS( ZoneNum ) += FractDifShortZtoZ( OtherZoneNum, ZoneNum ) * ( QD( OtherZoneNum ) + ZoneIntGain( OtherZoneNum ).QLTSW ); ZoneDifSolFrIntWinsRep( ZoneNum ) += FractDifShortZtoZ( OtherZoneNum, ZoneNum ) * QD( OtherZoneNum ); - ZoneDifSolFrIntWinsRepEnergy( ZoneNum ) = ZoneDifSolFrIntWinsRep( ZoneNum ) * TimeStepZone * SecInHour; + ZoneDifSolFrIntWinsRepEnergy( ZoneNum ) = ZoneDifSolFrIntWinsRep( ZoneNum ) * TimeStepZoneSec; } } @@ -2609,11 +2562,11 @@ namespace HeatBalanceSurfaceManager { ZoneNum = Surface( SurfNum ).Zone; IntBmIncInsSurfIntensRep( SurfNum ) = ZoneBmSolFrIntWinsRep( ZoneNum ) / Zone( ZoneNum ).TotalSurfArea; IntBmIncInsSurfAmountRep( SurfNum ) = IntBmIncInsSurfIntensRep( SurfNum ) * ( Surface( SurfNum ).Area + SurfaceWindow( SurfNum ).DividerArea ); - IntBmIncInsSurfAmountRepEnergy( SurfNum ) = IntBmIncInsSurfAmountRep( SurfNum ) * TimeStepZone * SecInHour; + IntBmIncInsSurfAmountRepEnergy( SurfNum ) = IntBmIncInsSurfAmountRep( SurfNum ) * TimeStepZoneSec; // IntDifIncInsSurfIntensRep(SurfNum) = ZoneDifSolFrIntWinsRep(ZoneNum)/Zone(ZoneNum)%TotalSurfArea // IntDifIncInsSurfAmountRep(SurfNum) = IntDifIncInsSurfIntensRep(SurfNum) * & // (Surface(SurfNum)%Area + SurfaceWindow(SurfNum)%DividerArea) - // IntDifIncInsSurfAmountRepEnergy(SurfNum) = IntDifIncInsSurfAmountRep(SurfNum) * TimeStepZone * SecInHour + // IntDifIncInsSurfAmountRepEnergy(SurfNum) = IntDifIncInsSurfAmountRep(SurfNum) * TimeStepZoneSec } // COMPUTE CONVECTIVE GAINS AND ZONE FLUX DENSITY. @@ -2797,7 +2750,7 @@ namespace HeatBalanceSurfaceManager { // to the plane between the transparent insulation and the exterior surface face. QRadSWOutAbs( SurfNum ) = Material( Surface( SurfNum ).MaterialMovInsulExt ).Trans * QRadSWOutMvIns( SurfNum ) * ( ( Material( Construct( ConstrNum ).LayerPoint( 1 ) ).AbsorpSolar / AbsExt ) + ( 1 - Material( Construct( ConstrNum ).LayerPoint( 1 ) ).AbsorpSolar ) ); SWOutAbsTotalReport( SurfNum ) = QRadSWOutAbs( SurfNum ) * Surface( SurfNum ).Area; - SWOutAbsEnergyReport( SurfNum ) = SWOutAbsTotalReport( SurfNum ) * SecInHour * TimeStepZone; + SWOutAbsEnergyReport( SurfNum ) = SWOutAbsTotalReport( SurfNum ) * TimeStepZoneSec; } } @@ -3375,10 +3328,13 @@ namespace HeatBalanceSurfaceManager { FractDifShortZtoZ = D; // added for CR 7999 & 7869 + assert( FractDifShortZtoZ.isize1() == NumberOfZones ); + assert( FractDifShortZtoZ.isize2() == NumberOfZones ); + l = 0u; for ( NZ = 1; NZ <= NumberOfZones; ++NZ ) { - for ( MZ = 1; MZ <= NumberOfZones; ++MZ ) { + for ( MZ = 1; MZ <= NumberOfZones; ++MZ, ++l ) { if ( MZ == NZ ) continue; - if ( FractDifShortZtoZ( MZ, NZ ) > 0.0 ) { + if ( FractDifShortZtoZ[ l ] > 0.0 ) { // [ l ] == ( MZ, NZ ) RecDifShortFromZ( NZ ) = true; break; } @@ -3832,7 +3788,11 @@ namespace HeatBalanceSurfaceManager { FirstTimeFlag = false; } - for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { // Loop through all (heat transfer) surfaces... + auto const l111( TH.index( 1, 1, 1 ) ); + auto const l112( TH.index( 1, 1, 2 ) ); + auto l11( l111 ); + auto l12( l112 ); + for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum, ++l11, ++l12 ) { // Loop through all (heat transfer) surfaces... [ l11 ] = ( SurfNum, 1, 1 ), [ l12 ] = ( SurfNum, 1, 2 ) auto const & surface( Surface( SurfNum ) ); if ( surface.Class == SurfaceClass_Window || ! surface.HeatTransSurf ) continue; @@ -3851,11 +3811,13 @@ namespace HeatBalanceSurfaceManager { // Qout,now = (Sum of)(X Tout) - (Sum of)(Y Tin) + (Sum of)(F Qout,old) + (Sum of)(W Qsrc) // In both equations, flux is positive from outside to inside. The V and W terms are for radiant systems only. + Real64 const QsrcHist1( QsrcHist( 1, SurfNum ) ); + // Set current inside flux: - Real64 const QH_1_2 = QH( SurfNum, 1, 2 ) = TH( SurfNum, 1, 1 ) * construct.CTFCross( 0 ) - TempSurfIn( SurfNum ) * construct.CTFInside( 0 ) + QsrcHist( SurfNum, 1 ) * construct.CTFSourceIn( 0 ) + CTFConstInPart( SurfNum ); // Heat source/sink term for radiant systems + Real64 const QH_12 = QH[ l12 ] = TH[ l11 ] * construct.CTFCross( 0 ) - TempSurfIn( SurfNum ) * construct.CTFInside( 0 ) + QsrcHist1 * construct.CTFSourceIn( 0 ) + CTFConstInPart( SurfNum ); // Heat source/sink term for radiant systems if ( surface.Class == SurfaceClass_Floor || surface.Class == SurfaceClass_Wall || surface.Class == SurfaceClass_IntMass || surface.Class == SurfaceClass_Roof || surface.Class == SurfaceClass_Door ) { - OpaqSurfInsFaceConduction( SurfNum ) = surface.Area * QH_1_2; - OpaqSurfInsFaceConductionFlux( SurfNum ) = QH_1_2; //CR 8901 + OpaqSurfInsFaceConduction( SurfNum ) = surface.Area * QH_12; + OpaqSurfInsFaceConductionFlux( SurfNum ) = QH_12; //CR 8901 // IF (Surface(SurfNum)%Class/=SurfaceClass_IntMass) & // ZoneOpaqSurfInsFaceCond(Surface(SurfNum)%Zone) = ZoneOpaqSurfInsFaceCond(Surface(SurfNum)%Zone) + & // OpaqSurfInsFaceConduction(SurfNum) @@ -3870,35 +3832,36 @@ namespace HeatBalanceSurfaceManager { // Update the temperature at the source/sink location (if one is present) if ( construct.SourceSinkPresent ) { - TsrcHist( SurfNum, 1 ) = TH( SurfNum, 1, 1 ) * construct.CTFTSourceOut( 0 ) + TempSurfIn( SurfNum ) * construct.CTFTSourceIn( 0 ) + QsrcHist( SurfNum, 1 ) * construct.CTFTSourceQ( 0 ) + CTFTsrcConstPart( SurfNum ); - TempSource( SurfNum ) = TsrcHist( SurfNum, 1 ); + TempSource( SurfNum ) = TsrcHist( 1, SurfNum ) = TH[ l11 ] * construct.CTFTSourceOut( 0 ) + TempSurfIn( SurfNum ) * construct.CTFTSourceIn( 0 ) + QsrcHist1 * construct.CTFTSourceQ( 0 ) + CTFTsrcConstPart( SurfNum ); } if ( surface.ExtBoundCond > 0 ) continue; // Don't need to evaluate outside for partitions // Set current outside flux: - QH( SurfNum, 1, 1 ) = TH( SurfNum, 1, 1 ) * construct.CTFOutside( 0 ) - TempSurfIn( SurfNum ) * construct.CTFCross( 0 ) + QsrcHist( SurfNum, 1 ) * construct.CTFSourceOut( 0 ) + CTFConstOutPart( SurfNum ); // Heat source/sink term for radiant systems + QH[ l11 ] = TH[ l11 ] * construct.CTFOutside( 0 ) - TempSurfIn( SurfNum ) * construct.CTFCross( 0 ) + QsrcHist1 * construct.CTFSourceOut( 0 ) + CTFConstOutPart( SurfNum ); // Heat source/sink term for radiant systems if ( surface.Class == SurfaceClass_Floor || surface.Class == SurfaceClass_Wall || surface.Class == SurfaceClass_IntMass || surface.Class == SurfaceClass_Roof || surface.Class == SurfaceClass_Door ) { - OpaqSurfOutsideFaceConductionFlux( SurfNum ) = -QH( SurfNum, 1, 1 ); // switch sign for balance at outside face + OpaqSurfOutsideFaceConductionFlux( SurfNum ) = -QH[ l11 ]; // switch sign for balance at outside face OpaqSurfOutsideFaceConduction( SurfNum ) = surface.Area * OpaqSurfOutsideFaceConductionFlux( SurfNum ); } } // ...end of loop over all (heat transfer) surfaces... - for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { // Loop through all (heat transfer) surfaces... + l11 = l111; + l12 = l112; + for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum, ++l11, ++l12 ) { // Loop through all (heat transfer) surfaces... [ l11 ] = ( SurfNum, 1, 1 ), [ l12 ] = ( SurfNum, 1, 2 ) auto const & surface( Surface( SurfNum ) ); if ( surface.Class == SurfaceClass_Window || ! surface.HeatTransSurf ) continue; if ( ( surface.HeatTransferAlgorithm != HeatTransferModel_CTF ) && ( surface.HeatTransferAlgorithm != HeatTransferModel_EMPD ) && ( surface.HeatTransferAlgorithm != HeatTransferModel_TDD ) ) continue; if ( SUMH( SurfNum ) == 0 ) { // First time step in a block for a surface, update arrays - TempExt1( SurfNum ) = TH( SurfNum, 1, 1 ); + TempExt1( SurfNum ) = TH[ l11 ]; TempInt1( SurfNum ) = TempSurfIn( SurfNum ); - Tsrc1( SurfNum ) = TsrcHist( SurfNum, 1 ); - QExt1( SurfNum ) = QH( SurfNum, 1, 1 ); - QInt1( SurfNum ) = QH( SurfNum, 1, 2 ); - Qsrc1( SurfNum ) = QsrcHist( SurfNum, 1 ); + Tsrc1( SurfNum ) = TsrcHist( 1, SurfNum ); + QExt1( SurfNum ) = QH[ l11 ]; + QInt1( SurfNum ) = QH[ l12 ]; + Qsrc1( SurfNum ) = QsrcHist( 1, SurfNum ); } } // ...end of loop over all (heat transfer) surfaces... @@ -3922,88 +3885,90 @@ namespace HeatBalanceSurfaceManager { SUMH( SurfNum ) = 0; if ( construct.NumCTFTerms > 1 ) { + int const numCTFTerms( construct.NumCTFTerms ); for ( SideNum = 1; SideNum <= 2; ++SideNum ) { //Tuned Index order switched for cache friendliness - for ( HistTermNum = construct.NumCTFTerms + 1; HistTermNum >= 3; --HistTermNum ) { //Tuned Linear indexing + auto l( THM.index( SurfNum, numCTFTerms, SideNum ) ); + auto const li( THM.size1() ); + auto l1( l + li ); + for ( HistTermNum = numCTFTerms + 1; HistTermNum >= 3; --HistTermNum, l1 = l, l -= li ) { //Tuned Linear indexing //TH( SurfNum, HistTermNum, SideNum ) = THM( SurfNum, HistTermNum, SideNum ) = THM( SurfNum, HistTermNum - 1, SideNum ); //QH( SurfNum, HistTermNum, SideNum ) = QHM( SurfNum, HistTermNum, SideNum ) = QHM( SurfNum, HistTermNum - 1, SideNum ); - auto const l( TH.index( SurfNum, HistTermNum, SideNum ) ); // Linear index - auto const m( THM.index( SurfNum, HistTermNum - 1, SideNum ) ); // Linear index - TH[ l ] = THM[ l ] = THM[ m ]; - QH[ l ] = QHM[ l ] = QHM[ m ]; + TH[ l1 ] = THM[ l1 ] = THM[ l ]; + QH[ l1 ] = QHM[ l1 ] = QHM[ l ]; } } - for ( HistTermNum = construct.NumCTFTerms + 1; HistTermNum >= 3; --HistTermNum ) { //Tuned Linear indexing - //TsrcHistM( SurfNum, HistTermNum ) = TsrcHistM( SurfNum, HistTermNum - 1 ); - //TsrcHist( SurfNum, HistTermNum ) = TsrcHistM( SurfNum, HistTermNum ); - //QsrcHistM( SurfNum, HistTermNum ) = QsrcHistM( SurfNum, HistTermNum - 1 ); - //QsrcHist( SurfNum, HistTermNum ) = QsrcHistM( SurfNum, HistTermNum ); - auto const l( TsrcHistM.index( SurfNum, HistTermNum ) ); - auto const m( TsrcHistM.index( SurfNum, HistTermNum- 1 ) ); - TsrcHist[ l ] = TsrcHistM[ l ] = TsrcHistM[ m ]; - QsrcHist[ l ] = QsrcHistM[ l ] = QsrcHistM[ m ]; + auto m( TsrcHistM.index( numCTFTerms, SurfNum ) ); + auto m1( m + 1 ); + for ( HistTermNum = numCTFTerms + 1; HistTermNum >= 3; --HistTermNum, --m, --m1 ) { //Tuned Linear indexing + //TsrcHist( HistTerm, SurfNum ) = TsrcHistM( HistTerm, SurfNum ) = TsrcHistM( HistTermNum - 1, SurfNum ); + //QsrcHist( HistTerm, SurfNum ) = QsrcHistM( HistTerm, SurfNum ) = QsrcHistM( HistTermNum - 1, SurfNum ); + TsrcHist[ m1 ] = TsrcHistM[ m1 ] = TsrcHistM[ m ]; + QsrcHist[ m1 ] = QsrcHistM[ m1 ] = QsrcHistM[ m ]; } } //Tuned Linear indexing //THM( SurfNum, 2, 1 ) = TempExt1( SurfNum ); //THM( SurfNum, 2, 2 ) = TempInt1( SurfNum ); - //TsrcHistM( SurfNum, 2 ) = Tsrc1( SurfNum ); + //TsrcHistM( 2, SurfNum ) = Tsrc1( SurfNum ); //QHM( SurfNum, 2, 1 ) = QExt1( SurfNum ); //QHM( SurfNum, 2, 2 ) = QInt1( SurfNum ); - //QsrcHistM( SurfNum, 2 ) = Qsrc1( SurfNum ); + //QsrcHistM( 2, SurfNum ) = Qsrc1( SurfNum ); // //TH( SurfNum, 2, 1 ) = THM( SurfNum, 2, 1 ); //TH( SurfNum, 2, 2 ) = THM( SurfNum, 2, 2 ); - //TsrcHist( SurfNum, 2 ) = TsrcHistM( SurfNum, 2 ); + //TsrcHist( 2, SurfNum ) = TsrcHistM( 2, SurfNum ); //QH( SurfNum, 2, 1 ) = QHM( SurfNum, 2, 1 ); //QH( SurfNum, 2, 2 ) = QHM( SurfNum, 2, 2 ); - //QsrcHist( SurfNum, 2 ) = QsrcHistM( SurfNum, 2 ); + //QsrcHist( 2, SurfNum ) = QsrcHistM( 2, SurfNum ); auto const l21( TH.index( SurfNum, 2, 1 ) ); // Linear index auto const l22( TH.index( SurfNum, 2, 2 ) ); // Linear index THM[ l21 ] = TempExt1( SurfNum ); THM[ l22 ] = TempInt1( SurfNum ); - TsrcHistM( SurfNum, 2 ) = Tsrc1( SurfNum ); + TsrcHistM( 2, SurfNum ) = Tsrc1( SurfNum ); QHM[ l21 ] = QExt1( SurfNum ); QHM[ l22 ] = QInt1( SurfNum ); - QsrcHistM( SurfNum, 2 ) = Qsrc1( SurfNum ); + QsrcHistM( 2, SurfNum ) = Qsrc1( SurfNum ); TH[ l21 ] = THM[ l21 ]; TH[ l22 ] = THM( SurfNum, 2, 2 ); - TsrcHist( SurfNum, 2 ) = TsrcHistM( SurfNum, 2 ); + TsrcHist( 2, SurfNum ) = TsrcHistM( 2, SurfNum ); QH[ l21 ] = QHM[ l21 ]; QH[ l22 ] = QHM( SurfNum, 2, 2 ); - QsrcHist( SurfNum, 2 ) = QsrcHistM( SurfNum, 2 ); + QsrcHist( 2, SurfNum ) = QsrcHistM( 2, SurfNum ); } else { Real64 const sum_steps( SumTime( SurfNum ) / construct.CTFTimeStep ); if ( construct.NumCTFTerms > 1 ) { + int const numCTFTerms( construct.NumCTFTerms ); for ( SideNum = 1; SideNum <= 2; ++SideNum ) { //Tuned Index order switched for cache friendliness - for ( HistTermNum = construct.NumCTFTerms + 1; HistTermNum >= 3; --HistTermNum ) { //Tuned Linear indexing - //Real64 const THM_elem( THM( SurfNum, HistTermNum, SideNum ) ); - //TH( SurfNum, HistTermNum, SideNum ) = THM_elem - ( THM_elem - THM( SurfNum, HistTermNum - 1, SideNum ) ) * sum_steps; - //Real64 const QHM_elem( QHM( SurfNum, HistTermNum, SideNum ) ); - //QH( SurfNum, HistTermNum, SideNum ) = QHM_elem - ( QHM_elem - QHM( SurfNum, HistTermNum - 1, SideNum ) ) * sum_steps; - auto const l( TH.index( SurfNum, HistTermNum, SideNum ) ); // Linear index - auto const m( THM.index( SurfNum, HistTermNum - 1, SideNum ) ); // Linear index - Real64 const THM_elem( THM[ l ] ); - TH[ l ] = THM_elem - ( THM_elem - THM[ m ] ) * sum_steps; - Real64 const QHM_elem( QHM[ l ] ); - QH[ l ] = QHM_elem - ( QHM_elem - QHM[ m ] ) * sum_steps; + auto l( THM.index( SurfNum, numCTFTerms, SideNum ) ); + auto const s1( THM.size1() ); + auto l1( l + s1 ); + for ( HistTermNum = numCTFTerms + 1; HistTermNum >= 3; --HistTermNum, l1 = l, l -= s1 ) { //Tuned Linear indexing + //Real64 const THM_l1( THM( SurfNum, HistTermNum, SideNum ) ); + //TH( SurfNum, HistTermNum, SideNum ) = THM_l1 - ( THM_l1 - THM( SurfNum, HistTermNum - 1, SideNum ) ) * sum_steps; + //Real64 const QHM_l1( QHM( SurfNum, HistTermNum, SideNum ) ); + //QH( SurfNum, HistTermNum, SideNum ) = QHM_l1 - ( QHM_l1 - QHM( SurfNum, HistTermNum - 1, SideNum ) ) * sum_steps; + Real64 const THM_l1( THM[ l1 ] ); + TH[ l1 ] = THM_l1 - ( THM_l1 - THM[ l ] ) * sum_steps; + Real64 const QHM_l1( QHM[ l1 ] ); + QH[ l1 ] = QHM_l1 - ( QHM_l1 - QHM[ l ] ) * sum_steps; } } - for ( HistTermNum = construct.NumCTFTerms + 1; HistTermNum >= 3; --HistTermNum ) { //Tuned Linear indexing - //Real64 const TsrcHistM_elem( TsrcHistM( SurfNum, HistTermNum ) ); - //TsrcHist( SurfNum, HistTermNum ) = TsrcHistM_elem - ( TsrcHistM_elem - TsrcHistM( SurfNum, HistTermNum - 1 ) ) * sum_steps; - //Real64 const QsrcHistM_elem( QsrcHistM( SurfNum, HistTermNum ) ); - //QsrcHist( SurfNum, HistTermNum ) = QsrcHistM_elem - ( QsrcHistM_elem - QsrcHistM( SurfNum, HistTermNum - 1 ) ) * sum_steps; - auto const l( TsrcHistM.index( SurfNum, HistTermNum ) ); - auto const m( TsrcHistM.index( SurfNum, HistTermNum- 1 ) ); - Real64 const TsrcHistM_elem( TsrcHistM[ l ] ); - TsrcHist[ l ] = TsrcHistM_elem - ( TsrcHistM_elem - TsrcHistM[ m ] ) * sum_steps; - Real64 const QsrcHistM_elem( QsrcHistM[ l ] ); - QsrcHist[ l ] = QsrcHistM_elem - ( QsrcHistM_elem - QsrcHistM[ m ] ) * sum_steps; + auto m( TsrcHistM.index( numCTFTerms, SurfNum ) ); + auto m1( m + 1 ); + for ( HistTermNum = numCTFTerms + 1; HistTermNum >= 3; --HistTermNum, --m, --m1 ) { //Tuned Linear indexing [ l ] == () + //Real64 const TsrcHistM_elem( TsrcHistM( HistTermNum, SurfNum ) ); + //TsrcHist( HistTermNum, SurfNum ) = TsrcHistM_elem - ( TsrcHistM_elem - TsrcHistM( HistTermNum - 1, SurfNum ) ) * sum_steps; + //Real64 const QsrcHistM_elem( QsrcHistM( HistTermNum, SurfNum ) ); + //QsrcHist( HistTermNum, SurfNum ) = QsrcHistM_elem - ( QsrcHistM_elem - QsrcHistM( HistTermNum - 1, SurfNum ) ) * sum_steps; + Real64 const TsrcHistM_m1( TsrcHistM[ m1 ] ); + TsrcHist[ m1 ] = TsrcHistM_m1 - ( TsrcHistM_m1 - TsrcHistM[ m ] ) * sum_steps; + Real64 const QsrcHistM_m1( QsrcHistM[ m1 ] ); + QsrcHist[ m1 ] = QsrcHistM_m1 - ( QsrcHistM_m1 - QsrcHistM[ m ] ) * sum_steps; } } @@ -4021,10 +3986,10 @@ namespace HeatBalanceSurfaceManager { QH[ l22 ] = QHM[ l22 ] - ( QHM[ l22 ] - QInt1( SurfNum ) ) * sum_steps; //Tuned Linear indexing - //TsrcHist( SurfNum, 2 ) = TsrcHistM( SurfNum, 2 ) - ( TsrcHistM( SurfNum, 2 ) - Tsrc1( SurfNum ) ) * sum_steps; - //QsrcHist( SurfNum, 2 ) = QsrcHistM( SurfNum, 2 ) - ( QsrcHistM( SurfNum, 2 ) - Qsrc1( SurfNum ) ) * sum_steps; + //TsrcHist( 2, SurfNum ) = TsrcHistM( 2, SurfNum ) - ( TsrcHistM( 2, SurfNum ) - Tsrc1( SurfNum ) ) * sum_steps; + //QsrcHist( 2, SurfNum ) = QsrcHistM( 2, SurfNum ) - ( QsrcHistM( 2, SurfNum ) - Qsrc1( SurfNum ) ) * sum_steps; - auto const l2( TsrcHist.index( SurfNum, 2 ) ); + auto const l2( TsrcHist.index( 2, SurfNum ) ); TsrcHist[ l2 ] = TsrcHistM[ l2 ] - ( TsrcHistM[ l2 ] - Tsrc1( SurfNum ) ) * sum_steps; QsrcHist[ l2 ] = QsrcHistM[ l2 ] - ( QsrcHistM[ l2 ] - Qsrc1( SurfNum ) ) * sum_steps; @@ -4175,16 +4140,16 @@ namespace HeatBalanceSurfaceManager { for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { QdotRadNetSurfInRep( SurfNum ) = NetLWRadToSurf( SurfNum ) * Surface( SurfNum ).Area; QdotRadNetSurfInRepPerArea( SurfNum ) = NetLWRadToSurf( SurfNum ); - QRadNetSurfInReport( SurfNum ) = QdotRadNetSurfInRep( SurfNum ) * SecInHour * TimeStepZone; + QRadNetSurfInReport( SurfNum ) = QdotRadNetSurfInRep( SurfNum ) * TimeStepZoneSec; if ( Surface( SurfNum ).Class != SurfaceClass_Window ) { // not a window... QdotRadSolarInRepPerArea( SurfNum ) = QRadSWInAbs( SurfNum ) - QRadSWLightsInAbs( SurfNum ); QdotRadSolarInRep( SurfNum ) = QdotRadSolarInRepPerArea( SurfNum ) * Surface( SurfNum ).Area; - QRadSolarInReport( SurfNum ) = QdotRadSolarInRep( SurfNum ) * SecInHour * TimeStepZone; + QRadSolarInReport( SurfNum ) = QdotRadSolarInRep( SurfNum ) * TimeStepZoneSec; QdotRadLightsInRepPerArea( SurfNum ) = QRadSWLightsInAbs( SurfNum ); QdotRadLightsInRep( SurfNum ) = QdotRadLightsInRepPerArea( SurfNum ) * Surface( SurfNum ).Area; - QRadLightsInReport( SurfNum ) = QdotRadLightsInRep( SurfNum ) * SecInHour * TimeStepZone; + QRadLightsInReport( SurfNum ) = QdotRadLightsInRep( SurfNum ) * TimeStepZoneSec; if ( ZoneSizingCalc && CompLoadReportIsReq ) { TimeStepInDay = ( HourOfDay - 1 ) * NumOfTimeStepInHour + TimeStep; @@ -4197,16 +4162,16 @@ namespace HeatBalanceSurfaceManager { QdotRadIntGainsInRepPerArea( SurfNum ) = QRadThermInAbs( SurfNum ); QdotRadIntGainsInRep( SurfNum ) = QdotRadIntGainsInRepPerArea( SurfNum ) * Surface( SurfNum ).Area; - QRadIntGainsInReport( SurfNum ) = QdotRadIntGainsInRep( SurfNum ) * SecInHour * TimeStepZone; + QRadIntGainsInReport( SurfNum ) = QdotRadIntGainsInRep( SurfNum ) * TimeStepZoneSec; QdotRadHVACInRepPerArea( SurfNum ) = QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ); QdotRadHVACInRep( SurfNum ) = QdotRadHVACInRepPerArea( SurfNum ) * Surface( SurfNum ).Area; - QRadHVACInReport( SurfNum ) = QdotRadHVACInRep( SurfNum ) * SecInHour * TimeStepZone; + QRadHVACInReport( SurfNum ) = QdotRadHVACInRep( SurfNum ) * TimeStepZoneSec; if ( Surface( SurfNum ).Class == SurfaceClass_Floor || Surface( SurfNum ).Class == SurfaceClass_Wall || Surface( SurfNum ).Class == SurfaceClass_IntMass || Surface( SurfNum ).Class == SurfaceClass_Roof || Surface( SurfNum ).Class == SurfaceClass_Door ) { // inside face conduction updates - OpaqSurfInsFaceConductionEnergy( SurfNum ) = OpaqSurfInsFaceConduction( SurfNum ) * SecInHour * TimeStepZone; + OpaqSurfInsFaceConductionEnergy( SurfNum ) = OpaqSurfInsFaceConduction( SurfNum ) * TimeStepZoneSec; ZoneOpaqSurfInsFaceCond( Surface( SurfNum ).Zone ) += OpaqSurfInsFaceConduction( SurfNum ); OpaqSurfInsFaceCondGainRep( SurfNum ) = 0.0; OpaqSurfInsFaceCondLossRep( SurfNum ) = 0.0; @@ -4217,7 +4182,7 @@ namespace HeatBalanceSurfaceManager { } // outside face conduction updates - OpaqSurfOutsideFaceConductionEnergy( SurfNum ) = OpaqSurfOutsideFaceConduction( SurfNum ) * SecInHour * TimeStepZone; + OpaqSurfOutsideFaceConductionEnergy( SurfNum ) = OpaqSurfOutsideFaceConduction( SurfNum ) * TimeStepZoneSec; ZoneOpaqSurfExtFaceCond( Surface( SurfNum ).Zone ) += OpaqSurfOutsideFaceConduction( SurfNum ); OpaqSurfExtFaceCondGainRep( SurfNum ) = 0.0; OpaqSurfExtFaceCondLossRep( SurfNum ) = 0.0; @@ -4231,7 +4196,7 @@ namespace HeatBalanceSurfaceManager { OpaqSurfAvgFaceConduction( SurfNum ) = ( OpaqSurfInsFaceConduction( SurfNum ) - OpaqSurfOutsideFaceConduction( SurfNum ) ) / 2.0; OpaqSurfAvgFaceConductionFlux( SurfNum ) = ( OpaqSurfInsFaceConductionFlux( SurfNum ) - OpaqSurfOutsideFaceConductionFlux( SurfNum ) ) / 2.0; - OpaqSurfAvgFaceConductionEnergy( SurfNum ) = OpaqSurfAvgFaceConduction( SurfNum ) * SecInHour * TimeStepZone; + OpaqSurfAvgFaceConductionEnergy( SurfNum ) = OpaqSurfAvgFaceConduction( SurfNum ) * TimeStepZoneSec; OpaqSurfAvgFaceCondGainRep( SurfNum ) = 0.0; OpaqSurfAvgFaceCondLossRep( SurfNum ) = 0.0; if ( OpaqSurfAvgFaceConduction( SurfNum ) >= 0.0 ) { @@ -4243,7 +4208,7 @@ namespace HeatBalanceSurfaceManager { // do surface storage rate updates OpaqSurfStorageConductionFlux( SurfNum ) = -( OpaqSurfInsFaceConductionFlux( SurfNum ) + OpaqSurfOutsideFaceConductionFlux( SurfNum ) ); OpaqSurfStorageConduction( SurfNum ) = -( OpaqSurfInsFaceConduction( SurfNum ) + OpaqSurfOutsideFaceConduction( SurfNum ) ); - OpaqSurfStorageConductionEnergy( SurfNum ) = OpaqSurfStorageConduction( SurfNum ) * SecInHour * TimeStepZone; + OpaqSurfStorageConductionEnergy( SurfNum ) = OpaqSurfStorageConduction( SurfNum ) * TimeStepZoneSec; OpaqSurfStorageGainRep( SurfNum ) = 0.0; OpaqSurfStorageCondLossRep( SurfNum ) = 0.0; if ( OpaqSurfStorageConduction( SurfNum ) >= 0.0 ) { @@ -4259,18 +4224,18 @@ namespace HeatBalanceSurfaceManager { for ( ZoneNum = 1; ZoneNum <= NumOfZones; ++ZoneNum ) { if ( ZoneOpaqSurfInsFaceCond( ZoneNum ) >= 0.0 ) { ZoneOpaqSurfInsFaceCondGainRep( ZoneNum ) = ZoneOpaqSurfInsFaceCond( ZoneNum ); - ZnOpqSurfInsFaceCondGnRepEnrg( ZoneNum ) = ZoneOpaqSurfInsFaceCondGainRep( ZoneNum ) * TimeStepZone * SecInHour; + ZnOpqSurfInsFaceCondGnRepEnrg( ZoneNum ) = ZoneOpaqSurfInsFaceCondGainRep( ZoneNum ) * TimeStepZoneSec; } else { ZoneOpaqSurfInsFaceCondLossRep( ZoneNum ) = -ZoneOpaqSurfInsFaceCond( ZoneNum ); - ZnOpqSurfInsFaceCondLsRepEnrg( ZoneNum ) = ZoneOpaqSurfInsFaceCondLossRep( ZoneNum ) * TimeStepZone * SecInHour; + ZnOpqSurfInsFaceCondLsRepEnrg( ZoneNum ) = ZoneOpaqSurfInsFaceCondLossRep( ZoneNum ) * TimeStepZoneSec; } if ( ZoneOpaqSurfExtFaceCond( ZoneNum ) >= 0.0 ) { ZoneOpaqSurfExtFaceCondGainRep( ZoneNum ) = ZoneOpaqSurfExtFaceCond( ZoneNum ); - ZnOpqSurfExtFaceCondGnRepEnrg( ZoneNum ) = ZoneOpaqSurfExtFaceCondGainRep( ZoneNum ) * TimeStepZone * SecInHour; + ZnOpqSurfExtFaceCondGnRepEnrg( ZoneNum ) = ZoneOpaqSurfExtFaceCondGainRep( ZoneNum ) * TimeStepZoneSec; } else { ZoneOpaqSurfExtFaceCondLossRep( ZoneNum ) = -ZoneOpaqSurfExtFaceCond( ZoneNum ); - ZnOpqSurfExtFaceCondLsRepEnrg( ZoneNum ) = ZoneOpaqSurfExtFaceCondLossRep( ZoneNum ) * TimeStepZone * SecInHour; + ZnOpqSurfExtFaceCondLsRepEnrg( ZoneNum ) = ZoneOpaqSurfExtFaceCondLossRep( ZoneNum ) * TimeStepZoneSec; } } // loop over zones @@ -4398,10 +4363,10 @@ CalcHeatBalanceOutsideSurf( Optional_int_const ZoneToResimulate ) // if passed i // Need to transfer any source/sink for a surface to the local array. Note that // the local array is flux (W/m2) while the QRadSysSource is heat transfer (W). // This must be done at this location so that this is always updated correctly. - if ( Surface( SurfNum ).Area > 0.0 ) QsrcHist( SurfNum, 1 ) = QRadSysSource( SurfNum ) / Surface( SurfNum ).Area; // Make sure we don't divide by zero... + if ( Surface( SurfNum ).Area > 0.0 ) QsrcHist( 1, SurfNum ) = QRadSysSource( SurfNum ) / Surface( SurfNum ).Area; // Make sure we don't divide by zero... // next we add source (actually a sink) from any integrated PV - if ( Surface( SurfNum ).Area > 0.0 ) QsrcHist( SurfNum, 1 ) += QPVSysSource( SurfNum ) / Surface( SurfNum ).Area; // Make sure we don't divide by zero... + if ( Surface( SurfNum ).Area > 0.0 ) QsrcHist( 1, SurfNum ) += QPVSysSource( SurfNum ) / Surface( SurfNum ).Area; // Make sure we don't divide by zero... } if ( present( ZoneToResimulate ) ) { @@ -4788,7 +4753,7 @@ CalcHeatBalanceOutsideSurf( Optional_int_const ZoneToResimulate ) // if passed i QdotConvOutRepPerArea( SurfNum ) = -HcExtSurf( SurfNum ) * ( TH( SurfNum, 1, 1 ) - Surface( SurfNum ).OutDryBulbTemp ); } - QConvOutReport( SurfNum ) = QdotConvOutRep( SurfNum ) * SecInHour * TimeStepZone; + QConvOutReport( SurfNum ) = QdotConvOutRep( SurfNum ) * TimeStepZoneSec; } // ...end of DO loop over all surface (actually heat transfer surfaces) @@ -4996,7 +4961,7 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in } // These conditions are not used in every SurfNum loop here so we don't use them to skip surfaces - if ( ! Surface( SurfNum ).HeatTransSurf || ZoneNum == 0 ) continue; // Skip non-heat transfer surfaces + if ( ( ZoneNum == 0 ) || ! Surface( SurfNum ).HeatTransSurf ) continue; // Skip non-heat transfer surfaces if ( Surface( SurfNum ).Class == SurfaceClass_TDD_Dome ) continue; // Skip TDD:DOME objects. Inside temp is handled by TDD:DIFFUSER. if ( PartialResimulate ) { @@ -5112,25 +5077,25 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in for ( std::vector< int >::size_type iSurfToResimulate = 0u; iSurfToResimulate < nSurfToResimulate; ++iSurfToResimulate ) { // Perform a heat balance on all of the relevant inside surfaces... SurfNum = SurfToResimulate[ iSurfToResimulate ]; auto & surface( Surface( SurfNum ) ); - ZoneNum = surface.Zone; - - if ( ! surface.HeatTransSurf || ZoneNum == 0 ) continue; // Skip non-heat transfer surfaces + if ( ! surface.HeatTransSurf ) continue; // Skip non-heat transfer surfaces if ( surface.Class == SurfaceClass_TDD_Dome ) continue; // Skip TDD:DOME objects. Inside temp is handled by TDD:DIFFUSER. + if ( ( ZoneNum = surface.Zone ) == 0 ) continue; // Skip non-heat transfer surfaces Real64 & TH11( TH( SurfNum, 1, 1 ) ); Real64 & TH12( TH( SurfNum, 1, 2 ) ); Real64 & TH22( TH( SurfNum, 2, 2 ) ); ConstrNum = surface.Construction; + auto const & construct( Construct( ConstrNum ) ); + Real64 const MAT_zone( MAT( ZoneNum ) ); + Real64 const ZoneAirHumRat_zone( max( ZoneAirHumRat( ZoneNum ), 1.0e-5 ) ); - //Calculate the inside surface moisture quantities - //calculate the inside surface moisture transfer conditions - RhoVaporAirIn( SurfNum ) = PsyRhovFnTdbWPb( MAT( ZoneNum ), ZoneAirHumRat( ZoneNum ), OutBaroPress ); - //check for saturation conditions of air - RhoVaporSat = PsyRhovFnTdbRh( MAT( ZoneNum ), 1.0, HBSurfManInsideSurf ); - if ( RhoVaporAirIn( SurfNum ) > RhoVaporSat ) RhoVaporAirIn( SurfNum ) = RhoVaporSat; - HConvInFD( SurfNum ) = HConvIn( SurfNum ); - HMassConvInFD( SurfNum ) = HConvInFD( SurfNum ) / ( ( PsyRhoAirFnPbTdbW( OutBaroPress, MAT( ZoneNum ), ZoneAirHumRat( ZoneNum ) ) + RhoVaporAirIn( SurfNum ) ) * PsyCpAirFnWTdb( ZoneAirHumRat( ZoneNum ), MAT( ZoneNum ) ) ); + // Calculate the inside surface moisture quantities + // calculate the inside surface moisture transfer conditions + // check for saturation conditions of air + Real64 const HConvIn_surf( HConvInFD( SurfNum ) = HConvIn( SurfNum ) ); + RhoVaporAirIn( SurfNum ) = min( PsyRhovFnTdbWPb_fast( MAT_zone, ZoneAirHumRat_zone, OutBaroPress ), PsyRhovFnTdbRh( MAT_zone, 1.0, HBSurfManInsideSurf ) ); + HMassConvInFD( SurfNum ) = HConvIn_surf / ( ( PsyRhoAirFnPbTdbW_fast( OutBaroPress, MAT_zone, ZoneAirHumRat_zone ) + RhoVaporAirIn( SurfNum ) ) * PsyCpAirFnWTdb_fast( ZoneAirHumRat_zone, MAT_zone ) ); // Perform heat balance on the inside face of the surface ... // The following are possibilities here: @@ -5153,16 +5118,16 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in if ( surface.HeatTransferAlgorithm == HeatTransferModel_CTF || surface.HeatTransferAlgorithm == HeatTransferModel_EMPD ) { // Regular CTF Surface and/or EMPD surface if ( surface.HeatTransferAlgorithm == HeatTransferModel_EMPD ) { - CalcMoistureBalanceEMPD( SurfNum, TempSurfInTmp( SurfNum ), TH22, MAT( ZoneNum ), TempSurfInSat ); + CalcMoistureBalanceEMPD( SurfNum, TempSurfInTmp( SurfNum ), TH22, MAT_zone, TempSurfInSat ); } //Pre-calculate a few terms - Real64 const TempTerm( CTFConstInPart( SurfNum ) + QRadThermInAbs( SurfNum ) + QRadSWInAbs( SurfNum ) + HConvIn( SurfNum ) * RefAirTemp( SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + NetLWRadToSurf( SurfNum ) ); - Real64 const TempDiv( 1.0 / ( Construct( ConstrNum ).CTFInside( 0 ) - Construct( ConstrNum ).CTFCross( 0 ) + HConvIn( SurfNum ) + IterDampConst ) ); + Real64 const TempTerm( CTFConstInPart( SurfNum ) + QRadThermInAbs( SurfNum ) + QRadSWInAbs( SurfNum ) + HConvIn_surf * RefAirTemp( SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + NetLWRadToSurf( SurfNum ) ); + Real64 const TempDiv( 1.0 / ( construct.CTFInside( 0 ) - construct.CTFCross( 0 ) + HConvIn_surf + IterDampConst ) ); // Calculate the current inside surface temperature - if ( ( ! surface.IsPool ) || ( ( surface.IsPool ) && ( abs( QPoolSurfNumerator( SurfNum ) ) < SmallNumber ) && ( abs( PoolHeatTransCoefs( SurfNum )) < SmallNumber ) ) ) { - TempSurfInTmp( SurfNum ) = ( TempTerm + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( SurfNum, 1 ) + IterDampConst * TempInsOld( SurfNum ) ) * TempDiv; // Constant portion of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Heat source/sink term for radiant systems | (if there is one present) | Radiant flux from a high temperature radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Iterative damping term (for stability) | Conduction term (both partition sides same temp) | Conduction term (both partition sides same temp) | Convection and damping term + if ( ( ! surface.IsPool ) || ( ( surface.IsPool ) && ( abs( QPoolSurfNumerator( SurfNum ) ) < SmallNumber ) && ( abs( PoolHeatTransCoefs( SurfNum ) ) < SmallNumber ) ) ) { + TempSurfInTmp( SurfNum ) = ( TempTerm + construct.CTFSourceIn( 0 ) * QsrcHist( 1, SurfNum ) + IterDampConst * TempInsOld( SurfNum ) ) * TempDiv; // Constant portion of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Heat source/sink term for radiant systems | (if there is one present) | Radiant flux from a high temperature radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Iterative damping term (for stability) | Conduction term (both partition sides same temp) | Conduction term (both partition sides same temp) | Convection and damping term } else { // this is a pool and it has been simulated this time step - TempSurfInTmp( SurfNum ) = ( CTFConstInPart( SurfNum ) + QPoolSurfNumerator( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) ) / ( Construct( ConstrNum ).CTFInside( 0 ) - Construct( ConstrNum ).CTFCross( 0 ) + PoolHeatTransCoefs( SurfNum ) + IterDampConst ); // Constant part of conduction eq (history terms) | Pool modified terms (see non-pool equation for details) | Iterative damping term (for stability) | Conduction term (both partition sides same temp) | Pool and damping term + TempSurfInTmp( SurfNum ) = ( CTFConstInPart( SurfNum ) + QPoolSurfNumerator( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) ) / ( construct.CTFInside( 0 ) - construct.CTFCross( 0 ) + PoolHeatTransCoefs( SurfNum ) + IterDampConst ); // Constant part of conduction eq (history terms) | Pool modified terms (see non-pool equation for details) | Iterative damping term (for stability) | Conduction term (both partition sides same temp) | Pool and damping term } if ( surface.HeatTransferAlgorithm == HeatTransferModel_EMPD ) { TempSurfInTmp( SurfNum ) -= MoistEMPDFlux( SurfNum ) * TempDiv; // Conduction term (both partition sides same temp) | Conduction term (both partition sides same temp) | Convection and damping term @@ -5173,13 +5138,13 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in // if any mixed heat transfer models in zone, apply limits to CTF result if ( any_surface_ConFD_or_HAMT( ZoneNum ) ) TempSurfInTmp( SurfNum ) = max( MinSurfaceTempLimit, min( MaxSurfaceTempLimit, TempSurfInTmp( SurfNum ) ) ); // Limit Check //Tuned Precomputed condition to eliminate loop - if ( Construct( ConstrNum ).SourceSinkPresent ) { // Set the appropriate parameters for the radiant system + if ( construct.SourceSinkPresent ) { // Set the appropriate parameters for the radiant system // Radiant system does not need the damping coefficient terms (hopefully) // Partitions are assumed to be symmetric - Real64 const RadSysDiv( 1.0 / ( Construct( ConstrNum ).CTFInside( 0 ) - Construct( ConstrNum ).CTFCross( 0 ) + HConvIn( SurfNum ) ) ); + Real64 const RadSysDiv( 1.0 / ( construct.CTFInside( 0 ) - construct.CTFCross( 0 ) + HConvIn_surf ) ); RadSysToHBConstCoef( SurfNum ) = RadSysTiHBConstCoef( SurfNum ) = TempTerm * RadSysDiv; // Constant portion of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Radiant flux from high temperature radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Net radiant exchange with other zone surfaces | Cond term (both partition sides same temp) | Cond term (both partition sides same temp) | Convection and damping term RadSysToHBTinCoef( SurfNum ) = RadSysTiHBToutCoef( SurfNum ) = 0.0; // The outside temp is assumed to be equal to the inside temp for a partition - RadSysToHBQsrcCoef( SurfNum ) = RadSysTiHBQsrcCoef( SurfNum ) = Construct( ConstrNum ).CTFSourceIn( 0 ) * RadSysDiv; // QTF term for the source | Cond term (both partition sides same temp) | Cond term (both partition sides same temp) | Convection and damping term + RadSysToHBQsrcCoef( SurfNum ) = RadSysTiHBQsrcCoef( SurfNum ) = construct.CTFSourceIn( 0 ) * RadSysDiv; // QTF term for the source | Cond term (both partition sides same temp) | Cond term (both partition sides same temp) | Convection and damping term } @@ -5207,16 +5172,16 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in if ( surface.HeatTransferAlgorithm == HeatTransferModel_CTF || surface.HeatTransferAlgorithm == HeatTransferModel_EMPD ) { // Regular CTF Surface and/or EMPD surface if ( surface.HeatTransferAlgorithm == HeatTransferModel_EMPD ) { - CalcMoistureBalanceEMPD( SurfNum, TempSurfInTmp( SurfNum ), TH22, MAT( ZoneNum ), TempSurfInSat ); + CalcMoistureBalanceEMPD( SurfNum, TempSurfInTmp( SurfNum ), TH22, MAT_zone, TempSurfInSat ); } //Pre-calculate a few terms - Real64 const TempTerm( CTFConstInPart( SurfNum ) + QRadThermInAbs( SurfNum ) + QRadSWInAbs( SurfNum ) + HConvIn( SurfNum ) * RefAirTemp( SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + NetLWRadToSurf( SurfNum ) ); - Real64 const TempDiv( 1.0 / ( Construct( ConstrNum ).CTFInside( 0 ) + HConvIn( SurfNum ) + IterDampConst ) ); + Real64 const TempTerm( CTFConstInPart( SurfNum ) + QRadThermInAbs( SurfNum ) + QRadSWInAbs( SurfNum ) + HConvIn_surf * RefAirTemp( SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + NetLWRadToSurf( SurfNum ) ); + Real64 const TempDiv( 1.0 / ( construct.CTFInside( 0 ) + HConvIn_surf + IterDampConst ) ); // Calculate the current inside surface temperature - if ( ( ! surface.IsPool ) || ( ( surface.IsPool ) && ( abs( QPoolSurfNumerator( SurfNum ) ) < SmallNumber ) && ( abs( PoolHeatTransCoefs( SurfNum )) < SmallNumber ) ) ) { - TempSurfInTmp( SurfNum ) = ( TempTerm + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( SurfNum, 1 ) + IterDampConst * TempInsOld( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TH11 ) * TempDiv; // Constant part of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Heat source/sink term for radiant systems | (if there is one present) | Radiant flux from high temp radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Iterative damping term (for stability) | Current conduction from | the outside surface | Coefficient for conduction (current time) | Convection and damping term + if ( ( ! surface.IsPool ) || ( ( surface.IsPool ) && ( abs( QPoolSurfNumerator( SurfNum ) ) < SmallNumber ) && ( abs( PoolHeatTransCoefs( SurfNum ) ) < SmallNumber ) ) ) { + TempSurfInTmp( SurfNum ) = ( TempTerm + construct.CTFSourceIn( 0 ) * QsrcHist( 1, SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + construct.CTFCross( 0 ) * TH11 ) * TempDiv; // Constant part of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Heat source/sink term for radiant systems | (if there is one present) | Radiant flux from high temp radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Iterative damping term (for stability) | Current conduction from | the outside surface | Coefficient for conduction (current time) | Convection and damping term } else { // surface is a pool and the pool has been simulated this time step - TempSurfInTmp( SurfNum ) = ( CTFConstInPart( SurfNum ) + QPoolSurfNumerator( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TH11 ) / ( Construct( ConstrNum ).CTFInside( 0 ) + PoolHeatTransCoefs( SurfNum ) + IterDampConst ); // Constant part of conduction eq (history terms) | Pool modified terms (see non-pool equation for details) | Iterative damping term (for stability) | Current conduction from | the outside surface | Coefficient for conduction (current time) | Pool and damping term + TempSurfInTmp( SurfNum ) = ( CTFConstInPart( SurfNum ) + QPoolSurfNumerator( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + construct.CTFCross( 0 ) * TH11 ) / ( construct.CTFInside( 0 ) + PoolHeatTransCoefs( SurfNum ) + IterDampConst ); // Constant part of conduction eq (history terms) | Pool modified terms (see non-pool equation for details) | Iterative damping term (for stability) | Current conduction from | the outside surface | Coefficient for conduction (current time) | Pool and damping term } if ( surface.HeatTransferAlgorithm == HeatTransferModel_EMPD ) { TempSurfInTmp( SurfNum ) -= MoistEMPDFlux( SurfNum ) * TempDiv; // Coefficient for conduction (current time) | Convection and damping term @@ -5227,13 +5192,13 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in // if any mixed heat transfer models in zone, apply limits to CTF result if ( any_surface_ConFD_or_HAMT( ZoneNum ) ) TempSurfInTmp( SurfNum ) = max( MinSurfaceTempLimit, min( MaxSurfaceTempLimit, TempSurfInTmp( SurfNum ) ) ); // Limit Check //Tuned Precomputed condition to eliminate loop - if ( Construct( ConstrNum ).SourceSinkPresent ) { // Set the appropriate parameters for the radiant system + if ( construct.SourceSinkPresent ) { // Set the appropriate parameters for the radiant system // Radiant system does not need the damping coefficient terms (hopefully) - Real64 const RadSysDiv( 1.0 / ( Construct( ConstrNum ).CTFInside( 0 ) + HConvIn( SurfNum ) ) ); + Real64 const RadSysDiv( 1.0 / ( construct.CTFInside( 0 ) + HConvIn_surf ) ); RadSysTiHBConstCoef( SurfNum ) = TempTerm * RadSysDiv; // Constant portion of cond eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Radiant flux from high temp radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Net radiant exchange with other zone surfaces | Cond term (both partition sides same temp) | Convection and damping term - RadSysTiHBToutCoef( SurfNum ) = Construct( ConstrNum ).CTFCross( 0 ) * RadSysDiv; // Outside temp=inside temp for a partition | Cond term (both partition sides same temp) | Convection and damping term - RadSysTiHBQsrcCoef( SurfNum ) = Construct( ConstrNum ).CTFSourceIn( 0 ) * RadSysDiv; // QTF term for the source | Cond term (both partition sides same temp) | Convection and damping term + RadSysTiHBToutCoef( SurfNum ) = construct.CTFCross( 0 ) * RadSysDiv; // Outside temp=inside temp for a partition | Cond term (both partition sides same temp) | Convection and damping term + RadSysTiHBQsrcCoef( SurfNum ) = construct.CTFSourceIn( 0 ) * RadSysDiv; // QTF term for the source | Cond term (both partition sides same temp) | Convection and damping term if ( surface.ExtBoundCond > 0 ) { // This is an interzone partition and we need to set outside params // The inside coefficients of one side are equal to the outside coefficients of the other side. But, @@ -5276,20 +5241,20 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in } else { // Movable insulation present - if ( Construct( ConstrNum ).SourceSinkPresent && firstTime ) ShowSevereError( "Movable insulation is not valid with embedded sources/sinks" ); + if ( construct.SourceSinkPresent && firstTime ) ShowSevereError( "Movable insulation is not valid with embedded sources/sinks" ); - F1 = HMovInsul / ( HMovInsul + HConvIn( SurfNum ) + IterDampConst ); + F1 = HMovInsul / ( HMovInsul + HConvIn_surf + IterDampConst ); - TempSurfIn( SurfNum ) = ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TH11 + F1 * ( QRadThermInAbs( SurfNum ) + HConvIn( SurfNum ) * RefAirTemp( SurfNum ) + NetLWRadToSurf( SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) ) ) / ( Construct( ConstrNum ).CTFInside( 0 ) + HMovInsul - F1 * HMovInsul ); // Convection from surface to zone air + TempSurfIn( SurfNum ) = ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + construct.CTFCross( 0 ) * TH11 + F1 * ( QRadThermInAbs( SurfNum ) + HConvIn_surf * RefAirTemp( SurfNum ) + NetLWRadToSurf( SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) ) ) / ( construct.CTFInside( 0 ) + HMovInsul - F1 * HMovInsul ); // Convection from surface to zone air - TempSurfInTmp( SurfNum ) = ( Construct( ConstrNum ).CTFInside( 0 ) * TempSurfIn( SurfNum ) + HMovInsul * TempSurfIn( SurfNum ) - QRadSWInAbs( SurfNum ) - CTFConstInPart( SurfNum ) - Construct( ConstrNum ).CTFCross( 0 ) * TH11 ) / ( HMovInsul ); + TempSurfInTmp( SurfNum ) = ( construct.CTFInside( 0 ) * TempSurfIn( SurfNum ) + HMovInsul * TempSurfIn( SurfNum ) - QRadSWInAbs( SurfNum ) - CTFConstInPart( SurfNum ) - construct.CTFCross( 0 ) * TH11 ) / ( HMovInsul ); // if any mixed heat transfer models in zone, apply limits to CTF result if ( any_surface_ConFD_or_HAMT( ZoneNum ) ) TempSurfInTmp( SurfNum ) = max( MinSurfaceTempLimit, min( MaxSurfaceTempLimit, TempSurfInTmp( SurfNum ) ) ); // Limit Check //Tuned Precomputed condition to eliminate loop } } else { // Window - if ( Construct( ConstrNum ).SourceSinkPresent && firstTime ) ShowSevereError( "Windows are not allowed to have embedded sources/sinks" ); + if ( construct.SourceSinkPresent && firstTime ) ShowSevereError( "Windows are not allowed to have embedded sources/sinks" ); if ( SurfaceWindow( SurfNum ).OriginalClass == SurfaceClass_TDD_Diffuser ) { // Tubular daylighting device // Lookup up the TDD:DOME object @@ -5300,24 +5265,24 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in // Similar to opaque surface but outside surface temp of TDD:DOME is used, and no embedded sources/sinks. // Absorbed shortwave radiation is treated similar to a regular window, but only 1 glass layer is allowed. // = QRadSWwinAbs(SurfNum,1)/2.0 - TempSurfIn( SurfNum ) = TempSurfInTmp( SurfNum ) = ( QRadThermInAbs( SurfNum ) + QRadSWwinAbs( SurfNum, 1 ) / 2.0 + HConvIn( SurfNum ) * RefAirTemp( SurfNum ) + NetLWRadToSurf( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + Ueff * TH( SurfNum2, 1, 1 ) ) / ( Ueff + HConvIn( SurfNum ) + IterDampConst ); // LW radiation from internal sources | SW radiation from internal sources and solar | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Iterative damping term (for stability) | Current conduction from the outside surface | Coefficient for conduction (current time) | Convection and damping term + TempSurfIn( SurfNum ) = TempSurfInTmp( SurfNum ) = ( QRadThermInAbs( SurfNum ) + QRadSWwinAbs( SurfNum, 1 ) / 2.0 + HConvIn_surf * RefAirTemp( SurfNum ) + NetLWRadToSurf( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + Ueff * TH( SurfNum2, 1, 1 ) ) / ( Ueff + HConvIn_surf + IterDampConst ); // LW radiation from internal sources | SW radiation from internal sources and solar | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Iterative damping term (for stability) | Current conduction from the outside surface | Coefficient for conduction (current time) | Convection and damping term Real64 const Sigma_Temp_4( Sigma * pow_4( TempSurfIn( SurfNum ) ) ); // Calculate window heat gain for TDD:DIFFUSER since this calculation is usually done in WindowManager - WinHeatGain( SurfNum ) = WinTransSolar( SurfNum ) + HConvIn( SurfNum ) * surface.Area * ( TempSurfIn( SurfNum ) - RefAirTemp( SurfNum ) ) + Construct( surface.Construction ).InsideAbsorpThermal * surface.Area * ( Sigma_Temp_4 - ( SurfaceWindow( SurfNum ).IRfromParentZone + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) ) ) - QS( surface.Zone ) * surface.Area * Construct( surface.Construction ).TransDiff; // Transmitted solar | Convection | IR exchange | IR + WinHeatGain( SurfNum ) = WinTransSolar( SurfNum ) + HConvIn_surf * surface.Area * ( TempSurfIn( SurfNum ) - RefAirTemp( SurfNum ) ) + Construct( surface.Construction ).InsideAbsorpThermal * surface.Area * ( Sigma_Temp_4 - ( SurfaceWindow( SurfNum ).IRfromParentZone + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) ) ) - QS( surface.Zone ) * surface.Area * Construct( surface.Construction ).TransDiff; // Transmitted solar | Convection | IR exchange | IR // Zone diffuse interior shortwave reflected back into the TDD - //fill out report vars for components of Window Heat Gain - WinGainConvGlazToZoneRep( SurfNum ) = HConvIn( SurfNum ) * surface.Area * ( TempSurfIn( SurfNum ) - RefAirTemp( SurfNum ) ); + // fill out report vars for components of Window Heat Gain + WinGainConvGlazToZoneRep( SurfNum ) = HConvIn_surf * surface.Area * ( TempSurfIn( SurfNum ) - RefAirTemp( SurfNum ) ); WinGainIRGlazToZoneRep( SurfNum ) = Construct( surface.Construction ).InsideAbsorpThermal * surface.Area * ( Sigma_Temp_4 - ( SurfaceWindow( SurfNum ).IRfromParentZone + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) ) ); WinLossSWZoneToOutWinRep( SurfNum ) = QS( surface.Zone ) * surface.Area * Construct( surface.Construction ).TransDiff; if ( WinHeatGain( SurfNum ) >= 0.0 ) { WinHeatGainRep( SurfNum ) = WinHeatGain( SurfNum ); - WinHeatGainRepEnergy( SurfNum ) = WinHeatGainRep( SurfNum ) * TimeStepZone * SecInHour; + WinHeatGainRepEnergy( SurfNum ) = WinHeatGainRep( SurfNum ) * TimeStepZoneSec; } else { WinHeatLossRep( SurfNum ) = -WinHeatGain( SurfNum ); - WinHeatLossRepEnergy( SurfNum ) = WinHeatLossRep( SurfNum ) * TimeStepZone * SecInHour; + WinHeatLossRepEnergy( SurfNum ) = WinHeatLossRep( SurfNum ) * TimeStepZoneSec; } TDDPipe( PipeNum ).HeatGain = WinHeatGainRep( SurfNum ); @@ -5331,8 +5296,8 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in // (HeatBalanceSurfaceManager USEing and WindowManager and // WindowManager USEing HeatBalanceSurfaceManager) if ( surface.ExtBoundCond == ExternalEnvironment ) { - RoughSurf = Material( Construct( ConstrNum ).LayerPoint( 1 ) ).Roughness; - EmisOut = Material( Construct( ConstrNum ).LayerPoint( 1 ) ).AbsorpThermalFront; + RoughSurf = Material( construct.LayerPoint( 1 ) ).Roughness; + EmisOut = Material( construct.LayerPoint( 1 ) ).AbsorpThermalFront; auto const shading_flag( SurfaceWindow( SurfNum ).ShadingFlag ); if ( shading_flag == ExtShadeOn || shading_flag == ExtBlindOn || shading_flag == ExtScreenOn ) { // Exterior shade in place @@ -5342,7 +5307,7 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in } // Get the outside effective emissivity for Equivalent layer model - if ( Construct( ConstrNum ).WindowTypeEQL ) { + if ( construct.WindowTypeEQL ) { EmisOut = EQLWindowOutsideEffectiveEmiss( ConstrNum ); } // Set Exterior Convection Coefficient... @@ -5381,10 +5346,10 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in CalcWindowHeatBalance( SurfNum, HcExtSurf( SurfNum ), TempSurfInTmp( SurfNum ), TH11 ); if ( WinHeatGain( SurfNum ) >= 0.0 ) { WinHeatGainRep( SurfNum ) = WinHeatGain( SurfNum ); - WinHeatGainRepEnergy( SurfNum ) = WinHeatGainRep( SurfNum ) * TimeStepZone * SecInHour; + WinHeatGainRepEnergy( SurfNum ) = WinHeatGainRep( SurfNum ) * TimeStepZoneSec; } else { WinHeatLossRep( SurfNum ) = -WinHeatGain( SurfNum ); - WinHeatLossRepEnergy( SurfNum ) = WinHeatLossRep( SurfNum ) * TimeStepZone * SecInHour; + WinHeatLossRepEnergy( SurfNum ) = WinHeatLossRep( SurfNum ) * TimeStepZoneSec; } TempSurfIn( SurfNum ) = TempSurfInTmp( SurfNum ); @@ -5393,15 +5358,14 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in } } // ...end of inside surface heat balance equation selection - TH12 = TempSurfIn( SurfNum ); - TempSurfInRep( SurfNum ) = TempSurfIn( SurfNum ); + TH12 = TempSurfInRep( SurfNum ) = TempSurfIn( SurfNum ); TempSurfOut( SurfNum ) = TH11; // For reporting // sign convention is positive means energy going into inside face from the air. - auto const HConvInTemp_fac( -HConvIn( SurfNum ) * ( TempSurfIn( SurfNum ) - RefAirTemp( SurfNum ) ) ); + auto const HConvInTemp_fac( -HConvIn_surf * ( TempSurfIn( SurfNum ) - RefAirTemp( SurfNum ) ) ); QdotConvInRep( SurfNum ) = surface.Area * HConvInTemp_fac; QdotConvInRepPerArea( SurfNum ) = HConvInTemp_fac; - QConvInReport( SurfNum ) = QdotConvInRep( SurfNum ) * SecInHour * TimeStepZone; + QConvInReport( SurfNum ) = QdotConvInRep( SurfNum ) * TimeStepZoneSec; // The QdotConvInRep which is called "Surface Inside Face Convection Heat Gain" is stored during // sizing for both the normal and pulse cases so that load components can be derived later. @@ -5723,10 +5687,10 @@ CalcHeatBalanceInsideSurf( Optional_int_const ZoneToResimulate ) // if passed in for ( int ZoneNum = ( PartialResimulate ? ZoneToResimulate() : 1 ), ZoneNum_end = ( PartialResimulate ? ZoneToResimulate() : NumOfZones ); ZoneNum <= ZoneNum_end; ++ZoneNum ) { if ( ZoneWinHeatGain( ZoneNum ) >= 0.0 ) { ZoneWinHeatGainRep( ZoneNum ) = ZoneWinHeatGain( ZoneNum ); - ZoneWinHeatGainRepEnergy( ZoneNum ) = ZoneWinHeatGainRep( ZoneNum ) * TimeStepZone * SecInHour; + ZoneWinHeatGainRepEnergy( ZoneNum ) = ZoneWinHeatGainRep( ZoneNum ) * TimeStepZoneSec; } else { ZoneWinHeatLossRep( ZoneNum ) = -ZoneWinHeatGain( ZoneNum ); - ZoneWinHeatLossRepEnergy( ZoneNum ) = ZoneWinHeatLossRep( ZoneNum ) * TimeStepZone * SecInHour; + ZoneWinHeatLossRepEnergy( ZoneNum ) = ZoneWinHeatLossRep( ZoneNum ) * TimeStepZoneSec; } } @@ -5824,20 +5788,17 @@ CalcOutsideSurfTemp( // FLOW: // Determine whether or not movable insulation is present - if ( HMovInsul > 0.0 ) { - MovInsulPresent = true; - } else { - MovInsulPresent = false; - } + MovInsulPresent = ( HMovInsul > 0.0 ); // Determine whether this surface is a "slow conductive" or "quick conductive" // surface. Designates are inherited from BLAST. Basically, a "quick" surface // requires the inside heat balance to be accounted for in the heat balance // while a "slow" surface can used the last time step's value for inside // surface temperature. - if ( Construct( ConstrNum ).CTFCross( 0 ) > 0.01 ) { + auto const & construct( Construct( ConstrNum ) ); + if ( construct.CTFCross( 0 ) > 0.01 ) { QuickConductionSurf = true; - F1 = Construct( ConstrNum ).CTFCross( 0 ) / ( Construct( ConstrNum ).CTFInside( 0 ) + HConvIn( SurfNum ) ); + F1 = construct.CTFCross( 0 ) / ( construct.CTFInside( 0 ) + HConvIn( SurfNum ) ); } else { QuickConductionSurf = false; } @@ -5863,15 +5824,15 @@ CalcOutsideSurfTemp( // Absorbed shortwave radiation is treated similar to a regular window, but only 1 glass layer is allowed. // QRadSWOutAbs(SurfNum) does not apply for TDD:DOME, must use QRadSWwinAbs(SurfNum,1)/2.0 instead. //+Construct(ConstrNum)%CTFSourceOut(0) & TDDs cannot be radiant systems - // *QsrcHist(SurfNum,1) & + // *QsrcHist(1,SurfNum) & //+Construct(ConstrNum)%CTFSourceIn(0) & TDDs cannot be radiant systems - // *QsrcHist(SurfNum,1) & + // *QsrcHist(1,SurfNum) & TH11 = ( QRadSWwinAbs( SurfNum, 1 ) / 2.0 + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp + F1 * ( QRadSWwinAbs( SurfNum2, 1 ) / 2.0 + QRadThermInAbs( SurfNum2 ) + HConvIn( SurfNum2 ) * MAT( ZoneNum2 ) + NetLWRadToSurf( SurfNum2 ) ) ) / ( Ueff + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) - F1 * Ueff ); // Instead of QRadSWOutAbs(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 // Outside heat balance case: No movable insulation, slow conduction } else if ( ( ! MovInsulPresent ) && ( ! QuickConductionSurf ) ) { if ( Surface( SurfNum ).OSCMPtr == 0 ) { - TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp + Construct( ConstrNum ).CTFCross( 0 ) * TempSurfIn( SurfNum ) + Construct( ConstrNum ).CTFSourceOut( 0 ) * QsrcHist( SurfNum, 1 ) ) / ( Construct( ConstrNum ).CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) ); // ODB used to approx ground surface temp + TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp + construct.CTFCross( 0 ) * TempSurfIn( SurfNum ) + construct.CTFSourceOut( 0 ) * QsrcHist( 1, SurfNum ) ) / ( construct.CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) ); // ODB used to approx ground surface temp // Outside Heat Balance case: Other Side Conditions Model } else { //( Surface(SurfNum)%OSCMPtr > 0 ) THEN // local copies of variables for clarity in radiation terms @@ -5879,33 +5840,33 @@ CalcOutsideSurfTemp( HRad = OSCM( Surface( SurfNum ).OSCMPtr ).HRad; // patterned after "No movable insulation, slow conduction," but with new radiation terms and no sun, - TH11 = ( -CTFConstOutPart( SurfNum ) + HcExtSurf( SurfNum ) * TempExt + HRad * RadTemp + Construct( ConstrNum ).CTFCross( 0 ) * TempSurfIn( SurfNum ) + Construct( ConstrNum ).CTFSourceOut( 0 ) * QsrcHist( SurfNum, 1 ) ) / ( Construct( ConstrNum ).CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HRad ); + TH11 = ( -CTFConstOutPart( SurfNum ) + HcExtSurf( SurfNum ) * TempExt + HRad * RadTemp + construct.CTFCross( 0 ) * TempSurfIn( SurfNum ) + construct.CTFSourceOut( 0 ) * QsrcHist( 1, SurfNum ) ) / ( construct.CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HRad ); } // Outside heat balance case: No movable insulation, quick conduction } else if ( ( ! MovInsulPresent ) && ( QuickConductionSurf ) ) { if ( Surface( SurfNum ).OSCMPtr == 0 ) { - TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp + Construct( ConstrNum ).CTFSourceOut( 0 ) * QsrcHist( SurfNum, 1 ) + F1 * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( SurfNum, 1 ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ) ) / ( Construct( ConstrNum ).CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) - F1 * Construct( ConstrNum ).CTFCross( 0 ) ); // ODB used to approx ground surface temp | MAT use here is problem for room air models + TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp + construct.CTFSourceOut( 0 ) * QsrcHist( 1, SurfNum ) + F1 * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + construct.CTFSourceIn( 0 ) * QsrcHist( 1, SurfNum ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ) ) / ( construct.CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( 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 } else { //( Surface(SurfNum)%OSCMPtr > 0 ) THEN // local copies of variables for clarity in radiation terms RadTemp = OSCM( Surface( SurfNum ).OSCMPtr ).TRad; HRad = OSCM( Surface( SurfNum ).OSCMPtr ).HRad; // patterned after "No movable insulation, quick conduction," but with new radiation terms and no sun, - TH11 = ( -CTFConstOutPart( SurfNum ) + HcExtSurf( SurfNum ) * TempExt + HRad * RadTemp + Construct( ConstrNum ).CTFSourceOut( 0 ) * QsrcHist( SurfNum, 1 ) + F1 * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( SurfNum, 1 ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ) ) / ( Construct( ConstrNum ).CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HRad - F1 * Construct( ConstrNum ).CTFCross( 0 ) ); // MAT use here is problem for room air models + TH11 = ( -CTFConstOutPart( SurfNum ) + HcExtSurf( SurfNum ) * TempExt + HRad * RadTemp + construct.CTFSourceOut( 0 ) * QsrcHist( 1, SurfNum ) + F1 * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + construct.CTFSourceIn( 0 ) * QsrcHist( 1, SurfNum ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ) ) / ( construct.CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HRad - F1 * construct.CTFCross( 0 ) ); // MAT use here is problem for room air models } // Outside heat balance case: Movable insulation, slow conduction } else if ( ( MovInsulPresent ) && ( ! QuickConductionSurf ) ) { F2 = HMovInsul / ( HMovInsul + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) ); - TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TempSurfIn( SurfNum ) + F2 * ( QRadSWOutMvIns( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp ) ) / ( Construct( ConstrNum ).CTFOutside( 0 ) + HMovInsul - F2 * HMovInsul ); // ODB used to approx ground surface temp + TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + construct.CTFCross( 0 ) * TempSurfIn( SurfNum ) + F2 * ( QRadSWOutMvIns( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp ) ) / ( 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 + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) ); - TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + F1 * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ) + F2 * ( QRadSWOutMvIns( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp ) ) / ( Construct( ConstrNum ).CTFOutside( 0 ) + HMovInsul - F2 * HMovInsul - F1 * Construct( ConstrNum ).CTFCross( 0 ) ); // ODB used to approx ground surface temp + TH11 = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + F1 * ( CTFConstInPart( SurfNum ) + QRadSWInAbs( SurfNum ) + QRadThermInAbs( SurfNum ) + HConvIn( SurfNum ) * MAT( ZoneNum ) + NetLWRadToSurf( SurfNum ) ) + F2 * ( QRadSWOutMvIns( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp ) ) / ( 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 @@ -5913,22 +5874,22 @@ CalcOutsideSurfTemp( Real64 const HExtSurf_fac( -( HSkyExtSurf( SurfNum ) * ( TH11 - SkyTemp ) + HAirExtSurf( SurfNum ) * ( TH11 - TempExt ) + HGrdExtSurf( SurfNum ) * ( TH11 - OutDryBulbTemp ) ) ); QdotRadOutRep( SurfNum ) = Surface( SurfNum ).Area * HExtSurf_fac; QdotRadOutRepPerArea( SurfNum ) = HExtSurf_fac; - QRadOutReport( SurfNum ) = QdotRadOutRep( SurfNum ) * SecInHour * TimeStepZone; + QRadOutReport( SurfNum ) = QdotRadOutRep( SurfNum ) * TimeStepZoneSec; // Set the radiant system heat balance coefficients if this surface is also a radiant system - if ( Construct( ConstrNum ).SourceSinkPresent ) { + if ( construct.SourceSinkPresent ) { if ( MovInsulPresent ) { // Note: if movable insulation is ever added back in correctly, the heat balance equations above must be fixed ShowFatalError( "Movable insulation is not allowed on a radiant system surface at this time" ); } else { - Real64 const RadSysDiv( 1.0 / ( Construct( ConstrNum ).CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) ) ); + Real64 const RadSysDiv( 1.0 / ( construct.CTFOutside( 0 ) + HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) + HSkyExtSurf( SurfNum ) + HGrdExtSurf( SurfNum ) ) ); RadSysToHBConstCoef( SurfNum ) = ( -CTFConstOutPart( SurfNum ) + QRadSWOutAbs( SurfNum ) + ( HcExtSurf( SurfNum ) + HAirExtSurf( SurfNum ) ) * TempExt + HSkyExtSurf( SurfNum ) * SkyTemp + HGrdExtSurf( SurfNum ) * OutDryBulbTemp ) * RadSysDiv; // ODB used to approx ground surface temp - RadSysToHBTinCoef( SurfNum ) = Construct( ConstrNum ).CTFCross( 0 ) * RadSysDiv; + RadSysToHBTinCoef( SurfNum ) = construct.CTFCross( 0 ) * RadSysDiv; - RadSysToHBQsrcCoef( SurfNum ) = Construct( ConstrNum ).CTFSourceOut( 0 ) * RadSysDiv; + RadSysToHBQsrcCoef( SurfNum ) = construct.CTFSourceOut( 0 ) * RadSysDiv; } } @@ -6122,7 +6083,7 @@ GatherComponentLoadsSurfAbsFact() // ***************************************************************************** // NOTICE -// Copyright � 1996-2014 The Board of Trustees of the University of Illinois +// Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/HeatRecovery.cc b/src/EnergyPlus/HeatRecovery.cc index 2e440ec510a..65cebec3040 100644 --- a/src/EnergyPlus/HeatRecovery.cc +++ b/src/EnergyPlus/HeatRecovery.cc @@ -3112,7 +3112,7 @@ namespace HeatRecovery { Real64 GetResidCrossFlowBothUnmixed( Real64 const NTU, // number of transfer units - Optional< FArray1S< Real64 > const > Par // par(1) = Eps, par(2) = Z + FArray1< Real64 > const & Par // par(1) = Eps, par(2) = Z ) { @@ -3159,7 +3159,7 @@ namespace HeatRecovery { // FUNCTION LOCAL VARIABLE DECLARATIONS: - Residuum = 1.0 - std::exp( ( std::exp( -std::pow( NTU, 0.78 ) * Par()( 2 ) ) - 1.0 ) / Par()( 2 ) * std::pow( NTU, 0.22 ) ) - Par()( 1 ); + Residuum = 1.0 - std::exp( ( std::exp( -std::pow( NTU, 0.78 ) * Par( 2 ) ) - 1.0 ) / Par( 2 ) * std::pow( NTU, 0.22 ) ) - Par( 1 ); return Residuum; diff --git a/src/EnergyPlus/HeatRecovery.hh b/src/EnergyPlus/HeatRecovery.hh index 14565d73fde..098418e1a06 100644 --- a/src/EnergyPlus/HeatRecovery.hh +++ b/src/EnergyPlus/HeatRecovery.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -1258,7 +1257,7 @@ namespace HeatRecovery { Real64 GetResidCrossFlowBothUnmixed( Real64 const NTU, // number of transfer units - Optional< FArray1S< Real64 > const > Par = _ // par(1) = Eps, par(2) = Z + FArray1< Real64 > const & Par // par(1) = Eps, par(2) = Z ); void diff --git a/src/EnergyPlus/Humidifiers.cc b/src/EnergyPlus/Humidifiers.cc index d598f5066a0..90696c01f11 100644 --- a/src/EnergyPlus/Humidifiers.cc +++ b/src/EnergyPlus/Humidifiers.cc @@ -539,18 +539,18 @@ namespace Humidifiers { Real64 WaterSpecHeatAvg; // specific heat of water, J/kgK Real64 SteamSatEnthalpy; // enthalpy of saturated steam at 100C, J/kg Real64 WaterSatEnthalpy; // enthalpy of saturated water at 100C, J/kg - bool IsAutoSize; // Indicator to autosize - bool HardSizeNoDesRun; // Indicator to a hard-sized field with no design sizing data - Real64 NomPowerDes; // Autosized nominal power for reporting - Real64 NomPowerUser; // Hardsized nominal power for reporting - Real64 MassFlowDes; // Design air mass flow rate - Real64 InletHumRatDes; // Design inlet humidity ratio - Real64 OutletHumRatDes; // Design outlet humidity ratio - Real64 NomCapVolDes; // Autosized Nominal capacity volume for reporting - Real64 NomCapVolUser; // HardSized nominal capacity volume for reporting - Real64 AirVolFlow; // Design air volume flow rate - Real64 AirDensity; // Density of air - + bool IsAutoSize; // Indicator to autosize + bool HardSizeNoDesRun; // Indicator to a hard-sized field with no design sizing data + Real64 NomPowerDes; // Autosized nominal power for reporting + Real64 NomPowerUser; // Hardsized nominal power for reporting + Real64 MassFlowDes; // Design air mass flow rate + Real64 InletHumRatDes; // Design inlet humidity ratio + Real64 OutletHumRatDes; // Design outlet humidity ratio + Real64 NomCapVolDes; // Autosized Nominal capacity volume for reporting + Real64 NomCapVolUser; // HardSized nominal capacity volume for reporting + Real64 AirVolFlow; // Design air volume flow rate + Real64 AirDensity; // Density of air + if ( Humidifier( HumNum ).HumType_Code == Humidifier_Steam_Electric ) { IsAutoSize = false; @@ -587,42 +587,42 @@ namespace Humidifiers { if ( FinalSysSizing( CurSysNum ).DesOutAirVolFlow > 0.0 ) { AirDensity = PsyRhoAirFnPbTdbW( OutBaroPress, OutDryBulbTemp, OutHumRat, CalledFrom ); MassFlowDes = FinalSysSizing( CurSysNum ).DesOutAirVolFlow * AirDensity; - InletHumRatDes = std::min( FinalSysSizing( CurSysNum ).CoolOutHumRat, FinalSysSizing( CurSysNum ).HeatOutHumRat ); + InletHumRatDes = std::min( FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak, FinalSysSizing( CurSysNum ).HeatOutHumRat ); OutletHumRatDes = std::max( FinalSysSizing( CurSysNum ).CoolSupHumRat, FinalSysSizing( CurSysNum ).HeatSupHumRat ); } else { // ELSE size to supply air duct flow rate auto const SELECT_CASE_var( CurDuctType ); if ( SELECT_CASE_var == Main ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; } else if ( SELECT_CASE_var == Cooling ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesCoolVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesCoolVolFlow; } else if ( SELECT_CASE_var == Heating ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesHeatVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesHeatVolFlow; } else if ( SELECT_CASE_var == Other ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; } else { AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; } - AirDensity = PsyRhoAirFnPbTdbW( OutBaroPress, FinalSysSizing( CurSysNum ).CoolMixTemp, FinalSysSizing( CurSysNum ).CoolMixHumRat, CalledFrom ); + AirDensity = PsyRhoAirFnPbTdbW( OutBaroPress, FinalSysSizing( CurSysNum ).MixTempAtCoolPeak, FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak, CalledFrom ); MassFlowDes = AirVolFlow * AirDensity; - InletHumRatDes = min( FinalSysSizing( CurSysNum ).CoolMixHumRat, FinalSysSizing( CurSysNum ).HeatMixHumRat); + InletHumRatDes = min( FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak, FinalSysSizing( CurSysNum ).HeatMixHumRat); OutletHumRatDes = max( FinalSysSizing( CurSysNum ).CoolSupHumRat, FinalSysSizing( CurSysNum ).HeatSupHumRat); } } else { auto const SELECT_CASE_var( CurDuctType ); if ( SELECT_CASE_var == Main ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; } else if ( SELECT_CASE_var == Cooling ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesCoolVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesCoolVolFlow; } else if ( SELECT_CASE_var == Heating ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesHeatVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesHeatVolFlow; } else if ( SELECT_CASE_var == Other ) { - AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; + AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; } else { AirVolFlow = FinalSysSizing( CurSysNum ).DesMainVolFlow; } - AirDensity = PsyRhoAirFnPbTdbW( OutBaroPress, FinalSysSizing( CurSysNum ).CoolMixTemp, FinalSysSizing( CurSysNum ).CoolMixHumRat, CalledFrom ); + AirDensity = PsyRhoAirFnPbTdbW( OutBaroPress, FinalSysSizing( CurSysNum ).MixTempAtCoolPeak, FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak, CalledFrom ); MassFlowDes = AirVolFlow * AirDensity; - InletHumRatDes = std::min( FinalSysSizing( CurSysNum ).CoolMixHumRat, FinalSysSizing( CurSysNum ).HeatMixHumRat ); + InletHumRatDes = std::min( FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak, FinalSysSizing( CurSysNum ).HeatMixHumRat ); OutletHumRatDes = std::max( FinalSysSizing( CurSysNum ).CoolSupHumRat, FinalSysSizing( CurSysNum ).HeatSupHumRat); } } @@ -671,19 +671,19 @@ namespace Humidifiers { ReportSizingOutput( "Humidifier:Steam:Electric", Humidifier( HumNum ).Name, "Design Size Rated Power [W]", NomPowerDes ); } else { if ( Humidifier( HumNum ).NomPower >= 0.0 && Humidifier( HumNum ).NomCap > 0.0 ) { - NomPowerUser = Humidifier( HumNum ).NomPower; - ReportSizingOutput( "Humidifier:Steam:Electric", Humidifier( HumNum ).Name, "Design Size Rated Power [W]", NomPowerDes, "User-Specified Rated Power [W]", NomPowerUser); - if ( DisplayExtraWarnings ) { - if ( ( std::abs( NomPowerDes - NomPowerUser ) / NomPowerUser ) > AutoVsHardSizingThreshold ) { - ShowMessage( "SizeHumidifier: Potential issue with equipment sizing for Humidifier:Steam:Electric=\"" + Humidifier( HumNum ).Name + "\"." ); - ShowContinueError( "User-Specified Rated Power of " + RoundSigDigits( NomPowerUser, 2 ) + " [W]" ); - ShowContinueError( "differs from Design Size Rated Power of " + RoundSigDigits( NomPowerDes, 2 ) + " [W]" ); - ShowContinueError( "This may, or may not, indicate mismatched component sizes." ); - ShowContinueError( "Verify that the value entered is intended and is consistent with other components." ); - } - } + NomPowerUser = Humidifier( HumNum ).NomPower; + ReportSizingOutput( "Humidifier:Steam:Electric", Humidifier( HumNum ).Name, "Design Size Rated Power [W]", NomPowerDes, "User-Specified Rated Power [W]", NomPowerUser ); + if ( DisplayExtraWarnings ) { + if ( ( std::abs( NomPowerDes - NomPowerUser ) / NomPowerUser ) > AutoVsHardSizingThreshold ) { + ShowMessage( "SizeHumidifier: Potential issue with equipment sizing for Humidifier:Steam:Electric=\"" + Humidifier( HumNum ).Name + "\"." ); + ShowContinueError( "User-Specified Rated Power of " + RoundSigDigits( NomPowerUser, 2 ) + " [W]" ); + ShowContinueError( "differs from Design Size Rated Power of " + RoundSigDigits( NomPowerDes, 2 ) + " [W]" ); + ShowContinueError( "This may, or may not, indicate mismatched component sizes." ); + ShowContinueError( "Verify that the value entered is intended and is consistent with other components." ); + } + } if ( Humidifier( HumNum ).NomPower < NominalPower ) { - ShowWarningError( "Humidifier:Steam:Electric: specified Rated Power is less than nominal Rated " " Power for electric steam humidifier = " + Humidifier( HumNum ).Name + ". " ); + ShowWarningError( "Humidifier:Steam:Electric: specified Rated Power is less than nominal Rated Power for electric steam humidifier = " + Humidifier( HumNum ).Name + ". " ); ShowContinueError( " specified Rated Power = " + RoundSigDigits( Humidifier( HumNum ).NomPower, 2 ) ); ShowContinueError( " while expecting a minimum Rated Power = " + RoundSigDigits( NominalPower, 2 ) ); } @@ -1052,7 +1052,7 @@ namespace Humidifiers { // NOTICE - // Copyright © 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/InputProcessor.cc b/src/EnergyPlus/InputProcessor.cc index 714103e9030..b0ecbf0e6e7 100644 --- a/src/EnergyPlus/InputProcessor.cc +++ b/src/EnergyPlus/InputProcessor.cc @@ -309,7 +309,7 @@ namespace InputProcessor { gio::write( EchoInputFile, fmtLD ) << " Total Number of Fields=" << NumAlphaArgsFound + NumNumericArgsFound; gio::write( EchoInputFile, fmtLD ) << " Processing Input Data File -- Start"; - if ( !DisplayInputInAudit ){ + if ( !DisplayInputInAudit ) { gio::write( EchoInputFile, fmtLD ) << " Echo of input lines is off. May be activated by setting the environmental variable DISPLAYINPUTINAUDIT=YES"; } @@ -2632,7 +2632,7 @@ namespace InputProcessor { if ( EchoInputLine ) { ++NumLines; if ( DisplayInputInAudit ) { - if ( echo_stream ) *echo_stream << std::setw(7) << NumLines << ' ' << InputLine << NL; + if ( echo_stream ) *echo_stream << std::setw( 7 ) << NumLines << ' ' << InputLine << NL; } } EchoInputLine = true; diff --git a/src/EnergyPlus/InternalHeatGains.cc b/src/EnergyPlus/InternalHeatGains.cc index 9546b01f829..94c7448787a 100644 --- a/src/EnergyPlus/InternalHeatGains.cc +++ b/src/EnergyPlus/InternalHeatGains.cc @@ -2496,7 +2496,7 @@ namespace InternalHeatGains { // SetupEMSInternalVariable( "Plug and Process Power Design Level", ZoneITEq( Loop ).Name, "[W]", ZoneITEq( Loop ).DesignTotalPower ); // } // EMS - if ( !ErrorsFound ) SetupZoneInternalGain( ZoneITEq( Loop ).ZonePtr, "ElectricEquipment:ITE:AirCooled", ZoneITEq( Loop ).Name, IntGainTypeOf_ElectricEquipment, ZoneITEq( Loop ).ConGainRateToZone ); + if ( !ErrorsFound ) SetupZoneInternalGain( ZoneITEq( Loop ).ZonePtr, "ElectricEquipment:ITE:AirCooled", ZoneITEq( Loop ).Name, IntGainTypeOf_ElectricEquipmentITEAirCooled, ZoneITEq( Loop ).ConGainRateToZone ); } // Item - Number of ZoneITEq objects } // Check on number of ZoneITEq @@ -2698,7 +2698,7 @@ namespace InternalHeatGains { for ( Loop1 = 1; Loop1 <= TotElecEquip; ++Loop1 ) { if ( ZoneElectric( Loop1 ).ZonePtr != Loop ) continue; ElecTot += ZoneElectric( Loop1 ).DesignLevel; - } + } for ( Loop1 = 1; Loop1 <= NumZoneITEqStatements; ++Loop1 ) { if ( ZoneITEq( Loop1 ).ZonePtr != Loop ) continue; ElecTot += ZoneITEq( Loop1 ).DesignTotalPower; @@ -3891,13 +3891,13 @@ namespace InternalHeatGains { ZnRpt( NZ ).ITEqUPSGainRateToZone += ZoneITEq( Loop ).UPSGainRateToZone; ZnRpt( NZ ).ITEqConGainRateToZone += ZoneITEq( Loop ).ConGainRateToZone; - ZoneITEq( Loop ).CPUConsumption = CPUPower * TimeStepZone * SecInHour; - ZoneITEq( Loop ).FanConsumption = FanPower * TimeStepZone * SecInHour; - ZoneITEq( Loop ).UPSConsumption = UPSPower * TimeStepZone * SecInHour; - ZoneITEq( Loop ).CPUEnergyAtDesign = ZoneITEq( Loop ).CPUPowerAtDesign * TimeStepZone * SecInHour; - ZoneITEq( Loop ).FanEnergyAtDesign = ZoneITEq( Loop ).FanPowerAtDesign * TimeStepZone * SecInHour; - ZoneITEq( Loop ).UPSGainEnergyToZone = UPSHeatGain * TimeStepZone * SecInHour; - ZoneITEq( Loop ).ConGainEnergyToZone = ZoneITEq( Loop ).ConGainRateToZone * TimeStepZone * SecInHour; + ZoneITEq( Loop ).CPUConsumption = CPUPower * TimeStepZoneSec; + ZoneITEq( Loop ).FanConsumption = FanPower * TimeStepZoneSec; + ZoneITEq( Loop ).UPSConsumption = UPSPower * TimeStepZoneSec; + ZoneITEq( Loop ).CPUEnergyAtDesign = ZoneITEq( Loop ).CPUPowerAtDesign * TimeStepZoneSec; + ZoneITEq( Loop ).FanEnergyAtDesign = ZoneITEq( Loop ).FanPowerAtDesign * TimeStepZoneSec; + ZoneITEq( Loop ).UPSGainEnergyToZone = UPSHeatGain * TimeStepZoneSec; + ZoneITEq( Loop ).ConGainEnergyToZone = ZoneITEq( Loop ).ConGainRateToZone * TimeStepZoneSec; ZnRpt( NZ ).ITEqCPUConsumption += ZoneITEq( Loop ).CPUConsumption; ZnRpt( NZ ).ITEqFanConsumption += ZoneITEq( Loop ).FanConsumption; @@ -4024,20 +4024,20 @@ namespace InternalHeatGains { // FLOW: for ( Loop = 1; Loop <= TotPeople; ++Loop ) { - People( Loop ).RadGainEnergy = People( Loop ).RadGainRate * TimeStepZone * SecInHour; - People( Loop ).ConGainEnergy = People( Loop ).ConGainRate * TimeStepZone * SecInHour; - People( Loop ).SenGainEnergy = People( Loop ).SenGainRate * TimeStepZone * SecInHour; - People( Loop ).LatGainEnergy = People( Loop ).LatGainRate * TimeStepZone * SecInHour; - People( Loop ).TotGainEnergy = People( Loop ).TotGainRate * TimeStepZone * SecInHour; + People( Loop ).RadGainEnergy = People( Loop ).RadGainRate * TimeStepZoneSec; + People( Loop ).ConGainEnergy = People( Loop ).ConGainRate * TimeStepZoneSec; + People( Loop ).SenGainEnergy = People( Loop ).SenGainRate * TimeStepZoneSec; + People( Loop ).LatGainEnergy = People( Loop ).LatGainRate * TimeStepZoneSec; + People( Loop ).TotGainEnergy = People( Loop ).TotGainRate * TimeStepZoneSec; } for ( Loop = 1; Loop <= TotLights; ++Loop ) { - Lights( Loop ).Consumption = Lights( Loop ).Power * TimeStepZone * SecInHour; - Lights( Loop ).RadGainEnergy = Lights( Loop ).RadGainRate * TimeStepZone * SecInHour; - Lights( Loop ).VisGainEnergy = Lights( Loop ).VisGainRate * TimeStepZone * SecInHour; - Lights( Loop ).ConGainEnergy = Lights( Loop ).ConGainRate * TimeStepZone * SecInHour; - Lights( Loop ).RetAirGainEnergy = Lights( Loop ).RetAirGainRate * TimeStepZone * SecInHour; - Lights( Loop ).TotGainEnergy = Lights( Loop ).TotGainRate * TimeStepZone * SecInHour; + Lights( Loop ).Consumption = Lights( Loop ).Power * TimeStepZoneSec; + Lights( Loop ).RadGainEnergy = Lights( Loop ).RadGainRate * TimeStepZoneSec; + Lights( Loop ).VisGainEnergy = Lights( Loop ).VisGainRate * TimeStepZoneSec; + Lights( Loop ).ConGainEnergy = Lights( Loop ).ConGainRate * TimeStepZoneSec; + Lights( Loop ).RetAirGainEnergy = Lights( Loop ).RetAirGainRate * TimeStepZoneSec; + Lights( Loop ).TotGainEnergy = Lights( Loop ).TotGainRate * TimeStepZoneSec; if ( ! WarmupFlag ) { if ( DoOutputReporting && WriteTabularFiles && ( KindOfSim == ksRunPeriodWeather ) ) { //for weather simulations only //for tabular report, accumlate the total electricity used for each Light object @@ -4051,65 +4051,65 @@ namespace InternalHeatGains { } for ( Loop = 1; Loop <= TotElecEquip; ++Loop ) { - ZoneElectric( Loop ).Consumption = ZoneElectric( Loop ).Power * TimeStepZone * SecInHour; - ZoneElectric( Loop ).RadGainEnergy = ZoneElectric( Loop ).RadGainRate * TimeStepZone * SecInHour; - ZoneElectric( Loop ).ConGainEnergy = ZoneElectric( Loop ).ConGainRate * TimeStepZone * SecInHour; - ZoneElectric( Loop ).LatGainEnergy = ZoneElectric( Loop ).LatGainRate * TimeStepZone * SecInHour; - ZoneElectric( Loop ).LostEnergy = ZoneElectric( Loop ).LostRate * TimeStepZone * SecInHour; - ZoneElectric( Loop ).TotGainEnergy = ZoneElectric( Loop ).TotGainRate * TimeStepZone * SecInHour; + ZoneElectric( Loop ).Consumption = ZoneElectric( Loop ).Power * TimeStepZoneSec; + ZoneElectric( Loop ).RadGainEnergy = ZoneElectric( Loop ).RadGainRate * TimeStepZoneSec; + ZoneElectric( Loop ).ConGainEnergy = ZoneElectric( Loop ).ConGainRate * TimeStepZoneSec; + ZoneElectric( Loop ).LatGainEnergy = ZoneElectric( Loop ).LatGainRate * TimeStepZoneSec; + ZoneElectric( Loop ).LostEnergy = ZoneElectric( Loop ).LostRate * TimeStepZoneSec; + ZoneElectric( Loop ).TotGainEnergy = ZoneElectric( Loop ).TotGainRate * TimeStepZoneSec; } for ( Loop = 1; Loop <= TotGasEquip; ++Loop ) { - ZoneGas( Loop ).Consumption = ZoneGas( Loop ).Power * TimeStepZone * SecInHour; - ZoneGas( Loop ).RadGainEnergy = ZoneGas( Loop ).RadGainRate * TimeStepZone * SecInHour; - ZoneGas( Loop ).ConGainEnergy = ZoneGas( Loop ).ConGainRate * TimeStepZone * SecInHour; - ZoneGas( Loop ).LatGainEnergy = ZoneGas( Loop ).LatGainRate * TimeStepZone * SecInHour; - ZoneGas( Loop ).LostEnergy = ZoneGas( Loop ).LostRate * TimeStepZone * SecInHour; - ZoneGas( Loop ).TotGainEnergy = ZoneGas( Loop ).TotGainRate * TimeStepZone * SecInHour; + ZoneGas( Loop ).Consumption = ZoneGas( Loop ).Power * TimeStepZoneSec; + ZoneGas( Loop ).RadGainEnergy = ZoneGas( Loop ).RadGainRate * TimeStepZoneSec; + ZoneGas( Loop ).ConGainEnergy = ZoneGas( Loop ).ConGainRate * TimeStepZoneSec; + ZoneGas( Loop ).LatGainEnergy = ZoneGas( Loop ).LatGainRate * TimeStepZoneSec; + ZoneGas( Loop ).LostEnergy = ZoneGas( Loop ).LostRate * TimeStepZoneSec; + ZoneGas( Loop ).TotGainEnergy = ZoneGas( Loop ).TotGainRate * TimeStepZoneSec; } for ( Loop = 1; Loop <= TotOthEquip; ++Loop ) { - ZoneOtherEq( Loop ).Consumption = ZoneOtherEq( Loop ).Power * TimeStepZone * SecInHour; - ZoneOtherEq( Loop ).RadGainEnergy = ZoneOtherEq( Loop ).RadGainRate * TimeStepZone * SecInHour; - ZoneOtherEq( Loop ).ConGainEnergy = ZoneOtherEq( Loop ).ConGainRate * TimeStepZone * SecInHour; - ZoneOtherEq( Loop ).LatGainEnergy = ZoneOtherEq( Loop ).LatGainRate * TimeStepZone * SecInHour; - ZoneOtherEq( Loop ).LostEnergy = ZoneOtherEq( Loop ).LostRate * TimeStepZone * SecInHour; - ZoneOtherEq( Loop ).TotGainEnergy = ZoneOtherEq( Loop ).TotGainRate * TimeStepZone * SecInHour; + ZoneOtherEq( Loop ).Consumption = ZoneOtherEq( Loop ).Power * TimeStepZoneSec; + ZoneOtherEq( Loop ).RadGainEnergy = ZoneOtherEq( Loop ).RadGainRate * TimeStepZoneSec; + ZoneOtherEq( Loop ).ConGainEnergy = ZoneOtherEq( Loop ).ConGainRate * TimeStepZoneSec; + ZoneOtherEq( Loop ).LatGainEnergy = ZoneOtherEq( Loop ).LatGainRate * TimeStepZoneSec; + ZoneOtherEq( Loop ).LostEnergy = ZoneOtherEq( Loop ).LostRate * TimeStepZoneSec; + ZoneOtherEq( Loop ).TotGainEnergy = ZoneOtherEq( Loop ).TotGainRate * TimeStepZoneSec; } for ( Loop = 1; Loop <= TotHWEquip; ++Loop ) { - ZoneHWEq( Loop ).Consumption = ZoneHWEq( Loop ).Power * TimeStepZone * SecInHour; - ZoneHWEq( Loop ).RadGainEnergy = ZoneHWEq( Loop ).RadGainRate * TimeStepZone * SecInHour; - ZoneHWEq( Loop ).ConGainEnergy = ZoneHWEq( Loop ).ConGainRate * TimeStepZone * SecInHour; - ZoneHWEq( Loop ).LatGainEnergy = ZoneHWEq( Loop ).LatGainRate * TimeStepZone * SecInHour; - ZoneHWEq( Loop ).LostEnergy = ZoneHWEq( Loop ).LostRate * TimeStepZone * SecInHour; - ZoneHWEq( Loop ).TotGainEnergy = ZoneHWEq( Loop ).TotGainRate * TimeStepZone * SecInHour; + ZoneHWEq( Loop ).Consumption = ZoneHWEq( Loop ).Power * TimeStepZoneSec; + ZoneHWEq( Loop ).RadGainEnergy = ZoneHWEq( Loop ).RadGainRate * TimeStepZoneSec; + ZoneHWEq( Loop ).ConGainEnergy = ZoneHWEq( Loop ).ConGainRate * TimeStepZoneSec; + ZoneHWEq( Loop ).LatGainEnergy = ZoneHWEq( Loop ).LatGainRate * TimeStepZoneSec; + ZoneHWEq( Loop ).LostEnergy = ZoneHWEq( Loop ).LostRate * TimeStepZoneSec; + ZoneHWEq( Loop ).TotGainEnergy = ZoneHWEq( Loop ).TotGainRate * TimeStepZoneSec; } for ( Loop = 1; Loop <= TotStmEquip; ++Loop ) { - ZoneSteamEq( Loop ).Consumption = ZoneSteamEq( Loop ).Power * TimeStepZone * SecInHour; - ZoneSteamEq( Loop ).RadGainEnergy = ZoneSteamEq( Loop ).RadGainRate * TimeStepZone * SecInHour; - ZoneSteamEq( Loop ).ConGainEnergy = ZoneSteamEq( Loop ).ConGainRate * TimeStepZone * SecInHour; - ZoneSteamEq( Loop ).LatGainEnergy = ZoneSteamEq( Loop ).LatGainRate * TimeStepZone * SecInHour; - ZoneSteamEq( Loop ).LostEnergy = ZoneSteamEq( Loop ).LostRate * TimeStepZone * SecInHour; - ZoneSteamEq( Loop ).TotGainEnergy = ZoneSteamEq( Loop ).TotGainRate * TimeStepZone * SecInHour; + ZoneSteamEq( Loop ).Consumption = ZoneSteamEq( Loop ).Power * TimeStepZoneSec; + ZoneSteamEq( Loop ).RadGainEnergy = ZoneSteamEq( Loop ).RadGainRate * TimeStepZoneSec; + ZoneSteamEq( Loop ).ConGainEnergy = ZoneSteamEq( Loop ).ConGainRate * TimeStepZoneSec; + ZoneSteamEq( Loop ).LatGainEnergy = ZoneSteamEq( Loop ).LatGainRate * TimeStepZoneSec; + ZoneSteamEq( Loop ).LostEnergy = ZoneSteamEq( Loop ).LostRate * TimeStepZoneSec; + ZoneSteamEq( Loop ).TotGainEnergy = ZoneSteamEq( Loop ).TotGainRate * TimeStepZoneSec; } for ( Loop = 1; Loop <= TotBBHeat; ++Loop ) { - ZoneBBHeat( Loop ).Consumption = ZoneBBHeat( Loop ).Power * TimeStepZone * SecInHour; - ZoneBBHeat( Loop ).RadGainEnergy = ZoneBBHeat( Loop ).RadGainRate * TimeStepZone * SecInHour; - ZoneBBHeat( Loop ).ConGainEnergy = ZoneBBHeat( Loop ).ConGainRate * TimeStepZone * SecInHour; - ZoneBBHeat( Loop ).TotGainEnergy = ZoneBBHeat( Loop ).TotGainRate * TimeStepZone * SecInHour; + ZoneBBHeat( Loop ).Consumption = ZoneBBHeat( Loop ).Power * TimeStepZoneSec; + ZoneBBHeat( Loop ).RadGainEnergy = ZoneBBHeat( Loop ).RadGainRate * TimeStepZoneSec; + ZoneBBHeat( Loop ).ConGainEnergy = ZoneBBHeat( Loop ).ConGainRate * TimeStepZoneSec; + ZoneBBHeat( Loop ).TotGainEnergy = ZoneBBHeat( Loop ).TotGainRate * TimeStepZoneSec; } for ( ZoneLoop = 1; ZoneLoop <= NumOfZones; ++ZoneLoop ) { // People ZnRpt( ZoneLoop ).PeopleNumOcc = ZoneIntGain( ZoneLoop ).NOFOCC; - ZnRpt( ZoneLoop ).PeopleRadGain = ZoneIntGain( ZoneLoop ).QOCRAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).PeopleConGain = ZoneIntGain( ZoneLoop ).QOCCON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).PeopleSenGain = ZoneIntGain( ZoneLoop ).QOCSEN * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).PeopleLatGain = ZoneIntGain( ZoneLoop ).QOCLAT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).PeopleTotGain = ZoneIntGain( ZoneLoop ).QOCTOT * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).PeopleRadGain = ZoneIntGain( ZoneLoop ).QOCRAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).PeopleConGain = ZoneIntGain( ZoneLoop ).QOCCON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).PeopleSenGain = ZoneIntGain( ZoneLoop ).QOCSEN * TimeStepZoneSec; + ZnRpt( ZoneLoop ).PeopleLatGain = ZoneIntGain( ZoneLoop ).QOCLAT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).PeopleTotGain = ZoneIntGain( ZoneLoop ).QOCTOT * TimeStepZoneSec; ZnRpt( ZoneLoop ).PeopleRadGainRate = ZoneIntGain( ZoneLoop ).QOCRAD; ZnRpt( ZoneLoop ).PeopleConGainRate = ZoneIntGain( ZoneLoop ).QOCCON; ZnRpt( ZoneLoop ).PeopleSenGainRate = ZoneIntGain( ZoneLoop ).QOCSEN; @@ -4117,11 +4117,11 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).PeopleTotGainRate = ZoneIntGain( ZoneLoop ).QOCTOT; // General Lights - ZnRpt( ZoneLoop ).LtsRetAirGain = ZoneIntGain( ZoneLoop ).QLTCRA * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).LtsRadGain = ZoneIntGain( ZoneLoop ).QLTRAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).LtsTotGain = ZoneIntGain( ZoneLoop ).QLTTOT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).LtsConGain = ZoneIntGain( ZoneLoop ).QLTCON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).LtsVisGain = ZoneIntGain( ZoneLoop ).QLTSW * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).LtsRetAirGain = ZoneIntGain( ZoneLoop ).QLTCRA * TimeStepZoneSec; + ZnRpt( ZoneLoop ).LtsRadGain = ZoneIntGain( ZoneLoop ).QLTRAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).LtsTotGain = ZoneIntGain( ZoneLoop ).QLTTOT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).LtsConGain = ZoneIntGain( ZoneLoop ).QLTCON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).LtsVisGain = ZoneIntGain( ZoneLoop ).QLTSW * TimeStepZoneSec; ZnRpt( ZoneLoop ).LtsRetAirGainRate = ZoneIntGain( ZoneLoop ).QLTCRA; ZnRpt( ZoneLoop ).LtsRadGainRate = ZoneIntGain( ZoneLoop ).QLTRAD; ZnRpt( ZoneLoop ).LtsTotGainRate = ZoneIntGain( ZoneLoop ).QLTTOT; @@ -4130,10 +4130,10 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).LtsElecConsump = ZnRpt( ZoneLoop ).LtsTotGain; // Electric Equipment - ZnRpt( ZoneLoop ).ElecConGain = ZoneIntGain( ZoneLoop ).QEECON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).ElecRadGain = ZoneIntGain( ZoneLoop ).QEERAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).ElecLatGain = ZoneIntGain( ZoneLoop ).QEELAT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).ElecLost = ZoneIntGain( ZoneLoop ).QEELost * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).ElecConGain = ZoneIntGain( ZoneLoop ).QEECON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).ElecRadGain = ZoneIntGain( ZoneLoop ).QEERAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).ElecLatGain = ZoneIntGain( ZoneLoop ).QEELAT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).ElecLost = ZoneIntGain( ZoneLoop ).QEELost * TimeStepZoneSec; ZnRpt( ZoneLoop ).ElecConGainRate = ZoneIntGain( ZoneLoop ).QEECON; ZnRpt( ZoneLoop ).ElecRadGainRate = ZoneIntGain( ZoneLoop ).QEERAD; ZnRpt( ZoneLoop ).ElecLatGainRate = ZoneIntGain( ZoneLoop ).QEELAT; @@ -4143,10 +4143,10 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).ElecTotGainRate = ZnRpt( ZoneLoop ).ElecConGainRate + ZnRpt( ZoneLoop ).ElecRadGainRate + ZnRpt( ZoneLoop ).ElecLatGainRate; // Gas Equipment - ZnRpt( ZoneLoop ).GasConGain = ZoneIntGain( ZoneLoop ).QGECON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).GasRadGain = ZoneIntGain( ZoneLoop ).QGERAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).GasLatGain = ZoneIntGain( ZoneLoop ).QGELAT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).GasLost = ZoneIntGain( ZoneLoop ).QGELost * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).GasConGain = ZoneIntGain( ZoneLoop ).QGECON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).GasRadGain = ZoneIntGain( ZoneLoop ).QGERAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).GasLatGain = ZoneIntGain( ZoneLoop ).QGELAT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).GasLost = ZoneIntGain( ZoneLoop ).QGELost * TimeStepZoneSec; ZnRpt( ZoneLoop ).GasConGainRate = ZoneIntGain( ZoneLoop ).QGECON; ZnRpt( ZoneLoop ).GasRadGainRate = ZoneIntGain( ZoneLoop ).QGERAD; ZnRpt( ZoneLoop ).GasLatGainRate = ZoneIntGain( ZoneLoop ).QGELAT; @@ -4156,10 +4156,10 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).GasTotGainRate = ZnRpt( ZoneLoop ).GasConGainRate + ZnRpt( ZoneLoop ).GasRadGainRate + ZnRpt( ZoneLoop ).GasLatGainRate; // Hot Water Equipment - ZnRpt( ZoneLoop ).HWConGain = ZoneIntGain( ZoneLoop ).QHWCON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).HWRadGain = ZoneIntGain( ZoneLoop ).QHWRAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).HWLatGain = ZoneIntGain( ZoneLoop ).QHWLAT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).HWLost = ZoneIntGain( ZoneLoop ).QHWLost * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).HWConGain = ZoneIntGain( ZoneLoop ).QHWCON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).HWRadGain = ZoneIntGain( ZoneLoop ).QHWRAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).HWLatGain = ZoneIntGain( ZoneLoop ).QHWLAT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).HWLost = ZoneIntGain( ZoneLoop ).QHWLost * TimeStepZoneSec; ZnRpt( ZoneLoop ).HWConGainRate = ZoneIntGain( ZoneLoop ).QHWCON; ZnRpt( ZoneLoop ).HWRadGainRate = ZoneIntGain( ZoneLoop ).QHWRAD; ZnRpt( ZoneLoop ).HWLatGainRate = ZoneIntGain( ZoneLoop ).QHWLAT; @@ -4169,10 +4169,10 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).HWTotGainRate = ZnRpt( ZoneLoop ).HWConGainRate + ZnRpt( ZoneLoop ).HWRadGainRate + ZnRpt( ZoneLoop ).HWLatGainRate; // Steam Equipment - ZnRpt( ZoneLoop ).SteamConGain = ZoneIntGain( ZoneLoop ).QSECON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).SteamRadGain = ZoneIntGain( ZoneLoop ).QSERAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).SteamLatGain = ZoneIntGain( ZoneLoop ).QSELAT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).SteamLost = ZoneIntGain( ZoneLoop ).QSELost * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).SteamConGain = ZoneIntGain( ZoneLoop ).QSECON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).SteamRadGain = ZoneIntGain( ZoneLoop ).QSERAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).SteamLatGain = ZoneIntGain( ZoneLoop ).QSELAT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).SteamLost = ZoneIntGain( ZoneLoop ).QSELost * TimeStepZoneSec; ZnRpt( ZoneLoop ).SteamConGainRate = ZoneIntGain( ZoneLoop ).QSECON; ZnRpt( ZoneLoop ).SteamRadGainRate = ZoneIntGain( ZoneLoop ).QSERAD; ZnRpt( ZoneLoop ).SteamLatGainRate = ZoneIntGain( ZoneLoop ).QSELAT; @@ -4182,10 +4182,10 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).SteamTotGainRate = ZnRpt( ZoneLoop ).SteamConGainRate + ZnRpt( ZoneLoop ).SteamRadGainRate + ZnRpt( ZoneLoop ).SteamLatGainRate; // Other Equipment - ZnRpt( ZoneLoop ).OtherConGain = ZoneIntGain( ZoneLoop ).QOECON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).OtherRadGain = ZoneIntGain( ZoneLoop ).QOERAD * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).OtherLatGain = ZoneIntGain( ZoneLoop ).QOELAT * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).OtherLost = ZoneIntGain( ZoneLoop ).QOELost * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).OtherConGain = ZoneIntGain( ZoneLoop ).QOECON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).OtherRadGain = ZoneIntGain( ZoneLoop ).QOERAD * TimeStepZoneSec; + ZnRpt( ZoneLoop ).OtherLatGain = ZoneIntGain( ZoneLoop ).QOELAT * TimeStepZoneSec; + ZnRpt( ZoneLoop ).OtherLost = ZoneIntGain( ZoneLoop ).QOELost * TimeStepZoneSec; ZnRpt( ZoneLoop ).OtherConGainRate = ZoneIntGain( ZoneLoop ).QOECON; ZnRpt( ZoneLoop ).OtherRadGainRate = ZoneIntGain( ZoneLoop ).QOERAD; ZnRpt( ZoneLoop ).OtherLatGainRate = ZoneIntGain( ZoneLoop ).QOELAT; @@ -4194,8 +4194,8 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).OtherTotGainRate = ZnRpt( ZoneLoop ).OtherConGainRate + ZnRpt( ZoneLoop ).OtherRadGainRate + ZnRpt( ZoneLoop ).OtherLatGainRate; // Baseboard Heat - ZnRpt( ZoneLoop ).BaseHeatConGain = ZoneIntGain( ZoneLoop ).QBBCON * TimeStepZone * SecInHour; - ZnRpt( ZoneLoop ).BaseHeatRadGain = ZoneIntGain( ZoneLoop ).QBBRAD * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).BaseHeatConGain = ZoneIntGain( ZoneLoop ).QBBCON * TimeStepZoneSec; + ZnRpt( ZoneLoop ).BaseHeatRadGain = ZoneIntGain( ZoneLoop ).QBBRAD * TimeStepZoneSec; ZnRpt( ZoneLoop ).BaseHeatConGainRate = ZoneIntGain( ZoneLoop ).QBBCON; ZnRpt( ZoneLoop ).BaseHeatRadGainRate = ZoneIntGain( ZoneLoop ).QBBRAD; ZnRpt( ZoneLoop ).BaseHeatTotGain = ZnRpt( ZoneLoop ).BaseHeatConGain + ZnRpt( ZoneLoop ).BaseHeatRadGain; @@ -4211,16 +4211,16 @@ namespace InternalHeatGains { ZnRpt( ZoneLoop ).TotVisHeatGainRate = ZnRpt( ZoneLoop ).LtsVisGainRate; SumInternalRadiationGainsByTypes( ZoneLoop, TradIntGainTypes, ZnRpt( ZoneLoop ).TotRadiantGainRate ); - ZnRpt( ZoneLoop ).TotRadiantGain = ZnRpt( ZoneLoop ).TotRadiantGainRate * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).TotRadiantGain = ZnRpt( ZoneLoop ).TotRadiantGainRate * TimeStepZoneSec; SumInternalConvectionGainsByTypes( ZoneLoop, TradIntGainTypes, ZnRpt( ZoneLoop ).TotConvectiveGainRate ); - ZnRpt( ZoneLoop ).TotConvectiveGain = ZnRpt( ZoneLoop ).TotConvectiveGainRate * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).TotConvectiveGain = ZnRpt( ZoneLoop ).TotConvectiveGainRate * TimeStepZoneSec; SumInternalLatentGainsByTypes( ZoneLoop, TradIntGainTypes, ZnRpt( ZoneLoop ).TotLatentGainRate ); - ZnRpt( ZoneLoop ).TotLatentGain = ZnRpt( ZoneLoop ).TotLatentGainRate * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).TotLatentGain = ZnRpt( ZoneLoop ).TotLatentGainRate * TimeStepZoneSec; ZnRpt( ZoneLoop ).TotTotalHeatGainRate = ZnRpt( ZoneLoop ).TotLatentGainRate + ZnRpt( ZoneLoop ).TotRadiantGainRate + ZnRpt( ZoneLoop ).TotConvectiveGainRate + ZnRpt( ZoneLoop ).TotVisHeatGainRate; - ZnRpt( ZoneLoop ).TotTotalHeatGain = ZnRpt( ZoneLoop ).TotTotalHeatGainRate * TimeStepZone * SecInHour; + ZnRpt( ZoneLoop ).TotTotalHeatGain = ZnRpt( ZoneLoop ).TotTotalHeatGainRate * TimeStepZoneSec; } } diff --git a/src/EnergyPlus/InternalHeatGains.hh b/src/EnergyPlus/InternalHeatGains.hh index 8cff5f238a4..8909005b40f 100644 --- a/src/EnergyPlus/InternalHeatGains.hh +++ b/src/EnergyPlus/InternalHeatGains.hh @@ -38,7 +38,7 @@ namespace InternalHeatGains { InitInternalHeatGains(); void - CalcZoneITEq( ); + CalcZoneITEq(); void ReportInternalHeatGains(); diff --git a/src/EnergyPlus/ManageElectricPower.cc b/src/EnergyPlus/ManageElectricPower.cc index e853c2f4dc8..a8ee4c1af84 100644 --- a/src/EnergyPlus/ManageElectricPower.cc +++ b/src/EnergyPlus/ManageElectricPower.cc @@ -69,7 +69,7 @@ namespace ManageElectricPower { using namespace DataPrecisionGlobals; using namespace DataLoopNode; using DataGlobals::NumOfTimeStepInHour; - using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using DataGlobals::SecInHour; using DataGlobals::ScheduleAlwaysOn; using DataHVACGlobals::TimeStepSys; @@ -342,7 +342,7 @@ namespace ManageElectricPower { ElecProducedPV = GetInstantMeterValue( ElecProducedPVIndex, 2 ); ElecProducedWT = GetInstantMeterValue( ElecProducedWTIndex, 2 ); - WholeBldgElectSummary.TotalBldgElecDemand = ElecFacilityBldg / ( TimeStepZone * SecInHour ); + WholeBldgElectSummary.TotalBldgElecDemand = ElecFacilityBldg / TimeStepZoneSec; WholeBldgElectSummary.TotalHVACElecDemand = ElecFacilityHVAC / ( TimeStepSys * SecInHour ); WholeBldgElectSummary.TotalElectricDemand = WholeBldgElectSummary.TotalBldgElecDemand + WholeBldgElectSummary.TotalHVACElecDemand; WholeBldgElectSummary.ElecProducedPVRate = ElecProducedPV / ( TimeStepSys * SecInHour ); @@ -581,7 +581,7 @@ namespace ManageElectricPower { // The TRACK CUSTOM METER scheme tries to have the generators meet all of the // electrical demand from a meter, it can also be a user-defined Custom Meter // and PV is ignored. - CustomMeterDemand = GetInstantMeterValue( ElecLoadCenter( LoadCenterNum ).DemandMeterPtr, 1 ) / ( TimeStepZone * SecInHour ) + GetInstantMeterValue( ElecLoadCenter( LoadCenterNum ).DemandMeterPtr, 2 ) / ( TimeStepSys * SecInHour ); + CustomMeterDemand = GetInstantMeterValue( ElecLoadCenter( LoadCenterNum ).DemandMeterPtr, 1 ) / TimeStepZoneSec + GetInstantMeterValue( ElecLoadCenter( LoadCenterNum ).DemandMeterPtr, 2 ) / ( TimeStepSys * SecInHour ); RemainingLoad = CustomMeterDemand; LoadCenterElectricLoad = RemainingLoad; @@ -3268,8 +3268,6 @@ namespace ManageElectricPower { // Using/Aliasing using DataHVACGlobals::TimeStepSys; - using DataGlobals::TimeStepZone; - using DataGlobals::SecInHour; using DataGlobals::MetersHaveBeenInitialized; using ScheduleManager::GetCurrentScheduleValue; using DataHeatBalance::ZnAirRpt; @@ -3351,10 +3349,10 @@ namespace ManageElectricPower { if ( MetersHaveBeenInitialized ) { MeterPtr = Transformer( TransfNum ).WiredMeterPtrs( MeterNum ); - ElecLoad += GetInstantMeterValue( MeterPtr, 1 ) / ( TimeStepZone * SecInHour ) + GetInstantMeterValue( MeterPtr, 2 ) / ( TimeStepSys * SecInHour ); + ElecLoad += GetInstantMeterValue( MeterPtr, 1 ) / TimeStepZoneSec + GetInstantMeterValue( MeterPtr, 2 ) / ( TimeStepSys * SecInHour ); // PastElecLoad store the metered value in the previous time step. This value will be used to check whether // a transformer is overloaded or not. - PastElecLoad += GetCurrentMeterValue( MeterPtr ) / ( TimeStepZone * SecInHour ); + PastElecLoad += GetCurrentMeterValue( MeterPtr ) / TimeStepZoneSec; } else { ElecLoad = 0.0; PastElecLoad = 0.0; diff --git a/src/EnergyPlus/MixedAir.cc b/src/EnergyPlus/MixedAir.cc index 63f60f0018d..a6fec701aa7 100644 --- a/src/EnergyPlus/MixedAir.cc +++ b/src/EnergyPlus/MixedAir.cc @@ -1172,17 +1172,9 @@ namespace MixedAir { int MaxAlphas; // Maximum alphas in multiple objects int MaxNums; // Maximum numbers in multiple objects //INTEGER :: ERVControllerNum ! Index to Controller:Stand Alone ERV - int ControlledZoneNum; // Index to controlled zones - bool AirNodeFound; // Used to determine if control zone is valid - bool AirLoopFound; // Used to determine if control zone is served by furnace air loop int AirLoopNumber; // Used to determine if control zone is served by furnace air loop int BranchNum; // Used to determine if control zone is served by furnace air loop int CompNum; // Used to determine if control zone is served by furnace air loop - int HStatZoneNum; // Used to determine if control zone has a humidistat object - int OASysNum; // Used to find OA System index for OA Controller - int OASysIndex; // Index to OA System - bool OASysFound; // OA Controller found OA System index - Real64 OAFlowRatio; // Ratio of minimum OA flow rate to maximum OA flow rate int NumGroups; // Number of extensible input groups of the VentilationMechanical object int numBaseNum; // base number for numeric arguments (for readability) @@ -1278,286 +1270,8 @@ namespace MixedAir { ErrorsFound = true; if ( IsBlank ) AlphArray( 1 ) = "xxxxx"; } - OAController( OutAirNum ).Name = AlphArray( 1 ); - OAController( OutAirNum ).ControllerType = CurrentModuleObject; - OAController( OutAirNum ).ControllerType_Num = ControllerOutsideAir; - OAController( OutAirNum ).MaxOA = NumArray( 2 ); - OAController( OutAirNum ).MinOA = NumArray( 1 ); - OAController( OutAirNum ).MixNode = GetOnlySingleNode( AlphArray( 4 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Sensor, 1, ObjectIsNotParent ); - OAController( OutAirNum ).OANode = GetOnlySingleNode( AlphArray( 5 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Actuator, 1, ObjectIsNotParent ); - if ( ! CheckOutAirNodeNumber( OAController( OutAirNum ).OANode ) ) { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid field " ); - ShowContinueError( cAlphaFields( 5 ) + "=\"" + AlphArray( 5 ) + "\", must be an OutdoorAir:Node for outdoor air to be effective." ); - ErrorsFound = true; - } - if ( SameString( AlphArray( 6 ), "NoEconomizer" ) ) { - OAController( OutAirNum ).Econo = NoEconomizer; - } else if ( SameString( AlphArray( 6 ), "FixedDryBulb" ) ) { - OAController( OutAirNum ).Econo = FixedDryBulb; - } else if ( SameString( AlphArray( 6 ), "FixedEnthalpy" ) ) { - OAController( OutAirNum ).Econo = FixedEnthalpy; - } else if ( SameString( AlphArray( 6 ), "FixedDewPointAndDryBulb" ) ) { - OAController( OutAirNum ).Econo = FixedDewPointAndDryBulb; - } else if ( SameString( AlphArray( 6 ), "DifferentialDryBulb" ) ) { - OAController( OutAirNum ).Econo = DifferentialDryBulb; - } else if ( SameString( AlphArray( 6 ), "DifferentialEnthalpy" ) ) { - OAController( OutAirNum ).Econo = DifferentialEnthalpy; - } else if ( SameString( AlphArray( 6 ), "DifferentialDryBulbAndEnthalpy" ) ) { - OAController( OutAirNum ).Econo = DifferentialDryBulbAndEnthalpy; - } else if ( SameString( AlphArray( 6 ), "ElectronicEnthalpy" ) ) { - OAController( OutAirNum ).Econo = ElectronicEnthalpy; - } else { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 6 ) + "=\"" + AlphArray( 6 ) + "\" value." ); - ErrorsFound = true; - } - //Bypass choice - Added by Amit for new feature implementation - if ( SameString( AlphArray( 7 ), "ModulateFlow" ) ) { - OAController( OutAirNum ).EconBypass = false; - } else if ( SameString( AlphArray( 7 ), "MinimumFlowWithBypass" ) ) { - OAController( OutAirNum ).EconBypass = true; - } else { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 7 ) + "=\"" + AlphArray( 7 ) + "\" value." ); - ErrorsFound = true; - } - - // IF((OAController(OutAirNum)%Econo > NoEconomizer) .AND. OAController(OutAirNum)%EconBypass) THEN - // CALL ShowSevereError(TRIM(CurrentModuleObject)//'="'//TRIM(AlphArray(1))//'" invalid '// & - // TRIM(cAlphaFields(6))//'="'//TRIM(AlphArray(6))//'" and ') - // CALL ShowContinueError(TRIM(cAlphaFields(7))//'="'//TRIM(AlphArray(7))//'" incompatible specifications.') - // ErrorsFound = .TRUE. - // END IF - if ( SameString( AlphArray( 9 ), "NoLockout" ) ) { - OAController( OutAirNum ).Lockout = NoLockoutPossible; - } else if ( SameString( AlphArray( 9 ), "LockoutWithHeating" ) ) { - OAController( OutAirNum ).Lockout = LockoutWithHeatingPossible; - } else if ( SameString( AlphArray( 9 ), "LockoutWithCompressor" ) ) { - OAController( OutAirNum ).Lockout = LockoutWithCompressorPossible; - } else { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 9 ) + "=\"" + AlphArray( 9 ) + "\" value." ); - ErrorsFound = true; - } - if ( SameString( AlphArray( 10 ), "FixedMinimum" ) ) { - OAController( OutAirNum ).FixedMin = true; - } else { - OAController( OutAirNum ).FixedMin = false; - } - if ( lNumericBlanks( 3 ) ) { - OAController( OutAirNum ).TempLim = BlankNumeric; - } else { - OAController( OutAirNum ).TempLim = NumArray( 3 ); - } - - if ( lNumericBlanks( 4 ) ) { - OAController( OutAirNum ).EnthLim = BlankNumeric; - } else { - OAController( OutAirNum ).EnthLim = NumArray( 4 ); - } - if ( lNumericBlanks( 5 ) ) { - OAController( OutAirNum ).DPTempLim = BlankNumeric; - } else { - OAController( OutAirNum ).DPTempLim = NumArray( 5 ); - } - - if ( lNumericBlanks( 6 ) ) { - OAController( OutAirNum ).TempLowLim = BlankNumeric; - } else { - OAController( OutAirNum ).TempLowLim = NumArray( 6 ); - } - - if ( ! lAlphaBlanks( 8 ) ) { - OAController( OutAirNum ).EnthalpyCurvePtr = GetCurveIndex( AlphArray( 8 ) ); // convert curve name to number - if ( OAController( OutAirNum ).EnthalpyCurvePtr == 0 ) { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 8 ) + "=\"" + AlphArray( 8 ) + "\" not found." ); - ErrorsFound = true; - } else { - // Verify Curve Object, only legal types are Quadratic and Cubic - { auto const SELECT_CASE_var( GetCurveType( OAController( OutAirNum ).EnthalpyCurvePtr ) ); - - if ( SELECT_CASE_var == "QUADRATIC" ) { - - } else if ( SELECT_CASE_var == "CUBIC" ) { - - } else { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 8 ) + "=\"" + AlphArray( 8 ) + "\"." ); - ShowContinueError( "...must be Quadratic or Cubic curve." ); - ErrorsFound = true; - }} - } - } - - OAController( OutAirNum ).RelNode = GetOnlySingleNode( AlphArray( 2 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Actuator, 1, ObjectIsNotParent ); - OAController( OutAirNum ).RetNode = GetOnlySingleNode( AlphArray( 3 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Sensor, 1, ObjectIsNotParent ); - OAController( OutAirNum ).MinOASch = AlphArray( 11 ); - OAController( OutAirNum ).MinOASchPtr = GetScheduleIndex( AlphArray( 11 ) ); - if ( OAController( OutAirNum ).MinOASchPtr == 0 && ( ! lAlphaBlanks( 11 ) ) ) { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 11 ) + "=\"" + AlphArray( 11 ) + "\" not found." ); - ErrorsFound = true; - } - - // Changed by Amit for new feature implementation - OAController( OutAirNum ).MinOAflowSch = AlphArray( 12 ); - OAController( OutAirNum ).MinOAflowSchPtr = GetScheduleIndex( AlphArray( 12 ) ); - if ( OAController( OutAirNum ).MinOAflowSchPtr == 0 && ( ! lAlphaBlanks( 12 ) ) ) { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 12 ) + "=\"" + AlphArray( 12 ) + "\" not found." ); - ErrorsFound = true; - } - - OAController( OutAirNum ).MaxOAflowSch = AlphArray( 13 ); - OAController( OutAirNum ).MaxOAflowSchPtr = GetScheduleIndex( AlphArray( 13 ) ); - if ( OAController( OutAirNum ).MaxOAflowSchPtr == 0 && ( ! lAlphaBlanks( 13 ) ) ) { - ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 13 ) + "=\"" + AlphArray( 13 ) + "\" not found." ); - ErrorsFound = true; - } - OAController( OutAirNum ).VentilationMechanicalName = AlphArray( 14 ); - - // Check for a time of day economizer control schedule - OAController( OutAirNum ).EconomizerOASchedPtr = GetScheduleIndex( AlphArray( 15 ) ); - - // High humidity control option can be used with any economizer flag - if ( SameString( AlphArray( 16 ), "Yes" ) ) { - - OAController( OutAirNum ).HumidistatZoneNum = FindItemInList( AlphArray( 17 ), Zone.Name(), NumOfZones ); - - // Get the node number for the zone with the humidistat - if ( OAController( OutAirNum ).HumidistatZoneNum > 0 ) { - AirNodeFound = false; - AirLoopFound = false; - OASysFound = false; - for ( ControlledZoneNum = 1; ControlledZoneNum <= NumOfZones; ++ControlledZoneNum ) { - if ( ZoneEquipConfig( ControlledZoneNum ).ActualZoneNum != OAController( OutAirNum ).HumidistatZoneNum ) continue; - // Find the controlled zone number for the specified humidistat location - OAController( OutAirNum ).NodeNumofHumidistatZone = ZoneEquipConfig( ControlledZoneNum ).ZoneNode; - // Determine which OA System uses this OA Controller - OASysIndex = 0; - for ( OASysNum = 1; OASysNum <= NumOASystems; ++OASysNum ) { - for ( OAControllerNum = 1; OAControllerNum <= OutsideAirSys( OASysNum ).NumControllers; ++OAControllerNum ) { - if ( ! SameString( OutsideAirSys( OASysNum ).ControllerType( OAControllerNum ), CurrentModuleObject ) || ! SameString( OutsideAirSys( OASysNum ).ControllerName( OAControllerNum ), OAController( OutAirNum ).Name ) ) continue; - OASysIndex = OASysNum; - OASysFound = true; - break; - } - if ( OASysFound ) break; - } - // Determine if furnace is on air loop served by the humidistat location specified - AirLoopNumber = ZoneEquipConfig( ControlledZoneNum ).AirLoopNum; - if ( AirLoopNumber > 0 && OASysIndex > 0 ) { - for ( BranchNum = 1; BranchNum <= PrimaryAirSystem( AirLoopNumber ).NumBranches; ++BranchNum ) { - for ( CompNum = 1; CompNum <= PrimaryAirSystem( AirLoopNumber ).Branch( BranchNum ).TotalComponents; ++CompNum ) { - if ( ! SameString( PrimaryAirSystem( AirLoopNumber ).Branch( BranchNum ).Comp( CompNum ).Name, OutsideAirSys( OASysIndex ).Name ) || ! SameString( PrimaryAirSystem( AirLoopNumber ).Branch( BranchNum ).Comp( CompNum ).TypeOf, "AirLoopHVAC:OutdoorAirSystem" ) ) continue; - AirLoopFound = true; - break; - } - if ( AirLoopFound ) break; - } - for ( HStatZoneNum = 1; HStatZoneNum <= NumHumidityControlZones; ++HStatZoneNum ) { - if ( HumidityControlZone( HStatZoneNum ).ActualZoneNum != OAController( OutAirNum ).HumidistatZoneNum ) continue; - AirNodeFound = true; - break; - } - } else { - if ( AirLoopNumber == 0 ) { - ShowSevereError( "Did not find a Primary Air Loop for " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( "Specified " + cAlphaFields( 17 ) + " = " + AlphArray( 17 ) ); - ErrorsFound = true; - } - if ( OASysIndex == 0 ) { - ShowSevereError( "Did not find an AirLoopHVAC:OutdoorAirSystem for " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); - ErrorsFound = true; - } - } - break; - } - if ( ! AirNodeFound ) { - ShowSevereError( "Did not find Air Node (Zone with Humidistat), " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( "Specified " + cAlphaFields( 17 ) + " = " + AlphArray( 17 ) ); - ShowContinueError( "Both a ZoneHVAC:EquipmentConnections object and a ZoneControl:Humidistat object must be specified for this zone." ); - ErrorsFound = true; - } - if ( ! AirLoopFound ) { - ShowSevereError( "Did not find correct Primary Air Loop for " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( cAlphaFields( 17 ) + " = " + AlphArray( 17 ) + " is not served by this Primary Air Loop equipment." ); - ErrorsFound = true; - } - } else { - ShowSevereError( "Did not find Air Node (Zone with Humidistat), " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( "Specified " + cAlphaFields( 17 ) + " = " + AlphArray( 17 ) ); - ShowContinueError( "Both a ZoneHVAC:EquipmentConnections object and a ZoneControl:Humidistat object must be specified for this zone." ); - ErrorsFound = true; - } - - OAController( OutAirNum ).HighRHOAFlowRatio = NumArray( 7 ); - if ( OAController( OutAirNum ).HighRHOAFlowRatio <= 0.0 && NumNums > 6 ) { - ShowWarningError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( ' ' + cNumericFields( 7 ) + " must be greater than 0." ); - ShowContinueError( ' ' + cNumericFields( 7 ) + " is reset to 1 and the simulation continues." ); - OAController( OutAirNum ).HighRHOAFlowRatio = 1.0; - } - - if ( SameString( AlphArray( 16 ), "Yes" ) && OAController( OutAirNum ).FixedMin ) { - if ( OAController( OutAirNum ).MaxOA > 0.0 && OAController( OutAirNum ).MinOA != AutoSize ) { - OAFlowRatio = OAController( OutAirNum ).MinOA / OAController( OutAirNum ).MaxOA; - if ( OAController( OutAirNum ).HighRHOAFlowRatio < OAFlowRatio ) { - ShowWarningError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( "... A fixed minimum outside air flow rate and high humidity control have been specified." ); - ShowContinueError( "... The " + cNumericFields( 7 ) + " is less than the ratio of the outside air controllers minimum to maximum outside air flow rate." ); - ShowContinueError( "... Controller " + cNumericFields( 1 ) + " = " + TrimSigDigits( OAController( OutAirNum ).MinOA, 4 ) + " m3/s." ); - ShowContinueError( "... Controller " + cNumericFields( 2 ) + " = " + TrimSigDigits( OAController( OutAirNum ).MaxOA, 4 ) + " m3/s." ); - ShowContinueError( "... Controller minimum to maximum flow ratio = " + TrimSigDigits( OAFlowRatio, 4 ) + '.' ); - ShowContinueError( "... " + cNumericFields( 7 ) + " = " + TrimSigDigits( OAController( OutAirNum ).HighRHOAFlowRatio, 4 ) + '.' ); - } - } - } - - if ( SameString( AlphArray( 18 ), "Yes" ) ) { - OAController( OutAirNum ).ModifyDuringHighOAMoisture = false; - } else if ( SameString( AlphArray( 18 ), "No" ) ) { - OAController( OutAirNum ).ModifyDuringHighOAMoisture = true; - } else { - ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); - ShowContinueError( "..." + cAlphaFields( 18 ) + "=\"" + AlphArray( 18 ) + "\" - valid values are \"Yes\" or \"No\"." ); - ErrorsFound = true; - } - - } else if ( SameString( AlphArray( 16 ), "No" ) || lAlphaBlanks( 16 ) ) { - if ( NumAlphas >= 18 ) { - if ( ! SameString( AlphArray( 18 ), "Yes" ) && ! SameString( AlphArray( 18 ), "No" ) ) { - ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); - ShowContinueError( "..." + cAlphaFields( 18 ) + "=\"" + AlphArray( 18 ) + "\" - valid values are \"Yes\" or \"No\"." ); - ErrorsFound = true; - } - } - } else { // Invalid field 16 - ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); - ShowContinueError( "..." + cAlphaFields( 16 ) + "=\"" + AlphArray( 16 ) + "\" - valid values are \"Yes\" or \"No\"." ); - ErrorsFound = true; - if ( NumAlphas >= 18 ) { - if ( ! SameString( AlphArray( 18 ), "Yes" ) && ! SameString( AlphArray( 18 ), "No" ) ) { - ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); - ShowContinueError( "..." + cAlphaFields( 18 ) + "=\"" + AlphArray( 18 ) + "\" - valid values are \"Yes\" or \"No\"." ); - ErrorsFound = true; - } - } - } - if ( NumAlphas > 18 ) { - if ( ! lAlphaBlanks( 19 ) ) { - if ( SameString( AlphArray( 19 ), "BypassWhenWithinEconomizerLimits" ) ) { - OAController( OutAirNum ).HeatRecoveryBypassControlType = BypassWhenWithinEconomizerLimits; - } else if ( SameString( AlphArray( 19 ), "BypassWhenOAFlowGreaterThanMinimum" ) ) { - OAController( OutAirNum ).HeatRecoveryBypassControlType = BypassWhenOAFlowGreaterThanMinimum; - } else { - ShowWarningError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 19 ) + "=\"" + AlphArray( 19 ) + "\"." ); - ShowContinueError( "...assuming \"BypassWhenWithinEconomizerLimits\" and the simulation continues." ); - OAController( OutAirNum ).HeatRecoveryBypassControlType = BypassWhenWithinEconomizerLimits; - } - } - } - - if ( SameString( AlphArray( 16 ), "Yes" ) && OAController( OutAirNum ).Econo == NoEconomizer ) { - ShowWarningError( OAController( OutAirNum ).ControllerType + " \"" + OAController( OutAirNum ).Name + "\"" ); - ShowContinueError( "...Economizer operation must be enabled when " + cAlphaFields( 16 ) + " is set to YES." ); - ShowContinueError( "...The high humidity control option will be disabled and the simulation continues." ); - } + ProcessOAControllerInputs( CurrentModuleObject, OutAirNum, AlphArray, NumAlphas, NumArray, NumNums, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); // Mangesh code to fix CR 8225 - 09/14/2010 if ( ( NumControllerLists > 0 ) && ( NumOASystems > 0 ) ) { @@ -2010,7 +1724,8 @@ namespace MixedAir { VentilationMechanical( VentMechNum ).ZoneOAACH = OARequirements( ObjIndex ).OAFlowACH; } else { // use defaults VentilationMechanical( VentMechNum ).ZoneOAAreaRate( MechVentZoneCount ) = 0.0; - VentilationMechanical( VentMechNum ).ZoneOAPeopleRate( MechVentZoneCount ) = 0.00944; + // since this is case with no DesSpcOA object, cannot determine the method and default would be Flow/Person which should default to this flow rate + VentilationMechanical( VentMechNum ).ZoneOAPeopleRate( MechVentZoneCount ) = 0.00944; VentilationMechanical( VentMechNum ).ZoneOAFlow( MechVentZoneCount ) = 0.0; VentilationMechanical( VentMechNum ).ZoneOAACH = 0.0; } @@ -2433,6 +2148,372 @@ namespace MixedAir { } + void + ProcessOAControllerInputs( + std::string const & CurrentModuleObject, + int const OutAirNum, + FArray1_string const & AlphArray, + int & NumAlphas, + FArray1< Real64 > const & NumArray, + int & NumNums, + FArray1_bool const & lNumericBlanks, //Unused + FArray1_bool const & lAlphaBlanks, + FArray1_string const & cAlphaFields, + FArray1_string const & cNumericFields, //Unused + bool & ErrorsFound // If errors found in input + ) + { + + // SUBROUTINE INFORMATION: + // AUTHOR Fred Buhl + // DATE WRITTEN Oct 1998 + // MODIFIED Shirey/Raustad FSEC, June 2003, Jan 2004 + // Mangesh Basarkar, 06/2011: Getting zone OA specifications from Design Specification Object + // Tianzhen Hong, 3/2012: getting zone air distribution effectiveness and secondary recirculation + // from DesignSpecification:ZoneAirDistribution objects + // RE-ENGINEERED MJW: Split out processing controller:outdoorair input to facilitate unit testing, Feb 2015 + + // PURPOSE OF THIS SUBROUTINE + // Input the OAController data and store it in the OAController array. + + // METHODOLOGY EMPLOYED: + + // REFERENCES: + // na + + // Using/Aliasing + using namespace InputProcessor; + using namespace DataDefineEquip; + using General::TrimSigDigits; + using General::RoundSigDigits; + using NodeInputManager::GetOnlySingleNode; + using DataZoneEquipment::ZoneEquipConfig; + using DataZoneEquipment::ZoneEquipList; + using DataZoneEquipment::NumOfZoneEquipLists; + using DataHeatBalance::Zone; + using DataHeatBalance::ZoneList; + using DataHeatBalance::NumOfZoneLists; + using CurveManager::GetCurveIndex; + using CurveManager::GetCurveType; + using namespace OutputReportPredefined; + + using DataAirSystems::PrimaryAirSystem; + using DataZoneControls::HumidityControlZone; + using DataZoneControls::NumHumidityControlZones; + using DataContaminantBalance::Contaminant; + using OutAirNodeManager::CheckOutAirNodeNumber; + + // Locals + // SUBROUTINE ARGUMENT DEFINITIONS: + // na + + // SUBROUTINE PARAMETER DEFINITIONS: + static std::string const RoutineName( "GetOAControllerInputs: " ); // include trailing blank space + + // INTERFACE BLOCK SPECIFICATIONS + // na + + // DERIVED TYPE DEFINITIONS + // na + + // SUBROUTINE LOCAL VARIABLE DECLARATIONS: + + int OAControllerNum; // Index to Controller:OutdoorAir or CONTROLLER:STAND ALONE ERV objects + int ControlledZoneNum; // Index to controlled zones + bool AirNodeFound; // Used to determine if control zone is valid + bool AirLoopFound; // Used to determine if control zone is served by furnace air loop + int AirLoopNumber; // Used to determine if control zone is served by furnace air loop + int BranchNum; // Used to determine if control zone is served by furnace air loop + int CompNum; // Used to determine if control zone is served by furnace air loop + int HStatZoneNum; // Used to determine if control zone has a humidistat object + int OASysNum; // Used to find OA System index for OA Controller + int OASysIndex; // Index to OA System + bool OASysFound; // OA Controller found OA System index + Real64 OAFlowRatio; // Ratio of minimum OA flow rate to maximum OA flow rate + + OAController( OutAirNum ).Name = AlphArray( 1 ); + OAController( OutAirNum ).ControllerType = CurrentModuleObject; + OAController( OutAirNum ).ControllerType_Num = ControllerOutsideAir; + OAController( OutAirNum ).MaxOA = NumArray( 2 ); + OAController( OutAirNum ).MinOA = NumArray( 1 ); + OAController( OutAirNum ).MixNode = GetOnlySingleNode( AlphArray( 4 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Sensor, 1, ObjectIsNotParent ); + OAController( OutAirNum ).OANode = GetOnlySingleNode( AlphArray( 5 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Actuator, 1, ObjectIsNotParent ); + if ( ! CheckOutAirNodeNumber( OAController( OutAirNum ).OANode ) ) { + ShowWarningError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\": " + cAlphaFields( 5 ) + "=\"" + AlphArray( 5 ) + "\" is not an OutdoorAir:Node." ); + ShowContinueError( "Confirm that this is the intended source for the outdoor air stream." ); + } + if ( SameString( AlphArray( 6 ), "NoEconomizer" ) ) { + OAController( OutAirNum ).Econo = NoEconomizer; + } else if ( SameString( AlphArray( 6 ), "FixedDryBulb" ) ) { + OAController( OutAirNum ).Econo = FixedDryBulb; + } else if ( SameString( AlphArray( 6 ), "FixedEnthalpy" ) ) { + OAController( OutAirNum ).Econo = FixedEnthalpy; + } else if ( SameString( AlphArray( 6 ), "FixedDewPointAndDryBulb" ) ) { + OAController( OutAirNum ).Econo = FixedDewPointAndDryBulb; + } else if ( SameString( AlphArray( 6 ), "DifferentialDryBulb" ) ) { + OAController( OutAirNum ).Econo = DifferentialDryBulb; + } else if ( SameString( AlphArray( 6 ), "DifferentialEnthalpy" ) ) { + OAController( OutAirNum ).Econo = DifferentialEnthalpy; + } else if ( SameString( AlphArray( 6 ), "DifferentialDryBulbAndEnthalpy" ) ) { + OAController( OutAirNum ).Econo = DifferentialDryBulbAndEnthalpy; + } else if ( SameString( AlphArray( 6 ), "ElectronicEnthalpy" ) ) { + OAController( OutAirNum ).Econo = ElectronicEnthalpy; + } else { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 6 ) + "=\"" + AlphArray( 6 ) + "\" value." ); + ErrorsFound = true; + } + //Bypass choice - Added by Amit for new feature implementation + if ( SameString( AlphArray( 7 ), "ModulateFlow" ) ) { + OAController( OutAirNum ).EconBypass = false; + } else if ( SameString( AlphArray( 7 ), "MinimumFlowWithBypass" ) ) { + OAController( OutAirNum ).EconBypass = true; + } else { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 7 ) + "=\"" + AlphArray( 7 ) + "\" value." ); + ErrorsFound = true; + } + + // IF((OAController(OutAirNum)%Econo > NoEconomizer) .AND. OAController(OutAirNum)%EconBypass) THEN + // CALL ShowSevereError(TRIM(CurrentModuleObject)//'="'//TRIM(AlphArray(1))//'" invalid '// & + // TRIM(cAlphaFields(6))//'="'//TRIM(AlphArray(6))//'" and ') + // CALL ShowContinueError(TRIM(cAlphaFields(7))//'="'//TRIM(AlphArray(7))//'" incompatible specifications.') + // ErrorsFound = .TRUE. + // END IF + if ( SameString( AlphArray( 9 ), "NoLockout" ) ) { + OAController( OutAirNum ).Lockout = NoLockoutPossible; + } else if ( SameString( AlphArray( 9 ), "LockoutWithHeating" ) ) { + OAController( OutAirNum ).Lockout = LockoutWithHeatingPossible; + } else if ( SameString( AlphArray( 9 ), "LockoutWithCompressor" ) ) { + OAController( OutAirNum ).Lockout = LockoutWithCompressorPossible; + } else { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 9 ) + "=\"" + AlphArray( 9 ) + "\" value." ); + ErrorsFound = true; + } + if ( SameString( AlphArray( 10 ), "FixedMinimum" ) ) { + OAController( OutAirNum ).FixedMin = true; + } else { + OAController( OutAirNum ).FixedMin = false; + } + if ( lNumericBlanks( 3 ) ) { + OAController( OutAirNum ).TempLim = BlankNumeric; + } else { + OAController( OutAirNum ).TempLim = NumArray( 3 ); + } + + if ( lNumericBlanks( 4 ) ) { + OAController( OutAirNum ).EnthLim = BlankNumeric; + } else { + OAController( OutAirNum ).EnthLim = NumArray( 4 ); + } + if ( lNumericBlanks( 5 ) ) { + OAController( OutAirNum ).DPTempLim = BlankNumeric; + } else { + OAController( OutAirNum ).DPTempLim = NumArray( 5 ); + } + + if ( lNumericBlanks( 6 ) ) { + OAController( OutAirNum ).TempLowLim = BlankNumeric; + } else { + OAController( OutAirNum ).TempLowLim = NumArray( 6 ); + } + + if ( ! lAlphaBlanks( 8 ) ) { + OAController( OutAirNum ).EnthalpyCurvePtr = GetCurveIndex( AlphArray( 8 ) ); // convert curve name to number + if ( OAController( OutAirNum ).EnthalpyCurvePtr == 0 ) { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 8 ) + "=\"" + AlphArray( 8 ) + "\" not found." ); + ErrorsFound = true; + } else { + // Verify Curve Object, only legal types are Quadratic and Cubic + { auto const SELECT_CASE_var( GetCurveType( OAController( OutAirNum ).EnthalpyCurvePtr ) ); + + if ( SELECT_CASE_var == "QUADRATIC" ) { + + } else if ( SELECT_CASE_var == "CUBIC" ) { + + } else { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 8 ) + "=\"" + AlphArray( 8 ) + "\"." ); + ShowContinueError( "...must be Quadratic or Cubic curve." ); + ErrorsFound = true; + }} + } + } + + OAController( OutAirNum ).RelNode = GetOnlySingleNode( AlphArray( 2 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Actuator, 1, ObjectIsNotParent ); + OAController( OutAirNum ).RetNode = GetOnlySingleNode( AlphArray( 3 ), ErrorsFound, CurrentModuleObject, AlphArray( 1 ), NodeType_Air, NodeConnectionType_Sensor, 1, ObjectIsNotParent ); + OAController( OutAirNum ).MinOASch = AlphArray( 11 ); + OAController( OutAirNum ).MinOASchPtr = GetScheduleIndex( AlphArray( 11 ) ); + if ( OAController( OutAirNum ).MinOASchPtr == 0 && ( ! lAlphaBlanks( 11 ) ) ) { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 11 ) + "=\"" + AlphArray( 11 ) + "\" not found." ); + ErrorsFound = true; + } + + // Changed by Amit for new feature implementation + OAController( OutAirNum ).MinOAflowSch = AlphArray( 12 ); + OAController( OutAirNum ).MinOAflowSchPtr = GetScheduleIndex( AlphArray( 12 ) ); + if ( OAController( OutAirNum ).MinOAflowSchPtr == 0 && ( ! lAlphaBlanks( 12 ) ) ) { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 12 ) + "=\"" + AlphArray( 12 ) + "\" not found." ); + ErrorsFound = true; + } + + OAController( OutAirNum ).MaxOAflowSch = AlphArray( 13 ); + OAController( OutAirNum ).MaxOAflowSchPtr = GetScheduleIndex( AlphArray( 13 ) ); + if ( OAController( OutAirNum ).MaxOAflowSchPtr == 0 && ( ! lAlphaBlanks( 13 ) ) ) { + ShowSevereError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 13 ) + "=\"" + AlphArray( 13 ) + "\" not found." ); + ErrorsFound = true; + } + OAController( OutAirNum ).VentilationMechanicalName = AlphArray( 14 ); + + // Check for a time of day economizer control schedule + OAController( OutAirNum ).EconomizerOASchedPtr = GetScheduleIndex( AlphArray( 15 ) ); + + // High humidity control option can be used with any economizer flag + if ( SameString( AlphArray( 16 ), "Yes" ) ) { + + OAController( OutAirNum ).HumidistatZoneNum = FindItemInList( AlphArray( 17 ), Zone.Name(), NumOfZones ); + + // Get the node number for the zone with the humidistat + if ( OAController( OutAirNum ).HumidistatZoneNum > 0 ) { + AirNodeFound = false; + AirLoopFound = false; + OASysFound = false; + for ( ControlledZoneNum = 1; ControlledZoneNum <= NumOfZones; ++ControlledZoneNum ) { + if ( ZoneEquipConfig( ControlledZoneNum ).ActualZoneNum != OAController( OutAirNum ).HumidistatZoneNum ) continue; + // Find the controlled zone number for the specified humidistat location + OAController( OutAirNum ).NodeNumofHumidistatZone = ZoneEquipConfig( ControlledZoneNum ).ZoneNode; + // Determine which OA System uses this OA Controller + OASysIndex = 0; + for ( OASysNum = 1; OASysNum <= NumOASystems; ++OASysNum ) { + for ( OAControllerNum = 1; OAControllerNum <= OutsideAirSys( OASysNum ).NumControllers; ++OAControllerNum ) { + if ( ! SameString( OutsideAirSys( OASysNum ).ControllerType( OAControllerNum ), CurrentModuleObject ) || ! SameString( OutsideAirSys( OASysNum ).ControllerName( OAControllerNum ), OAController( OutAirNum ).Name ) ) continue; + OASysIndex = OASysNum; + OASysFound = true; + break; + } + if ( OASysFound ) break; + } + // Determine if furnace is on air loop served by the humidistat location specified + AirLoopNumber = ZoneEquipConfig( ControlledZoneNum ).AirLoopNum; + if ( AirLoopNumber > 0 && OASysIndex > 0 ) { + for ( BranchNum = 1; BranchNum <= PrimaryAirSystem( AirLoopNumber ).NumBranches; ++BranchNum ) { + for ( CompNum = 1; CompNum <= PrimaryAirSystem( AirLoopNumber ).Branch( BranchNum ).TotalComponents; ++CompNum ) { + if ( ! SameString( PrimaryAirSystem( AirLoopNumber ).Branch( BranchNum ).Comp( CompNum ).Name, OutsideAirSys( OASysIndex ).Name ) || ! SameString( PrimaryAirSystem( AirLoopNumber ).Branch( BranchNum ).Comp( CompNum ).TypeOf, "AirLoopHVAC:OutdoorAirSystem" ) ) continue; + AirLoopFound = true; + break; + } + if ( AirLoopFound ) break; + } + for ( HStatZoneNum = 1; HStatZoneNum <= NumHumidityControlZones; ++HStatZoneNum ) { + if ( HumidityControlZone( HStatZoneNum ).ActualZoneNum != OAController( OutAirNum ).HumidistatZoneNum ) continue; + AirNodeFound = true; + break; + } + } else { + if ( AirLoopNumber == 0 ) { + ShowSevereError( "Did not find a Primary Air Loop for " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( "Specified " + cAlphaFields( 17 ) + " = " + AlphArray( 17 ) ); + ErrorsFound = true; + } + if ( OASysIndex == 0 ) { + ShowSevereError( "Did not find an AirLoopHVAC:OutdoorAirSystem for " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); + ErrorsFound = true; + } + } + break; + } + if ( ! AirNodeFound ) { + ShowSevereError( "Did not find Air Node (Zone with Humidistat), " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( "Specified " + cAlphaFields( 17 ) + " = " + AlphArray( 17 ) ); + ShowContinueError( "Both a ZoneHVAC:EquipmentConnections object and a ZoneControl:Humidistat object must be specified for this zone." ); + ErrorsFound = true; + } + if ( ! AirLoopFound ) { + ShowSevereError( "Did not find correct Primary Air Loop for " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( cAlphaFields( 17 ) + " = " + AlphArray( 17 ) + " is not served by this Primary Air Loop equipment." ); + ErrorsFound = true; + } + } else { + ShowSevereError( "Did not find Air Node (Zone with Humidistat), " + OAController( OutAirNum ).ControllerType + " = \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( "Specified " + cAlphaFields( 17 ) + " = " + AlphArray( 17 ) ); + ShowContinueError( "Both a ZoneHVAC:EquipmentConnections object and a ZoneControl:Humidistat object must be specified for this zone." ); + ErrorsFound = true; + } + + OAController( OutAirNum ).HighRHOAFlowRatio = NumArray( 7 ); + if ( OAController( OutAirNum ).HighRHOAFlowRatio <= 0.0 && NumNums > 6 ) { + ShowWarningError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( ' ' + cNumericFields( 7 ) + " must be greater than 0." ); + ShowContinueError( ' ' + cNumericFields( 7 ) + " is reset to 1 and the simulation continues." ); + OAController( OutAirNum ).HighRHOAFlowRatio = 1.0; + } + + if ( SameString( AlphArray( 16 ), "Yes" ) && OAController( OutAirNum ).FixedMin ) { + if ( OAController( OutAirNum ).MaxOA > 0.0 && OAController( OutAirNum ).MinOA != AutoSize ) { + OAFlowRatio = OAController( OutAirNum ).MinOA / OAController( OutAirNum ).MaxOA; + if ( OAController( OutAirNum ).HighRHOAFlowRatio < OAFlowRatio ) { + ShowWarningError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( "... A fixed minimum outside air flow rate and high humidity control have been specified." ); + ShowContinueError( "... The " + cNumericFields( 7 ) + " is less than the ratio of the outside air controllers minimum to maximum outside air flow rate." ); + ShowContinueError( "... Controller " + cNumericFields( 1 ) + " = " + TrimSigDigits( OAController( OutAirNum ).MinOA, 4 ) + " m3/s." ); + ShowContinueError( "... Controller " + cNumericFields( 2 ) + " = " + TrimSigDigits( OAController( OutAirNum ).MaxOA, 4 ) + " m3/s." ); + ShowContinueError( "... Controller minimum to maximum flow ratio = " + TrimSigDigits( OAFlowRatio, 4 ) + '.' ); + ShowContinueError( "... " + cNumericFields( 7 ) + " = " + TrimSigDigits( OAController( OutAirNum ).HighRHOAFlowRatio, 4 ) + '.' ); + } + } + } + + if ( SameString( AlphArray( 18 ), "Yes" ) ) { + OAController( OutAirNum ).ModifyDuringHighOAMoisture = false; + } else if ( SameString( AlphArray( 18 ), "No" ) ) { + OAController( OutAirNum ).ModifyDuringHighOAMoisture = true; + } else { + ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); + ShowContinueError( "..." + cAlphaFields( 18 ) + "=\"" + AlphArray( 18 ) + "\" - valid values are \"Yes\" or \"No\"." ); + ErrorsFound = true; + } + + } else if ( SameString( AlphArray( 16 ), "No" ) || lAlphaBlanks( 16 ) ) { + if ( NumAlphas >= 18 ) { + if ( ! SameString( AlphArray( 18 ), "Yes" ) && ! SameString( AlphArray( 18 ), "No" ) ) { + ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); + ShowContinueError( "..." + cAlphaFields( 18 ) + "=\"" + AlphArray( 18 ) + "\" - valid values are \"Yes\" or \"No\"." ); + ErrorsFound = true; + } + } + } else { // Invalid field 16 + ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); + ShowContinueError( "..." + cAlphaFields( 16 ) + "=\"" + AlphArray( 16 ) + "\" - valid values are \"Yes\" or \"No\"." ); + ErrorsFound = true; + if ( NumAlphas >= 18 ) { + if ( ! SameString( AlphArray( 18 ), "Yes" ) && ! SameString( AlphArray( 18 ), "No" ) ) { + ShowSevereError( CurrentModuleObject + " \"" + OAController( OutAirNum ).Name + "\", invalid field value" ); + ShowContinueError( "..." + cAlphaFields( 18 ) + "=\"" + AlphArray( 18 ) + "\" - valid values are \"Yes\" or \"No\"." ); + ErrorsFound = true; + } + } + } + + if ( NumAlphas > 18 ) { + if ( ! lAlphaBlanks( 19 ) ) { + if ( SameString( AlphArray( 19 ), "BypassWhenWithinEconomizerLimits" ) ) { + OAController( OutAirNum ).HeatRecoveryBypassControlType = BypassWhenWithinEconomizerLimits; + } else if ( SameString( AlphArray( 19 ), "BypassWhenOAFlowGreaterThanMinimum" ) ) { + OAController( OutAirNum ).HeatRecoveryBypassControlType = BypassWhenOAFlowGreaterThanMinimum; + } else { + ShowWarningError( CurrentModuleObject + "=\"" + AlphArray( 1 ) + "\" invalid " + cAlphaFields( 19 ) + "=\"" + AlphArray( 19 ) + "\"." ); + ShowContinueError( "...assuming \"BypassWhenWithinEconomizerLimits\" and the simulation continues." ); + OAController( OutAirNum ).HeatRecoveryBypassControlType = BypassWhenWithinEconomizerLimits; + } + } + } + + if ( SameString( AlphArray( 16 ), "Yes" ) && OAController( OutAirNum ).Econo == NoEconomizer ) { + ShowWarningError( OAController( OutAirNum ).ControllerType + " \"" + OAController( OutAirNum ).Name + "\"" ); + ShowContinueError( "...Economizer operation must be enabled when " + cAlphaFields( 16 ) + " is set to YES." ); + ShowContinueError( "...The high humidity control option will be disabled and the simulation continues." ); + } + + + } + // End of Get Input subroutines for the Module //****************************************************************************** @@ -3022,7 +3103,10 @@ namespace MixedAir { ZoneNum = vent_mech.Zone( ZoneIndex ); // ZoneIntGain(ZoneNum)%NOFOCC is the number of occupants of a zone at each time step, already counting the occupant schedule - TotalPeopleOAFlow += ZoneIntGain( ZoneNum ).NOFOCC * Zone( ZoneNum ).Multiplier * Zone( ZoneNum ).ListMultiplier * vent_mech.ZoneOAPeopleRate( ZoneIndex ); + int OAFlowMethod = OARequirements( vent_mech.ZoneDesignSpecOAObjIndex( ZoneIndex ) ).OAFlowMethod; + if ( OAFlowMethod == OAFlowPPer || OAFlowMethod == OAFlowSum || OAFlowMethod == OAFlowMax ){ + TotalPeopleOAFlow += ZoneIntGain( ZoneNum ).NOFOCC * Zone( ZoneNum ).Multiplier * Zone( ZoneNum ).ListMultiplier * vent_mech.ZoneOAPeopleRate( ZoneIndex ); + } } vent_mech.TotPeopleOAFlow = TotalPeopleOAFlow; } @@ -4651,7 +4735,7 @@ namespace MixedAir { Real64 MixedAirControlTempResidual( Real64 const OASignal, // Relative outside air flow rate (0 to 1) - Optional< FArray1S< Real64 > const > Par // par(1) = mixed node number + FArray1< Real64 > const & Par // par(1) = mixed node number ) { @@ -4707,10 +4791,10 @@ namespace MixedAir { Real64 MixHumRat; // mixed air humidity ratio [kg water/kg dry air] Real64 MixTemp; // mixed air temperature [C] - MixNode = int( Par()( 1 ) ); - RetNode = int( Par()( 2 ) ); - OANode = int( Par()( 3 ) ); - MixMassFlowRate = Par()( 4 ); + MixNode = int( Par( 1 ) ); + RetNode = int( Par( 2 ) ); + OANode = int( Par( 3 ) ); + MixMassFlowRate = Par( 4 ); OAMassFlowRate = OASignal * MixMassFlowRate; RecircMassFlowRate = max( MixMassFlowRate - OAMassFlowRate, 0.0 ); RecircEnth = Node( RetNode ).Enthalpy; diff --git a/src/EnergyPlus/MixedAir.hh b/src/EnergyPlus/MixedAir.hh index e8cdc885d27..a143f1d1da8 100644 --- a/src/EnergyPlus/MixedAir.hh +++ b/src/EnergyPlus/MixedAir.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -729,7 +728,22 @@ namespace MixedAir { void GetOAMixerInputs(); - // End of Get Input subroutines for the Module + void + ProcessOAControllerInputs( + std::string const & CurrentModuleObject, + int const OutAirNum, + FArray1_string const & AlphArray, + int & NumAlphas, + FArray1< Real64 > const & NumArray, + int & NumNums, + FArray1_bool const & lNumericBlanks, //Unused + FArray1_bool const & lAlphaBlanks, + FArray1_string const & cAlphaFields, + FArray1_string const & cNumericFields, //Unused + bool & ErrorsFound // If errors found in input + ); + + // End of Get Input subroutines for the Module //****************************************************************************** // Beginning Initialization Section of the Module @@ -805,7 +819,7 @@ namespace MixedAir { Real64 MixedAirControlTempResidual( Real64 const OASignal, // Relative outside air flow rate (0 to 1) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = mixed node number + FArray1< Real64 > const & Par // par(1) = mixed node number ); FArray1D_int diff --git a/src/EnergyPlus/MoistureBalanceEMPDManager.cc b/src/EnergyPlus/MoistureBalanceEMPDManager.cc index afc0338027e..d87c23cb731 100644 --- a/src/EnergyPlus/MoistureBalanceEMPDManager.cc +++ b/src/EnergyPlus/MoistureBalanceEMPDManager.cc @@ -449,7 +449,7 @@ namespace MoistureBalanceEMPDManager { ZoneNum = Surface( SurfNum ).Zone; RALPHA = ZoneAirHumRat( ZoneNum ) * OutBaroPress / ( 461.52 * ( TempZone + KelvinConv ) * ( ZoneAirHumRat( ZoneNum ) + 0.62198 ) ); BB = HM / ( RHOBULK * material.EMPDVALUE * AT ); - CC = BB * RALPHA + BR / AT * ( TempSurfIn - TempSurfInOld ) / ( TimeStepZone * SecInHour ); + CC = BB * RALPHA + BR / AT * ( TempSurfIn - TempSurfInOld ) / TimeStepZoneSec; SolverMoistureBalanceEMPD( MoistEMPDNew( SurfNum ), MoistEMPDOld( SurfNum ), 1.0, BB, CC ); Flag = 0; @@ -521,7 +521,7 @@ namespace MoistureBalanceEMPDManager { // SUBROUTINE LOCAL VARIABLE DECLARATIONS: // na - VARNEW = ( VAROLD + TimeStepZone * SecInHour * C / A ) / ( 1.0 + TimeStepZone * SecInHour * B / A ); + VARNEW = ( VAROLD + TimeStepZoneSec * C / A ) / ( 1.0 + TimeStepZoneSec * B / A ); } diff --git a/src/EnergyPlus/MundtSimMgr.cc b/src/EnergyPlus/MundtSimMgr.cc index 0c9e8f6e60e..4b4d48312cb 100644 --- a/src/EnergyPlus/MundtSimMgr.cc +++ b/src/EnergyPlus/MundtSimMgr.cc @@ -951,7 +951,7 @@ namespace MundtSimMgr { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/OutdoorAirUnit.cc b/src/EnergyPlus/OutdoorAirUnit.cc index 102503055f5..0819d0b95e4 100644 --- a/src/EnergyPlus/OutdoorAirUnit.cc +++ b/src/EnergyPlus/OutdoorAirUnit.cc @@ -215,6 +215,7 @@ namespace OutdoorAirUnit { if ( OAUnitNum == 0 ) { ShowFatalError( "ZoneHVAC:OutdoorAirUnit not found=" + CompName ); } + CompIndex = OAUnitNum; } else { OAUnitNum = CompIndex; if ( OAUnitNum > NumOfOAUnits || OAUnitNum < 1 ) { @@ -1679,7 +1680,7 @@ namespace OutdoorAirUnit { int ControlNode; // the hot water or cold water inlet node int InletNode; // Unit air inlet node int SFanOutletNode; // Unit supply fan outlet node - int ZoneAirInNode; // zone supply air node +// int ZoneAirInNode; // zone supply air node Real64 MaxWaterFlow; // maximum water flow for heating or cooling [kg/sec] Real64 MinWaterFlow; // minimum water flow for heating or cooling [kg/sec] int OutletNode; // air outlet node diff --git a/src/EnergyPlus/OutputProcessor.cc b/src/EnergyPlus/OutputProcessor.cc index 58892dbfedf..92cbdf67019 100644 --- a/src/EnergyPlus/OutputProcessor.cc +++ b/src/EnergyPlus/OutputProcessor.cc @@ -196,7 +196,7 @@ namespace OutputProcessor { int RunPeriodStampReportNbr; // RunPeriod Report number std::string RunPeriodStampReportChr; // RunPeriod Report number (character -- for printing) bool TrackingRunPeriodVariables( false ); // Requested RunPeriod Report Variables - Real64 SecondsPerTimeStep; // Seconds from NumTimeStepInHour + Real64 TimeStepZoneSec; // Seconds from NumTimeStepInHour bool ErrorsLogged( false ); bool ProduceVariableDictionary( false ); @@ -344,7 +344,7 @@ namespace OutputProcessor { OutputInitialized = true; - SecondsPerTimeStep = double( MinutesPerTimeStep ) * 60.0; + TimeStepZoneSec = double( MinutesPerTimeStep ) * 60.0; InitializeMeters(); @@ -3361,51 +3361,51 @@ namespace OutputProcessor { int const RT_forIPUnits( EnergyMeters( Loop ).RT_forIPUnits ); if ( RT_forIPUnits == RT_IPUnits_Electricity ) { PreDefTableEntry( pdchEMelecannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue * convertJtoGJ ); - PreDefTableEntry( pdchEMelecminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMelecminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMelecminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMelecmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMelecmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMelecmaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else if ( RT_forIPUnits == RT_IPUnits_Gas ) { PreDefTableEntry( pdchEMgasannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue * convertJtoGJ ); - PreDefTableEntry( pdchEMgasminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMgasminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMgasminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMgasmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMgasmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMgasmaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else if ( RT_forIPUnits == RT_IPUnits_Cooling ) { PreDefTableEntry( pdchEMcoolannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue * convertJtoGJ ); - PreDefTableEntry( pdchEMcoolminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMcoolminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMcoolminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMcoolmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMcoolmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMcoolmaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else if ( RT_forIPUnits == RT_IPUnits_Water ) { PreDefTableEntry( pdchEMwaterannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue ); - PreDefTableEntry( pdchEMwaterminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMwaterminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMwaterminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMwatermaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMwatermaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMwatermaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else if ( RT_forIPUnits == RT_IPUnits_OtherKG ) { PreDefTableEntry( pdchEMotherKGannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue ); - PreDefTableEntry( pdchEMotherKGminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep, 3 ); + PreDefTableEntry( pdchEMotherKGminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec, 3 ); PreDefTableEntry( pdchEMotherKGminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMotherKGmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep, 3 ); + PreDefTableEntry( pdchEMotherKGmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec, 3 ); PreDefTableEntry( pdchEMotherKGmaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else if ( RT_forIPUnits == RT_IPUnits_OtherM3 ) { PreDefTableEntry( pdchEMotherM3annual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue, 3 ); - PreDefTableEntry( pdchEMotherM3minvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep, 3 ); + PreDefTableEntry( pdchEMotherM3minvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec, 3 ); PreDefTableEntry( pdchEMotherM3minvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMotherM3maxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep, 3 ); + PreDefTableEntry( pdchEMotherM3maxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec, 3 ); PreDefTableEntry( pdchEMotherM3maxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else if ( RT_forIPUnits == RT_IPUnits_OtherL ) { PreDefTableEntry( pdchEMotherLannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue, 3 ); - PreDefTableEntry( pdchEMotherLminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep, 3 ); + PreDefTableEntry( pdchEMotherLminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec, 3 ); PreDefTableEntry( pdchEMotherLminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMotherLmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep, 3 ); + PreDefTableEntry( pdchEMotherLmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec, 3 ); PreDefTableEntry( pdchEMotherLmaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } else { PreDefTableEntry( pdchEMotherJannual, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMValue * convertJtoGJ ); - PreDefTableEntry( pdchEMotherJminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMotherJminvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMinVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMotherJminvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMinValDate ) ); - PreDefTableEntry( pdchEMotherJmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / SecondsPerTimeStep ); + PreDefTableEntry( pdchEMotherJmaxvalue, EnergyMeters( Loop ).Name, EnergyMeters( Loop ).LastSMMaxVal / TimeStepZoneSec ); PreDefTableEntry( pdchEMotherJmaxvaluetime, EnergyMeters( Loop ).Name, DateToStringWithMonth( EnergyMeters( Loop ).LastSMMaxValDate ) ); } } @@ -3775,27 +3775,29 @@ namespace OutputProcessor { if ( ( reportingInterval == ReportEach ) || ( reportingInterval == ReportTimeStep ) ) { std::sprintf( stamp, "%s,%s,%2d,%2d,%2d,%2d,%5.2f,%5.2f,%s", reportIDString.c_str(), DayOfSimChr.c_str(), Month(), DayOfMonth(), DST(), Hour(), StartMinute(), EndMinute(), DayType().c_str() ); out_stream << stamp << NL; - if ( writeToSQL ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, Month, DayOfMonth, Hour, EndMinute, StartMinute, DST, DayType ); + if ( writeToSQL && sqlite ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, DataEnvironment::CurEnvirNum, Month, DayOfMonth, Hour, EndMinute, StartMinute, DST, DayType, DataGlobals::WarmupFlag ); } else if ( reportingInterval == ReportHourly ) { std::sprintf( stamp, "%s,%s,%2d,%2d,%2d,%2d,%5.2f,%5.2f,%s", reportIDString.c_str(), DayOfSimChr.c_str(), Month(), DayOfMonth(), DST(), Hour(), 0.0, 60.0, DayType().c_str() ); out_stream << stamp << NL; - if ( writeToSQL ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, Month, DayOfMonth, Hour, _, _, DST, DayType ); + if ( writeToSQL && sqlite ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, DataEnvironment::CurEnvirNum, Month, DayOfMonth, Hour, _, _, DST, DayType, DataGlobals::WarmupFlag ); } else if ( reportingInterval == ReportDaily ) { std::sprintf( stamp, "%s,%s,%2d,%2d,%2d,%s", reportIDString.c_str(), DayOfSimChr.c_str(), Month(), DayOfMonth(), DST(), DayType().c_str() ); out_stream << stamp << NL; - if ( writeToSQL ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, Month, DayOfMonth, _, _, _, DST, DayType ); + if ( writeToSQL && sqlite ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, DataEnvironment::CurEnvirNum, Month, DayOfMonth, _, _, _, DST, DayType, DataGlobals::WarmupFlag ); } else if ( reportingInterval == ReportMonthly ) { std::sprintf( stamp, "%s,%s,%2d", reportIDString.c_str(), DayOfSimChr.c_str(), Month() ); out_stream << stamp << NL; - if ( writeToSQL ) sqlite->createSQLiteTimeIndexRecord( ReportMonthly, reportID, DayOfSim, Month ); + if ( writeToSQL && sqlite ) sqlite->createSQLiteTimeIndexRecord( ReportMonthly, reportID, DayOfSim, DataEnvironment::CurEnvirNum, Month ); } else if ( reportingInterval == ReportSim ) { std::sprintf( stamp, "%s,%s", reportIDString.c_str(), DayOfSimChr.c_str() ); out_stream << stamp << NL; - if ( writeToSQL ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim ); + if ( writeToSQL && sqlite ) sqlite->createSQLiteTimeIndexRecord( reportingInterval, reportID, DayOfSim, DataEnvironment::CurEnvirNum ); } else { std::ostringstream ss; ss << "Illegal reportingInterval passed to WriteTimeStampFormatData: " << reportingInterval; - sqlite->sqliteWriteMessage( ss.str() ); + if ( sqlite ) { + sqlite->sqliteWriteMessage( ss.str() ); + } } } @@ -3871,7 +3873,9 @@ namespace OutputProcessor { if ( eso_stream ) *eso_stream << reportIDChr << ",11," << keyedValue << ',' << variableName << " [" << UnitsString << ']' << FreqString << NL; } - sqlite->createSQLiteReportDictionaryRecord( reportID, storeType, indexGroup, keyedValue, variableName, indexType, UnitsString, reportingInterval, false, ScheduleName ); + if ( sqlite ) { + sqlite->createSQLiteReportDictionaryRecord( reportID, storeType, indexGroup, keyedValue, variableName, indexType, UnitsString, reportingInterval, false, ScheduleName ); + } } @@ -3999,7 +4003,9 @@ namespace OutputProcessor { static std::string const keyedValueStringNon( "" ); std::string const & keyedValueString( cumulativeMeterFlag ? keyedValueStringCum : keyedValueStringNon ); - sqlite->createSQLiteReportDictionaryRecord( reportID, storeType, indexGroup, keyedValueString, meterName, 1, UnitsString, reportingInterval, true ); + if ( sqlite ) { + sqlite->createSQLiteReportDictionaryRecord( reportID, storeType, indexGroup, keyedValueString, meterName, 1, UnitsString, reportingInterval, true ); + } } @@ -4145,7 +4151,9 @@ namespace OutputProcessor { ProduceMinMaxString( MinOut, minValueDate, reportingInterval ); ProduceMinMaxString( MaxOut, maxValueDate, reportingInterval ); - sqlite->createSQLiteReportDataRecord( reportID, repVal, reportingInterval, minValue, minValueDate, MaxValue, maxValueDate ); + if ( sqlite ) { + sqlite->createSQLiteReportDataRecord( reportID, repVal, reportingInterval, minValue, minValueDate, MaxValue, maxValueDate ); + } if ( ( reportingInterval == ReportEach ) || ( reportingInterval == ReportTimeStep ) || ( reportingInterval == ReportHourly ) ) { // -1, 0, 1 if ( eso_stream ) *eso_stream << creportID << ',' << NumberOut << NL; @@ -4212,7 +4220,9 @@ namespace OutputProcessor { strip_trailing_zeros( strip( NumberOut ) ); } - sqlite->createSQLiteReportDataRecord( reportID, repValue ); + if ( sqlite ) { + sqlite->createSQLiteReportDataRecord( reportID, repValue ); + } if ( mtr_stream ) *mtr_stream << creportID << ',' << NumberOut << NL; ++StdMeterRecordCount; @@ -4301,7 +4311,9 @@ namespace OutputProcessor { strip_trailing_zeros( strip( MinOut ) ); } - sqlite->createSQLiteReportDataRecord( reportID, repValue, reportingInterval, minValue, minValueDate, MaxValue, maxValueDate, MinutesPerTimeStep ); + if ( sqlite ) { + sqlite->createSQLiteReportDataRecord( reportID, repValue, reportingInterval, minValue, minValueDate, MaxValue, maxValueDate, MinutesPerTimeStep ); + } // Append the min and max strings with date information // CALL ProduceMinMaxStringWStartMinute(MinOut, minValueDate, reportingInterval) @@ -4486,7 +4498,9 @@ namespace OutputProcessor { strip_number( s ); } - sqlite->createSQLiteReportDataRecord( reportID, repValue ); + if ( sqlite ) { + sqlite->createSQLiteReportDataRecord( reportID, repValue ); + } if ( eso_stream ) *eso_stream << creportID << ',' << s << NL; @@ -4630,7 +4644,9 @@ namespace OutputProcessor { rminValue = minValue; rmaxValue = MaxValue; - sqlite->createSQLiteReportDataRecord( reportID, repVal, reportingInterval, rminValue, minValueDate, rmaxValue, maxValueDate ); + if ( sqlite ) { + sqlite->createSQLiteReportDataRecord( reportID, repVal, reportingInterval, rminValue, minValueDate, rmaxValue, maxValueDate ); + } if ( ( reportingInterval == ReportEach ) || ( reportingInterval == ReportTimeStep ) || ( reportingInterval == ReportHourly ) ) { // -1, 0, 1 if ( eso_stream ) *eso_stream << reportIDString << ',' << NumberOut << NL; @@ -4695,7 +4711,9 @@ namespace OutputProcessor { } } - sqlite->createSQLiteReportDataRecord( reportID, repValue ); + if ( sqlite ) { + sqlite->createSQLiteReportDataRecord( reportID, repValue ); + } if ( eso_stream ) *eso_stream << reportIDString << ',' << NumberOut << NL; @@ -7160,36 +7178,40 @@ GetMeteredVariables( if ( RVar().MeterArrayPtr == 0 ) continue; NumOnMeterPtr = VarMeterArrays( RVar().MeterArrayPtr ).NumOnMeters; MeterPtr = VarMeterArrays( RVar().MeterArrayPtr ).OnMeters( 1 ); - ++NumVariables; - VarIndexes( NumVariables ) = Loop; - VarTypes( NumVariables ) = 2; - IndexTypes( NumVariables ) = RVariableTypes( Loop ).IndexType; - UnitsStrings( NumVariables ) = RVariableTypes( Loop ).UnitsString; - - ResourceTypes( NumVariables ) = AssignResourceTypeNum( MakeUPPERCase( EnergyMeters( MeterPtr ).ResourceType ) ); - if ( present( Names ) ) { - Names()( NumVariables ) = RVariableTypes( Loop ).VarNameUC; - } - if ( present( EndUses ) ) { - for ( MeterNum = 1; MeterNum <= NumOnMeterPtr; ++MeterNum ) { - MeterPtr = VarMeterArrays( RVar().MeterArrayPtr ).OnMeters( MeterNum ); - if ( EnergyMeters( MeterPtr ).EndUse != "" ) { - EndUses()( NumVariables ) = MakeUPPERCase( EnergyMeters( MeterPtr ).EndUse ); - break; + if ( MeterPtr ) { + ++NumVariables; + VarIndexes( NumVariables ) = Loop; + VarTypes( NumVariables ) = 2; + IndexTypes( NumVariables ) = RVariableTypes( Loop ).IndexType; + UnitsStrings( NumVariables ) = RVariableTypes( Loop ).UnitsString; + + ResourceTypes( NumVariables ) = AssignResourceTypeNum( MakeUPPERCase( EnergyMeters( MeterPtr ).ResourceType ) ); + if ( present( Names ) ) { + Names()( NumVariables ) = RVariableTypes( Loop ).VarNameUC; + } + if ( present( EndUses ) ) { + for ( MeterNum = 1; MeterNum <= NumOnMeterPtr; ++MeterNum ) { + MeterPtr = VarMeterArrays( RVar().MeterArrayPtr ).OnMeters( MeterNum ); + if ( EnergyMeters( MeterPtr ).EndUse != "" ) { + EndUses()( NumVariables ) = MakeUPPERCase( EnergyMeters( MeterPtr ).EndUse ); + break; + } } } - } - if ( present( Groups ) ) { - for ( MeterNum = 1; MeterNum <= NumOnMeterPtr; ++MeterNum ) { - MeterPtr = VarMeterArrays( RVar().MeterArrayPtr ).OnMeters( MeterNum ); - if ( EnergyMeters( MeterPtr ).Group != "" ) { - Groups()( NumVariables ) = MakeUPPERCase( EnergyMeters( MeterPtr ).Group ); - break; + if ( present( Groups ) ) { + for ( MeterNum = 1; MeterNum <= NumOnMeterPtr; ++MeterNum ) { + MeterPtr = VarMeterArrays( RVar().MeterArrayPtr ).OnMeters( MeterNum ); + if ( EnergyMeters( MeterPtr ).Group != "" ) { + Groups()( NumVariables ) = MakeUPPERCase( EnergyMeters( MeterPtr ).Group ); + break; + } } } - } - if ( present( VarIDs ) ) { - VarIDs()( NumVariables ) = RVar().ReportID; + if ( present( VarIDs ) ) { + VarIDs()( NumVariables ) = RVar().ReportID; + } + } else { + ShowWarningError( "Referenced variable or meter used in the wrong context \"" + ComponentName + "\" of type \"" + ComponentType + "\"" ); } } @@ -8052,7 +8074,7 @@ AddToOutputVariableList( } // NOTICE -// Copyright � 1996-2014 The Board of Trustees of the University of Illinois +// Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/OutputProcessor.hh b/src/EnergyPlus/OutputProcessor.hh index 19eed940e9a..b07b7146949 100644 --- a/src/EnergyPlus/OutputProcessor.hh +++ b/src/EnergyPlus/OutputProcessor.hh @@ -132,7 +132,7 @@ namespace OutputProcessor { extern int RunPeriodStampReportNbr; // RunPeriod Report number extern std::string RunPeriodStampReportChr; // RunPeriod Report number (character -- for printing) extern bool TrackingRunPeriodVariables; // Requested RunPeriod Report Variables - extern Real64 SecondsPerTimeStep; // Seconds from NumTimeStepInHour + extern Real64 TimeStepZoneSec; // Seconds from NumTimeStepInHour extern bool ErrorsLogged; extern bool ProduceVariableDictionary; @@ -1429,7 +1429,7 @@ AddToOutputVariableList( ); // NOTICE -// Copyright � 1996-2014 The Board of Trustees of the University of Illinois +// Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/OutputReportPredefined.cc b/src/EnergyPlus/OutputReportPredefined.cc index 22b34a93f97..7f195bd712c 100644 --- a/src/EnergyPlus/OutputReportPredefined.cc +++ b/src/EnergyPlus/OutputReportPredefined.cc @@ -1616,7 +1616,7 @@ namespace OutputReportPredefined { ++numTableEntry; // if larger than current size grow the array if ( numTableEntry > sizeTableEntry ) { - tableEntry.redimension( sizeTableEntry += sizeIncrement ); + tableEntry.redimension( sizeTableEntry *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } } @@ -1668,7 +1668,7 @@ namespace OutputReportPredefined { ++numCompSizeTableEntry; // if larger than current size grow the array if ( numCompSizeTableEntry > sizeCompSizeTableEntry ) { - CompSizeTableEntry.redimension( sizeCompSizeTableEntry += sizeIncrement ); + CompSizeTableEntry.redimension( sizeCompSizeTableEntry *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } CompSizeTableEntry( numCompSizeTableEntry ).typeField = FieldType; @@ -1726,7 +1726,7 @@ namespace OutputReportPredefined { ++numShadowRelate; // if larger than current size grow the array if ( numShadowRelate > sizeShadowRelate ) { - ShadowRelate.redimension( sizeShadowRelate += sizeIncrement ); + ShadowRelate.redimension( sizeShadowRelate *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } ShadowRelate( numShadowRelate ).castSurf = castingField; @@ -1782,7 +1782,7 @@ namespace OutputReportPredefined { ++numReportName; // if larger than current size grow the array if ( numReportName > sizeReportName ) { - reportName.redimension( sizeReportName += sizeIncrement ); + reportName.redimension( sizeReportName *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } // initialize new record @@ -1840,7 +1840,7 @@ namespace OutputReportPredefined { ++numSubTable; // if larger than current size then grow the array if ( numSubTable > sizeSubTable ) { - subTable.redimension( sizeSubTable += sizeIncrement ); + subTable.redimension( sizeSubTable *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } // initialize new record) @@ -1937,7 +1937,7 @@ namespace OutputReportPredefined { ++numColumnTag; // if larger than current size grow the array if ( numColumnTag > sizeColumnTag ) { - columnTag.redimension( sizeColumnTag += sizeIncrement ); + columnTag.redimension( sizeColumnTag *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } // initialize new record) diff --git a/src/EnergyPlus/OutputReportTabular.cc b/src/EnergyPlus/OutputReportTabular.cc index f4f98b7d840..4af9512a9bd 100644 --- a/src/EnergyPlus/OutputReportTabular.cc +++ b/src/EnergyPlus/OutputReportTabular.cc @@ -105,6 +105,7 @@ namespace OutputReportTabular { using DataGlobals::TimeStep; using DataGlobals::SecInHour; using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using DataGlobals::CurrentTime; using DataGlobals::NumOfZones; using DataGlobals::OutputFileDebug; @@ -142,6 +143,7 @@ namespace OutputReportTabular { int const unitsStyleJtoMJ( 2 ); int const unitsStyleJtoGJ( 3 ); int const unitsStyleInchPound( 4 ); + int const unitsStyleNotFound( 5 ); int const isAverage( 1 ); int const isSum( 2 ); @@ -717,7 +719,7 @@ namespace OutputReportTabular { ++MonthlyFieldSetInputCount; // if larger than current size grow the array if ( MonthlyFieldSetInputCount > sizeMonthlyFieldSetInput ) { - MonthlyFieldSetInput.redimension( sizeMonthlyFieldSetInput += sizeIncrement ); + MonthlyFieldSetInput.redimension( sizeMonthlyFieldSetInput *= 2 ); //Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost) } } // initialize new record) @@ -1354,7 +1356,7 @@ namespace OutputReportTabular { } bool - warningAboutKeyNotFound( int foundIndex, int inObjIndex, std::string moduleName ) + warningAboutKeyNotFound( int foundIndex, int inObjIndex, const std::string & moduleName ) { if ( foundIndex == 0 ) { ShowWarningError( moduleName + ": Specified key not found: " + OutputTableBinned( inObjIndex ).keyValue + " for variable: " + OutputTableBinned( inObjIndex ).varOrMeter ); @@ -1493,18 +1495,8 @@ namespace OutputReportTabular { } //MonthlyUnitConversion if ( NumAlphas >= 2 ) { - if ( SameString( AlphArray( 2 ), "None" ) ) { - unitsStyle = unitsStyleNone; - } else if ( SameString( AlphArray( 2 ), "JTOKWH" ) ) { - unitsStyle = unitsStyleJtoKWH; - } else if ( SameString( AlphArray( 2 ), "JTOMJ" ) ) { - unitsStyle = unitsStyleJtoMJ; - } else if ( SameString( AlphArray( 2 ), "JTOGJ" ) ) { - unitsStyle = unitsStyleJtoGJ; - } else if ( SameString( AlphArray( 2 ), "INCHPOUND" ) ) { - unitsStyle = unitsStyleInchPound; - } else { - unitsStyle = unitsStyleNone; + unitsStyle = SetUnitsStyleFromString( AlphArray( 2 ) ); + if (unitsStyle == unitsStyleNotFound) { ShowWarningError( CurrentModuleObject + ": Invalid " + cAlphaFieldNames( 2 ) + "=\"" + AlphArray( 2 ) + "\". No unit conversion will be performed. Normal SI units will be shown." ); } } else { @@ -1535,6 +1527,33 @@ namespace OutputReportTabular { } + int + SetUnitsStyleFromString( + std::string unitStringIn + ) + { + int unitsStyleReturn; + if ( SameString( unitStringIn, "None" ) ) { + unitsStyleReturn = unitsStyleNone; + } + else if ( SameString( unitStringIn, "JTOKWH" ) ) { + unitsStyleReturn = unitsStyleJtoKWH; + } + else if ( SameString( unitStringIn, "JTOMJ" ) ) { + unitsStyleReturn = unitsStyleJtoMJ; + } + else if ( SameString( unitStringIn, "JTOGJ" ) ) { + unitsStyleReturn = unitsStyleJtoGJ; + } + else if ( SameString( unitStringIn, "INCHPOUND" ) ) { + unitsStyleReturn = unitsStyleInchPound; + } + else { + unitsStyleReturn = unitsStyleNotFound; + } + return unitsStyleReturn; + } + void GetInputTabularPredefined() { @@ -3646,7 +3665,7 @@ namespace OutputReportTabular { if ( IndexTypeKey == HVACTSReporting ) { curValue /= ( TimeStepSys * SecInHour ); } else { - curValue /= ( TimeStepZone * SecInHour ); + curValue /= TimeStepZoneSec; } } if ( curValue > oldResultValue ) { @@ -3663,7 +3682,7 @@ namespace OutputReportTabular { if ( IndexTypeKey == HVACTSReporting ) { curValue /= ( TimeStepSys * SecInHour ); } else { - curValue /= ( TimeStepZone * SecInHour ); + curValue /= TimeStepZoneSec; } } if ( curValue < oldResultValue ) { @@ -3758,7 +3777,7 @@ namespace OutputReportTabular { if ( IndexTypeKey == HVACTSReporting ) { scanValue /= ( TimeStepSys * SecInHour ); } else { - scanValue /= ( TimeStepZone * SecInHour ); + scanValue /= TimeStepZoneSec; } } MonthlyColumns( scanColumn ).reslt( Month ) = scanValue; @@ -3800,7 +3819,7 @@ namespace OutputReportTabular { if ( IndexTypeKey == HVACTSReporting ) { scanValue /= ( TimeStepSys * SecInHour ); } else { - scanValue /= ( TimeStepZone * SecInHour ); + scanValue /= TimeStepZoneSec; } } if ( scanValue > oldScanValue ) { @@ -3812,7 +3831,7 @@ namespace OutputReportTabular { if ( IndexTypeKey == HVACTSReporting ) { scanValue /= ( TimeStepSys * SecInHour ); } else { - scanValue /= ( TimeStepZone * SecInHour ); + scanValue /= TimeStepZoneSec; } } if ( scanValue < oldScanValue ) { @@ -4202,7 +4221,7 @@ namespace OutputReportTabular { for ( iResource = 1; iResource <= numResourceTypes; ++iResource ) { curMeterNumber = meterNumTotalsBEPS( iResource ); if ( curMeterNumber > 0 ) { - curDemandValue = GetCurrentMeterValue( curMeterNumber ) / ( TimeStepZone * SecInHour ); + curDemandValue = GetCurrentMeterValue( curMeterNumber ) / TimeStepZoneSec; // check if current value is greater than existing peak demand value if ( curDemandValue > gatherDemandTotal( iResource ) ) { gatherDemandTotal( iResource ) = curDemandValue; @@ -4216,12 +4235,12 @@ namespace OutputReportTabular { for ( jEndUse = 1; jEndUse <= NumEndUses; ++jEndUse ) { curMeterNumber = meterNumEndUseBEPS( jEndUse, iResource ); if ( curMeterNumber > 0 ) { - curDemandValue = GetCurrentMeterValue( curMeterNumber ) / ( TimeStepZone * SecInHour ); + curDemandValue = GetCurrentMeterValue( curMeterNumber ) / TimeStepZoneSec; gatherDemandEndUse( jEndUse, iResource ) = curDemandValue; for ( kEndUseSub = 1; kEndUseSub <= EndUseCategory( jEndUse ).NumSubcategories; ++kEndUseSub ) { curMeterNumber = meterNumEndUseSubBEPS( iResource, jEndUse, kEndUseSub ); if ( curMeterNumber > 0 ) { - curDemandValue = GetCurrentMeterValue( curMeterNumber ) / ( TimeStepZone * SecInHour ); + curDemandValue = GetCurrentMeterValue( curMeterNumber ) / TimeStepZoneSec; gatherDemandEndUseSub( iResource, jEndUse, kEndUseSub ) = curDemandValue; } } @@ -5832,8 +5851,11 @@ namespace OutputReportTabular { //CALL PreDefTableEntry(pdchLeedGenData,'Heating Degree Days','-') //CALL PreDefTableEntry(pdchLeedGenData,'Cooling Degree Days','-') PreDefTableEntry( pdchLeedGenData, "HDD and CDD data source", "Weather File Stat" ); - PreDefTableEntry( pdchLeedGenData, "Total gross floor area [m2]", "-" ); - + if ( unitsStyle == unitsStyleInchPound ) { + PreDefTableEntry( pdchLeedGenData, "Total gross floor area [ft2]", "-" ); + } else { + PreDefTableEntry( pdchLeedGenData, "Total gross floor area [m2]", "-" ); + } } void @@ -6208,7 +6230,9 @@ namespace OutputReportTabular { WriteReportHeaders( MonthlyInput( iInput ).name, MonthlyTables( curTable ).keyValue, isAverage ); WriteSubtitle( "Custom Monthly Report" ); WriteTable( tableBody, rowHead, columnHead, columnWidth, true ); //transpose monthly XML tables. - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, MonthlyInput( iInput ).name, MonthlyTables( curTable ).keyValue, "Custom Monthly Report" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, MonthlyInput( iInput ).name, MonthlyTables( curTable ).keyValue, "Custom Monthly Report" ); + } columnHead.deallocate(); columnWidth.deallocate(); tableBody.deallocate(); @@ -6421,7 +6445,9 @@ namespace OutputReportTabular { WriteTextLine( "" ); WriteSubtitle( "Time Bin Results" ); WriteTable( tableBody, rowHead, columnHead, columnWidth, true ); //transpose XML tables - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, repNameWithUnitsandscheduleName, BinObjVarID( repIndex ).namesOfObj, "Time Bin Results" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, repNameWithUnitsandscheduleName, BinObjVarID( repIndex ).namesOfObj, "Time Bin Results" ); + } //create statistics table rowHeadStat( 1 ) = "Minimum"; rowHeadStat( 2 ) = "Mean minus two standard deviations"; @@ -6461,7 +6487,9 @@ namespace OutputReportTabular { } WriteSubtitle( "Statistics" ); WriteTable( tableBodyStat, rowHeadStat, columnHeadStat, columnWidthStat, true ); //transpose XML table - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, repNameWithUnitsandscheduleName, BinObjVarID( repIndex ).namesOfObj, "Statistics" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, repNameWithUnitsandscheduleName, BinObjVarID( repIndex ).namesOfObj, "Statistics" ); + } } columnHead.deallocate(); columnWidth.deallocate(); @@ -6911,7 +6939,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Site and Source Energy" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Site and Source Energy" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Site and Source Energy" ); + } } columnHead.deallocate(); @@ -7048,7 +7078,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Site to Source Energy Conversion Factors" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Site to Source Energy Conversion Factors" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Site to Source Energy Conversion Factors" ); + } } columnHead.deallocate(); @@ -7078,7 +7110,11 @@ namespace OutputReportTabular { tableBody = ""; tableBody( 1, 1 ) = RealToStr( convBldgGrossFloorArea, 2 ); - PreDefTableEntry( pdchLeedGenData, "Total gross floor area [m2]", RealToStr( convBldgGrossFloorArea, 2 ) ); + if ( unitsStyle == unitsStyleInchPound ) { + PreDefTableEntry( pdchLeedGenData, "Total gross floor area [ft2]", RealToStr( convBldgGrossFloorArea, 2 ) ); + } else { + PreDefTableEntry( pdchLeedGenData, "Total gross floor area [m2]", RealToStr( convBldgGrossFloorArea, 2 ) ); + } tableBody( 2, 1 ) = RealToStr( convBldgCondFloorArea, 2 ); tableBody( 3, 1 ) = RealToStr( convBldgGrossFloorArea - convBldgCondFloorArea, 2 ); @@ -7086,7 +7122,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Building Area" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Building Area" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Building Area" ); + } } columnHead.deallocate(); @@ -7356,7 +7394,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "End Uses" ); WriteTable( tableBody, rowHead, columnHead, columnWidth, false, footnote ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "End Uses" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "End Uses" ); + } } columnHead.deallocate(); rowHead.deallocate(); @@ -7484,7 +7524,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "End Uses By Subcategory" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "End Uses By Subcategory" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "End Uses By Subcategory" ); + } } columnHead.deallocate(); rowHead.deallocate(); @@ -7557,7 +7599,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Utility Use Per Conditioned Floor Area" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Utility Use Per Conditioned Floor Area" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Utility Use Per Conditioned Floor Area" ); + } } //---- Normalized by Total Area Sub-Table tableBody = ""; @@ -7572,7 +7616,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Utility Use Per Total Floor Area" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Utility Use Per Total Floor Area" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Utility Use Per Total Floor Area" ); + } } columnHead.deallocate(); @@ -7648,7 +7694,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Electric Loads Satisfied" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Electric Loads Satisfied" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Electric Loads Satisfied" ); + } } columnHead.deallocate(); @@ -7719,7 +7767,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "On-Site Thermal Sources" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "On-Site Thermal Sources" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "On-Site Thermal Sources" ); + } } columnHead.deallocate(); @@ -7810,7 +7860,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteSubtitle( "Water Source Summary" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Water Source Summary" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Water Source Summary" ); + } } columnHead.deallocate(); @@ -7847,7 +7899,9 @@ namespace OutputReportTabular { } WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Setpoint Not Met Criteria" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Setpoint Not Met Criteria" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -7880,7 +7934,9 @@ namespace OutputReportTabular { if ( displayTabularBEPS ) { WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Comfort and Setpoint Not Met Summary" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "Comfort and Setpoint Not Met Summary" ); + } } columnHead.deallocate(); @@ -8093,7 +8149,9 @@ namespace OutputReportTabular { // heading for the entire sub-table WriteSubtitle( "Source Energy End Use Components Summary" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SourceEnergyEndUseComponentsSummary", "Entire Facility", "Source Energy End Use Components Summary" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SourceEnergyEndUseComponentsSummary", "Entire Facility", "Source Energy End Use Components Summary" ); + } //---- Normalized by Conditioned Area Sub-Table @@ -8133,7 +8191,9 @@ namespace OutputReportTabular { // heading for the entire sub-table WriteSubtitle( "Source Energy End Use Components Per Conditioned Floor Area" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SourceEnergyEndUseComponentsSummary", "Entire Facility", "Source Energy End Use Component Per Conditioned Floor Area" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SourceEnergyEndUseComponentsSummary", "Entire Facility", "Source Energy End Use Component Per Conditioned Floor Area" ); + } //---- Normalized by Total Area Sub-Table tableBody = ""; @@ -8149,7 +8209,9 @@ namespace OutputReportTabular { // heading for the entire sub-table WriteSubtitle( "Source Energy End Use Components Per Total Floor Area" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SourceEnergyEndUseComponentsSummary", "Entire Facility", "Source Energy End Use Components Per Total Floor Area" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SourceEnergyEndUseComponentsSummary", "Entire Facility", "Source Energy End Use Components Per Total Floor Area" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -8564,7 +8626,9 @@ namespace OutputReportTabular { WriteSubtitle( "End Uses" ); WriteTable( tableBody, rowHead, columnHead, columnWidth, false, footnote ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "DemandEndUseComponentsSummary", "Entire Facility", "End Uses" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "DemandEndUseComponentsSummary", "Entire Facility", "End Uses" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -8686,7 +8750,9 @@ namespace OutputReportTabular { // heading for the entire sub-table WriteSubtitle( "End Uses By Subcategory" ); WriteTable( tableBody, rowHead, columnHead, columnWidth, false, footnote ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "DemandEndUseComponentsSummary", "Entire Facility", "End Uses By Subcategory" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "DemandEndUseComponentsSummary", "Entire Facility", "End Uses By Subcategory" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -8870,7 +8936,9 @@ namespace OutputReportTabular { WriteSubtitle( "Construction Cost Estimate Summary" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Construction Cost Estimate Summary", "Entire Facility", "Construction Cost Estimate Summary" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Construction Cost Estimate Summary", "Entire Facility", "Construction Cost Estimate Summary" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -8925,7 +8993,9 @@ namespace OutputReportTabular { tableBody( NumRows, 6 ) = RealToStr( CurntBldg.LineItemTot, 2 ); WriteSubtitle( "Cost Line Item Details" ); //: '//TRIM(RealToStr(CostEstimateTotal, 2))) WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Construction Cost Estimate Summary", "Entire Facility", "Cost Line Item Details" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "Construction Cost Estimate Summary", "Entire Facility", "Cost Line Item Details" ); + } columnHead.deallocate(); rowHead.deallocate(); columnWidth.deallocate(); @@ -9181,7 +9251,9 @@ namespace OutputReportTabular { WriteSubtitle( "General" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "General" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "General" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -9387,7 +9459,9 @@ namespace OutputReportTabular { WriteSubtitle( "Window-Wall Ratio" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Window-Wall Ratio" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Window-Wall Ratio" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -9453,7 +9527,9 @@ namespace OutputReportTabular { WriteSubtitle( "Conditioned Window-Wall Ratio" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Conditioned Window-Wall Ratio" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Conditioned Window-Wall Ratio" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -9485,7 +9561,9 @@ namespace OutputReportTabular { WriteSubtitle( "Skylight-Roof Ratio" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Skylight-Roof Ratio" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Skylight-Roof Ratio" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -9675,7 +9753,9 @@ namespace OutputReportTabular { WriteSubtitle( "Zone Summary" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Zone Summary" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "InputVerificationandResultsSummary", "Entire Facility", "Zone Summary" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -9771,7 +9851,9 @@ namespace OutputReportTabular { } WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AdaptiveComfortReport", "Entire Facility", "People Summary" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "AdaptiveComfortReport", "Entire Facility", "People Summary" ); + } } } @@ -9997,7 +10079,9 @@ namespace OutputReportTabular { //create the actual output table WriteSubtitle( subTable( jSubTable ).name ); WriteTable( tableBody, rowHead, columnHead, columnWidth, false, subTable( jSubTable ).footnote ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, reportName( iReportName ).name, "Entire Facility", subTable( jSubTable ).name ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, reportName( iReportName ).name, "Entire Facility", subTable( jSubTable ).name ); + } //clean up the temporary arrays used columnHead.deallocate(); rowHead.deallocate(); @@ -10225,7 +10309,9 @@ namespace OutputReportTabular { //write the table WriteSubtitle( CompSizeTableEntry( foundEntry ).typeField ); WriteTable( tableBody, rowHead, columnHead, columnWidth, false, "User-Specified values were used. Design Size values were used if no User-Specified values were provided." ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ComponentSizingSummary", "Entire Facility", CompSizeTableEntry( foundEntry ).typeField ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ComponentSizingSummary", "Entire Facility", CompSizeTableEntry( foundEntry ).typeField ); + } //deallocate these arrays since they are used to create the next //table rowHead.deallocate(); @@ -10367,10 +10453,14 @@ namespace OutputReportTabular { // write the table if ( iKindRec == recKindSurface ) { WriteSubtitle( "Surfaces (Walls, Roofs, etc) that may be Shadowed by Other Surfaces" ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SurfaceShadowingSummary", "Entire Facility", "Surfaces (Walls, Roofs, etc) that may be Shadowed by Other Surfaces" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SurfaceShadowingSummary", "Entire Facility", "Surfaces (Walls, Roofs, etc) that may be Shadowed by Other Surfaces" ); + } } else if ( iKindRec == recKindSubsurface ) { WriteSubtitle( "Subsurfaces (Windows and Doors) that may be Shadowed by Surfaces" ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SurfaceShadowingSummary", "Entire Facility", "Subsurfaces (Windows and Doors) that may be Shadowed by Surfaces" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "SurfaceShadowingSummary", "Entire Facility", "Subsurfaces (Windows and Doors) that may be Shadowed by Surfaces" ); + } } WriteTable( tableBody, rowHead, columnHead, columnWidth ); } @@ -11547,7 +11637,9 @@ namespace OutputReportTabular { WriteSubtitle( "Estimated Cooling Peak Load Components" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Estimated Cooling Peak Load Components" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Estimated Cooling Peak Load Components" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -11629,7 +11721,9 @@ namespace OutputReportTabular { WriteSubtitle( "Cooling Peak Conditions" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Cooling Peak Conditions" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Cooling Peak Conditions" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -12025,7 +12119,9 @@ namespace OutputReportTabular { WriteSubtitle( "Estimated Heating Peak Load Components" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Estimated Heating Peak Load Components" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Estimated Heating Peak Load Components" ); + } columnHead.deallocate(); rowHead.deallocate(); @@ -12106,7 +12202,9 @@ namespace OutputReportTabular { WriteSubtitle( "Heating Peak Conditions" ); WriteTable( tableBody, rowHead, columnHead, columnWidth ); - sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Heating Peak Conditions" ); + if ( sqlite ) { + sqlite->createSQLiteTabularDataRecords( tableBody, rowHead, columnHead, "ZoneComponentLoadSummary", Zone( iZone ).Name, "Heating Peak Conditions" ); + } columnHead.deallocate(); rowHead.deallocate(); diff --git a/src/EnergyPlus/OutputReportTabular.hh b/src/EnergyPlus/OutputReportTabular.hh index 7c075721e1f..0cdf353f0fd 100644 --- a/src/EnergyPlus/OutputReportTabular.hh +++ b/src/EnergyPlus/OutputReportTabular.hh @@ -54,6 +54,7 @@ namespace OutputReportTabular { extern int const unitsStyleJtoMJ; extern int const unitsStyleJtoGJ; extern int const unitsStyleInchPound; + extern int const unitsStyleNotFound; extern int const isAverage; extern int const isSum; @@ -763,11 +764,18 @@ namespace OutputReportTabular { GetInputTabularTimeBins(); bool - warningAboutKeyNotFound( int foundIndex, int inObjIndex, std::string moduleName ); + warningAboutKeyNotFound( int foundIndex, int inObjIndex, const std::string & moduleName ); void GetInputTabularStyle(); + + int + SetUnitsStyleFromString( + std::string unitStringIn + ); + + void GetInputTabularPredefined(); diff --git a/src/EnergyPlus/PackagedTerminalHeatPump.cc b/src/EnergyPlus/PackagedTerminalHeatPump.cc index c176a010f61..5f571ec669d 100644 --- a/src/EnergyPlus/PackagedTerminalHeatPump.cc +++ b/src/EnergyPlus/PackagedTerminalHeatPump.cc @@ -4008,7 +4008,7 @@ namespace PackagedTerminalHeatPump { Real64 NoCompOutput; // output when no active compressor [W] Real64 ErrorToler; // error tolerance int SolFla; // Flag of RegulaFalsi solver - FArray1D< Real64 > Par( 8 ); // Parameters passed to RegulaFalsi + static FArray1D< Real64 > Par( 8 ); // Parameters passed to RegulaFalsi std::string IterNum; // Max number of iterations for warning message Real64 CpAir; // air specific heat Real64 OutsideDryBulbTemp; // Outside air temperature at external node height @@ -4280,12 +4280,20 @@ namespace PackagedTerminalHeatPump { Real64 PartLoadFraction; // heating or cooling part load fraction Real64 MaxHotWaterFlow; // coil maximum hot water mass flow rate, kg/s Real64 HotWaterMdot; // actual hot water mass flow rate - FArray1D< Real64 > Par( 3 ); + static FArray1D< Real64 > Par( 3 ); int SolFlag; Real64 MinFlow; // minimum fluid flow rate, kg/s int ControlCompTypeNum; // temporary component index number static int ATMixOutNode( 0 ); // outlet node of ATM Mixer + //Tuned Named constants to avoid heap allocation when passed to Optional args + bool const True( true ); + bool const False( false ); + int const iZero( 0 ); + int const iOne( 1 ); + Real64 const dZero( 0.0 ); + Real64 const dOne( 1.0 ); + // FLOW OutletNode = PTUnit( PTUnitNum ).AirOutNode; @@ -4337,7 +4345,7 @@ namespace PackagedTerminalHeatPump { SaveCompressorPLR = DXCoilPartLoadRatio( PTUnit( PTUnitNum ).DXCoolCoilIndexNum ); } else if ( SELECT_CASE_var == PTWSHPUnit ) { HeatPumpRunFrac( PTUnitNum, PartLoadFrac, errFlag, WSHPRuntimeFrac ); - SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXCoolCoilIndexNum, QZnReq, 1.0, OpMode, WSHPRuntimeFrac, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, 1, PartLoadFrac, FirstHVACIteration, OnOffAirFlowRatio ); + SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXCoolCoilIndexNum, QZnReq, dOne, OpMode, WSHPRuntimeFrac, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, iOne, PartLoadFrac, FirstHVACIteration, OnOffAirFlowRatio ); SaveCompressorPLR = PartLoadFrac; } else { }} @@ -4345,12 +4353,12 @@ namespace PackagedTerminalHeatPump { { auto const SELECT_CASE_var( PTUnit( PTUnitNum ).UnitType_Num ); if ( ( SELECT_CASE_var == PTACUnit ) || ( SELECT_CASE_var == PTHPUnit ) ) { if ( PTUnit( PTUnitNum ).DXCoolCoilType_Num == CoilDX_CoolingHXAssisted ) { - SimHXAssistedCoolingCoil( PTUnit( PTUnitNum ).DXCoolCoilName, FirstHVACIteration, Off, 0.0, PTUnit( PTUnitNum ).CoolCoilCompIndex, PTUnit( PTUnitNum ).OpMode, HXUnitOn ); + SimHXAssistedCoolingCoil( PTUnit( PTUnitNum ).DXCoolCoilName, FirstHVACIteration, Off, dZero, PTUnit( PTUnitNum ).CoolCoilCompIndex, PTUnit( PTUnitNum ).OpMode, HXUnitOn ); } else { - SimDXCoil( PTUnit( PTUnitNum ).DXCoolCoilName, Off, FirstHVACIteration, PTUnit( PTUnitNum ).CoolCoilCompIndex, PTUnit( PTUnitNum ).OpMode, 0.0, OnOffAirFlowRatio ); + SimDXCoil( PTUnit( PTUnitNum ).DXCoolCoilName, Off, FirstHVACIteration, PTUnit( PTUnitNum ).CoolCoilCompIndex, PTUnit( PTUnitNum ).OpMode, dZero, OnOffAirFlowRatio ); } } else if ( SELECT_CASE_var == PTWSHPUnit ) { - SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXCoolCoilIndexNum, 0.0, 0.0, OpMode, 0.0, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, 0, 0.0, FirstHVACIteration ); + SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXCoolCoilIndexNum, dZero, dZero, OpMode, dZero, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, iZero, dZero, FirstHVACIteration ); } else { }} } @@ -4358,7 +4366,7 @@ namespace PackagedTerminalHeatPump { if ( PTUnit( PTUnitNum ).UnitType_Num == PTACUnit ) { QCoilReq = PTUnit( PTUnitNum ).ACHeatCoilCap * PartLoadFrac; if ( PTUnit( PTUnitNum ).ACHeatCoilType_Num == Coil_HeatingGas || PTUnit( PTUnitNum ).ACHeatCoilType_Num == Coil_HeatingElectric ) { - SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).ACHeatCoilName, FirstHVACIteration, QCoilReq, PTUnit( PTUnitNum ).ACHeatCoilIndex, QActual, false, OpMode, PartLoadFrac ); + SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).ACHeatCoilName, FirstHVACIteration, QCoilReq, PTUnit( PTUnitNum ).ACHeatCoilIndex, QActual, False, OpMode, PartLoadFrac ); } else if ( PTUnit( PTUnitNum ).ACHeatCoilType_Num == Coil_HeatingWater ) { // set water inlet node mass flow rate proportional to PLR. Limit water flow rate based on "available" upper limit. mdot = PTUnit( PTUnitNum ).MaxHeatCoilFluidFlow * PartLoadFrac; @@ -4381,16 +4389,16 @@ namespace PackagedTerminalHeatPump { SaveCompressorPLR = DXCoilPartLoadRatio( PTUnit( PTUnitNum ).DXHeatCoilIndexNum ); } else if ( SELECT_CASE_var == PTWSHPUnit ) { HeatPumpRunFrac( PTUnitNum, PartLoadFrac, errFlag, WSHPRuntimeFrac ); - SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXHeatCoilIndex, QZnReq, 0.0, OpMode, WSHPRuntimeFrac, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, 1, PartLoadFrac, FirstHVACIteration, OnOffAirFlowRatio ); + SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXHeatCoilIndex, QZnReq, dZero, OpMode, WSHPRuntimeFrac, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, iOne, PartLoadFrac, FirstHVACIteration, OnOffAirFlowRatio ); SaveCompressorPLR = PartLoadFrac; } else { }} } else { { auto const SELECT_CASE_var( PTUnit( PTUnitNum ).UnitType_Num ); if ( SELECT_CASE_var == PTHPUnit ) { - SimDXCoil( PTUnit( PTUnitNum ).DXHeatCoilName, Off, FirstHVACIteration, PTUnit( PTUnitNum ).DXHeatCoilIndex, PTUnit( PTUnitNum ).OpMode, 0.0, OnOffAirFlowRatio ); + SimDXCoil( PTUnit( PTUnitNum ).DXHeatCoilName, Off, FirstHVACIteration, PTUnit( PTUnitNum ).DXHeatCoilIndex, PTUnit( PTUnitNum ).OpMode, dZero, OnOffAirFlowRatio ); } else if ( SELECT_CASE_var == PTWSHPUnit ) { - SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXHeatCoilIndex, 0.0, 0.0, OpMode, 0.0, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, 0, 0.0, FirstHVACIteration ); + SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXHeatCoilIndex, dZero, dZero, OpMode, dZero, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, iZero, dZero, FirstHVACIteration ); } else { }} @@ -4416,9 +4424,9 @@ namespace PackagedTerminalHeatPump { } else { { auto const SELECT_CASE_var( PTUnit( PTUnitNum ).UnitType_Num ); if ( SELECT_CASE_var == PTHPUnit ) { - SimDXCoil( PTUnit( PTUnitNum ).DXHeatCoilName, Off, FirstHVACIteration, PTUnit( PTUnitNum ).DXHeatCoilIndex, PTUnit( PTUnitNum ).OpMode, 0.0, OnOffAirFlowRatio ); + SimDXCoil( PTUnit( PTUnitNum ).DXHeatCoilName, Off, FirstHVACIteration, PTUnit( PTUnitNum ).DXHeatCoilIndex, PTUnit( PTUnitNum ).OpMode, dZero, OnOffAirFlowRatio ); } else if ( SELECT_CASE_var == PTWSHPUnit ) { - SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXHeatCoilIndex, 0.0, 0.0, OpMode, 0.0, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, 0, 0.0, FirstHVACIteration ); + SimWatertoAirHPSimple( BlankString, PTUnit( PTUnitNum ).DXHeatCoilIndex, dZero, dZero, OpMode, dZero, PTUnit( PTUnitNum ).MaxONOFFCyclesperHour, PTUnit( PTUnitNum ).HPTimeConstant, PTUnit( PTUnitNum ).FanDelayTime, iZero, dZero, FirstHVACIteration ); } else { }} @@ -4433,7 +4441,7 @@ namespace PackagedTerminalHeatPump { if ( SupHeaterLoad < SmallLoad ) { { auto const SELECT_CASE_var( PTUnit( PTUnitNum ).SuppHeatCoilType_Num ); if ( ( SELECT_CASE_var == Coil_HeatingGas ) || ( SELECT_CASE_var == Coil_HeatingElectric ) ) { - SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).SuppHeatCoilName, FirstHVACIteration, SupHeaterLoad, PTUnit( PTUnitNum ).SuppHeatCoilIndex, QActual, true, PTUnit( PTUnitNum ).OpMode ); + SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).SuppHeatCoilName, FirstHVACIteration, SupHeaterLoad, PTUnit( PTUnitNum ).SuppHeatCoilIndex, QActual, True, PTUnit( PTUnitNum ).OpMode ); } else if ( SELECT_CASE_var == Coil_HeatingWater ) { mdot = 0.0; SetComponentFlowRate( mdot, PTUnit( PTUnitNum ).HotWaterControlNode, PTUnit( PTUnitNum ).PlantCoilOutletNode, PTUnit( PTUnitNum ).LoopNum, PTUnit( PTUnitNum ).LoopSide, PTUnit( PTUnitNum ).BranchNum, PTUnit( PTUnitNum ).CompNum ); @@ -4446,7 +4454,7 @@ namespace PackagedTerminalHeatPump { } else { { auto const SELECT_CASE_var( PTUnit( PTUnitNum ).SuppHeatCoilType_Num ); if ( ( SELECT_CASE_var == Coil_HeatingGas ) || ( SELECT_CASE_var == Coil_HeatingElectric ) ) { - SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).SuppHeatCoilName, FirstHVACIteration, SupHeaterLoad, PTUnit( PTUnitNum ).SuppHeatCoilIndex, QActual, true, PTUnit( PTUnitNum ).OpMode ); + SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).SuppHeatCoilName, FirstHVACIteration, SupHeaterLoad, PTUnit( PTUnitNum ).SuppHeatCoilIndex, QActual, True, PTUnit( PTUnitNum ).OpMode ); } else if ( SELECT_CASE_var == Coil_HeatingWater ) { MaxHotWaterFlow = PTUnit( PTUnitNum ).MaxSuppCoilFluidFlow; SetComponentFlowRate( MaxHotWaterFlow, PTUnit( PTUnitNum ).HotWaterControlNode, PTUnit( PTUnitNum ).PlantCoilOutletNode, PTUnit( PTUnitNum ).LoopNum, PTUnit( PTUnitNum ).LoopSide, PTUnit( PTUnitNum ).BranchNum, PTUnit( PTUnitNum ).CompNum ); @@ -4653,7 +4661,7 @@ namespace PackagedTerminalHeatPump { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ) { @@ -4702,13 +4710,9 @@ namespace PackagedTerminalHeatPump { Real64 QCoilActual; // delivered coild load, W Real64 mdot; - PTUnitNum = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - SupHeaterLoad = Par()( 3 ); + PTUnitNum = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + SupHeaterLoad = Par( 3 ); QCoilActual = SupHeaterLoad; mdot = HWFlow; @@ -4727,7 +4731,7 @@ namespace PackagedTerminalHeatPump { Real64 SupSATResidual( Real64 & TempSupHeater, // supplemental heater load at maximum SAT - Optional< FArray1S< Real64 > const > Par // par(1) = PTUnitNum + FArray1< Real64 > const & Par // par(1) = PTUnitNum ) { // FUNCTION INFORMATION: @@ -4771,13 +4775,9 @@ namespace PackagedTerminalHeatPump { int PTUnitNum; // PTHP index bool FirstHVACIteration; // FirstHVACIteration flag - PTUnitNum = int( Par()( 1 ) ); + PTUnitNum = int( Par( 1 ) ); // FirstHVACIteration is a logical, Par is real, so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 2 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } + FirstHVACIteration = ( Par( 2 ) == 1.0 ); SimulateHeatingCoilComponents( PTUnit( PTUnitNum ).SuppHeatCoilName, FirstHVACIteration, TempSupHeater, PTUnit( PTUnitNum ).SuppHeatCoilIndex ); SupSATResidual = Node( PTUnit( PTUnitNum ).AirOutNode ).Temp - PTUnit( PTUnitNum ).MaxSATSupHeat; @@ -4787,7 +4787,7 @@ namespace PackagedTerminalHeatPump { Real64 PLRResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = PTUnitNum + FArray1< Real64 > const & Par // par(1) = PTUnitNum ) { // FUNCTION INFORMATION: @@ -4845,25 +4845,17 @@ namespace PackagedTerminalHeatPump { Real64 ActualOutput; // delivered capacity of PTHP bool HXUnitOn; // flag to enable heat exchanger - PTUnitNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + PTUnitNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is real, so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); - QZnReq = Par()( 5 ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); + QZnReq = Par( 5 ); QZnReqTemp = QZnReq; if ( std::abs( QZnReq ) < 100.0 ) QZnReqTemp = sign( 100.0, QZnReq ); - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ) * PartLoadFrac; - if ( Par()( 8 ) == 1.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ) * PartLoadFrac; + HXUnitOn = ( Par( 8 ) == 1.0 ); CalcPTUnit( PTUnitNum, FirstHVACIteration, PartLoadFrac, ActualOutput, QZnReq, OnOffAirFlowRatio, SupHeaterLoad, HXUnitOn ); PLRResidual = ( ActualOutput - QZnReq ) / QZnReqTemp; @@ -5610,7 +5602,7 @@ namespace PackagedTerminalHeatPump { Real64 LatOutput; // latent capacity output Real64 ErrorToler; // error tolerance int SolFla; // Flag of RegulaFalsi solver - FArray1D< Real64 > Par( 11 ); // Parameters passed to RegulaFalsi + static FArray1D< Real64 > Par( 11 ); // Parameters passed to RegulaFalsi Real64 CpAir; // air specific heat Real64 QCoilActual; // coil load actually delivered returned to calling component int i; // Speed index @@ -5870,7 +5862,7 @@ namespace PackagedTerminalHeatPump { Real64 VSHPCyclingResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = FurnaceNum + FArray1< Real64 > const & Par // par(1) = FurnaceNum ) { // FUNCTION INFORMATION: @@ -5935,35 +5927,27 @@ namespace PackagedTerminalHeatPump { Real64 ResScale; // Residual scale int CompOp; // compressor operation; 1=on, 0=off - PTUnitNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + PTUnitNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); QZnReq = 0.0; QZnLat = 0.0; - LoadToBeMet = Par()( 5 ); - if ( Par()( 10 ) == 1.0 ) { - QZnReq = Par()( 5 ); + LoadToBeMet = Par( 5 ); + if ( Par( 10 ) == 1.0 ) { + QZnReq = Par( 5 ); } else { - QZnLat = Par()( 5 ); + QZnLat = Par( 5 ); } - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ); - CompOp = int( Par()( 9 ) ); + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ); + CompOp = int( Par( 9 ) ); - if ( Par()( 11 ) > 0.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } + HXUnitOn = ( Par( 11 ) > 0.0 ); CalcVarSpeedHeatPump( PTUnitNum, ZoneNum, FirstHVACIteration, CompOp, 1, 0.0, PartLoadFrac, ZoneSensLoadMet, ZoneLatLoadMet, QZnReq, QZnLat, OnOffAirFlowRatio, SupHeaterLoad, HXUnitOn ); @@ -5973,7 +5957,7 @@ namespace PackagedTerminalHeatPump { } // Calculate residual based on output calculation flag - if ( Par()( 10 ) == 1.0 ) { + if ( Par( 10 ) == 1.0 ) { VSHPCyclingResidual = ( ZoneSensLoadMet - LoadToBeMet ) / ResScale; } else { VSHPCyclingResidual = ( ZoneLatLoadMet - LoadToBeMet ) / ResScale; @@ -5988,7 +5972,7 @@ namespace PackagedTerminalHeatPump { Real64 VSHPSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ) { // FUNCTION INFORMATION: @@ -6054,36 +6038,28 @@ namespace PackagedTerminalHeatPump { int SpeedNum; // Speed number int CompOp; // compressor operation; 1=on, 0=off - PTUnitNum = int( Par()( 1 ) ); - ZoneNum = int( Par()( 2 ) ); + PTUnitNum = int( Par( 1 ) ); + ZoneNum = int( Par( 2 ) ); // FirstHVACIteration is a logical, Par is REAL(r64), so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 3 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 4 ) ); + FirstHVACIteration = ( Par( 3 ) == 1.0 ); + OpMode = int( Par( 4 ) ); QZnReq = 0.0; QZnLat = 0.0; - LoadToBeMet = Par()( 5 ); - if ( Par()( 10 ) == 1.0 ) { - QZnReq = Par()( 5 ); + LoadToBeMet = Par( 5 ); + if ( Par( 10 ) == 1.0 ) { + QZnReq = Par( 5 ); } else { - QZnLat = Par()( 5 ); + QZnLat = Par( 5 ); } - OnOffAirFlowRatio = Par()( 6 ); - SupHeaterLoad = Par()( 7 ); - SpeedNum = int( Par()( 8 ) ); - CompOp = int( Par()( 9 ) ); + OnOffAirFlowRatio = Par( 6 ); + SupHeaterLoad = Par( 7 ); + SpeedNum = int( Par( 8 ) ); + CompOp = int( Par( 9 ) ); - if ( Par()( 11 ) > 0.0 ) { - HXUnitOn = true; - } else { - HXUnitOn = false; - } + HXUnitOn = ( Par( 11 ) > 0.0 ); CalcVarSpeedHeatPump( PTUnitNum, ZoneNum, FirstHVACIteration, CompOp, SpeedNum, SpeedRatio, 1.0, ZoneSensLoadMet, ZoneLatLoadMet, QZnReq, QZnLat, OnOffAirFlowRatio, SupHeaterLoad, HXUnitOn ); @@ -6093,7 +6069,7 @@ namespace PackagedTerminalHeatPump { } // Calculate residual based on output calculation flag - if ( Par()( 10 ) == 1.0 ) { + if ( Par( 10 ) == 1.0 ) { VSHPSpeedResidual = ( ZoneSensLoadMet - LoadToBeMet ) / ResScale; } else { VSHPSpeedResidual = ( ZoneLatLoadMet - LoadToBeMet ) / ResScale; @@ -6187,7 +6163,7 @@ namespace PackagedTerminalHeatPump { Real64 mdot; // local temporary for mass flow rate Real64 MaxHotWaterFlow; // coil maximum hot water mass flow rate, kg/s Real64 HotWaterMdot; // actual hot water mass flow rate - FArray1D< Real64 > Par( 3 ); + static FArray1D< Real64 > Par( 3 ); int SolFlag; static int ATMixOutNode( 0 ); // outlet node of ATM Mixer diff --git a/src/EnergyPlus/PackagedTerminalHeatPump.hh b/src/EnergyPlus/PackagedTerminalHeatPump.hh index 74d96e4b524..e1b36e4543a 100644 --- a/src/EnergyPlus/PackagedTerminalHeatPump.hh +++ b/src/EnergyPlus/PackagedTerminalHeatPump.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -721,19 +720,19 @@ namespace PackagedTerminalHeatPump { Real64 HotWaterCoilResidual( Real64 const HWFlow, // hot water flow rate in kg/s - Optional< FArray1S< Real64 > const > Par = _ // Par(5) is the requested coil load + FArray1< Real64 > const & Par // Par(5) is the requested coil load ); Real64 SupSATResidual( Real64 & TempSupHeater, // supplemental heater load at maximum SAT - Optional< FArray1S< Real64 > const > Par = _ // par(1) = PTUnitNum + FArray1< Real64 > const & Par // par(1) = PTUnitNum ); Real64 PLRResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = PTUnitNum + FArray1< Real64 > const & Par // par(1) = PTUnitNum ); void @@ -811,7 +810,7 @@ namespace PackagedTerminalHeatPump { Real64 VSHPCyclingResidual( Real64 const PartLoadFrac, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = FurnaceNum + FArray1< Real64 > const & Par // par(1) = FurnaceNum ); //****************************************************************************** @@ -819,7 +818,7 @@ namespace PackagedTerminalHeatPump { Real64 VSHPSpeedResidual( Real64 const SpeedRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = MSHPNum + FArray1< Real64 > const & Par // par(1) = MSHPNum ); //****************************************************************************** diff --git a/src/EnergyPlus/PackagedThermalStorageCoil.cc b/src/EnergyPlus/PackagedThermalStorageCoil.cc index 9c81638bd9b..78c383103b9 100644 --- a/src/EnergyPlus/PackagedThermalStorageCoil.cc +++ b/src/EnergyPlus/PackagedThermalStorageCoil.cc @@ -2000,18 +2000,18 @@ namespace PackagedThermalStorageCoil { VolFlowRate = TESCoil( TESCoilNum ).RatedEvapAirVolFlowRate; if ( VolFlowRate >= SmallAirVolFlow ) { if ( CurOASysNum > 0 ) { // coil is in the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; } else { // coil is on the main air loop - // MixTemp = FinalSysSizing(CurSysNum)%CoolMixTemp - // MixHumRat = FinalSysSizing(CurSysNum)%CoolMixHumRat + // MixTemp = FinalSysSizing(CurSysNum)%MixTempAtCoolPeak + // MixHumRat = FinalSysSizing(CurSysNum)%MixHumRatAtCoolPeak SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / VolFlowRate; @@ -2019,11 +2019,11 @@ namespace PackagedThermalStorageCoil { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); diff --git a/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc b/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc index 2a122aca804..506108c4149 100644 --- a/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc +++ b/src/EnergyPlus/PlantHeatExchangerFluidToFluid.cc @@ -1716,7 +1716,7 @@ namespace PlantHeatExchangerFluidToFluid { Real64 HXDemandSideLoopFlowResidual( Real64 const DmdSideMassFlowRate, - Optional< FArray1S< Real64 > const > Par // Par(1) = HX index number + FArray1< Real64 > const & Par // Par(1) = HX index number ) { @@ -1763,14 +1763,14 @@ namespace PlantHeatExchangerFluidToFluid { Real64 SupSideMdot; // mass flow rate of fluid entering from supply side loop MdotTrial = DmdSideMassFlowRate; - CompNum = int( Par()( 1 ) ); + CompNum = int( Par( 1 ) ); SupSideMdot = Node( FluidHX( CompNum ).SupplySideLoop.InletNodeNum ).MassFlowRate; CalcFluidHeatExchanger( CompNum, SupSideMdot, MdotTrial ); SupSideLoopOutletTemp = FluidHX( CompNum ).SupplySideLoop.OutletTemp; - Residuum = Par()( 2 ) - SupSideLoopOutletTemp; + Residuum = Par( 2 ) - SupSideLoopOutletTemp; return Residuum; diff --git a/src/EnergyPlus/PlantHeatExchangerFluidToFluid.hh b/src/EnergyPlus/PlantHeatExchangerFluidToFluid.hh index f22186b00c7..ab1c76ec641 100644 --- a/src/EnergyPlus/PlantHeatExchangerFluidToFluid.hh +++ b/src/EnergyPlus/PlantHeatExchangerFluidToFluid.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -342,7 +340,7 @@ namespace PlantHeatExchangerFluidToFluid { Real64 HXDemandSideLoopFlowResidual( Real64 const DmdSideMassFlowRate, - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = HX index number + FArray1< Real64 > const & Par // Par(1) = HX index number ); void diff --git a/src/EnergyPlus/PlantLoopEquip.cc b/src/EnergyPlus/PlantLoopEquip.cc index 1e966fd34ef..d424657df78 100644 --- a/src/EnergyPlus/PlantLoopEquip.cc +++ b/src/EnergyPlus/PlantLoopEquip.cc @@ -1135,7 +1135,7 @@ namespace PlantLoopEquip { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/PlantLoopSolver.cc b/src/EnergyPlus/PlantLoopSolver.cc index 0cc813c476d..69f16360454 100644 --- a/src/EnergyPlus/PlantLoopSolver.cc +++ b/src/EnergyPlus/PlantLoopSolver.cc @@ -1180,15 +1180,14 @@ namespace PlantLoopSolver { for ( CompCounter = StartingComponent; CompCounter <= EndingComponent; ++CompCounter ) { auto & this_comp( branch.Comp( CompCounter ) ); + auto const CurOpSchemeType( this_comp.CurOpSchemeType ); - { auto const SELECT_CASE_var( this_comp.CurOpSchemeType ); - if ( SELECT_CASE_var == WSEconOpSchemeType ) { //~ coils + switch ( CurOpSchemeType ) { + case WSEconOpSchemeType: //~ coils this_comp.MyLoad = UpdatedDemandToLoopSetPoint; SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - } else if ( ( SELECT_CASE_var >= LoadRangeBasedMin ) && ( SELECT_CASE_var <= LoadRangeBasedMax ) ) { //~ load range based - EncounteredLRBObjDuringPass1 = true; - break; // don't do any more components on this branch - } else if ( SELECT_CASE_var == PumpOpSchemeType ) { //~ pump + break; + case PumpOpSchemeType: //~ pump PumpLocation.LoopNum = LoopNum; PumpLocation.LoopSideNum = LoopSideNum; PumpLocation.BranchNum = BranchCounter; @@ -1198,11 +1197,12 @@ namespace PlantLoopSolver { } else { SimulateAllLoopSidePumps( LoopNum, LoopSideNum, PumpLocation, FlowRequest ); } - - } else if ( SELECT_CASE_var == CompSetPtBasedSchemeType ) { + break; + case CompSetPtBasedSchemeType: ManagePlantLoadDistribution( LoopNum, LoopSideNum, BranchCounter, CompCounter, LoadToLoopSetPoint, LoadToLoopSetPointThatWasntMet, FirstHVACIteration, LoopShutDownFlag, LoadDistributionWasPerformed ); SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - } else if ( SELECT_CASE_var == EMSOpSchemeType ) { + break; + case EMSOpSchemeType: if ( LoopSideNum == SupplySide ) { curCompOpSchemePtr = this_comp.CurCompLevelOpNum; OpSchemePtr = this_comp.OpScheme( curCompOpSchemePtr ).OpSchemePtr; @@ -1210,9 +1210,15 @@ namespace PlantLoopSolver { } ManagePlantLoadDistribution( LoopNum, LoopSideNum, BranchCounter, CompCounter, UpdatedDemandToLoopSetPoint, LoadToLoopSetPointThatWasntMet, FirstHVACIteration, LoopShutDownFlag, LoadDistributionWasPerformed ); SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - } else { //demand, , etc. - SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - }} + break; + default: + if ( ( CurOpSchemeType >= LoadRangeBasedMin ) && ( CurOpSchemeType <= LoadRangeBasedMax ) ) { //~ load range based + EncounteredLRBObjDuringPass1 = true; + goto components_end; // don't do any more components on this branch + } else { //demand, , etc. + SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); + } + } // Update loop demand as needed for changes this component may have made UpdateAnyLoopDemandAlterations( LoopNum, LoopSideNum, BranchCounter, CompCounter ); @@ -1221,6 +1227,7 @@ namespace PlantLoopSolver { LastComponentSimulated( BranchIndex ) = CompCounter; } //~ CompCounter + components_end: ; if ( loop.FlowLock == FlowLocked ) { SimPressureDropSystem( LoopNum, FirstHVACIteration, PressureCall_Calc, LoopSideNum, BranchCounter ); @@ -1252,18 +1259,18 @@ namespace PlantLoopSolver { EndingComponent = branch.TotalComponents; for ( CompCounter = StartingComponent; CompCounter <= EndingComponent; ++CompCounter ) { - { auto const SELECT_CASE_var( branch.Comp( CompCounter ).CurOpSchemeType ); - if ( SELECT_CASE_var == NoControlOpSchemeType ) { //~ pipes, for example + auto const CurOpSchemeType( branch.Comp( CompCounter ).CurOpSchemeType ); + + switch ( CurOpSchemeType ) { + case NoControlOpSchemeType: //~ pipes, for example SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - } else if ( ( SELECT_CASE_var == DemandOpSchemeType ) || ( SELECT_CASE_var == CompSetPtBasedSchemeType ) || ( SELECT_CASE_var == FreeRejectionOpSchemeType ) ) { //~ other control types + break; + case DemandOpSchemeType: + case CompSetPtBasedSchemeType: + case FreeRejectionOpSchemeType: //~ other control types EncounteredNonLBObjDuringPass2 = true; - break; // don't do anymore components on this branch - } else if ( ( SELECT_CASE_var >= LoadRangeBasedMin ) && ( SELECT_CASE_var <= LoadRangeBasedMax ) ) { //~ load range based - if ( ! LoadDistributionWasPerformed ) { //~ Still need to distribute load among load range based components - ManagePlantLoadDistribution( LoopNum, LoopSideNum, BranchCounter, CompCounter, LoadToLoopSetPoint, LoadToLoopSetPointThatWasntMet, FirstHVACIteration, LoopShutDownFlag, LoadDistributionWasPerformed ); - } - SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - } else if ( SELECT_CASE_var == PumpOpSchemeType ) { //~ pump + goto components2_end; // don't do anymore components on this branch + case PumpOpSchemeType: //~ pump PumpLocation.LoopNum = LoopNum; PumpLocation.LoopSideNum = LoopSideNum; PumpLocation.BranchNum = BranchCounter; @@ -1273,12 +1280,21 @@ namespace PlantLoopSolver { } else { SimulateAllLoopSidePumps( LoopNum, LoopSideNum, PumpLocation, FlowRequest ); } - }} + break; + default: + if ( ( CurOpSchemeType >= LoadRangeBasedMin ) && ( CurOpSchemeType <= LoadRangeBasedMax ) ) { //~ load range based + if ( ! LoadDistributionWasPerformed ) { //~ Still need to distribute load among load range based components + ManagePlantLoadDistribution( LoopNum, LoopSideNum, BranchCounter, CompCounter, LoadToLoopSetPoint, LoadToLoopSetPointThatWasntMet, FirstHVACIteration, LoopShutDownFlag, LoadDistributionWasPerformed ); + } + SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); + } + } //~ If we didn't EXIT early, we must have simulated, so update array LastComponentSimulated( BranchIndex ) = CompCounter; } //~ CompCounter + components2_end: ; //~ If we are locked, go ahead and simulate the pressure components on this branch if ( loop.FlowLock == FlowLocked ) { @@ -1303,12 +1319,13 @@ namespace PlantLoopSolver { EndingComponent = branch.TotalComponents; for ( CompCounter = StartingComponent; CompCounter <= EndingComponent; ++CompCounter ) { - { auto const SELECT_CASE_var( branch.Comp( CompCounter ).CurOpSchemeType ); - if ( SELECT_CASE_var == DemandOpSchemeType ) { //~ coils + auto const CurOpSchemeType( branch.Comp( CompCounter ).CurOpSchemeType ); + + switch ( CurOpSchemeType ) { + case DemandOpSchemeType: //~ coils SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - } else if ( ( SELECT_CASE_var >= LoadRangeBasedMin ) && ( SELECT_CASE_var <= LoadRangeBasedMax ) ) { //~ load range based - ShowFatalError( "Encountered Load Based Object after other components, invalid." ); - } else if ( SELECT_CASE_var == PumpOpSchemeType ) { //~ pump + break; + case PumpOpSchemeType: //~ pump PumpLocation.LoopNum = LoopNum; PumpLocation.LoopSideNum = LoopSideNum; PumpLocation.BranchNum = BranchCounter; @@ -1318,9 +1335,14 @@ namespace PlantLoopSolver { } else { SimulateAllLoopSidePumps( LoopNum, LoopSideNum, PumpLocation, FlowRequest ); } - } else { //~ Typical control equipment - SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); - }} + break; + default: + if ( ( CurOpSchemeType >= LoadRangeBasedMin ) && ( CurOpSchemeType <= LoadRangeBasedMax ) ) { //~ load range based + ShowFatalError( "Encountered Load Based Object after other components, invalid." ); + } else { //~ Typical control equipment + SimPlantEquip( LoopNum, LoopSideNum, BranchCounter, CompCounter, FirstHVACIteration, DummyInit, DoNotGetCompSizFac ); + } + } //~ If we didn't EXIT early, we must have simulated, so update array LastComponentSimulated( BranchIndex ) = CompCounter; @@ -1431,17 +1453,20 @@ namespace PlantLoopSolver { } //~ Now loop through all the pumps and simulate them, keeping track of their status + auto & loop_side( PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ) ); + auto & loop_side_branch( loop_side.Branch ); for ( PumpCounter = PumpIndexStart; PumpCounter <= PumpIndexEnd; ++PumpCounter ) { //~ Set some variables - PumpBranchNum = PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).BranchNum; - PumpCompNum = PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).CompNum; - PumpOutletNode = PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).PumpOutletNode; + auto & pump( loop_side.Pumps( PumpCounter ) ); + PumpBranchNum = pump.BranchNum; + PumpCompNum = pump.CompNum; + PumpOutletNode = pump.PumpOutletNode; AdjustPumpFlowRequestByEMSControls( PumpLoopNum, PumpLoopSideNum, PumpBranchNum, PumpCompNum, FlowToRequest ); // Call SimPumps, routine takes a flow request, and returns some info about the status of the pump - SimPumps( PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).PumpName, PumpLoopNum, FlowToRequest, ThisPumpRunning, PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Branch( PumpBranchNum ).PumpIndex, PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).PumpHeatToFluid ); + SimPumps( pump.PumpName, PumpLoopNum, FlowToRequest, ThisPumpRunning, loop_side_branch( PumpBranchNum ).PumpIndex, pump.PumpHeatToFluid ); //~ Pull some state information from the pump outlet node ThisPumpFlowRate = Node( PumpOutletNode ).MassFlowRate; @@ -1449,14 +1474,14 @@ namespace PlantLoopSolver { ThisPumpMaxAvail = Node( PumpOutletNode ).MassFlowRateMaxAvail; //~ Now update the data structure - PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).CurrentMinAvail = ThisPumpMinAvail; - PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps( PumpCounter ).CurrentMaxAvail = ThisPumpMaxAvail; + pump.CurrentMinAvail = ThisPumpMinAvail; + pump.CurrentMaxAvail = ThisPumpMaxAvail; } //~ Update the LoopSide pump heat totality here - if ( PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).TotalPumps > 0 ) { - PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).TotalPumpHeat = sum( PlantLoop( PumpLoopNum ).LoopSide( PumpLoopSideNum ).Pumps.PumpHeatToFluid() ); + if ( loop_side.TotalPumps > 0 ) { + loop_side.TotalPumpHeat = sum( loop_side.Pumps.PumpHeatToFluid() ); } } diff --git a/src/EnergyPlus/PlantManager.cc b/src/EnergyPlus/PlantManager.cc index a48b3867761..41a0ddafa22 100644 --- a/src/EnergyPlus/PlantManager.cc +++ b/src/EnergyPlus/PlantManager.cc @@ -3092,7 +3092,7 @@ namespace PlantManager { // Small loop mass no longer introduces instability. Checks and warnings removed by SJR 20 July 2007. if ( PlantLoop( LoopNum ).Volume == AutoCalculate ) { // Although there is no longer a stability requirement (mass can be zero), autosizing is formulated the same way. - PlantLoop( LoopNum ).Volume = PlantLoop( LoopNum ).MaxVolFlowRate * TimeStepZone * SecInHour / 0.8; + PlantLoop( LoopNum ).Volume = PlantLoop( LoopNum ).MaxVolFlowRate * TimeStepZoneSec / 0.8; if ( PlantLoop( LoopNum ).TypeOfLoop == LoopType_Plant ) { // condenser loop vs plant loop breakout needed. ReportSizingOutput( "PlantLoop", PlantLoop( LoopNum ).Name, "Plant Loop Volume [m3]", PlantLoop( LoopNum ).Volume ); diff --git a/src/EnergyPlus/PlantPipingSystemsManager.cc b/src/EnergyPlus/PlantPipingSystemsManager.cc index cad002c1ceb..7611d735d96 100644 --- a/src/EnergyPlus/PlantPipingSystemsManager.cc +++ b/src/EnergyPlus/PlantPipingSystemsManager.cc @@ -164,8 +164,7 @@ namespace PlantPipingSystemsManager { } void - CheckIfAnyBasements( - ) + CheckIfAnyBasements() { // SUBROUTINE INFORMATION: @@ -197,11 +196,7 @@ namespace PlantPipingSystemsManager { int const numBasementsCheck( GetNumObjectsFound( ObjName_ZoneCoupled_Basement ) ); - if ( numBasementsCheck > 0 ) { - AnyBasementsInModel = true; - } else { - AnyBasementsInModel = false; - } + AnyBasementsInModel = ( numBasementsCheck > 0 ); } @@ -300,140 +295,141 @@ namespace PlantPipingSystemsManager { InitAndSimGroundDomains() { - // SUBROUTINE INFORMATION: - // AUTHOR Matt Mitchell - // DATE WRITTEN Spring 2014 - // MODIFIED na - // RE-ENGINEERED na + // SUBROUTINE INFORMATION: + // AUTHOR Matt Mitchell + // DATE WRITTEN Spring 2014 + // MODIFIED na + // RE-ENGINEERED na - // PURPOSE OF THIS SUBROUTINE: - // + // PURPOSE OF THIS SUBROUTINE: + // - // METHODOLOGY EMPLOYED: - // + // METHODOLOGY EMPLOYED: + // - // REFERENCES: - // na + // REFERENCES: + // na - // Using/Aliasing - using DataEnvironment::DayOfMonth; - using DataEnvironment::DayOfWeek; - using DataHVACGlobals::TimeStepSys; - using DataHVACGlobals::SysTimeElapsed; - using DataGlobals::BeginSimFlag; - using DataGlobals::BeginEnvrnFlag; - using DataGlobals::DayOfSim; - using DataGlobals::HourOfDay; - using DataGlobals::TimeStep; - using DataGlobals::TimeStepZone; - using DataGlobals::SecInHour; - using DataGlobals::InitConvTemp; - using DataGlobals::WarmupFlag; - using DataGlobals::AnyBasementsInModel; - using DataGlobals::OutputFileInits; + // Using/Aliasing + using DataEnvironment::DayOfMonth; + using DataEnvironment::DayOfWeek; + using DataHVACGlobals::TimeStepSys; + using DataHVACGlobals::SysTimeElapsed; + using DataGlobals::BeginSimFlag; + using DataGlobals::BeginEnvrnFlag; + using DataGlobals::DayOfSim; + using DataGlobals::HourOfDay; + using DataGlobals::TimeStep; + using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; + using DataGlobals::SecInHour; + using DataGlobals::InitConvTemp; + using DataGlobals::WarmupFlag; + using DataGlobals::AnyBasementsInModel; + using DataGlobals::OutputFileInits; - // Locals - // SUBROUTINE ARGUMENT DEFINITIONS: + // Locals + // SUBROUTINE ARGUMENT DEFINITIONS: - // SUBROUTINE PARAMETER DEFINITIONS: - static std::string const RoutineName( "InitAndSimGroundDomain" ); + // SUBROUTINE PARAMETER DEFINITIONS: + static std::string const RoutineName( "InitAndSimGroundDomain" ); - // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - static bool GetInputFlag( true ); // First time, input is "gotten" - static bool WriteEIOFlag( true ); // Set to false once eio information is written + // SUBROUTINE LOCAL VARIABLE DECLARATIONS: + static bool GetInputFlag( true ); // First time, input is "gotten" + static bool WriteEIOFlag( true ); // Set to false once eio information is written - static gio::Fmt DomainCellsToEIOHeader( "('! , Total Number of Domain Cells, Total Number of Ground Surface Cells, Total Number of Insulation Cells')" ); - static gio::Fmt DomainCellsToEIO( "(A,',',I5',',I5',',I5)" ); + static gio::Fmt DomainCellsToEIOHeader( "('! , Total Number of Domain Cells, Total Number of Ground Surface Cells, Total Number of Insulation Cells')" ); + static gio::Fmt DomainCellsToEIO( "(A,',',I5',',I5',',I5)" ); - int DomainNum = 0; + int DomainNum = 0; - // Read input if necessary - if ( GetInputFlag ) { - GetPipingSystemsInput(); - GetInputFlag = false; - } + // Read input if necessary + if ( GetInputFlag ) { + GetPipingSystemsInput(); + GetInputFlag = false; + } - for ( DomainNum = 1; DomainNum <= isize( PipingSystemDomains ); ++DomainNum ) { - if ( PipingSystemDomains( DomainNum ).DomainNeedsToBeMeshed ) { - DevelopMesh( DomainNum ); - } + for ( DomainNum = 1; DomainNum <= isize( PipingSystemDomains ); ++DomainNum ) { + if ( PipingSystemDomains( DomainNum ).DomainNeedsToBeMeshed ) { + DevelopMesh( DomainNum ); + } - PipingSystemDomains( DomainNum ).DomainNeedsToBeMeshed = false; + PipingSystemDomains( DomainNum ).DomainNeedsToBeMeshed = false; - // The time init should be done here before we DoOneTimeInits because the DoOneTimeInits - // includes a ground temperature initialization, which is based on the Cur%CurSimTimeSeconds variable - // which would be carried over from the previous environment - PipingSystemDomains( DomainNum ).Cur.CurSimTimeSeconds = ( ( DayOfSim - 1 ) * 24 + ( HourOfDay - 1 ) + ( TimeStep - 1 ) * TimeStepZone + SysTimeElapsed ) * SecInHour; + // The time init should be done here before we DoOneTimeInits because the DoOneTimeInits + // includes a ground temperature initialization, which is based on the Cur%CurSimTimeSeconds variable + // which would be carried over from the previous environment + PipingSystemDomains( DomainNum ).Cur.CurSimTimeSeconds = ( ( DayOfSim - 1 ) * 24 + ( HourOfDay - 1 ) + ( TimeStep - 1 ) * TimeStepZone + SysTimeElapsed ) * SecInHour; - // There are also some inits that are "close to one time" inits...( one-time in standalone, each envrn in E+ ) - if ( ( BeginSimFlag && PipingSystemDomains( DomainNum ).BeginSimInit ) || ( BeginEnvrnFlag && PipingSystemDomains( DomainNum ).BeginSimEnvrn ) ) { + // There are also some inits that are "close to one time" inits...( one-time in standalone, each envrn in E+ ) + if ( ( BeginSimFlag && PipingSystemDomains( DomainNum ).BeginSimInit ) || ( BeginEnvrnFlag && PipingSystemDomains( DomainNum ).BeginSimEnvrn ) ) { - DoOneTimeInitializations( DomainNum,_ ); + DoOneTimeInitializations( DomainNum, _ ); - PipingSystemDomains( DomainNum ).BeginSimInit = false; - PipingSystemDomains( DomainNum ).BeginSimEnvrn = false; - } + PipingSystemDomains( DomainNum ).BeginSimInit = false; + PipingSystemDomains( DomainNum ).BeginSimEnvrn = false; + } - if ( !BeginSimFlag ) PipingSystemDomains( DomainNum ).BeginSimInit = true; - if ( !BeginEnvrnFlag ) PipingSystemDomains( DomainNum ).BeginSimEnvrn = true; + if ( !BeginSimFlag ) PipingSystemDomains( DomainNum ).BeginSimInit = true; + if ( !BeginEnvrnFlag ) PipingSystemDomains( DomainNum ).BeginSimEnvrn = true; - // Reset the heat fluxs if domain update has been completed - if ( PipingSystemDomains( DomainNum ).ResetHeatFluxFlag ) { - PipingSystemDomains( DomainNum ).AggregateHeatFlux = 0; + // Reset the heat fluxs if domain update has been completed + if ( PipingSystemDomains( DomainNum ).ResetHeatFluxFlag ) { + PipingSystemDomains( DomainNum ).AggregateHeatFlux = 0; PipingSystemDomains( DomainNum ).AggregateWallHeatFlux = 0; PipingSystemDomains( DomainNum ).AggregateFloorHeatFlux = 0; - PipingSystemDomains( DomainNum ).NumHeatFlux = 0; - PipingSystemDomains( DomainNum ).ResetHeatFluxFlag = false; - } + PipingSystemDomains( DomainNum ).NumHeatFlux = 0; + PipingSystemDomains( DomainNum ).ResetHeatFluxFlag = false; + } - // Aggregate the heat flux - // Zone-coupled slab - if ( PipingSystemDomains( DomainNum ).IsZoneCoupledSlab ) { - PipingSystemDomains( DomainNum ).AggregateHeatFlux += GetZoneInterfaceHeatFlux( DomainNum ); - PipingSystemDomains( DomainNum ).NumHeatFlux += 1; - PipingSystemDomains( DomainNum ).HeatFlux = PipingSystemDomains( DomainNum ).AggregateHeatFlux / PipingSystemDomains( DomainNum ).NumHeatFlux; - } else { // Coupled basement - // basement walls - PipingSystemDomains( DomainNum ).AggregateWallHeatFlux += GetBasementWallHeatFlux( DomainNum ); - // basement floor - PipingSystemDomains( DomainNum ).AggregateFloorHeatFlux += GetBasementFloorHeatFlux( DomainNum ); - - PipingSystemDomains( DomainNum ).NumHeatFlux += 1; - PipingSystemDomains( DomainNum ).WallHeatFlux = PipingSystemDomains( DomainNum ).AggregateWallHeatFlux / PipingSystemDomains( DomainNum ).NumHeatFlux; - PipingSystemDomains( DomainNum ).FloorHeatFlux = PipingSystemDomains( DomainNum ).AggregateFloorHeatFlux / PipingSystemDomains( DomainNum ).NumHeatFlux; - } + // Aggregate the heat flux + // Zone-coupled slab + if ( PipingSystemDomains( DomainNum ).IsZoneCoupledSlab ) { + PipingSystemDomains( DomainNum ).AggregateHeatFlux += GetZoneInterfaceHeatFlux( DomainNum ); + PipingSystemDomains( DomainNum ).NumHeatFlux += 1; + PipingSystemDomains( DomainNum ).HeatFlux = PipingSystemDomains( DomainNum ).AggregateHeatFlux / PipingSystemDomains( DomainNum ).NumHeatFlux; + } else { // Coupled basement + // basement walls + PipingSystemDomains( DomainNum ).AggregateWallHeatFlux += GetBasementWallHeatFlux( DomainNum ); + // basement floor + PipingSystemDomains( DomainNum ).AggregateFloorHeatFlux += GetBasementFloorHeatFlux( DomainNum ); + + PipingSystemDomains( DomainNum ).NumHeatFlux += 1; + PipingSystemDomains( DomainNum ).WallHeatFlux = PipingSystemDomains( DomainNum ).AggregateWallHeatFlux / PipingSystemDomains( DomainNum ).NumHeatFlux; + PipingSystemDomains( DomainNum ).FloorHeatFlux = PipingSystemDomains( DomainNum ).AggregateFloorHeatFlux / PipingSystemDomains( DomainNum ).NumHeatFlux; + } - // Select run interval - if ( PipingSystemDomains( DomainNum ).SimTimestepFlag ) { - // Keep on going! - PipingSystemDomains( DomainNum ).Cur.CurSimTimeStepSize = TimeStepZone * SecInHour; - } else if ( PipingSystemDomains( DomainNum ).SimHourlyFlag ) { - // Passes by if not time to run - if ( TimeStep != 1 ) continue; - PipingSystemDomains( DomainNum ).Cur.CurSimTimeStepSize = SecInHour; - } + // Select run interval + if ( PipingSystemDomains( DomainNum ).SimTimestepFlag ) { + // Keep on going! + PipingSystemDomains( DomainNum ).Cur.CurSimTimeStepSize = TimeStepZoneSec; + } else if ( PipingSystemDomains( DomainNum ).SimHourlyFlag ) { + // Passes by if not time to run + if ( TimeStep != 1 ) continue; + PipingSystemDomains( DomainNum ).Cur.CurSimTimeStepSize = SecInHour; + } - // Shift history arrays only if necessary - if ( std::abs( PipingSystemDomains( DomainNum ).Cur.CurSimTimeSeconds - PipingSystemDomains( DomainNum ).Cur.PrevSimTimeSeconds ) > 1.0e-6 ) { - PipingSystemDomains( DomainNum ).Cur.PrevSimTimeSeconds = PipingSystemDomains( DomainNum ).Cur.CurSimTimeSeconds; - ShiftTemperaturesForNewTimeStep( DomainNum ); - PipingSystemDomains( DomainNum ).DomainNeedsSimulation = true; - } - PerformIterationLoop( DomainNum, _ ); + // Shift history arrays only if necessary + if ( std::abs( PipingSystemDomains( DomainNum ).Cur.CurSimTimeSeconds - PipingSystemDomains( DomainNum ).Cur.PrevSimTimeSeconds ) > 1.0e-6 ) { + PipingSystemDomains( DomainNum ).Cur.PrevSimTimeSeconds = PipingSystemDomains( DomainNum ).Cur.CurSimTimeSeconds; + ShiftTemperaturesForNewTimeStep( DomainNum ); + PipingSystemDomains( DomainNum ).DomainNeedsSimulation = true; } + PerformIterationLoop( DomainNum, _ ); + } - if ( WriteEIOFlag ) { - // Write eio header - gio::write( OutputFileInits, DomainCellsToEIOHeader ); + if ( WriteEIOFlag ) { + // Write eio header + gio::write( OutputFileInits, DomainCellsToEIOHeader ); - // Write eio data - for ( DomainNum = 1; DomainNum <= isize( PipingSystemDomains ); ++DomainNum ) { - gio::write( OutputFileInits, DomainCellsToEIO ) << PipingSystemDomains( DomainNum ).Name << PipingSystemDomains( DomainNum ).NumDomainCells - << PipingSystemDomains( DomainNum ).NumGroundSurfCells << PipingSystemDomains( DomainNum ).NumInsulationCells; - } - WriteEIOFlag = false; + // Write eio data + for ( DomainNum = 1; DomainNum <= isize( PipingSystemDomains ); ++DomainNum ) { + gio::write( OutputFileInits, DomainCellsToEIO ) << PipingSystemDomains( DomainNum ).Name << PipingSystemDomains( DomainNum ).NumDomainCells + << PipingSystemDomains( DomainNum ).NumGroundSurfCells << PipingSystemDomains( DomainNum ).NumInsulationCells; } + WriteEIOFlag = false; } + } //*********************************************************************************************! @@ -9704,7 +9700,7 @@ namespace PlantPipingSystemsManager { // NOTICE - // Copyright © 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/Psychrometrics.hh b/src/EnergyPlus/Psychrometrics.hh index 73c84c3da1e..0038354589f 100644 --- a/src/EnergyPlus/Psychrometrics.hh +++ b/src/EnergyPlus/Psychrometrics.hh @@ -9,7 +9,6 @@ #include #include #include -#include // EnergyPlus Headers #include @@ -176,7 +175,7 @@ namespace Psychrometrics { Real64 const tdb, // dry bulb temperature (Celsius) Real64 const dw, // humidity ratio (kgWater/kgDryAir) Real64 const rhoair, // density of air - std::string const & CalledFrom // routine this function was called from (error messages) !unused1208 + std::string const & CalledFrom = blank_string // routine this function was called from (error messages) !unused1208 ); #endif @@ -215,6 +214,23 @@ namespace Psychrometrics { return rhoair; } + inline + Real64 + PsyRhoAirFnPbTdbW_fast( + Real64 const pb, // barometric pressure (Pascals) + Real64 const tdb, // dry bulb temperature (Celsius) + Real64 const dw // humidity ratio (kgWater/kgDryAir) + ) + { + // Faster version with humidity ratio already adjusted + assert( dw >= 1.0e-5 ); + Real64 const rhoair( pb / ( 287.0 * ( tdb + KelvinConv ) * ( 1.0 + 1.6077687 * dw ) ) ); +#ifdef EP_psych_errors + if ( rhoair < 0.0 ) PsyRhoAirFnPbTdbW_error( pb, tdb, dw, rhoair ); +#endif + return rhoair; + } + inline Real64 PsyHfgAirFnWTdb( @@ -299,6 +315,20 @@ namespace Psychrometrics { return 1.00484e3 * TDB + max( dW, 1.0e-5 ) * ( 2.50094e6 + 1.85895e3 * TDB ); // enthalpy {J/kg} } + inline + Real64 + PsyHFnTdbW_fast( + Real64 const TDB, // dry-bulb temperature {C} + Real64 const dW // humidity ratio + ) + { + // Faster version with humidity ratio already adjusted + assert( dW >= 1.0e-5 ); + + // calculate enthalpy + return 1.00484e3 * TDB + dW * ( 2.50094e6 + 1.85895e3 * TDB ); // enthalpy {J/kg} + } + inline Real64 PsyCpAirFnWTdb( @@ -342,6 +372,35 @@ namespace Psychrometrics { return cpa; } + inline + Real64 + PsyCpAirFnWTdb_fast( + Real64 const dw, // humidity ratio {kgWater/kgDryAir} + Real64 const T // input temperature {Celsius} + ) + { + // Faster version with humidity ratio already adjusted + assert( dw >= 1.0e-5 ); + + // Static locals + static Real64 dwSave( -100.0 ); + static Real64 Tsave( -100.0 ); + static Real64 cpaSave( -100.0 ); + + // check if last call had the same input and if it did just use the saved output + if ( ( Tsave == T ) && ( dwSave == dw ) ) return cpaSave; + + // compute heat capacity of air + Real64 const cpa( ( PsyHFnTdbW_fast( T + 0.1, dw ) - PsyHFnTdbW_fast( T, dw ) ) * 10.0 ); // result => heat capacity of air {J/kg-C} + + // save values for next call + dwSave = dw; + Tsave = T; + cpaSave = cpa; + + return cpa; + } + inline Real64 PsyTdbFnHW( @@ -423,6 +482,19 @@ namespace Psychrometrics { return W * PB / ( 461.52 * ( Tdb + KelvinConv ) * ( W + 0.62198 ) ); } + inline + Real64 + PsyRhovFnTdbWPb_fast( + Real64 const Tdb, // dry-bulb temperature {C} + Real64 const dW, // humidity ratio + Real64 const PB // Barometric Pressure {Pascals} + ) + { + // Faster version with humidity ratio already adjusted + assert( dW >= 1.0e-5 ); + return dW * PB / ( 461.52 * ( Tdb + KelvinConv ) * ( dW + 0.62198 ) ); + } + #ifdef EP_psych_errors void PsyRhFnTdbRhovLBnd0C_error( diff --git a/src/EnergyPlus/RefrigeratedCase.cc b/src/EnergyPlus/RefrigeratedCase.cc index 275b7033935..5e97137094f 100644 --- a/src/EnergyPlus/RefrigeratedCase.cc +++ b/src/EnergyPlus/RefrigeratedCase.cc @@ -7527,7 +7527,7 @@ namespace RefrigeratedCase { // only accumulate energy during actual simulation (so same if DD's are switched) StockingLoad = StockingSchedule * Length; if ( ! WarmupFlag ) { - DeltaStockingEnergy = ( StockingLoad * TimeStepZone * SecInHour ); + DeltaStockingEnergy = ( StockingLoad * TimeStepZoneSec ); RefrigCase( CaseID ).StockingEnergy += DeltaStockingEnergy; } //warm up // CALCULTE ALL LOADS INFLUENCED BY ZONE TEMPERATURE AND RH @@ -7588,7 +7588,7 @@ namespace RefrigeratedCase { // FROST: keep track of frost build up on evaporator coil //avoid accumulation during warm-up to avoid reverse dd test problem if ( ! WarmupFlag ) { - DeltaFreezeKgFrost = LatentLoad * TimeStepZone * SecInHour / IcetoVaporEnthalpy; + DeltaFreezeKgFrost = LatentLoad * TimeStepZoneSec / IcetoVaporEnthalpy; RefrigCase( CaseID ).KgFrost += DeltaFreezeKgFrost; } @@ -7614,7 +7614,7 @@ namespace RefrigeratedCase { DefrostCap_Actual *= DefrostRatio; } StartFrostKg = RefrigCase( CaseID ).KgFrost; - DefrostEnergy = DefrostCap_Actual * TimeStepZone * SecInHour; + DefrostEnergy = DefrostCap_Actual * TimeStepZoneSec; FrostMeltedKg = min( DefrostEnergy / IceMeltEnthalpy, StartFrostKg ); RefrigCase( CaseID ).KgFrost -= FrostMeltedKg; @@ -7662,7 +7662,7 @@ namespace RefrigeratedCase { TotalCap_Actual = CapAvail; LatentCap_Actual = min( LatentLoad, CapAvail ); //Latent load should never be > capavail, but just in case... SensibleCap_Actual = TotalCap_Actual - LatentCap_Actual; - if ( ! WarmupFlag ) RefrigCase( CaseID ).StoredEnergy += ( TotalLoad_Actual - CapAvail ) * TimeStepZone * SecInHour; + if ( ! WarmupFlag ) RefrigCase( CaseID ).StoredEnergy += ( TotalLoad_Actual - CapAvail ) * TimeStepZoneSec; } //CapAvail vs Load requested // Reset DefrostLoad_Actual to zero for non-electric defrost types, for reporting purposes @@ -7689,56 +7689,56 @@ namespace RefrigeratedCase { // ReportRefrigeratedCase(CaseID) RefrigCase( CaseID ).TotalCoolingLoad = TotalCap_Actual; - RefrigCase( CaseID ).TotalCoolingEnergy = TotalCap_Actual * TimeStepZone * SecInHour; + RefrigCase( CaseID ).TotalCoolingEnergy = TotalCap_Actual * TimeStepZoneSec; RefrigCase( CaseID ).SensCoolingEnergyRate = SensibleCap_Actual; - RefrigCase( CaseID ).SensCoolingEnergy = SensibleCap_Actual * TimeStepZone * SecInHour; + RefrigCase( CaseID ).SensCoolingEnergy = SensibleCap_Actual * TimeStepZoneSec; RefrigCase( CaseID ).LatCoolingEnergyRate = LatentCap_Actual; - RefrigCase( CaseID ).LatCoolingEnergy = LatentCap_Actual * TimeStepZone * SecInHour; + RefrigCase( CaseID ).LatCoolingEnergy = LatentCap_Actual * TimeStepZoneSec; RefrigCase( CaseID ).SensZoneCreditRate = CaseSenCreditToZone; // both positive or negative // This rate can be positive or negative, split into separate output variables and always report positive value if ( CaseSenCreditToZone <= 0.0 ) { RefrigCase( CaseID ).SensZoneCreditCoolRate = -CaseSenCreditToZone; - RefrigCase( CaseID ).SensZoneCreditCool = -CaseSenCreditToZone * TimeStepZone * SecInHour; + RefrigCase( CaseID ).SensZoneCreditCool = -CaseSenCreditToZone * TimeStepZoneSec; RefrigCase( CaseID ).SensZoneCreditHeatRate = 0.0; RefrigCase( CaseID ).SensZoneCreditHeat = 0.0; } else { RefrigCase( CaseID ).SensZoneCreditHeatRate = CaseSenCreditToZone; - RefrigCase( CaseID ).SensZoneCreditHeat = CaseSenCreditToZone * TimeStepZone * SecInHour; + RefrigCase( CaseID ).SensZoneCreditHeat = CaseSenCreditToZone * TimeStepZoneSec; RefrigCase( CaseID ).SensZoneCreditCoolRate = 0.0; RefrigCase( CaseID ).SensZoneCreditCool = 0.0; } // This rate should always be negative RefrigCase( CaseID ).LatZoneCreditRate = CaseLatCreditToZone; - RefrigCase( CaseID ).LatZoneCredit = CaseLatCreditToZone * TimeStepZone * SecInHour; + RefrigCase( CaseID ).LatZoneCredit = CaseLatCreditToZone * TimeStepZoneSec; RefrigCase( CaseID ).SensHVACCreditRate = CaseSenCreditToHVAC; // This rate can be positive or negative, split into separate output variables and always report positive value if ( CaseSenCreditToHVAC <= 0.0 ) { RefrigCase( CaseID ).SensHVACCreditCoolRate = -CaseSenCreditToHVAC; - RefrigCase( CaseID ).SensHVACCreditCool = -CaseSenCreditToHVAC * TimeStepZone * SecInHour; + RefrigCase( CaseID ).SensHVACCreditCool = -CaseSenCreditToHVAC * TimeStepZoneSec; RefrigCase( CaseID ).SensHVACCreditHeatRate = 0.0; RefrigCase( CaseID ).SensHVACCreditHeat = 0.0; } else { RefrigCase( CaseID ).SensHVACCreditHeatRate = CaseSenCreditToHVAC; - RefrigCase( CaseID ).SensHVACCreditHeat = CaseSenCreditToHVAC * TimeStepZone * SecInHour; + RefrigCase( CaseID ).SensHVACCreditHeat = CaseSenCreditToHVAC * TimeStepZoneSec; RefrigCase( CaseID ).SensHVACCreditCoolRate = 0.0; RefrigCase( CaseID ).SensHVACCreditCool = 0.0; } // This rate should always be negative RefrigCase( CaseID ).LatHVACCreditRate = CaseLatCreditToHVAC; - RefrigCase( CaseID ).LatHVACCredit = CaseLatCreditToHVAC * TimeStepZone * SecInHour; + RefrigCase( CaseID ).LatHVACCredit = CaseLatCreditToHVAC * TimeStepZoneSec; RefrigCase( CaseID ).ElecFanPower = TotalFan; - RefrigCase( CaseID ).ElecFanConsumption = TotalFan * TimeStepZone * SecInHour; + RefrigCase( CaseID ).ElecFanConsumption = TotalFan * TimeStepZoneSec; RefrigCase( CaseID ).ElecAntiSweatPower = TotalAntiSweat; - RefrigCase( CaseID ).ElecAntiSweatConsumption = TotalAntiSweat * TimeStepZone * SecInHour; + RefrigCase( CaseID ).ElecAntiSweatConsumption = TotalAntiSweat * TimeStepZoneSec; RefrigCase( CaseID ).ElecLightingPower = TotalLightingLoad; - RefrigCase( CaseID ).ElecLightingConsumption = TotalLightingLoad * TimeStepZone * SecInHour; + RefrigCase( CaseID ).ElecLightingConsumption = TotalLightingLoad * TimeStepZoneSec; RefrigCase( CaseID ).ElecDefrostPower = DefrostCap_Actual; - RefrigCase( CaseID ).ElecDefrostConsumption = DefrostCap_Actual * TimeStepZone * SecInHour; + RefrigCase( CaseID ).ElecDefrostConsumption = DefrostCap_Actual * TimeStepZoneSec; RefrigCase( CaseID ).DefEnergyCurveValue = DefrostRatio; RefrigCase( CaseID ).LatEnergyCurveValue = LatentRatio; @@ -7751,7 +7751,7 @@ namespace RefrigeratedCase { // excessively large stored energy if ( ( ZoneTempFactor * CaseCreditFraction ) > 1.0 ) { if ( ! WarmupFlag ) { - DeltaWarmEnvEnergy = ( SensibleLoadPrime - RefrigCase( CaseID ).DesignSensCaseCredit ) * TimeStepZone * SecInHour; + DeltaWarmEnvEnergy = ( SensibleLoadPrime - RefrigCase( CaseID ).DesignSensCaseCredit ) * TimeStepZoneSec; RefrigCase( CaseID ).WarmEnvEnergy += DeltaWarmEnvEnergy; } } @@ -8526,9 +8526,9 @@ namespace RefrigeratedCase { // perhaps future interest in reporting percent of installed capacity used(or number of compressors) ? // If the system compressors were unable to meet the current loads, save energy to be met in succeeding time step // Note the unmet energy is turned into a rate and applied to the system load at the start of calccompressor - System( SysNum ).UnmetEnergy += ( CurrentLoads - System( SysNum ).TotCompCapacity ) * TimeStepZone * SecInHour; + System( SysNum ).UnmetEnergy += ( CurrentLoads - System( SysNum ).TotCompCapacity ) * TimeStepZoneSec; if ( System( SysNum ).NumStages == 2 ) { - System( SysNum ).UnmetHiStageEnergy += ( CurrentHiStageLoads - System( SysNum ).TotHiStageCompCapacity ) * TimeStepZone * SecInHour; + System( SysNum ).UnmetHiStageEnergy += ( CurrentHiStageLoads - System( SysNum ).TotHiStageCompCapacity ) * TimeStepZoneSec; } if ( System( SysNum ).UnmetEnergy > MyLargeNumber ) { System( SysNum ).UnmetEnergy = MyLargeNumber; @@ -8803,7 +8803,7 @@ namespace RefrigeratedCase { // perhaps future interest in reporting percent of installed capacity used(or number of compressors) ? // If the system compressors were unable to meet the current loads, save energy to be met in succeeding time step // Note the unmet energy is turned into a rate and applied to the system load at the start of calccompressor - TransSystem( SysNum ).UnmetEnergy += ( CurrentLoads - TransSystem( SysNum ).TotCompCapacity ) * TimeStepZone * SecInHour; + TransSystem( SysNum ).UnmetEnergy += ( CurrentLoads - TransSystem( SysNum ).TotCompCapacity ) * TimeStepZoneSec; if ( TransSystem( SysNum ).UnmetEnergy > MyLargeNumber ) { TransSystem( SysNum ).UnmetEnergy = MyLargeNumber; @@ -11255,7 +11255,7 @@ namespace RefrigeratedCase { // FROST: keep track of frost build up on evaporator coil // avoid accumulation during warm-up to avoid reverse dd test problem if ( ! WarmupFlag ) { - FrostChangekg = ( WaterRemovRate * TimeStepZone * SecInHour ) * ( 1.0 - DefrostDripDownSchedule ); + FrostChangekg = ( WaterRemovRate * TimeStepZoneSec ) * ( 1.0 - DefrostDripDownSchedule ); WalkIn( WalkInID ).KgFrost += FrostChangekg; } } //water to ice @@ -11276,18 +11276,18 @@ namespace RefrigeratedCase { WalkIn( WalkInID ).SensZoneCreditRate( ZoneID ) = ZoneSensLoad; if ( ZoneSensLoad <= 0.0 ) { WalkIn( WalkInID ).SensZoneCreditCoolRate( ZoneID ) = -ZoneSensLoad; - WalkIn( WalkInID ).SensZoneCreditCool( ZoneID ) = -ZoneSensLoad * TimeStepZone * SecInHour; + WalkIn( WalkInID ).SensZoneCreditCool( ZoneID ) = -ZoneSensLoad * TimeStepZoneSec; WalkIn( WalkInID ).SensZoneCreditHeatRate( ZoneID ) = 0.0; WalkIn( WalkInID ).SensZoneCreditHeat( ZoneID ) = 0.0; } else { WalkIn( WalkInID ).SensZoneCreditHeatRate( ZoneID ) = ZoneSensLoad; - WalkIn( WalkInID ).SensZoneCreditHeat( ZoneID ) = ZoneSensLoad * TimeStepZone * SecInHour; + WalkIn( WalkInID ).SensZoneCreditHeat( ZoneID ) = ZoneSensLoad * TimeStepZoneSec; WalkIn( WalkInID ).SensZoneCreditCoolRate( ZoneID ) = 0.0; WalkIn( WalkInID ).SensZoneCreditCool( ZoneID ) = 0.0; } // This rate should always be negative WalkIn( WalkInID ).LatZoneCreditRate( ZoneID ) = ZoneLatentLoad; - WalkIn( WalkInID ).LatZoneCredit( ZoneID ) = ZoneLatentLoad * TimeStepZone * SecInHour; + WalkIn( WalkInID ).LatZoneCredit( ZoneID ) = ZoneLatentLoad * TimeStepZoneSec; //Running total over all zones, use later to dispatch capacity SensibleLoadTotal += WalkInSensLoad; @@ -11310,7 +11310,7 @@ namespace RefrigeratedCase { if ( ( DefrostSchedule > 0.0 ) && ( WalkIn( WalkInID ).DefrostType != WalkInDefrostNone ) && ( WalkIn( WalkInID ).DefrostType != WalkInDefrostOffCycle ) ) { DefrostLoad = DefrostCap * DefrostSchedule; //W StartFrostKg = WalkIn( WalkInID ).KgFrost; - DefrostEnergy = DefrostLoad * TimeStepZone * SecInHour; //Joules + DefrostEnergy = DefrostLoad * TimeStepZoneSec; //Joules if ( WalkIn( WalkInID ).DefrostControlType == DefrostContTempTerm ) { // Need to turn defrost system off early if controlled by temperature and all ice melted // For temperature termination, need to recognize not all defrost heat goes to melt ice @@ -11343,9 +11343,9 @@ namespace RefrigeratedCase { // see Aug 8 page 3 notes WalkIn( WalkInID ).KgFrost = 0.0; DefrostEnergyNeeded = ( IceSensHeatNeeded + ( FrostChangekg * IceMeltEnthalpy ) ) / DefEnergyFraction; //Joules - energy needed including E unavail to melt ice - DefrostSchedule = min( DefrostSchedule, ( DefrostEnergyNeeded / ( DefrostCap * TimeStepZone * SecInHour ) ) ); + DefrostSchedule = min( DefrostSchedule, ( DefrostEnergyNeeded / ( DefrostCap * TimeStepZoneSec ) ) ); // reduce load on walkin by energy put into ice melting - DefrostLoad = max( 0.0, ( DefrostSchedule * DefrostCap - ( IceSensHeatNeeded + ( FrostChangekg * IceMeltEnthalpy ) ) / ( TimeStepZone * SecInHour ) ) ); + DefrostLoad = max( 0.0, ( DefrostSchedule * DefrostCap - ( IceSensHeatNeeded + ( FrostChangekg * IceMeltEnthalpy ) ) / TimeStepZoneSec ) ); WalkIn( WalkInID ).IceTemp = WalkIn( WalkInID ).TEvapDesign; } // frost melted during time step less than amount of ice at start @@ -11368,7 +11368,7 @@ namespace RefrigeratedCase { } //Defrost calculations if ( WalkIn( WalkInID ).DefrostType == WalkInDefrostElec ) { - WalkIn( WalkInID ).ElecDefrostConsumption = DefrostCap * DefrostSchedule * TimeStepZone * SecInHour; + WalkIn( WalkInID ).ElecDefrostConsumption = DefrostCap * DefrostSchedule * TimeStepZoneSec; WalkIn( WalkInID ).ElecDefrostPower = DefrostCap * DefrostSchedule; } else { WalkIn( WalkInID ).ElecDefrostConsumption = 0.0; @@ -11411,25 +11411,25 @@ namespace RefrigeratedCase { CapApplied = MaxCap; LatentCapApplied = min( LatentLoadTotal, MaxCap ); //Latent load should never be > capavail, but just in case... SensibleCapApplied = CapApplied - LatentCapApplied; - if ( ! WarmupFlag ) WalkIn( WalkInID ).StoredEnergy += ( LoadTotal - MaxCap ) * TimeStepZone * SecInHour; + if ( ! WarmupFlag ) WalkIn( WalkInID ).StoredEnergy += ( LoadTotal - MaxCap ) * TimeStepZoneSec; } //CapAvail vs Load requested // ReportWalkIn( WalkInID) WalkIn( WalkInID ).TotalCoolingLoad = CapApplied; - WalkIn( WalkInID ).TotalCoolingEnergy = CapApplied * TimeStepZone * SecInHour; + WalkIn( WalkInID ).TotalCoolingEnergy = CapApplied * TimeStepZoneSec; WalkIn( WalkInID ).TotSensCoolingEnergyRate = SensibleCapApplied; - WalkIn( WalkInID ).TotSensCoolingEnergy = SensibleCapApplied * TimeStepZone * SecInHour; + WalkIn( WalkInID ).TotSensCoolingEnergy = SensibleCapApplied * TimeStepZoneSec; WalkIn( WalkInID ).TotLatCoolingEnergyRate = LatentCapApplied; - WalkIn( WalkInID ).TotLatCoolingEnergy = LatentCapApplied * TimeStepZone * SecInHour; + WalkIn( WalkInID ).TotLatCoolingEnergy = LatentCapApplied * TimeStepZoneSec; WalkIn( WalkInID ).ElecFanPower = FanLoad; - WalkIn( WalkInID ).ElecFanConsumption = FanLoad * TimeStepZone * SecInHour; + WalkIn( WalkInID ).ElecFanConsumption = FanLoad * TimeStepZoneSec; WalkIn( WalkInID ).ElecHeaterPower = HeaterLoad; - WalkIn( WalkInID ).ElecHeaterConsumption = HeaterLoad * TimeStepZone * SecInHour; + WalkIn( WalkInID ).ElecHeaterConsumption = HeaterLoad * TimeStepZoneSec; WalkIn( WalkInID ).ElecLightingPower = LightLoad; - WalkIn( WalkInID ).ElecLightingConsumption = LightLoad * TimeStepZone * SecInHour; + WalkIn( WalkInID ).ElecLightingConsumption = LightLoad * TimeStepZoneSec; WalkIn( WalkInID ).TotalElecPower = FanLoad + HeaterLoad + LightLoad + WalkIn( WalkInID ).ElecDefrostPower; - WalkIn( WalkInID ).TotalElecConsumption = WalkIn( WalkInID ).TotalElecPower * TimeStepZone * SecInHour; + WalkIn( WalkInID ).TotalElecConsumption = WalkIn( WalkInID ).TotalElecPower * TimeStepZoneSec; //************************************************************************************************** // Cap Energy and Kg Frost to avoid floating overflow errors @@ -11747,7 +11747,7 @@ namespace RefrigeratedCase { //Don't have as much capacity as needed (likely following defrost periods) TotalCoolingLoad = MaxLoad; RefrigerationLoad -= ( TotalLoad - MaxLoad ); - if ( ! WarmupFlag ) UnmetEnergy += ( ( TotalLoad - MaxLoad ) * TimeStepZone * SecInHour ); + if ( ! WarmupFlag ) UnmetEnergy += ( ( TotalLoad - MaxLoad ) * TimeStepZoneSec ); } // load requested greater than MaxLoad if ( Secondary( SecondaryNum ).UnmetEnergy > MyLargeNumber ) { Secondary( SecondaryNum ).UnmetEnergy = MyLargeNumber; @@ -11845,27 +11845,27 @@ namespace RefrigeratedCase { //Can arrive here when load call to refrigeration looks for cases/walkin systems and usetimestep is .FALSE. if ( ( ! UseSysTimeStep ) && ( ( NumSimulationCases > 0 ) || ( NumSimulationWalkIns > 0 ) ) ) { for ( ZoneNum = 1; ZoneNum <= NumOfZones; ++ZoneNum ) { - CaseWIZoneReport( ZoneNum ).SenCaseCreditToZoneEnergy = RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone * TimeStepZone * SecInHour; + CaseWIZoneReport( ZoneNum ).SenCaseCreditToZoneEnergy = RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone * TimeStepZoneSec; // Latent always negative CaseWIZoneReport( ZoneNum ).LatCoolingToZoneRate = -RefrigCaseCredit( ZoneNum ).LatCaseCreditToZone; - CaseWIZoneReport( ZoneNum ).LatCoolingToZoneEnergy = CaseWIZoneReport( ZoneNum ).LatCoolingToZoneRate * TimeStepZone * SecInHour; + CaseWIZoneReport( ZoneNum ).LatCoolingToZoneEnergy = CaseWIZoneReport( ZoneNum ).LatCoolingToZoneRate * TimeStepZoneSec; // Sensible rate can be positive or negative, split into separate output variables and // always report positive value if ( RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone <= 0.0 ) { CaseWIZoneReport( ZoneNum ).SenCoolingToZoneRate = -RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone; - CaseWIZoneReport( ZoneNum ).SenCoolingToZoneEnergy = -RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone * TimeStepZone * SecInHour; + CaseWIZoneReport( ZoneNum ).SenCoolingToZoneEnergy = -RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone * TimeStepZoneSec; CaseWIZoneReport( ZoneNum ).HeatingToZoneRate = 0.0; CaseWIZoneReport( ZoneNum ).HeatingToZoneEnergy = 0.0; } else { CaseWIZoneReport( ZoneNum ).SenCoolingToZoneRate = 0.0; CaseWIZoneReport( ZoneNum ).SenCoolingToZoneEnergy = 0.0; CaseWIZoneReport( ZoneNum ).HeatingToZoneRate = RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone; - CaseWIZoneReport( ZoneNum ).HeatingToZoneEnergy = RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone * TimeStepZone * SecInHour; + CaseWIZoneReport( ZoneNum ).HeatingToZoneEnergy = RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone * TimeStepZoneSec; } CaseWIZoneReport( ZoneNum ).TotCoolingToZoneRate = CaseWIZoneReport( ZoneNum ).SenCoolingToZoneRate + CaseWIZoneReport( ZoneNum ).LatCoolingToZoneRate; CaseWIZoneReport( ZoneNum ).TotCoolingToZoneEnergy = CaseWIZoneReport( ZoneNum ).SenCoolingToZoneEnergy + CaseWIZoneReport( ZoneNum ).LatCoolingToZoneEnergy; CaseWIZoneReport( ZoneNum ).TotHtXferToZoneRate = RefrigCaseCredit( ZoneNum ).SenCaseCreditToZone + RefrigCaseCredit( ZoneNum ).LatCaseCreditToZone; - CaseWIZoneReport( ZoneNum ).TotHtXferToZoneEnergy = CaseWIZoneReport( ZoneNum ).TotHtXferToZoneRate * TimeStepZone * SecInHour; + CaseWIZoneReport( ZoneNum ).TotHtXferToZoneEnergy = CaseWIZoneReport( ZoneNum ).TotHtXferToZoneRate * TimeStepZoneSec; } // over zones for cases and walkins } diff --git a/src/EnergyPlus/ReportSizingManager.cc b/src/EnergyPlus/ReportSizingManager.cc index f01a97769cd..c0e67fe4fb3 100644 --- a/src/EnergyPlus/ReportSizingManager.cc +++ b/src/EnergyPlus/ReportSizingManager.cc @@ -135,7 +135,7 @@ namespace ReportSizingManager { } // add to SQL output - if ( sqlite->writeOutputToSQLite() ) sqlite->addSQLiteComponentSizingRecord( CompType, CompName, VarDesc, VarValue ); + if ( sqlite ) sqlite->addSQLiteComponentSizingRecord( CompType, CompName, VarDesc, VarValue ); } @@ -147,7 +147,7 @@ namespace ReportSizingManager { std::string const & SizingString, // string containing info for eio report Real64 & SizingResult, // result of the sizing procedure bool const PrintWarningFlag, // TRUE when requesting output (eio) reporting - std::string const & CallingRoutine // name of calling rotuine for warning messages + std::string const & CallingRoutine // name of calling routine for warning messages ) { // SUBROUTINE INFORMATION : @@ -1130,10 +1130,13 @@ namespace ReportSizingManager { if ( CurOASysNum > 0 ) { if ( OASysEqSizing( CurOASysNum ).CoolingAirFlow ) { // Parent object sets flow rate - AutosizeDes = OASysEqSizing ( CurOASysNum ).CoolingAirVolFlow; - } else { - AutosizeDes = FinalSysSizing ( CurSysNum ).DesOutAirVolFlow; + AutosizeDes = OASysEqSizing( CurOASysNum ).CoolingAirVolFlow; + } + else { + AutosizeDes = FinalSysSizing( CurSysNum ).DesOutAirVolFlow; } + } else if (DataAirFlowUsedForSizing > 0.0 ) { + AutosizeDes = DataAirFlowUsedForSizing; } else { if ( CurDuctType == Main ) { AutosizeDes = FinalSysSizing( CurSysNum ).DesMainVolFlow; @@ -1265,10 +1268,10 @@ namespace ReportSizingManager { bCheckForZero = false; } else if ( SizingType == CoolingWaterDesAirInletTempSizing ) { if ( CurOASysNum > 0 ) { // coil is in OA stream - AutosizeDes = FinalSysSizing( CurSysNum ).CoolOutTemp; + AutosizeDes = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; } else { // coil is in main air loop if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - AutosizeDes = FinalSysSizing( CurSysNum ).CoolMixTemp; + AutosizeDes = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; } else { // thereis precooling of the OA stream if ( DataFlowUsedForSizing > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / DataFlowUsedForSizing; @@ -1276,12 +1279,12 @@ namespace ReportSizingManager { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - AutosizeDes = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; + AutosizeDes = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; } } bCheckForZero = false; } else if ( SizingType == CoolingWaterDesWaterInletTempSizing ) { - AutosizeDes = FinalSysSizing( CurSysNum ).CoolOutTemp; + AutosizeDes = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; AutosizeDes = PlantSizData( DataPltSizCoolNum ).ExitTemp; bCheckForZero = false; } else if ( SizingType == CoolingWaterNumofTubesPerRowSizing ) { @@ -1290,6 +1293,8 @@ namespace ReportSizingManager { } else if ( SizingType == CoolingWaterDesAirOutletTempSizing ) { if ( CurOASysNum > 0 ) { AutosizeDes = FinalSysSizing( CurSysNum ).PrecoolTemp; + } else if ( DataDesOutletAirTemp > 0.0 ) { + AutosizeDes = DataDesOutletAirTemp; } else { AutosizeDes = FinalSysSizing( CurSysNum ).CoolSupTemp; } @@ -1304,10 +1309,10 @@ namespace ReportSizingManager { bCheckForZero = false; } else if ( SizingType == CoolingWaterDesAirInletHumRatSizing ) { if ( CurOASysNum > 0 ) { // coil is in OA stream - AutosizeDes = FinalSysSizing( CurSysNum ).CoolOutHumRat; + AutosizeDes = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; } else { // coil is in main air loop if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - AutosizeDes = FinalSysSizing( CurSysNum ).CoolMixHumRat; + AutosizeDes = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of the OA stream if ( DataFlowUsedForSizing > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / DataFlowUsedForSizing; @@ -1315,13 +1320,15 @@ namespace ReportSizingManager { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - AutosizeDes = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + AutosizeDes = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } } bCheckForZero = false; } else if ( SizingType == CoolingWaterDesAirOutletHumRatSizing ) { if ( CurOASysNum > 0 ) { AutosizeDes = FinalSysSizing( CurSysNum ).PrecoolHumRat; + } else if ( DataDesOutletAirHumRat > 0.0 ) { + AutosizeDes = DataDesOutletAirHumRat; } else { AutosizeDes = FinalSysSizing( CurSysNum ).CoolSupHumRat; } @@ -1401,17 +1408,30 @@ namespace ReportSizingManager { NominalCapacityDes = FinalSysSizing( CurSysNum ).CoolingTotalCapacity; } else if ( DesVolFlow >= SmallAirVolFlow ) { OutAirFrac = 0.0; + if ( DesVolFlow > 0.0 ) { + OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / DesVolFlow; + } else { + OutAirFrac = 1.0; + } + OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); if ( CurOASysNum > 0 ) { // coil is in the OA stream - CoilInTemp = FinalSysSizing ( CurSysNum ).CoolOutTemp; - CoilInHumRat = FinalSysSizing ( CurSysNum ).CoolOutHumRat; + CoilInTemp = FinalSysSizing ( CurSysNum ).OutTempAtCoolPeak; + CoilInHumRat = FinalSysSizing ( CurSysNum ).OutHumRatAtCoolPeak; CoilOutTemp = FinalSysSizing ( CurSysNum ).PrecoolTemp; CoilOutHumRat = FinalSysSizing ( CurSysNum ).PrecoolHumRat; } else { // coil is on the main air loop - CoilOutTemp = FinalSysSizing ( CurSysNum ).CoolSupTemp; + if ( DataAirFlowUsedForSizing > 0.0 ) { + DesVolFlow = DataAirFlowUsedForSizing; + } + if ( DataDesOutletAirTemp > 0.0 ) { + CoilOutTemp = DataDesOutletAirTemp; + } else { + CoilOutTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; + } CoilOutHumRat = FinalSysSizing ( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - CoilInTemp = FinalSysSizing ( CurSysNum ).CoolMixTemp; - CoilInHumRat = FinalSysSizing ( CurSysNum ).CoolMixHumRat; + CoilInTemp = FinalSysSizing ( CurSysNum ).MixTempAtCoolPeak; + CoilInHumRat = FinalSysSizing ( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( DesVolFlow > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / DesVolFlow; @@ -1419,11 +1439,11 @@ namespace ReportSizingManager { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - CoilInTemp = OutAirFrac * FinalSysSizing ( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing ( CurSysNum ).CoolRetTemp; - CoilInHumRat = OutAirFrac*FinalSysSizing ( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac )*FinalSysSizing ( CurSysNum ).CoolRetHumRat; + CoilInTemp = OutAirFrac * FinalSysSizing ( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing ( CurSysNum ).RetTempAtCoolPeak; + CoilInHumRat = OutAirFrac*FinalSysSizing ( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac )*FinalSysSizing ( CurSysNum ).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing ( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing ( CurSysNum ).OutTempAtCoolPeak; if ( SameString( CompType, "COIL:COOLING:WATER" ) || SameString( CompType, "COIL:COOLING:WATER:DETAILEDGEOMETRY" ) ) { rhoair = StdRhoAir; } else { @@ -1451,7 +1471,7 @@ namespace ReportSizingManager { } else { NominalCapacityDes = 0.0; } - AutosizeDes = NominalCapacityDes * DataHeatSizeRatio * DataFracOfAutosizedCoolingCapacity; //Fixed Moved up 1 line inside block per Richard Raustad + AutosizeDes = NominalCapacityDes * DataFracOfAutosizedCoolingCapacity; //Fixed Moved up 1 line inside block per Richard Raustad } // IF(OASysFlag) THEN or ELSE IF(AirLoopSysFlag) THEN } else if (SizingType == HeatingCapacitySizing) { DataFracOfAutosizedHeatingCapacity = 1.0; @@ -1843,6 +1863,105 @@ namespace ReportSizingManager { } } + void + GetCoilDesFlowT( + int SysNum, // central air system index + Real64 CpAir, // specific heat to be used in calculations [J/kgC] + Real64 & DesFlow, // returned design mass flow [kg/s] + Real64 & DesExitTemp // returned design coil exit temperature [kg/s] + ) + { + // FUNCTION INFORMATION: + // AUTHOR Fred Buhl + // DATE WRITTEN September 2014 + // MODIFIED + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // This function calculates the coil design air flow rate and exit temperature depending on the + // cooling capacity control method + + // METHODOLOGY EMPLOYED: + // energy and mass flow balance + + // REFERENCES: + // na + + // Using/Aliasing + using namespace DataSizing; + using DataEnvironment::StdRhoAir; + + // FUNCTION LOCAL VARIABLE DECLARATIONS: + int DDAtSensPeak; + int TimeStepAtSensPeak; + int DDAtFlowPeak; + int TimeStepAtFlowPeak; + int CoolCapCtrl; // type of coil capacity control + int PeakLoadType; + int DDAtTotPeak; + int TimeStepAtTotPeak; + int TimeStepAtPeak; + Real64 ZoneCoolLoadSum; // sum of zone cooling loads at the peak [W] + Real64 AvgZoneTemp; // average zone temperature [C] + Real64 AvgSupTemp; // average supply temperature for bypass control [C] + Real64 TotFlow; // total flow for bypass control [m3/s] + Real64 MixTemp; // mixed air temperature at the peak [C] + + CoolCapCtrl = SysSizInput( SysNum ).CoolCapControl; + PeakLoadType = SysSizInput( SysNum ).CoolingPeakLoadType; + DDAtSensPeak = SysSizPeakDDNum( SysNum ).SensCoolPeakDD; + TimeStepAtSensPeak = SysSizPeakDDNum( SysNum ).TimeStepAtSensCoolPk( DDAtSensPeak ); + DDAtFlowPeak = SysSizPeakDDNum( SysNum ).CoolFlowPeakDD; + TimeStepAtFlowPeak = SysSizPeakDDNum( SysNum ).TimeStepAtCoolFlowPk( DDAtFlowPeak ); + DDAtTotPeak = SysSizPeakDDNum( SysNum ).TotCoolPeakDD; + TimeStepAtTotPeak = SysSizPeakDDNum( SysNum ).TimeStepAtTotCoolPk( DDAtTotPeak ); + + if ( PeakLoadType == TotalCoolingLoad ) { + TimeStepAtPeak = TimeStepAtTotPeak; + } else { + TimeStepAtPeak = TimeStepAtSensPeak; + } + if ( CoolCapCtrl == VAV ) { + DesExitTemp = FinalSysSizing( SysNum ).CoolSupTemp; + DesFlow = FinalSysSizing( SysNum ).MassFlowAtCoolPeak / StdRhoAir; + } + else if ( CoolCapCtrl == OnOff ) { + DesExitTemp = FinalSysSizing( SysNum ).CoolSupTemp; + DesFlow = DataAirFlowUsedForSizing; + } + else if ( CoolCapCtrl == VT ) { + if ( FinalSysSizing( SysNum ).CoolingPeakLoadType == SensibleCoolingLoad ) { + ZoneCoolLoadSum = CalcSysSizing( SysNum ).SumZoneCoolLoadSeq( TimeStepAtPeak ); + AvgZoneTemp = CalcSysSizing( SysNum ).CoolZoneAvgTempSeq( TimeStepAtPeak ); + } + else if ( FinalSysSizing( SysNum ).CoolingPeakLoadType == TotalCoolingLoad ) { + ZoneCoolLoadSum = CalcSysSizing( SysNum ).SumZoneCoolLoadSeq( TimeStepAtPeak ); + AvgZoneTemp = CalcSysSizing( SysNum ).CoolZoneAvgTempSeq( TimeStepAtPeak ); + } + DesExitTemp = max( FinalSysSizing( SysNum ).CoolSupTemp, AvgZoneTemp - ZoneCoolLoadSum / ( StdRhoAir * CpAir * FinalSysSizing( SysNum ).DesCoolVolFlow ) ); + DesFlow = FinalSysSizing( SysNum ).DesCoolVolFlow; + } + else if ( CoolCapCtrl == Bypass ) { + if ( FinalSysSizing( SysNum ).CoolingPeakLoadType == SensibleCoolingLoad ) { + ZoneCoolLoadSum = CalcSysSizing( SysNum ).SumZoneCoolLoadSeq( TimeStepAtPeak ); + AvgZoneTemp = CalcSysSizing( SysNum ).CoolZoneAvgTempSeq( TimeStepAtPeak ); + } + else if ( FinalSysSizing( SysNum ).CoolingPeakLoadType == TotalCoolingLoad ) { + ZoneCoolLoadSum = CalcSysSizing( SysNum ).SumZoneCoolLoadSeq( TimeStepAtPeak ); + AvgZoneTemp = CalcSysSizing( SysNum ).CoolZoneAvgTempSeq( TimeStepAtPeak ); + } + AvgSupTemp = AvgZoneTemp - ZoneCoolLoadSum / ( StdRhoAir * CpAir * FinalSysSizing( SysNum ).DesCoolVolFlow ); + TotFlow = FinalSysSizing( SysNum ).DesCoolVolFlow; + MixTemp = CalcSysSizing( SysNum ).MixTempAtCoolPeak; + DesExitTemp = FinalSysSizing( SysNum ).CoolSupTemp; + if ( MixTemp > DesExitTemp ) { + DesFlow = TotFlow * max( 0.0, min( 1.0, ( ( MixTemp - AvgSupTemp ) / ( MixTemp - DesExitTemp ) ) ) ); + } else { + DesFlow = TotFlow; + } + } + } + // NOTICE // Copyright © 1996-2014 The Board of Trustees of the University of Illinois diff --git a/src/EnergyPlus/ReportSizingManager.hh b/src/EnergyPlus/ReportSizingManager.hh index 89c05be9431..946f526d56e 100644 --- a/src/EnergyPlus/ReportSizingManager.hh +++ b/src/EnergyPlus/ReportSizingManager.hh @@ -35,6 +35,14 @@ namespace ReportSizingManager { std::string const & CallingRoutine // name of calling rotuine for warning messages ); + void + GetCoilDesFlowT( + int SysNum, // central air system index + Real64 CpAir, // specific heat to be used in calculations [J/kgC] + Real64 & DesFlow, // returned design mass flow [kg/s] + Real64 & DesExitTemp // returned design coil exit temperature [kg/s] + ); + // NOTICE // Copyright © 1996-2014 The Board of Trustees of the University of Illinois diff --git a/src/EnergyPlus/SQLiteProcedures.cc b/src/EnergyPlus/SQLiteProcedures.cc index b017ad53154..3b4f49ebb02 100644 --- a/src/EnergyPlus/SQLiteProcedures.cc +++ b/src/EnergyPlus/SQLiteProcedures.cc @@ -36,18 +36,121 @@ const int SQLite::UnitsId = 6; std::unique_ptr sqlite; -SQLite::SQLite() +std::unique_ptr CreateSQLiteDatabase() +{ + try { + int numberOfSQLiteObjects = InputProcessor::GetNumObjectsFound("Output:SQLite"); + bool writeOutputToSQLite = false; + bool writeTabularDataToSQLite = false; + + if( numberOfSQLiteObjects == 1 ) { + FArray1D_string alphas(5); + int numAlphas; + FArray1D< Real64 > numbers(2); + int numNumbers; + int status; + + InputProcessor::GetObjectItem("Output:SQLite",1,alphas,numAlphas,numbers,numNumbers,status); + if( numAlphas > 0 ) { + std::string option = alphas(1); + if( InputProcessor::SameString(option,"SimpleAndTabular") ) { + writeTabularDataToSQLite = true; + writeOutputToSQLite = true; + } else if( InputProcessor::SameString(option,"Simple") ) { + writeOutputToSQLite = true; + } + } + } + std::shared_ptr errorStream = std::make_shared( DataStringGlobals::outputSqliteErrFileName, std::ofstream::out | std::ofstream::trunc ); + return std::unique_ptr(new SQLite( errorStream, DataStringGlobals::outputSqlFileName, DataStringGlobals::outputSqliteErrFileName, writeOutputToSQLite, writeTabularDataToSQLite )); + } catch( const std::runtime_error& error ) { + ShowFatalError(error.what()); + return nullptr; + } +} + +void CreateSQLiteZoneExtendedOutput() +{ + if( sqlite && sqlite->writeOutputToSQLite() ) { + for( int zoneNum = 1; zoneNum <= DataGlobals::NumOfZones; ++zoneNum) { + sqlite->addZoneData( zoneNum, DataHeatBalance::Zone(zoneNum) ); + } + for(int listNum = 1; listNum <= DataHeatBalance::NumOfZoneLists; ++listNum) { + sqlite->addZoneListData( listNum, DataHeatBalance::ZoneList(listNum) ); + } + for(int groupNum = 1; groupNum <= DataHeatBalance::NumOfZoneGroups; ++groupNum) { + sqlite->addZoneGroupData( groupNum, DataHeatBalance::ZoneGroup(groupNum) ); + } + for( int scheduleNumber = 1, numberOfSchedules = ScheduleManager::GetNumberOfSchedules(); scheduleNumber <= numberOfSchedules; ++scheduleNumber) { + sqlite->addScheduleData( scheduleNumber, ScheduleManager::GetScheduleName(scheduleNumber), ScheduleManager::GetScheduleType(scheduleNumber), + ScheduleManager::GetScheduleMinValue(scheduleNumber), ScheduleManager::GetScheduleMaxValue(scheduleNumber) ); + } + for( int surfaceNumber = 1; surfaceNumber <= DataSurfaces::TotSurfaces; ++surfaceNumber ) { + auto const & surface = DataSurfaces::Surface(surfaceNumber); + sqlite->addSurfaceData( surfaceNumber, surface, DataSurfaces::cSurfaceClass(surface.Class) ); + } + for(int materialNum = 1; materialNum <= DataHeatBalance::TotMaterials; ++materialNum) { + sqlite->addMaterialData( materialNum, DataHeatBalance::Material(materialNum) ); + } + for(int constructNum = 1; constructNum <= DataHeatBalance::TotConstructs; ++constructNum) { + auto const & construction = DataHeatBalance::Construct(constructNum); + if(construction.TotGlassLayers == 0) { + sqlite->addConstructionData( constructNum, construction, construction.UValue ); + } else { + sqlite->addConstructionData( constructNum, construction, DataHeatBalance::NominalU(constructNum) ); + } + } + for(int lightNum = 1; lightNum <= DataHeatBalance::TotLights; ++lightNum) { + sqlite->addNominalLightingData( lightNum, DataHeatBalance::Lights(lightNum) ); + } + for(int peopleNum = 1; peopleNum <= DataHeatBalance::TotPeople; ++peopleNum) { + sqlite->addNominalPeopleData( peopleNum, DataHeatBalance::People(peopleNum) ); + } + for(int elecEquipNum = 1; elecEquipNum <= DataHeatBalance::TotElecEquip; ++elecEquipNum) { + sqlite->addNominalElectricEquipmentData( elecEquipNum, DataHeatBalance::ZoneElectric(elecEquipNum) ); + } + for(int gasEquipNum = 1; gasEquipNum <= DataHeatBalance::TotGasEquip; ++gasEquipNum) { + sqlite->addNominalGasEquipmentData( gasEquipNum, DataHeatBalance::ZoneGas(gasEquipNum) ); + } + for(int steamEquipNum = 1; steamEquipNum <= DataHeatBalance::TotStmEquip; ++steamEquipNum) { + sqlite->addNominalSteamEquipmentData( steamEquipNum, DataHeatBalance::ZoneSteamEq(steamEquipNum) ); + } + for(int hWEquipNum = 1; hWEquipNum <= DataHeatBalance::TotHWEquip; ++hWEquipNum) { + sqlite->addNominalHotWaterEquipmentData( hWEquipNum, DataHeatBalance::ZoneHWEq(hWEquipNum) ); + } + for(int otherEquipNum = 1; otherEquipNum <= DataHeatBalance::TotOthEquip; ++otherEquipNum) { + sqlite->addNominalOtherEquipmentData( otherEquipNum, DataHeatBalance::ZoneOtherEq(otherEquipNum) ); + } + for(int bBHeatNum = 1; bBHeatNum <= DataHeatBalance::TotBBHeat; ++bBHeatNum) { + sqlite->addNominalBaseboardData( bBHeatNum, DataHeatBalance::ZoneBBHeat(bBHeatNum) ); + } + for(int infilNum = 1; infilNum <= DataHeatBalance::TotInfiltration; ++infilNum) { + sqlite->addInfiltrationData( infilNum, DataHeatBalance::Infiltration(infilNum) ); + } + for(int ventNum = 1; ventNum <= DataHeatBalance::TotVentilation; ++ventNum) { + sqlite->addVentilationData( ventNum, DataHeatBalance::Ventilation(ventNum) ); + } + for(int zoneNum = 1; zoneNum <= DataGlobals::NumOfZones; ++zoneNum) { + sqlite->addRoomAirModelData( zoneNum, DataRoomAirModel::AirModel(zoneNum) ); + } + + sqlite->createZoneExtendedOutput(); + } +} + +SQLite::SQLite( std::shared_ptr errorStream, std::string const & dbName, std::string const & errorFileName, bool writeOutputToSQLite, bool writeTabularDataToSQLite ) : - m_writeOutputToSQLite(false), - m_writeTabularDataToSQLite(false), + SQLiteProcedures(errorStream, writeOutputToSQLite, dbName, errorFileName), + m_writeTabularDataToSQLite(writeTabularDataToSQLite), m_sqlDBTimeIndex(0), - m_db(nullptr), - m_dbName(DataStringGlobals::outputSqlFileName), m_reportDataInsertStmt(nullptr), m_reportExtendedDataInsertStmt(nullptr), m_reportDictionaryInsertStmt(nullptr), m_timeIndexInsertStmt(nullptr), m_zoneInfoInsertStmt(nullptr), + m_zoneListInsertStmt(nullptr), + m_zoneGroupInsertStmt(nullptr), + m_zoneInfoZoneListInsertStmt(nullptr), m_nominalLightingInsertStmt(nullptr), m_nominalElectricEquipmentInsertStmt(nullptr), m_nominalGasEquipmentInsertStmt(nullptr), @@ -59,8 +162,6 @@ SQLite::SQLite() m_constructionInsertStmt(nullptr), m_constructionLayerInsertStmt(nullptr), m_materialInsertStmt(nullptr), - m_zoneListInsertStmt(nullptr), - m_zoneGroupInsertStmt(nullptr), m_infiltrationInsertStmt(nullptr), m_ventilationInsertStmt(nullptr), m_nominalPeopleInsertStmt(nullptr), @@ -84,127 +185,50 @@ SQLite::SQLite() m_simulationUpdateStmt(nullptr), m_simulationDataUpdateStmt(nullptr) { - int numberOfSQLiteObjects = InputProcessor::GetNumObjectsFound("Output:SQLite"); - - if((numberOfSQLiteObjects == 1) && (! DataSystemVariables::DDOnly)) { - FArray1D_string alphas(5); - int numAlphas; - FArray1D< Real64 > numbers(2); - int numNumbers; - int status; - - InputProcessor::GetObjectItem("Output:SQLite",1,alphas,numAlphas,numbers,numNumbers,status); - if( numAlphas > 0 ) { - std::string option = alphas(1); - if( InputProcessor::SameString(option,"SimpleAndTabular") ) { - m_writeTabularDataToSQLite = true; - m_writeOutputToSQLite = true; - } else if( InputProcessor::SameString(option,"Simple") ) { - m_writeOutputToSQLite = true; - } - } - } - if( m_writeOutputToSQLite ) { - int rc = -1; - bool ok = true; - m_errorStream.open(DataStringGlobals::outputSqliteErrFileName, std::ofstream::out | std::ofstream::trunc); - - // Test if we can write to the sqlite error file - // Does there need to be a seperate sqlite.err file at all? Consider using eplusout.err - if( m_errorStream.is_open() ) { - m_errorStream << "SQLite3 message, " + DataStringGlobals::outputSqliteErrFileName + " open for processing!" << std::endl; - } else { - ok = false; - } - - // Test if we can create a new file named m_dbName - if( ok ) { - std::ofstream test(m_dbName, std::ofstream::out | std::ofstream::trunc); - if( test.is_open() ) { - test.close(); - } else { - ok = false; - } - } - - // Test if we can write to the database - // If we can't then there are probably locks on the database - if( ok ) { - sqlite3_open_v2(m_dbName.c_str(), &m_db, SQLITE_OPEN_READWRITE, nullptr); - char * zErrMsg = nullptr; - rc = sqlite3_exec(m_db, "CREATE TABLE Test(x INTEGER PRIMARY KEY)", nullptr, 0, &zErrMsg); - sqlite3_close(m_db); - if( rc ) { - m_errorStream << "SQLite3 message, can't get exclusive lock on existing database: " << sqlite3_errmsg(m_db) << std::endl; - ok = false; - } else { - // Remove test db - rc = remove( m_dbName.c_str() ); - if( rc ) { - m_errorStream << "SQLite3 message, can't remove old database: " << sqlite3_errmsg(m_db) << std::endl; - ok = false; - } - } - sqlite3_free(zErrMsg); - } - - if( ok ) { - // Now open the output db for the duration of the simulation - rc = sqlite3_open_v2(m_dbName.c_str(), &m_db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, nullptr); - if( rc ) { - m_errorStream << "SQLite3 message, can't open new database: " << sqlite3_errmsg(m_db) << std::endl; - sqlite3_close(m_db); - ok = false; - } - } - - if( ok ) { - sqliteExecuteCommand("PRAGMA locking_mode = EXCLUSIVE;"); - sqliteExecuteCommand("PRAGMA journal_mode = OFF;"); - sqliteExecuteCommand("PRAGMA synchronous = OFF;"); - // Turn this to ON for Foreign Key constraints. - // This must be turned ON for every connection - // Currently, inserting into daylighting tables does not work with this ON. The ZoneIndex referenced by DaylightMaps does not exist in - // the database at the time data is inserted. - sqliteExecuteCommand("PRAGMA foreign_keys = OFF;"); - - initializeSimulationsTable(); - initializeEnvironmentPeriodsTable(); - initializeErrorsTable(); - initializeTimeIndicesTable(); - initializeZoneInfoTable(); - initializeSchedulesTable(); - initializeZoneListTable(); - initializeZoneGroupTable(); - initializeMaterialsTable(); - initializeConstructionsTables(); - initializeSurfacesTable(); - initializeReportDataDictionaryTable(); - initializeReportDataTables(); - initializeNominalPeopleTable(); - initializeNominalLightingTable(); - initializeNominalElectricEquipmentTable(); - initializeNominalGasEquipmentTable(); - initializeNominalSteamEquipmentTable(); - initializeNominalHotWaterEquipmentTable(); - initializeNominalOtherEquipmentTable(); - initializeNominalBaseboardHeatTable(); - initializeNominalInfiltrationTable(); - initializeNominalVentilationTable(); - initializeZoneSizingTable(); - initializeSystemSizingTable(); - initializeComponentSizingTable(); - initializeRoomAirModelTable(); - initializeDaylightMapTables(); - initializeViews(); - - if(m_writeTabularDataToSQLite) { - initializeTabularDataTable(); - initializeTabularDataView(); - } - } else { - throw std::runtime_error("The SQLite database failed to open."); + sqliteExecuteCommand("PRAGMA locking_mode = EXCLUSIVE;"); + sqliteExecuteCommand("PRAGMA journal_mode = OFF;"); + sqliteExecuteCommand("PRAGMA synchronous = OFF;"); + // Turn this to ON for Foreign Key constraints. + // This must be turned ON for every connection + // Currently, inserting into daylighting tables does not work with this ON. The ZoneIndex referenced by DaylightMaps does not exist in + // the database at the time data is inserted. + sqliteExecuteCommand("PRAGMA foreign_keys = OFF;"); + + initializeSimulationsTable(); + initializeEnvironmentPeriodsTable(); + initializeErrorsTable(); + initializeTimeIndicesTable(); + initializeZoneInfoTable(); + initializeZoneListTable(); + initializeZoneGroupTable(); + initializeZoneInfoZoneListTable(); + initializeSchedulesTable(); + initializeMaterialsTable(); + initializeConstructionsTables(); + initializeSurfacesTable(); + initializeReportDataDictionaryTable(); + initializeReportDataTables(); + initializeNominalPeopleTable(); + initializeNominalLightingTable(); + initializeNominalElectricEquipmentTable(); + initializeNominalGasEquipmentTable(); + initializeNominalSteamEquipmentTable(); + initializeNominalHotWaterEquipmentTable(); + initializeNominalOtherEquipmentTable(); + initializeNominalBaseboardHeatTable(); + initializeNominalInfiltrationTable(); + initializeNominalVentilationTable(); + initializeZoneSizingTable(); + initializeSystemSizingTable(); + initializeComponentSizingTable(); + initializeRoomAirModelTable(); + initializeDaylightMapTables(); + initializeViews(); + + if(m_writeTabularDataToSQLite) { + initializeTabularDataTable(); + initializeTabularDataView(); } } } @@ -216,6 +240,9 @@ SQLite::~SQLite() sqlite3_finalize(m_reportDictionaryInsertStmt); sqlite3_finalize(m_timeIndexInsertStmt); sqlite3_finalize(m_zoneInfoInsertStmt); + sqlite3_finalize(m_zoneListInsertStmt); + sqlite3_finalize(m_zoneGroupInsertStmt); + sqlite3_finalize(m_zoneInfoZoneListInsertStmt); sqlite3_finalize(m_nominalLightingInsertStmt); sqlite3_finalize(m_nominalElectricEquipmentInsertStmt); sqlite3_finalize(m_nominalGasEquipmentInsertStmt); @@ -227,8 +254,6 @@ SQLite::~SQLite() sqlite3_finalize(m_constructionInsertStmt); sqlite3_finalize(m_constructionLayerInsertStmt); sqlite3_finalize(m_materialInsertStmt); - sqlite3_finalize(m_zoneListInsertStmt); - sqlite3_finalize(m_zoneGroupInsertStmt); sqlite3_finalize(m_infiltrationInsertStmt); sqlite3_finalize(m_ventilationInsertStmt); sqlite3_finalize(m_nominalPeopleInsertStmt); @@ -251,8 +276,6 @@ SQLite::~SQLite() sqlite3_finalize(m_errorUpdateStmt); sqlite3_finalize(m_simulationUpdateStmt); sqlite3_finalize(m_simulationDataUpdateStmt); - - sqlite3_close(m_db); } bool SQLite::writeOutputToSQLite() const @@ -267,137 +290,22 @@ bool SQLite::writeTabularDataToSQLite() const void SQLite::sqliteBegin() { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteExecuteCommand("BEGIN;"); } } void SQLite::sqliteCommit() { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteExecuteCommand("COMMIT;"); } } -int SQLite::sqliteExecuteCommand(const std::string & commandBuffer) -{ - char *zErrMsg = 0; - - int rc = sqlite3_exec(m_db, commandBuffer.c_str(), NULL, 0, &zErrMsg); - if( rc != SQLITE_OK ) { - m_errorStream << zErrMsg; - } - sqlite3_free(zErrMsg); - - return rc; -} - -int SQLite::sqlitePrepareStatement(sqlite3_stmt* & stmt, const std::string & stmtBuffer) -{ - int rc = sqlite3_prepare_v2(m_db, stmtBuffer.c_str(), -1, &stmt, nullptr); - if( rc != SQLITE_OK ) { - m_errorStream << "SQLite3 message, sqlite3_prepare_v2 message: " << stmtBuffer << std::endl; - } - - return rc; -} - -int SQLite::sqliteBindText(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const std::string & textBuffer) -{ - int rc = sqlite3_bind_text(stmt, stmtInsertLocationIndex, textBuffer.c_str(), -1, SQLITE_TRANSIENT); - if( rc != SQLITE_OK ) { - m_errorStream << "SQLite3 message, sqlite3_bind_text failed: " << textBuffer << std::endl; - } - - return rc; -} - -int SQLite::sqliteBindInteger(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert) -{ - int rc = sqlite3_bind_int(stmt, stmtInsertLocationIndex, intToInsert); - if( rc != SQLITE_OK ) { - m_errorStream << "SQLite3 message, sqlite3_bind_int failed: " << intToInsert << std::endl; - } - - return rc; -} - -int SQLite::sqliteBindDouble(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const double doubleToInsert) -{ - int rc = sqlite3_bind_double(stmt, stmtInsertLocationIndex, doubleToInsert); - if( rc != SQLITE_OK ) { - m_errorStream << "SQLite3 message, sqlite3_bind_double failed: " << doubleToInsert << std::endl; - } - - return rc; -} - -int SQLite::sqliteBindNULL(sqlite3_stmt * stmt, const int stmtInsertLocationIndex) -{ - int rc = sqlite3_bind_null(stmt, stmtInsertLocationIndex); - if( rc != SQLITE_OK ) { - m_errorStream << "SQLite3 message, sqlite3_bind_null failed" << std::endl; - } - - return rc; -} - -int SQLite::sqliteBindForeignKey(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert) -{ - int rc = -1; - if ( intToInsert > 0 ) { - rc = sqlite3_bind_int(stmt, stmtInsertLocationIndex, intToInsert); - } else { - rc = sqlite3_bind_null(stmt, stmtInsertLocationIndex); - } - if( rc != SQLITE_OK ) { - m_errorStream << "SQLite3 message, sqliteBindForeignKey failed: " << intToInsert << std::endl; - } - - return rc; -} - -int SQLite::sqliteBindLogical(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const bool valueToInsert) -{ - return sqliteBindInteger(stmt,stmtInsertLocationIndex, valueToInsert ? 1 : 0); -} - -int SQLite::sqliteStepCommand(sqlite3_stmt * stmt) -{ - int rc = sqlite3_step(stmt); - switch(rc) { - case SQLITE_DONE: - case SQLITE_OK: - case SQLITE_ROW: - break; - - default: - m_errorStream << "SQLite3 message, sqlite3_step message: " << sqlite3_errmsg(m_db) << std::endl; - break; - } - - return rc; -} - -int SQLite::sqliteResetCommand(sqlite3_stmt * stmt) -{ - return sqlite3_reset(stmt); -} - -int SQLite::sqliteClearBindings(sqlite3_stmt * stmt) -{ - return sqlite3_clear_bindings(stmt); -} - -int SQLite::sqliteFinalizeCommand(sqlite3_stmt * stmt) -{ - return sqlite3_finalize(stmt); -} - void SQLite::sqliteWriteMessage(const std::string & message) { - if( m_writeOutputToSQLite ) { - m_errorStream << "SQLite3 message, " << message << std::endl; + if ( m_writeOutputToSQLite ) { + *m_errorStream << "SQLite3 message, " << message << std::endl; } } @@ -405,31 +313,31 @@ void SQLite::initializeReportDataDictionaryTable() { const std::string newTableSQL = "CREATE TABLE ReportDataDictionary(" - "ReportDataDictionaryIndex INTEGER PRIMARY KEY, " - "IsMeter INTEGER, " - "Type TEXT, " - "IndexGroup TEXT, " - "TimestepType TEXT, " - "KeyValue TEXT, " - "Name TEXT, " - "ReportingFrequency TEXT, " - "ScheduleName TEXT, " - "Units TEXT);"; + "ReportDataDictionaryIndex INTEGER PRIMARY KEY, " + "IsMeter INTEGER, " + "Type TEXT, " + "IndexGroup TEXT, " + "TimestepType TEXT, " + "KeyValue TEXT, " + "Name TEXT, " + "ReportingFrequency TEXT, " + "ScheduleName TEXT, " + "Units TEXT);"; sqliteExecuteCommand(newTableSQL); const std::string preparedSQL = "INSERT INTO ReportDataDictionary (" - "ReportDataDictionaryIndex, " - "IsMeter, " - "Type, " - "IndexGroup, " - "TimestepType, " - "KeyValue, " - "Name, " - "ReportingFrequency, " - "ScheduleName, " - "Units) " + "ReportDataDictionaryIndex, " + "IsMeter, " + "Type, " + "IndexGroup, " + "TimestepType, " + "KeyValue, " + "Name, " + "ReportingFrequency, " + "ScheduleName, " + "Units) " "VALUES(?,?,?,?,?,?,?,?,?,?);"; sqlitePrepareStatement(m_reportDictionaryInsertStmt,preparedSQL); @@ -439,66 +347,66 @@ void SQLite::initializeReportDataTables() { const std::string reportDataTableSQL = "CREATE TABLE ReportData (" - "ReportDataIndex INTEGER PRIMARY KEY, " - "TimeIndex INTEGER, " - "ReportDataDictionaryIndex INTEGER, " - "Value REAL, " - "FOREIGN KEY(TimeIndex) REFERENCES Time(TimeIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " - "FOREIGN KEY(ReportDataDictionaryIndex) REFERENCES ReportDataDictionary(ReportDataDictionaryIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "ReportDataIndex INTEGER PRIMARY KEY, " + "TimeIndex INTEGER, " + "ReportDataDictionaryIndex INTEGER, " + "Value REAL, " + "FOREIGN KEY(TimeIndex) REFERENCES Time(TimeIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " + "FOREIGN KEY(ReportDataDictionaryIndex) REFERENCES ReportDataDictionary(ReportDataDictionaryIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(reportDataTableSQL); const std::string reportDataInsertSQL = "INSERT INTO ReportData (" - "ReportDataIndex, " - "TimeIndex, " - "ReportDataDictionaryIndex, " - "Value) " + "ReportDataIndex, " + "TimeIndex, " + "ReportDataDictionaryIndex, " + "Value) " "VALUES(?,?,?,?);"; sqlitePrepareStatement(m_reportDataInsertStmt,reportDataInsertSQL); const std::string reportExtendedDataTableSQL = "CREATE TABLE ReportExtendedData (" - "ReportExtendedDataIndex INTEGER PRIMARY KEY, " - "ReportDataIndex INTEGER, " - "MaxValue REAL, " - "MaxMonth INTEGER, " - "MaxDay INTEGER, " - "MaxHour INTEGER, " - "MaxStartMinute INTEGER, " - "MaxMinute INTEGER, " - "MinValue REAL, " - "MinMonth INTEGER, " - "MinDay INTEGER, " - "MinHour INTEGER, " - "MinStartMinute INTEGER, " - "MinMinute INTEGER, " - "FOREIGN KEY(ReportDataIndex) REFERENCES ReportData(ReportDataIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "ReportExtendedDataIndex INTEGER PRIMARY KEY, " + "ReportDataIndex INTEGER, " + "MaxValue REAL, " + "MaxMonth INTEGER, " + "MaxDay INTEGER, " + "MaxHour INTEGER, " + "MaxStartMinute INTEGER, " + "MaxMinute INTEGER, " + "MinValue REAL, " + "MinMonth INTEGER, " + "MinDay INTEGER, " + "MinHour INTEGER, " + "MinStartMinute INTEGER, " + "MinMinute INTEGER, " + "FOREIGN KEY(ReportDataIndex) REFERENCES ReportData(ReportDataIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(reportExtendedDataTableSQL); const std::string reportExtendedDataInsertSQL = "INSERT INTO ReportExtendedData (" - "ReportExtendedDataIndex, " - "ReportDataIndex, " - "MaxValue, " - "MaxMonth, " - "MaxDay, " - "MaxHour, " - "MaxStartMinute, " - "MaxMinute, " - "MinValue, " - "MinMonth, " - "MinDay, " - "MinHour, " - "MinStartMinute, " - "MinMinute) " + "ReportExtendedDataIndex, " + "ReportDataIndex, " + "MaxValue, " + "MaxMonth, " + "MaxDay, " + "MaxHour, " + "MaxStartMinute, " + "MaxMinute, " + "MinValue, " + "MinMonth, " + "MinDay, " + "MinHour, " + "MinStartMinute, " + "MinMinute) " "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; sqlitePrepareStatement(m_reportExtendedDataInsertStmt,reportExtendedDataInsertSQL); @@ -508,35 +416,35 @@ void SQLite::initializeTimeIndicesTable() { const std::string timeTableSQL = "CREATE TABLE Time (" - "TimeIndex INTEGER PRIMARY KEY, " - "Month INTEGER, " - "Day INTEGER, " - "Hour INTEGER, " - "Minute INTEGER, " - "Dst INTEGER, " - "Interval INTEGER, " - "IntervalType INTEGER, " - "SimulationDays INTEGER, " - "DayType TEXT, " - "EnvironmentPeriodIndex INTEGER, " - "WarmupFlag INTEGER);"; + "TimeIndex INTEGER PRIMARY KEY, " + "Month INTEGER, " + "Day INTEGER, " + "Hour INTEGER, " + "Minute INTEGER, " + "Dst INTEGER, " + "Interval INTEGER, " + "IntervalType INTEGER, " + "SimulationDays INTEGER, " + "DayType TEXT, " + "EnvironmentPeriodIndex INTEGER, " + "WarmupFlag INTEGER);"; sqliteExecuteCommand(timeTableSQL); const std::string timeIndexInsertSQL = "INSERT INTO Time (" - "TimeIndex, " - "Month, " - "Day, " - "Hour, " - "Minute, " - "DST, " - "Interval, " - "IntervalType, " - "SimulationDays, " - "DayType, " - "EnvironmentPeriodIndex, " - "WarmupFlag) " + "TimeIndex, " + "Month, " + "Day, " + "Hour, " + "Minute, " + "DST, " + "Interval, " + "IntervalType, " + "SimulationDays, " + "DayType, " + "EnvironmentPeriodIndex, " + "WarmupFlag) " "VALUES(?,?,?,?,?,?,?,?,?,?,?,?);"; sqlitePrepareStatement(m_timeIndexInsertStmt,timeIndexInsertSQL); @@ -546,99 +454,123 @@ void SQLite::initializeZoneInfoTable() { const std::string zonesTableSQL = "CREATE TABLE Zones (" - "ZoneIndex INTEGER PRIMARY KEY, " - "ZoneName TEXT, " - "RelNorth REAL, " - "OriginX REAL, " - "OriginY REAL, " - "OriginZ REAL, " - "CentroidX REAL, " - "CentroidY REAL, " - "CentroidZ REAL, " - "OfType INTEGER, " - "Multiplier REAL, " - "ListMultiplier REAL, " - "MinimumX REAL, " - "MaximumX REAL, " - "MinimumY REAL, " - "MaximumY REAL, " - "MinimumZ REAL, " - "MaximumZ REAL, " - "CeilingHeight REAL, " - "Volume REAL, " - "InsideConvectionAlgo INTEGER, " - "OutsideConvectionAlgo INTEGER, " - "FloorArea REAL, " - "ExtGrossWallArea REAL, " - "ExtNetWallArea REAL, " - "ExtWindowArea REAL, " - "IsPartOfTotalArea INTEGER);"; + "ZoneIndex INTEGER PRIMARY KEY, " + "ZoneName TEXT, " + "RelNorth REAL, " + "OriginX REAL, " + "OriginY REAL, " + "OriginZ REAL, " + "CentroidX REAL, " + "CentroidY REAL, " + "CentroidZ REAL, " + "OfType INTEGER, " + "Multiplier REAL, " + "ListMultiplier REAL, " + "MinimumX REAL, " + "MaximumX REAL, " + "MinimumY REAL, " + "MaximumY REAL, " + "MinimumZ REAL, " + "MaximumZ REAL, " + "CeilingHeight REAL, " + "Volume REAL, " + "InsideConvectionAlgo INTEGER, " + "OutsideConvectionAlgo INTEGER, " + "FloorArea REAL, " + "ExtGrossWallArea REAL, " + "ExtNetWallArea REAL, " + "ExtWindowArea REAL, " + "IsPartOfTotalArea INTEGER);"; sqliteExecuteCommand(zonesTableSQL); const std::string zoneInfoInsertSQL = "INSERT INTO Zones (" - "ZoneIndex, " - "ZoneName, " - "RelNorth, " - "OriginX, " - "OriginY, " - - "OriginZ, " - "CentroidX, " - "CentroidY, " - "CentroidZ, " - "OfType, " - - "Multiplier, " - "ListMultiplier, " - "MinimumX, " - "MaximumX, " - "MinimumY, " - - "MaximumY, " - "MinimumZ, " - "MaximumZ, " - "CeilingHeight, " - "Volume, " - - "InsideConvectionAlgo, " - "OutsideConvectionAlgo, " - "FloorArea, " - "ExtGrossWallArea, " - "ExtNetWallArea, " - - "ExtWindowArea, " - "IsPartOfTotalArea) " + "ZoneIndex, " + "ZoneName, " + "RelNorth, " + "OriginX, " + "OriginY, " + + "OriginZ, " + "CentroidX, " + "CentroidY, " + "CentroidZ, " + "OfType, " + + "Multiplier, " + "ListMultiplier, " + "MinimumX, " + "MaximumX, " + "MinimumY, " + + "MaximumY, " + "MinimumZ, " + "MaximumZ, " + "CeilingHeight, " + "Volume, " + + "InsideConvectionAlgo, " + "OutsideConvectionAlgo, " + "FloorArea, " + "ExtGrossWallArea, " + "ExtNetWallArea, " + + "ExtWindowArea, " + "IsPartOfTotalArea) " "VALUES (?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?);"; sqlitePrepareStatement(m_zoneInfoInsertStmt,zoneInfoInsertSQL); } +void SQLite::initializeZoneInfoZoneListTable() +{ + const std::string zoneInfoZoneListTableSQL = + "CREATE TABLE ZoneInfoZoneLists (" + "ZoneListIndex INTEGER NOT NULL, " + "ZoneIndex INTEGER NOT NULL, " + "PRIMARY KEY(ZoneListIndex, ZoneIndex), " + "FOREIGN KEY(ZoneListIndex) REFERENCES ZoneLists(ZoneListIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " + ");"; + + sqliteExecuteCommand(zoneInfoZoneListTableSQL); + + const std::string zoneInfoZoneListInsertSQL = + "INSERT INTO ZoneInfoZoneLists (" + "ZoneListIndex, " + "ZoneIndex) " + "VALUES (?,?);"; + + sqlitePrepareStatement(m_zoneInfoZoneListInsertStmt,zoneInfoZoneListInsertSQL); +} + void SQLite::initializeNominalPeopleTable() { const std::string nominalPeopleTableSQL = "CREATE TABLE NominalPeople ( " - "NominalPeopleIndex INTEGER PRIMARY KEY, ObjectName TEXT, ZoneIndex INTEGER," - "NumberOfPeople INTEGER, NumberOfPeopleScheduleIndex INTEGER, ActivityScheduleIndex INTEGER, FractionRadiant REAL, " - "FractionConvected REAL, WorkEfficiencyScheduleIndex INTEGER, ClothingEfficiencyScheduleIndex INTEGER, " - "AirVelocityScheduleIndex INTEGER, Fanger INTEGER, Pierce INTEGER, KSU INTEGER, " - "MRTCalcType INTEGER, SurfaceIndex INTEGER, " - "AngleFactorListName TEXT, AngleFactorList INTEGER, UserSpecifeidSensibleFraction REAL, Show55Warning INTEGER, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(NumberOfPeopleScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(ActivityScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(WorkEfficiencyScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(ClothingEfficiencyScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(AirVelocityScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(SurfaceIndex) REFERENCES Surfaces(SurfaceIndex) " - "ON UPDATE CASCADE " + "NominalPeopleIndex INTEGER PRIMARY KEY, ObjectName TEXT, ZoneIndex INTEGER," + "NumberOfPeople INTEGER, NumberOfPeopleScheduleIndex INTEGER, ActivityScheduleIndex INTEGER, FractionRadiant REAL, " + "FractionConvected REAL, WorkEfficiencyScheduleIndex INTEGER, ClothingEfficiencyScheduleIndex INTEGER, " + "AirVelocityScheduleIndex INTEGER, Fanger INTEGER, Pierce INTEGER, KSU INTEGER, " + "MRTCalcType INTEGER, SurfaceIndex INTEGER, " + "AngleFactorListName TEXT, AngleFactorList INTEGER, UserSpecifeidSensibleFraction REAL, Show55Warning INTEGER, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(NumberOfPeopleScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(ActivityScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(WorkEfficiencyScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(ClothingEfficiencyScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(AirVelocityScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(SurfaceIndex) REFERENCES Surfaces(SurfaceIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalPeopleTableSQL); @@ -653,13 +585,13 @@ void SQLite::initializeNominalLightingTable() { const std::string nominalLightingTableSQL = "CREATE TABLE NominalLighting ( " - "NominalLightingIndex INTEGER PRIMARY KEY, ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, FractionReturnAir REAL, FractionRadiant REAL, " - "FractionShortWave REAL, FractionReplaceable REAL, FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalLightingIndex INTEGER PRIMARY KEY, ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, FractionReturnAir REAL, FractionRadiant REAL, " + "FractionShortWave REAL, FractionReplaceable REAL, FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalLightingTableSQL); @@ -674,15 +606,15 @@ void SQLite::initializeNominalElectricEquipmentTable() { const std::string nominalElectricEquipmentTableSQL = "CREATE TABLE NominalElectricEquipment (" - "NominalElectricEquipmentIndex INTEGER PRIMARY KEY, " - "ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " - "FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " - "FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalElectricEquipmentIndex INTEGER PRIMARY KEY, " + "ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " + "FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " + "FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalElectricEquipmentTableSQL); @@ -697,14 +629,14 @@ void SQLite::initializeNominalGasEquipmentTable() { const std::string nominalGasEquipmentTableSQL = "CREATE TABLE NominalGasEquipment( " - "NominalGasEquipmentIndex INTEGER PRIMARY KEY, ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, " - "DesignLevel REAL, FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " - "FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalGasEquipmentIndex INTEGER PRIMARY KEY, ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, " + "DesignLevel REAL, FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " + "FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalGasEquipmentTableSQL); @@ -719,14 +651,14 @@ void SQLite::initializeNominalSteamEquipmentTable() { const std::string nominalSteamEquipmentTableSQL = "CREATE TABLE NominalSteamEquipment( " - "NominalSteamEquipmentIndex INTEGER PRIMARY KEY, ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " - "FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " - "FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalSteamEquipmentIndex INTEGER PRIMARY KEY, ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " + "FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " + "FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalSteamEquipmentTableSQL); @@ -741,14 +673,14 @@ void SQLite::initializeNominalHotWaterEquipmentTable() { const std::string nominalHotWaterEquipmentTableSQL = "CREATE TABLE NominalHotWaterEquipment(" - "NominalHotWaterEquipmentIndex INTEGER PRIMARY KEY, " - "ObjectName TEXT, " - "ZoneIndex INTEGER, SchedNo INTEGER, DesignLevel REAL, FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " - "FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(SchedNo) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalHotWaterEquipmentIndex INTEGER PRIMARY KEY, " + "ObjectName TEXT, " + "ZoneIndex INTEGER, SchedNo INTEGER, DesignLevel REAL, FractionLatent REAL, FractionRadiant REAL, FractionLost REAL, " + "FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(SchedNo) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalHotWaterEquipmentTableSQL); @@ -763,14 +695,14 @@ void SQLite::initializeNominalOtherEquipmentTable() { const std::string nominalOtherEquipmentTableSQL = "CREATE TABLE NominalOtherEquipment( " - "NominalOtherEquipmentIndex INTEGER PRIMARY KEY, ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, FractionLatent REAL, " - "FractionRadiant REAL, FractionLost REAL, " - "FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalOtherEquipmentIndex INTEGER PRIMARY KEY, ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, FractionLatent REAL, " + "FractionRadiant REAL, FractionLost REAL, " + "FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalOtherEquipmentTableSQL); @@ -778,20 +710,20 @@ void SQLite::initializeNominalOtherEquipmentTable() const std::string nominalOtherEquipmentInsertSQL = "INSERT INTO NominalOtherEquipment VALUES(?,?,?,?,?,?,?,?,?,?);"; - sqlitePrepareStatement(m_nominalHotWaterEquipmentInsertStmt,nominalOtherEquipmentInsertSQL); + sqlitePrepareStatement(m_nominalOtherEquipmentInsertStmt,nominalOtherEquipmentInsertSQL); } void SQLite::initializeNominalBaseboardHeatTable() { const std::string nominalBaseboardHeatersTableSQL = "CREATE TABLE NominalBaseboardHeaters ( " - "NominalBaseboardHeaterIndex INTEGER PRIMARY KEY, ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, CapatLowTemperature REAL, LowTemperature REAL, CapatHighTemperature REAL, " - "HighTemperature REAL, FractionRadiant REAL, FractionConvected REAL, EndUseSubcategory TEXT, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalBaseboardHeaterIndex INTEGER PRIMARY KEY, ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, CapatLowTemperature REAL, LowTemperature REAL, CapatHighTemperature REAL, " + "HighTemperature REAL, FractionRadiant REAL, FractionConvected REAL, EndUseSubcategory TEXT, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalBaseboardHeatersTableSQL); @@ -806,18 +738,18 @@ void SQLite::initializeSurfacesTable() { const std::string surfacesTableSQL = "CREATE TABLE Surfaces ( " - "SurfaceIndex INTEGER PRIMARY KEY, SurfaceName TEXT, ConstructionIndex INTEGER, " - "ClassName TEXT, Area REAL, GrossArea REAL, Perimeter REAL, " - "Azimuth REAL, Height REAL, Reveal REAL, " - "Shape INTEGER, Sides INTEGER, Tilt REAL, Width REAL, HeatTransferSurf INTEGER, " - "BaseSurfaceIndex INTEGER, ZoneIndex INTEGER, ExtBoundCond INTEGER, " - "ExtSolar INTEGER, ExtWind INTEGER, " - "FOREIGN KEY(ConstructionIndex) REFERENCES Constructions(ConstructionIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(BaseSurfaceIndex) REFERENCES Surfaces(SurfaceIndex) " - "ON UPDATE CASCADE, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "SurfaceIndex INTEGER PRIMARY KEY, SurfaceName TEXT, ConstructionIndex INTEGER, " + "ClassName TEXT, Area REAL, GrossArea REAL, Perimeter REAL, " + "Azimuth REAL, Height REAL, Reveal REAL, " + "Shape INTEGER, Sides INTEGER, Tilt REAL, Width REAL, HeatTransferSurf INTEGER, " + "BaseSurfaceIndex INTEGER, ZoneIndex INTEGER, ExtBoundCond INTEGER, " + "ExtSolar INTEGER, ExtWind INTEGER, " + "FOREIGN KEY(ConstructionIndex) REFERENCES Constructions(ConstructionIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(BaseSurfaceIndex) REFERENCES Surfaces(SurfaceIndex) " + "ON UPDATE CASCADE, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(surfacesTableSQL); @@ -832,10 +764,10 @@ void SQLite::initializeConstructionsTables() { const std::string constructionsTableSQL = "CREATE TABLE Constructions ( " - "ConstructionIndex INTEGER PRIMARY KEY, Name TEXT, TotalLayers INTEGER, " - "TotalSolidLayers INTEGER, TotalGlassLayers INTEGER, InsideAbsorpVis REAL, OutsideAbsorpVis REAL, " - "InsideAbsorpSolar REAL, OutsideAbsorpSolar REAL, InsideAbsorpThermal REAL, OutsideAbsorpThermal REAL, " - "OutsideRoughness INTEGER, TypeIsWindow INTEGER, Uvalue REAL" + "ConstructionIndex INTEGER PRIMARY KEY, Name TEXT, TotalLayers INTEGER, " + "TotalSolidLayers INTEGER, TotalGlassLayers INTEGER, InsideAbsorpVis REAL, OutsideAbsorpVis REAL, " + "InsideAbsorpSolar REAL, OutsideAbsorpSolar REAL, InsideAbsorpThermal REAL, OutsideAbsorpThermal REAL, " + "OutsideRoughness INTEGER, TypeIsWindow INTEGER, Uvalue REAL" ");"; sqliteExecuteCommand(constructionsTableSQL); @@ -847,18 +779,18 @@ void SQLite::initializeConstructionsTables() const std::string constructionLayersTableSQL = "CREATE TABLE ConstructionLayers ( " - "ConstructionLayersIndex INTEGER PRIMARY KEY, " - "ConstructionIndex INTEGER, LayerIndex INTEGER, MaterialIndex INTEGER, " - "FOREIGN KEY(ConstructionIndex) REFERENCES Constructions(ConstructionIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(MaterialIndex) REFERENCES Materials(MaterialIndex) " - "ON UPDATE CASCADE " + "ConstructionLayersIndex INTEGER PRIMARY KEY, " + "ConstructionIndex INTEGER, LayerIndex INTEGER, MaterialIndex INTEGER, " + "FOREIGN KEY(ConstructionIndex) REFERENCES Constructions(ConstructionIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(MaterialIndex) REFERENCES Materials(MaterialIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(constructionLayersTableSQL); const std::string constructionLayerInsertSQL = - "INSERT INTO ConstructionLayers VALUES(?,?,?,?);"; + "INSERT INTO ConstructionLayers(ConstructionIndex, LayerIndex, MaterialIndex) VALUES(?,?,?);"; sqlitePrepareStatement(m_constructionLayerInsertStmt,constructionLayerInsertSQL); } @@ -867,10 +799,10 @@ void SQLite::initializeMaterialsTable() { const std::string materialsTableSQL = "CREATE TABLE Materials ( " - "MaterialIndex INTEGER PRIMARY KEY, " - "Name TEXT, MaterialType INTEGER, Roughness INTEGER, " - "Conductivity REAL, Density REAL, IsoMoistCap REAL, Porosity REAL, Resistance REAL, " - "ROnly INTEGER, SpecHeat REAL, ThermGradCoef REAL, Thickness REAL, VaporDiffus REAL " + "MaterialIndex INTEGER PRIMARY KEY, " + "Name TEXT, MaterialType INTEGER, Roughness INTEGER, " + "Conductivity REAL, Density REAL, IsoMoistCap REAL, Porosity REAL, Resistance REAL, " + "ROnly INTEGER, SpecHeat REAL, ThermGradCoef REAL, Thickness REAL, VaporDiffus REAL " ");"; sqliteExecuteCommand(materialsTableSQL); @@ -885,15 +817,12 @@ void SQLite::initializeZoneListTable() { const std::string zoneListsTableSQL = "CREATE TABLE ZoneLists ( " - "ZoneListIndex INTEGER PRIMARY KEY, Name TEXT, ZoneIndex INTEGER, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " - ");"; + "ZoneListIndex INTEGER PRIMARY KEY, Name TEXT);"; sqliteExecuteCommand(zoneListsTableSQL); const std::string zoneListInsertSQL = - "INSERT INTO ZoneLists VALUES(?,?,?);"; + "INSERT INTO ZoneLists VALUES(?,?);"; sqlitePrepareStatement(m_zoneListInsertStmt,zoneListInsertSQL); } @@ -901,12 +830,19 @@ void SQLite::initializeZoneListTable() void SQLite::initializeZoneGroupTable() { const std::string zoneGroupsTableSQL = - "CREATE TABLE ZoneGroups (ZoneGroupIndex INTEGER PRIMARY KEY, ZoneListName TEXT, ZoneListMultiplier INTEGER);"; + "CREATE TABLE ZoneGroups ( " + "ZoneGroupIndex INTEGER PRIMARY KEY, " + "ZoneGroupName TEXT, " + "ZoneListIndex INTEGER, " + "ZoneListMultiplier INTEGER, " + "FOREIGN KEY(ZoneListIndex) REFERENCES ZoneLists(ZoneListIndex) " + "ON UPDATE CASCADE " + ");"; sqliteExecuteCommand(zoneGroupsTableSQL); const std::string zoneGroupInsertSQL = - "INSERT INTO ZoneGroups VALUES(?,?,?);"; + "INSERT INTO ZoneGroups VALUES(?,?,?,?);"; sqlitePrepareStatement(m_zoneGroupInsertStmt,zoneGroupInsertSQL); } @@ -915,13 +851,13 @@ void SQLite::initializeNominalInfiltrationTable() { const std::string nominalInfiltrationTableSQL = "CREATE TABLE NominalInfiltration ( " - "NominalInfiltrationIndex INTEGER PRIMARY KEY, " - "ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalInfiltrationIndex INTEGER PRIMARY KEY, " + "ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalInfiltrationTableSQL); @@ -937,13 +873,13 @@ void SQLite::initializeNominalVentilationTable() { const std::string nominalVentilationTableSQL = "CREATE TABLE NominalVentilation ( " - "NominalVentilationIndex INTEGER PRIMARY KEY, " - "ObjectName TEXT, " - "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " - "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE, " - "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " - "ON UPDATE CASCADE " + "NominalVentilationIndex INTEGER PRIMARY KEY, " + "ObjectName TEXT, " + "ZoneIndex INTEGER, ScheduleIndex INTEGER, DesignLevel REAL, " + "FOREIGN KEY(ZoneIndex) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(ScheduleIndex) REFERENCES Schedules(ScheduleIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(nominalVentilationTableSQL); @@ -958,9 +894,9 @@ void SQLite::initializeZoneSizingTable() { const std::string zoneSizesTableSQL = "CREATE TABLE ZoneSizes ( " - "ZoneSizesIndex INTEGER PRIMARY KEY, ZoneName TEXT, LoadType TEXT, " - "CalcDesLoad REAL, UserDesLoad REAL, CalcDesFlow REAL, UserDesFlow REAL, DesDayName TEXT, PeakHrMin TEXT, " - "PeakTemp REAL, PeakHumRat REAL, CalcOutsideAirFlow REAL" + "ZoneSizesIndex INTEGER PRIMARY KEY, ZoneName TEXT, LoadType TEXT, " + "CalcDesLoad REAL, UserDesLoad REAL, CalcDesFlow REAL, UserDesFlow REAL, DesDayName TEXT, PeakHrMin TEXT, " + "PeakTemp REAL, PeakHumRat REAL, CalcOutsideAirFlow REAL" ");"; sqliteExecuteCommand(zoneSizesTableSQL); @@ -1030,10 +966,10 @@ void SQLite::initializeDaylightMapTables() { const std::string daylightMapsTableSQL = "CREATE TABLE DaylightMaps ( " - "MapNumber INTEGER PRIMARY KEY, MapName TEXT, " - "Environment TEXT, Zone INTEGER, ReferencePt1 TEXT, ReferencePt2 TEXT, Z REAL, " - "FOREIGN KEY(Zone) REFERENCES Zones(ZoneIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "MapNumber INTEGER PRIMARY KEY, MapName TEXT, " + "Environment TEXT, Zone INTEGER, ReferencePt1 TEXT, ReferencePt2 TEXT, Z REAL, " + "FOREIGN KEY(Zone) REFERENCES Zones(ZoneIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(daylightMapsTableSQL); @@ -1045,10 +981,10 @@ void SQLite::initializeDaylightMapTables() const std::string daylightMapHourlyReportsTableSQL = "CREATE TABLE DaylightMapHourlyReports ( " - "HourlyReportIndex INTEGER PRIMARY KEY, " - "MapNumber INTEGER, Month INTEGER, DayOfMonth INTEGER, Hour INTEGER, " - "FOREIGN KEY(MapNumber) REFERENCES DaylightMaps(MapNumber) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "HourlyReportIndex INTEGER PRIMARY KEY, " + "MapNumber INTEGER, Month INTEGER, DayOfMonth INTEGER, Hour INTEGER, " + "FOREIGN KEY(MapNumber) REFERENCES DaylightMaps(MapNumber) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(daylightMapHourlyReportsTableSQL); @@ -1060,10 +996,10 @@ void SQLite::initializeDaylightMapTables() const std::string daylightMapHourlyDataTableSQL = "CREATE TABLE DaylightMapHourlyData ( " - "HourlyDataIndex INTEGER PRIMARY KEY, HourlyReportIndex INTEGER, " - "X REAL, Y REAL, Illuminance REAL, " - "FOREIGN KEY(HourlyReportIndex) REFERENCES DaylightMapHourlyReports(HourlyReportIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "HourlyDataIndex INTEGER PRIMARY KEY, HourlyReportIndex INTEGER, " + "X REAL, Y REAL, Illuminance REAL, " + "FOREIGN KEY(HourlyReportIndex) REFERENCES DaylightMapHourlyReports(HourlyReportIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(daylightMapHourlyDataTableSQL); @@ -1079,33 +1015,33 @@ void SQLite::initializeViews() const std::string reportVariableWithTimeViewSQL = "CREATE VIEW ReportVariableWithTime AS " "SELECT rd.ReportDataIndex, rd.TimeIndex, rd.ReportDataDictionaryIndex, red.ReportExtendedDataIndex, rd.Value, " - "t.Month, t.Day, t.Hour, t.Minute, t.Dst, t.Interval, t.IntervalType, t.SimulationDays, t.DayType, t.EnvironmentPeriodIndex, t.WarmupFlag, " - "rdd.IsMeter, rdd.Type, rdd.IndexGroup, rdd.TimestepType, rdd.KeyValue, rdd.Name, rdd.ReportingFrequency, rdd.ScheduleName, rdd.Units, " - "red.MaxValue, red.MaxMonth, red.MaxDay, red.MaxStartMinute, red.MaxMinute, red.MinValue, red.MinMonth, red.MinDay, red.MinStartMinute, red.MinMinute " + "t.Month, t.Day, t.Hour, t.Minute, t.Dst, t.Interval, t.IntervalType, t.SimulationDays, t.DayType, t.EnvironmentPeriodIndex, t.WarmupFlag, " + "rdd.IsMeter, rdd.Type, rdd.IndexGroup, rdd.TimestepType, rdd.KeyValue, rdd.Name, rdd.ReportingFrequency, rdd.ScheduleName, rdd.Units, " + "red.MaxValue, red.MaxMonth, red.MaxDay, red.MaxStartMinute, red.MaxMinute, red.MinValue, red.MinMonth, red.MinDay, red.MinStartMinute, red.MinMinute " "FROM ReportData As rd " "INNER JOIN ReportDataDictionary As rdd " - "ON rd.ReportDataDictionaryIndex = rdd.ReportDataDictionaryIndex " + "ON rd.ReportDataDictionaryIndex = rdd.ReportDataDictionaryIndex " "LEFT OUTER JOIN ReportExtendedData As red " - "ON rd.ReportDataIndex = red.ReportDataIndex " + "ON rd.ReportDataIndex = red.ReportDataIndex " "INNER JOIN Time As t " - "ON rd.TimeIndex = t.TimeIndex;"; + "ON rd.TimeIndex = t.TimeIndex;"; sqliteExecuteCommand(reportVariableWithTimeViewSQL); const std::string reportVariableDataViewSQL = "CREATE VIEW ReportVariableData AS " "SELECT rd.ReportDataIndex As rowid, rd.TimeIndex, rd.ReportDataDictionaryIndex As ReportVariableDataDictionaryIndex, " - "rd.Value As VariableValue, red.ReportExtendedDataIndex As ReportVariableExtendedDataIndex " + "rd.Value As VariableValue, red.ReportExtendedDataIndex As ReportVariableExtendedDataIndex " "FROM ReportData As rd " "LEFT OUTER JOIN ReportExtendedData As red " - "ON rd.ReportDataIndex = red.ReportDataIndex;"; + "ON rd.ReportDataIndex = red.ReportDataIndex;"; sqliteExecuteCommand(reportVariableDataViewSQL); const std::string reportVariableDataDictionaryViewSQL = "CREATE VIEW ReportVariableDataDictionary AS " "SELECT rdd.ReportDataDictionaryIndex As ReportVariableDataDictionaryIndex, rdd.Type As VariableType, rdd.IndexGroup, rdd.TimestepType, " - "rdd.KeyValue, rdd.Name As VariableName, rdd.ReportingFrequency, rdd.ScheduleName, rdd.Units As VariableUnits " + "rdd.KeyValue, rdd.Name As VariableName, rdd.ReportingFrequency, rdd.ScheduleName, rdd.Units As VariableUnits " "FROM ReportDataDictionary As rdd;"; sqliteExecuteCommand(reportVariableDataDictionaryViewSQL); @@ -1113,7 +1049,7 @@ void SQLite::initializeViews() const std::string reportVariableExtendedDataViewSQL = "CREATE VIEW ReportVariableExtendedData AS " "SELECT red.ReportExtendedDataIndex As ReportVariableExtendedDataIndex, red.MaxValue, red.MaxMonth, red.MaxDay, " - "red.MaxStartMinute, red.MaxMinute, red.MinValue, red.MinMonth, red.MinDay, red.MinStartMinute, red.MinMinute " + "red.MaxStartMinute, red.MaxMinute, red.MinValue, red.MinMonth, red.MinDay, red.MinStartMinute, red.MinMinute " "FROM ReportExtendedData As red;"; sqliteExecuteCommand(reportVariableExtendedDataViewSQL); @@ -1121,12 +1057,12 @@ void SQLite::initializeViews() const std::string reportMeterDataViewSQL = "CREATE VIEW ReportMeterData AS " "SELECT rd.ReportDataIndex As rowid, rd.TimeIndex, rd.ReportDataDictionaryIndex As ReportMeterDataDictionaryIndex, " - "rd.Value As VariableValue, red.ReportExtendedDataIndex As ReportVariableExtendedDataIndex " + "rd.Value As VariableValue, red.ReportExtendedDataIndex As ReportVariableExtendedDataIndex " "FROM ReportData As rd " "LEFT OUTER JOIN ReportExtendedData As red " - "ON rd.ReportDataIndex = red.ReportDataIndex " + "ON rd.ReportDataIndex = red.ReportDataIndex " "INNER JOIN ReportDataDictionary As rdd " - "ON rd.ReportDataDictionaryIndex = rdd.ReportDataDictionaryIndex " + "ON rd.ReportDataDictionaryIndex = rdd.ReportDataDictionaryIndex " "WHERE rdd.IsMeter = 1;"; sqliteExecuteCommand(reportMeterDataViewSQL); @@ -1134,7 +1070,7 @@ void SQLite::initializeViews() const std::string reportMeterDataDictionaryViewSQL = "CREATE VIEW ReportMeterDataDictionary AS " "SELECT rdd.ReportDataDictionaryIndex As ReportMeterDataDictionaryIndex, rdd.Type As VariableType, rdd.IndexGroup, rdd.TimestepType, " - "rdd.KeyValue, rdd.Name As VariableName, rdd.ReportingFrequency, rdd.ScheduleName, rdd.Units As VariableUnits " + "rdd.KeyValue, rdd.Name As VariableName, rdd.ReportingFrequency, rdd.ScheduleName, rdd.Units As VariableUnits " "FROM ReportDataDictionary As rdd " "WHERE rdd.IsMeter = 1;"; @@ -1143,12 +1079,12 @@ void SQLite::initializeViews() const std::string reportMeterExtendedDataViewSQL = "CREATE VIEW ReportMeterExtendedData AS " "SELECT red.ReportExtendedDataIndex As ReportMeterExtendedDataIndex, red.MaxValue, red.MaxMonth, red.MaxDay, " - "red.MaxStartMinute, red.MaxMinute, red.MinValue, red.MinMonth, red.MinDay, red.MinStartMinute, red.MinMinute " + "red.MaxStartMinute, red.MaxMinute, red.MinValue, red.MinMonth, red.MinDay, red.MinStartMinute, red.MinMinute " "FROM ReportExtendedData As red " "LEFT OUTER JOIN ReportData As rd " - "ON rd.ReportDataIndex = red.ReportDataIndex " + "ON rd.ReportDataIndex = red.ReportDataIndex " "INNER JOIN ReportDataDictionary As rdd " - "ON rd.ReportDataDictionaryIndex = rdd.ReportDataDictionaryIndex " + "ON rd.ReportDataDictionaryIndex = rdd.ReportDataDictionaryIndex " "WHERE rdd.IsMeter = 1;"; sqliteExecuteCommand(reportMeterExtendedDataViewSQL); @@ -1177,9 +1113,9 @@ void SQLite::initializeSimulationsTable() sqlitePrepareStatement(m_simulationUpdateStmt,simulationUpdateSQL); const std::string simulationDataUpdateSQL = - "UPDATE Simulations SET " - "NumTimestepsPerHour = ? " - "WHERE SimulationIndex = ?"; + "UPDATE Simulations SET " + "NumTimestepsPerHour = ? " + "WHERE SimulationIndex = ?"; sqlitePrepareStatement(m_simulationDataUpdateStmt,simulationDataUpdateSQL); } @@ -1188,10 +1124,10 @@ void SQLite::initializeErrorsTable() { const std::string errorsTableSQL = "CREATE TABLE Errors ( " - "ErrorIndex INTEGER PRIMARY KEY, SimulationIndex INTEGER, " - "ErrorType INTEGER, ErrorMessage TEXT, Count INTEGER, " - "FOREIGN KEY(SimulationIndex) REFERENCES Simulations(SimulationIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "ErrorIndex INTEGER PRIMARY KEY, SimulationIndex INTEGER, " + "ErrorType INTEGER, ErrorMessage TEXT, Count INTEGER, " + "FOREIGN KEY(SimulationIndex) REFERENCES Simulations(SimulationIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(errorsTableSQL); @@ -1212,10 +1148,10 @@ void SQLite::initializeEnvironmentPeriodsTable() { const std::string environmentPeriodsTableSQL = "CREATE TABLE EnvironmentPeriods ( " - "EnvironmentPeriodIndex INTEGER PRIMARY KEY, " - "SimulationIndex INTEGER, EnvironmentName TEXT, EnvironmentType INTEGER, " - "FOREIGN KEY(SimulationIndex) REFERENCES Simulations(SimulationIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " + "EnvironmentPeriodIndex INTEGER PRIMARY KEY, " + "SimulationIndex INTEGER, EnvironmentName TEXT, EnvironmentType INTEGER, " + "FOREIGN KEY(SimulationIndex) REFERENCES Simulations(SimulationIndex) " + "ON DELETE CASCADE ON UPDATE CASCADE " ");"; sqliteExecuteCommand(environmentPeriodsTableSQL); @@ -1229,10 +1165,10 @@ void SQLite::initializeEnvironmentPeriodsTable() void SQLite::initializeTabularDataTable() { const std::string sql = - "CREATE TABLE StringTypes ( " - "StringTypeIndex INTEGER PRIMARY KEY, " - "Value TEXT" - ");"; + "CREATE TABLE StringTypes ( " + "StringTypeIndex INTEGER PRIMARY KEY, " + "Value TEXT" + ");"; sqliteExecuteCommand(sql); @@ -1245,12 +1181,12 @@ void SQLite::initializeTabularDataTable() const std::string sql2 = "CREATE TABLE Strings ( " - "StringIndex INTEGER PRIMARY KEY, " - "StringTypeIndex INTEGER, " - "Value TEXT, " - "UNIQUE(StringTypeIndex, Value), " - "FOREIGN KEY(StringTypeIndex) REFERENCES StringTypes(StringTypeIndex) " - "ON UPDATE CASCADE " + "StringIndex INTEGER PRIMARY KEY, " + "StringTypeIndex INTEGER, " + "Value TEXT, " + "UNIQUE(StringTypeIndex, Value), " + "FOREIGN KEY(StringTypeIndex) REFERENCES StringTypes(StringTypeIndex) " + "ON UPDATE CASCADE " ");"; sqliteExecuteCommand(sql2); @@ -1264,7 +1200,7 @@ void SQLite::initializeTabularDataTable() sqlitePrepareStatement(m_stringsLookUpStmt,sql4); const std::string sql5 = - "CREATE TABLE TabularData ( " + "CREATE TABLE TabularData ( " "TabularDataIndex INTEGER PRIMARY KEY, " "ReportNameIndex INTEGER, " "ReportForStringIndex INTEGER, " @@ -1278,20 +1214,20 @@ void SQLite::initializeTabularDataTable() "Value TEXT " "Value TEXT, " "FOREIGN KEY(ReportNameIndex) REFERENCES Strings(StringIndex) " - "ON UPDATE CASCADE " + "ON UPDATE CASCADE " "FOREIGN KEY(ReportForStringIndex) REFERENCES Strings(StringIndex) " - "ON UPDATE CASCADE " + "ON UPDATE CASCADE " "FOREIGN KEY(TableNameIndex) REFERENCES Strings(StringIndex) " - "ON UPDATE CASCADE " + "ON UPDATE CASCADE " "FOREIGN KEY(RowNameIndex) REFERENCES Strings(StringIndex) " - "ON UPDATE CASCADE " + "ON UPDATE CASCADE " "FOREIGN KEY(ColumnNameIndex) REFERENCES Strings(StringIndex) " - "ON UPDATE CASCADE " + "ON UPDATE CASCADE " "FOREIGN KEY(UnitsIndex) REFERENCES Strings(StringIndex) " - "ON UPDATE CASCADE " + "ON UPDATE CASCADE " "FOREIGN KEY(SimulationIndex) REFERENCES Simulations(SimulationIndex) " - "ON DELETE CASCADE ON UPDATE CASCADE " - ");"; + "ON DELETE CASCADE ON UPDATE CASCADE " + ");"; sqliteExecuteCommand(sql5); @@ -1303,28 +1239,28 @@ void SQLite::initializeTabularDataTable() void SQLite::initializeTabularDataView() { const std::string sql = "CREATE VIEW TabularDataWithStrings AS SELECT " - "td.TabularDataIndex, " - "td.Value As Value, " - "reportn.Value As ReportName, " - "fs.Value As ReportForString, " - "tn.Value As TableName, " - "rn.Value As RowName, " - "cn.Value As ColumnName, " - "u.Value As Units " - "FROM TabularData As td " - "INNER JOIN Strings As reportn ON reportn.StringIndex=td.ReportNameIndex " - "INNER JOIN Strings As fs ON fs.StringIndex=td.ReportForStringIndex " - "INNER JOIN Strings As tn ON tn.StringIndex=td.TableNameIndex " - "INNER JOIN Strings As rn ON rn.StringIndex=td.RowNameIndex " - "INNER JOIN Strings As cn ON cn.StringIndex=td.ColumnNameIndex " - "INNER JOIN Strings As u ON u.StringIndex=td.UnitsIndex;"; + "td.TabularDataIndex, " + "td.Value As Value, " + "reportn.Value As ReportName, " + "fs.Value As ReportForString, " + "tn.Value As TableName, " + "rn.Value As RowName, " + "cn.Value As ColumnName, " + "u.Value As Units " + "FROM TabularData As td " + "INNER JOIN Strings As reportn ON reportn.StringIndex=td.ReportNameIndex " + "INNER JOIN Strings As fs ON fs.StringIndex=td.ReportForStringIndex " + "INNER JOIN Strings As tn ON tn.StringIndex=td.TableNameIndex " + "INNER JOIN Strings As rn ON rn.StringIndex=td.RowNameIndex " + "INNER JOIN Strings As cn ON cn.StringIndex=td.ColumnNameIndex " + "INNER JOIN Strings As u ON u.StringIndex=td.UnitsIndex;"; sqliteExecuteCommand(sql); } void SQLite::initializeIndexes() { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteExecuteCommand("CREATE INDEX rddMTR ON ReportDataDictionary (IsMeter);"); sqliteExecuteCommand("CREATE INDEX redRD ON ReportExtendedData (ReportDataIndex);"); @@ -1421,7 +1357,7 @@ void SQLite::parseUnitsAndDescription(const std::string & combinedString, std::s std::size_t leftPos = combinedString.find("["); std::size_t rightPos = combinedString.find("]"); - if( (leftPos < rightPos) && (leftPos != std::string::npos) && (rightPos != std::string::npos) ) { + if ( (leftPos < rightPos) && (leftPos != std::string::npos) && (rightPos != std::string::npos) ) { units = combinedString.substr(leftPos + 1,rightPos - leftPos - 1); description = combinedString.substr(0,leftPos - 1); } else { @@ -1436,19 +1372,19 @@ int SQLite::logicalToInteger(const bool value) } void SQLite::createSQLiteReportDictionaryRecord ( - int const reportVariableReportID, - int const storeTypeIndex, - std::string const & indexGroup, - std::string const & keyedValueString, - std::string const & variableName, - int const indexType, - std::string const & units, - int const reportingFreq, - bool isMeter, - Optional_string_const scheduleName + int const reportVariableReportID, + int const storeTypeIndex, + std::string const & indexGroup, + std::string const & keyedValueString, + std::string const & variableName, + int const indexType, + std::string const & units, + int const reportingFreq, + bool isMeter, + Optional_string_const scheduleName ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteBindInteger(m_reportDictionaryInsertStmt, 1, reportVariableReportID); sqliteBindLogical(m_reportDictionaryInsertStmt, 2, isMeter); sqliteBindText(m_reportDictionaryInsertStmt, 3, storageType(storeTypeIndex)); @@ -1458,7 +1394,7 @@ void SQLite::createSQLiteReportDictionaryRecord ( sqliteBindText(m_reportDictionaryInsertStmt, 7, variableName); sqliteBindText(m_reportDictionaryInsertStmt, 8, reportingFreqName(reportingFreq)); - if(scheduleName.present()) { + if ( scheduleName.present() ) { sqliteBindText(m_reportDictionaryInsertStmt, 9, scheduleName()); } else { sqliteBindNULL(m_reportDictionaryInsertStmt, 9); @@ -1472,17 +1408,17 @@ void SQLite::createSQLiteReportDictionaryRecord ( } void SQLite::createSQLiteReportDataRecord( - int const recordIndex, - Real64 const value, - Optional_int_const reportingInterval, - Optional< Real64 const > minValue, - Optional_int_const minValueDate, - Optional< Real64 const > maxValue, - Optional_int_const maxValueDate, - Optional_int_const minutesPerTimeStep + int const recordIndex, + Real64 const value, + Optional_int_const reportingInterval, + Optional< Real64 const > minValue, + Optional_int_const minValueDate, + Optional< Real64 const > maxValue, + Optional_int_const maxValueDate, + Optional_int_const minutesPerTimeStep ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { static int dataIndex = 0; static int extendedDataIndex = 0; @@ -1514,74 +1450,74 @@ void SQLite::createSQLiteReportDataRecord( ++extendedDataIndex; - if(minutesPerTimeStep.present()) { // This is for data created by a 'Report Meter' statement + if ( minutesPerTimeStep.present() ) { // This is for data created by a 'Report Meter' statement switch(reportingInterval()) { - case LocalReportHourly: - case LocalReportDaily: - case LocalReportMonthly: - case LocalReportSim: - sqliteBindInteger(m_reportExtendedDataInsertStmt, 1, extendedDataIndex); - sqliteBindForeignKey(m_reportExtendedDataInsertStmt, 2, dataIndex); - - sqliteBindDouble(m_reportExtendedDataInsertStmt, 3, maxValue); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 4, maxMonth); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 5, maxDay); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 6, maxHour); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 7, maxMinute - minutesPerTimeStep + 1); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 8, maxMinute); - - sqliteBindDouble(m_reportExtendedDataInsertStmt, 9, minValue); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 10, minMonth); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 11, minDay); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 12, minHour); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 13, minMinute - minutesPerTimeStep + 1); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 14, minMinute); - - sqliteStepCommand(m_reportExtendedDataInsertStmt); - sqliteResetCommand(m_reportExtendedDataInsertStmt); - break; - - case LocalReportTimeStep: - --extendedDataIndex; // Reset the data index to account for the error - break; - - default: - --extendedDataIndex; // Reset the data index to account for the error - std::stringstream ss; - ss << "Illegal reportingInterval passed to CreateSQLiteMeterRecord: " << reportingInterval; - sqliteWriteMessage(ss.str()); + case LocalReportHourly: + case LocalReportDaily: + case LocalReportMonthly: + case LocalReportSim: + sqliteBindInteger(m_reportExtendedDataInsertStmt, 1, extendedDataIndex); + sqliteBindForeignKey(m_reportExtendedDataInsertStmt, 2, dataIndex); + + sqliteBindDouble(m_reportExtendedDataInsertStmt, 3, maxValue); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 4, maxMonth); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 5, maxDay); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 6, maxHour); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 7, maxMinute - minutesPerTimeStep + 1); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 8, maxMinute); + + sqliteBindDouble(m_reportExtendedDataInsertStmt, 9, minValue); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 10, minMonth); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 11, minDay); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 12, minHour); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 13, minMinute - minutesPerTimeStep + 1); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 14, minMinute); + + sqliteStepCommand(m_reportExtendedDataInsertStmt); + sqliteResetCommand(m_reportExtendedDataInsertStmt); + break; + + case LocalReportTimeStep: + --extendedDataIndex; // Reset the data index to account for the error + break; + + default: + --extendedDataIndex; // Reset the data index to account for the error + std::stringstream ss; + ss << "Illegal reportingInterval passed to CreateSQLiteMeterRecord: " << reportingInterval; + sqliteWriteMessage(ss.str()); } } else { // This is for data created by a 'Report Variable' statement switch(reportingInterval()) { - case LocalReportDaily: - case LocalReportMonthly: - case LocalReportSim: - sqliteBindInteger(m_reportExtendedDataInsertStmt, 1, extendedDataIndex); - sqliteBindForeignKey(m_reportExtendedDataInsertStmt, 2, dataIndex); - - sqliteBindDouble(m_reportExtendedDataInsertStmt, 3, maxValue); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 4, maxMonth); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 5, maxDay); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 6, maxHour); - sqliteBindNULL(m_reportExtendedDataInsertStmt, 7); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 8, maxMinute); - - sqliteBindDouble(m_reportExtendedDataInsertStmt, 9, minValue); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 10, minMonth); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 11, minDay); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 12, minHour); - sqliteBindNULL(m_reportExtendedDataInsertStmt, 13); - sqliteBindInteger(m_reportExtendedDataInsertStmt, 14, minMinute); - - sqliteStepCommand(m_reportExtendedDataInsertStmt); - sqliteResetCommand(m_reportExtendedDataInsertStmt); - break; - - default: - --extendedDataIndex; // Reset the data index to account for the error - std::stringstream ss; - ss << "Illegal reportingInterval passed to CreateSQLiteMeterRecord: " << reportingInterval; - sqliteWriteMessage(ss.str()); + case LocalReportDaily: + case LocalReportMonthly: + case LocalReportSim: + sqliteBindInteger(m_reportExtendedDataInsertStmt, 1, extendedDataIndex); + sqliteBindForeignKey(m_reportExtendedDataInsertStmt, 2, dataIndex); + + sqliteBindDouble(m_reportExtendedDataInsertStmt, 3, maxValue); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 4, maxMonth); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 5, maxDay); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 6, maxHour); + sqliteBindNULL(m_reportExtendedDataInsertStmt, 7); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 8, maxMinute); + + sqliteBindDouble(m_reportExtendedDataInsertStmt, 9, minValue); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 10, minMonth); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 11, minDay); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 12, minHour); + sqliteBindNULL(m_reportExtendedDataInsertStmt, 13); + sqliteBindInteger(m_reportExtendedDataInsertStmt, 14, minMinute); + + sqliteStepCommand(m_reportExtendedDataInsertStmt); + sqliteResetCommand(m_reportExtendedDataInsertStmt); + break; + + default: + --extendedDataIndex; // Reset the data index to account for the error + std::stringstream ss; + ss << "Illegal reportingInterval passed to CreateSQLiteMeterRecord: " << reportingInterval; + sqliteWriteMessage(ss.str()); } } } @@ -1592,16 +1528,18 @@ void SQLite::createSQLiteTimeIndexRecord( int const reportingInterval, int const recordIndex, int const cumlativeSimulationDays, + int const curEnvirNum, Optional_int_const month, Optional_int_const dayOfMonth, Optional_int_const hour, Optional< Real64 const > endMinute, Optional< Real64 const > startMinute, Optional_int_const dst, - Optional_string_const dayType + Optional_string_const dayType, + bool const warmupFlag ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { int intStartMinute = 0; int intervalInMinutes = 60; @@ -1610,6 +1548,10 @@ void SQLite::createSQLiteTimeIndexRecord( switch(reportingInterval) { case LocalReportEach: case LocalReportTimeStep: { + if ( !month.present() || !dayOfMonth.present() || !hour.present() || + !endMinute.present() || !startMinute.present() || !dst.present() || !dayType.present() ) { + break; + } ++m_sqlDBTimeIndex; int intEndMinute = static_cast(endMinute() + 0.5); @@ -1628,8 +1570,8 @@ void SQLite::createSQLiteTimeIndexRecord( sqliteBindInteger(m_timeIndexInsertStmt, 8, reportingInterval); sqliteBindInteger(m_timeIndexInsertStmt, 9, cumlativeSimulationDays); sqliteBindText(m_timeIndexInsertStmt, 10, dayType()); - sqliteBindInteger(m_timeIndexInsertStmt, 11, DataEnvironment::CurEnvirNum); - sqliteBindLogical(m_timeIndexInsertStmt, 12, DataGlobals::WarmupFlag); + sqliteBindInteger(m_timeIndexInsertStmt, 11, curEnvirNum); + sqliteBindLogical(m_timeIndexInsertStmt, 12, warmupFlag); sqliteStepCommand(m_timeIndexInsertStmt); sqliteResetCommand(m_timeIndexInsertStmt); @@ -1637,6 +1579,9 @@ void SQLite::createSQLiteTimeIndexRecord( break; } case LocalReportHourly: { + if ( !month.present() || !dayOfMonth.present() || !hour.present() || !dst.present() || !dayType.present() ) { + break; + } ++m_sqlDBTimeIndex; sqliteBindInteger(m_timeIndexInsertStmt, 1, m_sqlDBTimeIndex); @@ -1649,7 +1594,7 @@ void SQLite::createSQLiteTimeIndexRecord( sqliteBindInteger(m_timeIndexInsertStmt, 8, reportingInterval); sqliteBindInteger(m_timeIndexInsertStmt, 9, cumlativeSimulationDays); sqliteBindText(m_timeIndexInsertStmt, 10, dayType()); - sqliteBindInteger(m_timeIndexInsertStmt, 11, DataEnvironment::CurEnvirNum); + sqliteBindInteger(m_timeIndexInsertStmt, 11, curEnvirNum); sqliteStepCommand(m_timeIndexInsertStmt); sqliteResetCommand(m_timeIndexInsertStmt); @@ -1657,6 +1602,9 @@ void SQLite::createSQLiteTimeIndexRecord( break; } case LocalReportDaily: { + if ( !month.present() || !dayOfMonth.present() || !hour.present() || !dst.present() || !dayType.present() ) { + break; + } ++m_sqlDBTimeIndex; intervalInMinutes = 60*24; @@ -1670,7 +1618,7 @@ void SQLite::createSQLiteTimeIndexRecord( sqliteBindInteger(m_timeIndexInsertStmt, 8, reportingInterval); sqliteBindInteger(m_timeIndexInsertStmt, 9, cumlativeSimulationDays); sqliteBindText(m_timeIndexInsertStmt, 10, dayType()); - sqliteBindInteger(m_timeIndexInsertStmt, 11, DataEnvironment::CurEnvirNum); + sqliteBindInteger(m_timeIndexInsertStmt, 11, curEnvirNum); sqliteStepCommand(m_timeIndexInsertStmt); sqliteResetCommand(m_timeIndexInsertStmt); @@ -1678,6 +1626,9 @@ void SQLite::createSQLiteTimeIndexRecord( break; } case LocalReportMonthly: { + if ( !month.present() ) { + break; + } ++m_sqlDBTimeIndex; intervalInMinutes = 60*24*lastDayOfMonth[month() - 1]; @@ -1691,7 +1642,7 @@ void SQLite::createSQLiteTimeIndexRecord( sqliteBindInteger(m_timeIndexInsertStmt, 8, reportingInterval); sqliteBindInteger(m_timeIndexInsertStmt, 9, cumlativeSimulationDays); sqliteBindNULL(m_timeIndexInsertStmt, 10); - sqliteBindInteger(m_timeIndexInsertStmt, 11, DataEnvironment::CurEnvirNum); + sqliteBindInteger(m_timeIndexInsertStmt, 11, curEnvirNum); sqliteStepCommand(m_timeIndexInsertStmt); sqliteResetCommand(m_timeIndexInsertStmt); @@ -1712,7 +1663,7 @@ void SQLite::createSQLiteTimeIndexRecord( sqliteBindInteger(m_timeIndexInsertStmt, 8, reportingInterval); sqliteBindInteger(m_timeIndexInsertStmt, 9, cumlativeSimulationDays); sqliteBindNULL(m_timeIndexInsertStmt, 10); - sqliteBindInteger(m_timeIndexInsertStmt, 11, DataEnvironment::CurEnvirNum); + sqliteBindInteger(m_timeIndexInsertStmt, 11, curEnvirNum); sqliteStepCommand (m_timeIndexInsertStmt); sqliteResetCommand (m_timeIndexInsertStmt); @@ -1743,7 +1694,7 @@ void SQLite::addSQLiteZoneSizingRecord( ) { static int zoneSizingIndex = 0; - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { ++zoneSizingIndex; sqliteBindInteger(m_zoneSizingInsertStmt, 1, zoneSizingIndex); sqliteBindText(m_zoneSizingInsertStmt, 2, zoneName); @@ -1773,7 +1724,7 @@ void SQLite::addSQLiteSystemSizingRecord( ) { static int systemSizingIndex = 0; - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { ++systemSizingIndex; std::string description; std::string units; @@ -1799,7 +1750,7 @@ void SQLite::addSQLiteComponentSizingRecord( ) { static int componentSizingIndex = 0; - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { ++componentSizingIndex; std::string description; @@ -1819,23 +1770,6 @@ void SQLite::addSQLiteComponentSizingRecord( } } -void SQLite::createSQLiteRoomAirModelTable() -{ - if( m_writeOutputToSQLite ) { - for(int zoneNum = 1; zoneNum <= DataGlobals::NumOfZones; ++zoneNum) { - auto const & zoneAirModel = DataRoomAirModel::AirModel(zoneNum); - sqliteBindInteger(m_roomAirModelInsertStmt, 1, zoneNum); - sqliteBindText(m_roomAirModelInsertStmt, 2, zoneAirModel.AirModelName); - sqliteBindInteger(m_roomAirModelInsertStmt, 3, zoneAirModel.AirModelType); - sqliteBindInteger(m_roomAirModelInsertStmt, 4, zoneAirModel.TempCoupleScheme); - sqliteBindLogical(m_roomAirModelInsertStmt, 5, zoneAirModel.SimAirModel); - - sqliteStepCommand(m_roomAirModelInsertStmt); - sqliteResetCommand(m_roomAirModelInsertStmt); - } - } -} - void SQLite::createSQLiteDaylightMapTitle( int const mapNum, std::string const & mapName, @@ -1846,7 +1780,7 @@ void SQLite::createSQLiteDaylightMapTitle( Real64 const zCoord ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { // for some reason it is adding extra mapNumbers that are getting UNIQUE constraint ignored. // Might need to look into it, basically I think something is getting double inserted (12/06/14) sqliteBindInteger(m_daylightMapTitleInsertStmt, 1, mapNum); @@ -1868,10 +1802,10 @@ void SQLite::createSQLiteDaylightMap( int const dayOfMonth, int const hourOfDay, int const nX, - FArray1S< Real64 > const & x, + FArray1< Real64 > const & x, int const nY, - FArray1S< Real64 > const & y, - FArray2S< Real64 > const & illuminance + FArray1< Real64 > const & y, + FArray2< Real64 > const & illuminance ) { static int hourlyReportIndex = 0; @@ -1888,8 +1822,8 @@ void SQLite::createSQLiteDaylightMap( sqliteStepCommand(m_daylightMapHourlyTitleInsertStmt); sqliteResetCommand(m_daylightMapHourlyTitleInsertStmt); - for(int yIndex = 1; yIndex <= nY; ++yIndex) { - for(int xIndex = 1; xIndex <= nX; ++xIndex) { + for ( int yIndex = 1; yIndex <= nY; ++yIndex ) { + for ( int xIndex = 1; xIndex <= nX; ++xIndex ) { ++hourlyDataIndex; sqliteBindInteger(m_daylightMapHourlyDataInsertStmt, 1, hourlyDataIndex); sqliteBindForeignKey(m_daylightMapHourlyDataInsertStmt, 2, hourlyReportIndex); @@ -1914,7 +1848,7 @@ void SQLite::createSQLiteTabularDataRecords( ) { static int tabularDataIndex = 0; - if(m_writeTabularDataToSQLite) { + if ( m_writeTabularDataToSQLite ) { size_t sizeColumnLabels = columnLabels.size(); size_t sizeRowLabels = rowLabels.size(); @@ -1923,7 +1857,7 @@ void SQLite::createSQLiteTabularDataRecords( int const tableNameIndex = createSQLiteStringTableRecord(tableName, TableNameId); int unitsIndex; - for(size_t iCol = 0, k = body.index(1,1); iCol < sizeColumnLabels; ++iCol) { + for ( size_t iCol = 0, k = body.index(1,1); iCol < sizeColumnLabels; ++iCol ) { std::string colUnits; std::string colDescription; parseUnitsAndDescription(columnLabels[iCol], colUnits, colDescription); @@ -1934,7 +1868,7 @@ void SQLite::createSQLiteTabularDataRecords( unitsIndex = createSQLiteStringTableRecord(colUnits, UnitsId); } - for(size_t iRow = 0; iRow < sizeRowLabels; ++iRow) { + for ( size_t iRow = 0; iRow < sizeRowLabels; ++iRow ) { ++tabularDataIndex; std::string rowUnits; std::string rowDescription; @@ -2002,12 +1936,12 @@ int SQLite::createSQLiteStringTableRecord(std::string const & stringValue, int c return rowId; } -void SQLite::createSQLiteSimulationsRecord( int const id ) +void SQLite::createSQLiteSimulationsRecord( int const id, const std::string& verString, const std::string& currentDateTime ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteBindInteger(m_simulationsInsertStmt, 1, id); - sqliteBindText(m_simulationsInsertStmt, 2, DataStringGlobals::VerString); - sqliteBindText(m_simulationsInsertStmt, 3, DataStringGlobals::CurrentDateTime); + sqliteBindText(m_simulationsInsertStmt, 2, verString); + sqliteBindText(m_simulationsInsertStmt, 3, currentDateTime); sqliteStepCommand(m_simulationsInsertStmt); sqliteResetCommand(m_simulationsInsertStmt); @@ -2039,7 +1973,7 @@ void SQLite::createSQLiteErrorRecord( void SQLite::updateSQLiteErrorRecord( std::string const & errorMessage ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteBindText(m_errorUpdateStmt, 1, " " + errorMessage); sqliteStepCommand(m_errorUpdateStmt); @@ -2047,12 +1981,10 @@ void SQLite::updateSQLiteErrorRecord( std::string const & errorMessage ) } } -void SQLite::updateSQLiteSimulationRecord( - int const id -) +void SQLite::updateSQLiteSimulationRecord( int const id, int const numOfTimeStepInHour ) { if( m_writeOutputToSQLite ) { - sqliteBindInteger(m_simulationDataUpdateStmt, 1, DataGlobals::NumOfTimeStepInHour); + sqliteBindInteger(m_simulationDataUpdateStmt, 1, numOfTimeStepInHour); sqliteBindForeignKey(m_simulationDataUpdateStmt, 2, id); sqliteStepCommand(m_simulationDataUpdateStmt); @@ -2060,442 +1992,793 @@ void SQLite::updateSQLiteSimulationRecord( } } -void SQLite::updateSQLiteSimulationRecord( -bool const completed, -bool const completedSuccessfully -) +void SQLite::updateSQLiteSimulationRecord( bool const completed, bool const completedSuccessfully, int const id ) { - if( m_writeOutputToSQLite ) { + if ( m_writeOutputToSQLite ) { sqliteBindLogical(m_simulationUpdateStmt, 1, completed); sqliteBindLogical(m_simulationUpdateStmt, 2, completedSuccessfully); - sqliteBindForeignKey(m_simulationUpdateStmt, 3, 1); // seems to always be 1, SimulationManager::ManageSimulation() + sqliteBindForeignKey(m_simulationUpdateStmt, 3, id); // seems to always be 1, SimulationManager::ManageSimulation() sqliteStepCommand(m_simulationUpdateStmt); sqliteResetCommand(m_simulationUpdateStmt); } } -void SQLite::createSQLiteZoneTable() -{ - for( int zoneNum = 1; zoneNum <= DataGlobals::NumOfZones; ++zoneNum) { - auto const & zoneHB = DataHeatBalance::Zone(zoneNum); - - sqliteBindInteger(m_zoneInfoInsertStmt, 1, zoneNum); - sqliteBindText(m_zoneInfoInsertStmt, 2, zoneHB.Name); - sqliteBindDouble(m_zoneInfoInsertStmt, 3, zoneHB.RelNorth); - sqliteBindDouble(m_zoneInfoInsertStmt, 4, zoneHB.OriginX); - sqliteBindDouble(m_zoneInfoInsertStmt, 5, zoneHB.OriginY); - sqliteBindDouble(m_zoneInfoInsertStmt, 6, zoneHB.OriginZ); - sqliteBindDouble(m_zoneInfoInsertStmt, 7, zoneHB.Centroid.x); - sqliteBindDouble(m_zoneInfoInsertStmt, 8, zoneHB.Centroid.y); - sqliteBindDouble(m_zoneInfoInsertStmt, 9, zoneHB.Centroid.z); - sqliteBindInteger(m_zoneInfoInsertStmt, 10, zoneHB.OfType); - sqliteBindInteger(m_zoneInfoInsertStmt, 11, zoneHB.Multiplier); - sqliteBindInteger(m_zoneInfoInsertStmt, 12, zoneHB.ListMultiplier); - sqliteBindDouble(m_zoneInfoInsertStmt, 13, zoneHB.MinimumX); - sqliteBindDouble(m_zoneInfoInsertStmt, 14, zoneHB.MaximumX); - sqliteBindDouble(m_zoneInfoInsertStmt, 15, zoneHB.MinimumY); - sqliteBindDouble(m_zoneInfoInsertStmt, 16, zoneHB.MaximumY); - sqliteBindDouble(m_zoneInfoInsertStmt, 17, zoneHB.MinimumZ); - sqliteBindDouble(m_zoneInfoInsertStmt, 18, zoneHB.MaximumZ); - sqliteBindDouble(m_zoneInfoInsertStmt, 19, zoneHB.CeilingHeight); - sqliteBindDouble(m_zoneInfoInsertStmt, 20, zoneHB.Volume); - sqliteBindInteger(m_zoneInfoInsertStmt, 21, zoneHB.InsideConvectionAlgo); - sqliteBindInteger(m_zoneInfoInsertStmt, 22, zoneHB.OutsideConvectionAlgo); - sqliteBindDouble(m_zoneInfoInsertStmt, 23, zoneHB.FloorArea); - sqliteBindDouble(m_zoneInfoInsertStmt, 24, zoneHB.ExtGrossWallArea); - sqliteBindDouble(m_zoneInfoInsertStmt, 25, zoneHB.ExtNetWallArea); - sqliteBindDouble(m_zoneInfoInsertStmt, 26, zoneHB.ExtWindowArea); - sqliteBindLogical(m_zoneInfoInsertStmt, 27, zoneHB.isPartOfTotalArea); - - sqliteStepCommand(m_zoneInfoInsertStmt); - sqliteResetCommand(m_zoneInfoInsertStmt); +void SQLite::createZoneExtendedOutput() +{ + if( m_writeOutputToSQLite ) { + for(auto const & zone : zones) { + zone->insertIntoSQLite( m_zoneInfoInsertStmt ); + } + for(auto const & zoneList : zoneLists) { + zoneList->insertIntoSQLite( m_zoneListInsertStmt, m_zoneInfoZoneListInsertStmt ); + } + for(auto const & zoneGroup : zoneGroups) { + zoneGroup->insertIntoSQLite( m_zoneGroupInsertStmt ); + } + for(auto const & schedule : schedules) { + schedule->insertIntoSQLite( m_scheduleInsertStmt ); + } + for(auto const & material : materials) { + material->insertIntoSQLite( m_materialInsertStmt ); + } + for(auto const & construction : constructions) { + construction->insertIntoSQLite( m_constructionInsertStmt, m_constructionLayerInsertStmt ); + } + for(auto const & surface : surfaces) { + surface->insertIntoSQLite( m_surfaceInsertStmt ); + } + for(auto const & nominalLighting : nominalLightings) { + nominalLighting->insertIntoSQLite( m_nominalLightingInsertStmt ); + } + for(auto const & nominalPeople : nominalPeoples) { + nominalPeople->insertIntoSQLite( m_nominalPeopleInsertStmt ); + } + for(auto const & nominalElectricEquipment : nominalElectricEquipments) { + nominalElectricEquipment->insertIntoSQLite( m_nominalElectricEquipmentInsertStmt ); + } + for(auto const & nominalGasEquipment : nominalGasEquipments) { + nominalGasEquipment->insertIntoSQLite( m_nominalGasEquipmentInsertStmt ); + } + for(auto const & nominalSteamEquipment : nominalSteamEquipments) { + nominalSteamEquipment->insertIntoSQLite( m_nominalSteamEquipmentInsertStmt ); + } + for(auto const & nominalHotWaterEquipment : nominalHotWaterEquipments) { + nominalHotWaterEquipment->insertIntoSQLite( m_nominalHotWaterEquipmentInsertStmt ); + } + for(auto const & nominalOtherEquipment : nominalOtherEquipments) { + nominalOtherEquipment->insertIntoSQLite( m_nominalOtherEquipmentInsertStmt ); + } + for(auto const & nominalBaseboardHeat : nominalBaseboardHeats) { + nominalBaseboardHeat->insertIntoSQLite( m_nominalBaseboardHeatInsertStmt ); + } + for(auto const & infiltration : infiltrations ) { + infiltration->insertIntoSQLite( m_infiltrationInsertStmt ); + } + for(auto const & ventilation : ventilations) { + ventilation->insertIntoSQLite( m_ventilationInsertStmt ); + } + for(auto const & roomAirModel : roomAirModels) { + roomAirModel->insertIntoSQLite( m_roomAirModelInsertStmt ); + } } } -void SQLite::createSQLiteNominalLightingTable() -{ - for(int lightNum = 1; lightNum <= DataHeatBalance::TotLights; ++lightNum) { - auto const & lightsHB = DataHeatBalance::Lights(lightNum); - sqliteBindInteger(m_nominalLightingInsertStmt, 1, lightNum); - sqliteBindText(m_nominalLightingInsertStmt, 2, lightsHB.Name); - sqliteBindForeignKey(m_nominalLightingInsertStmt, 3, lightsHB.ZonePtr); - sqliteBindForeignKey(m_nominalLightingInsertStmt, 4, lightsHB.SchedPtr); - sqliteBindDouble(m_nominalLightingInsertStmt, 5, lightsHB.DesignLevel); - sqliteBindDouble(m_nominalLightingInsertStmt, 6, lightsHB.FractionReturnAir); - sqliteBindDouble(m_nominalLightingInsertStmt, 7, lightsHB.FractionRadiant); - sqliteBindDouble(m_nominalLightingInsertStmt, 8, lightsHB.FractionShortWave); - sqliteBindDouble(m_nominalLightingInsertStmt, 9, lightsHB.FractionReplaceable); - sqliteBindDouble(m_nominalLightingInsertStmt, 10, lightsHB.FractionConvected); - sqliteBindText(m_nominalLightingInsertStmt, 11, lightsHB.EndUseSubcategory); - - sqliteStepCommand(m_nominalLightingInsertStmt); - sqliteResetCommand(m_nominalLightingInsertStmt); - } -} +void SQLite::createSQLiteEnvironmentPeriodRecord( const int curEnvirNum, const std::string& environmentName, const int kindOfSim, const int simulationIndex ) +{ + if( m_writeOutputToSQLite ) { + sqliteBindInteger(m_environmentPeriodInsertStmt, 1, curEnvirNum); + sqliteBindForeignKey(m_environmentPeriodInsertStmt, 2, simulationIndex); + sqliteBindText(m_environmentPeriodInsertStmt, 3, environmentName); + sqliteBindInteger(m_environmentPeriodInsertStmt, 4, kindOfSim); -void SQLite::createSQLiteNominalPeopleTable() -{ - for(int peopleNum = 1; peopleNum <= DataHeatBalance::TotPeople; ++peopleNum) { - auto const & peopleHB = DataHeatBalance::People(peopleNum); - sqliteBindInteger(m_nominalPeopleInsertStmt, 1, peopleNum); - sqliteBindText(m_nominalPeopleInsertStmt, 2, peopleHB.Name); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 3, peopleHB.ZonePtr); - sqliteBindDouble(m_nominalPeopleInsertStmt, 4, peopleHB.NumberOfPeople); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 5, peopleHB.NumberOfPeoplePtr); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 6, peopleHB.ActivityLevelPtr); - sqliteBindDouble(m_nominalPeopleInsertStmt, 7, peopleHB.FractionRadiant); - sqliteBindDouble(m_nominalPeopleInsertStmt, 8, peopleHB.FractionConvected); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 9, peopleHB.WorkEffPtr); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 10, peopleHB.ClothingPtr); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 11, peopleHB.AirVelocityPtr); - sqliteBindLogical(m_nominalPeopleInsertStmt, 12, peopleHB.Fanger); - sqliteBindLogical(m_nominalPeopleInsertStmt, 13, peopleHB.Pierce); - sqliteBindLogical(m_nominalPeopleInsertStmt, 14, peopleHB.KSU); - sqliteBindInteger(m_nominalPeopleInsertStmt, 15, peopleHB.MRTCalcType); - sqliteBindForeignKey(m_nominalPeopleInsertStmt, 16, peopleHB.SurfacePtr); - sqliteBindText(m_nominalPeopleInsertStmt, 17, peopleHB.AngleFactorListName); - sqliteBindInteger(m_nominalPeopleInsertStmt, 18, peopleHB.AngleFactorListPtr); - sqliteBindDouble(m_nominalPeopleInsertStmt, 19, peopleHB.UserSpecSensFrac); - sqliteBindLogical(m_nominalPeopleInsertStmt, 20, peopleHB.Show55Warning); - - sqliteStepCommand(m_nominalPeopleInsertStmt); - sqliteResetCommand(m_nominalPeopleInsertStmt); + sqliteStepCommand(m_environmentPeriodInsertStmt); + sqliteResetCommand(m_environmentPeriodInsertStmt); } } -void SQLite::createSQLiteNominalElectricEquipmentTable() +void SQLite::addScheduleData( int const number, std::string const name, std::string const type, double const minValue, double const maxValue ) { - for(int elecEquipNum = 1; elecEquipNum <= DataHeatBalance::TotElecEquip; ++elecEquipNum) { - auto const & elecEquipHB = DataHeatBalance::ZoneElectric(elecEquipNum); - sqliteBindInteger(m_nominalElectricEquipmentInsertStmt, 1, elecEquipNum); - sqliteBindText(m_nominalElectricEquipmentInsertStmt, 2, elecEquipHB.Name); - sqliteBindForeignKey(m_nominalElectricEquipmentInsertStmt, 3, elecEquipHB.ZonePtr); - sqliteBindForeignKey(m_nominalElectricEquipmentInsertStmt, 4, elecEquipHB.SchedPtr); - sqliteBindDouble(m_nominalElectricEquipmentInsertStmt, 5, elecEquipHB.DesignLevel); - sqliteBindDouble(m_nominalElectricEquipmentInsertStmt, 6, elecEquipHB.FractionLatent); - sqliteBindDouble(m_nominalElectricEquipmentInsertStmt, 7, elecEquipHB.FractionRadiant); - sqliteBindDouble(m_nominalElectricEquipmentInsertStmt, 8, elecEquipHB.FractionLost); - sqliteBindDouble(m_nominalElectricEquipmentInsertStmt, 9, elecEquipHB.FractionConvected); - sqliteBindText(m_nominalElectricEquipmentInsertStmt, 10, elecEquipHB.EndUseSubcategory); - - sqliteStepCommand(m_nominalElectricEquipmentInsertStmt); - sqliteResetCommand(m_nominalElectricEquipmentInsertStmt); - } + schedules.push_back( + std::unique_ptr(new Schedule(m_errorStream, m_db, number, name, type, minValue, maxValue)) + ); } -void SQLite::createSQLiteNominalGasEquipmentTable() +void SQLite::addZoneData( int const number, DataHeatBalance::ZoneData const & zoneData ) { - for(int gasEquipNum = 1; gasEquipNum <= DataHeatBalance::TotGasEquip; ++gasEquipNum) { - auto const & gasEquipHB = DataHeatBalance::ZoneGas(gasEquipNum); - sqliteBindInteger(m_nominalGasEquipmentInsertStmt, 1, gasEquipNum); - sqliteBindText(m_nominalGasEquipmentInsertStmt, 2, gasEquipHB.Name); - sqliteBindForeignKey(m_nominalGasEquipmentInsertStmt, 3, gasEquipHB.ZonePtr); - sqliteBindForeignKey(m_nominalGasEquipmentInsertStmt, 4, gasEquipHB.SchedPtr); - sqliteBindDouble(m_nominalGasEquipmentInsertStmt, 5, gasEquipHB.DesignLevel); - sqliteBindDouble(m_nominalGasEquipmentInsertStmt, 6, gasEquipHB.FractionLatent); - sqliteBindDouble(m_nominalGasEquipmentInsertStmt, 7, gasEquipHB.FractionRadiant); - sqliteBindDouble(m_nominalGasEquipmentInsertStmt, 8, gasEquipHB.FractionLost); - sqliteBindDouble(m_nominalGasEquipmentInsertStmt, 9, gasEquipHB.FractionConvected); - sqliteBindText(m_nominalGasEquipmentInsertStmt, 10, gasEquipHB.EndUseSubcategory); - - sqliteStepCommand(m_nominalGasEquipmentInsertStmt); - sqliteResetCommand(m_nominalGasEquipmentInsertStmt); - } + zones.push_back( + std::unique_ptr(new Zone(m_errorStream, m_db, number, zoneData)) + ); } -void SQLite::createSQLiteNominalSteamEquipmentTable() +void SQLite::addZoneListData( int const number, DataHeatBalance::ZoneListData const & zoneListData ) { - for(int steamEquipNum = 1; steamEquipNum <= DataHeatBalance::TotStmEquip; ++steamEquipNum) { - auto const & steamEquipHB = DataHeatBalance::ZoneSteamEq(steamEquipNum); - sqliteBindInteger(m_nominalSteamEquipmentInsertStmt, 1, steamEquipNum); - sqliteBindText(m_nominalSteamEquipmentInsertStmt, 2, steamEquipHB.Name); - sqliteBindForeignKey(m_nominalSteamEquipmentInsertStmt, 3, steamEquipHB.ZonePtr); - sqliteBindForeignKey(m_nominalSteamEquipmentInsertStmt, 4, steamEquipHB.SchedPtr); - sqliteBindDouble(m_nominalSteamEquipmentInsertStmt, 5, steamEquipHB.DesignLevel); - sqliteBindDouble(m_nominalSteamEquipmentInsertStmt, 6, steamEquipHB.FractionLatent); - sqliteBindDouble(m_nominalSteamEquipmentInsertStmt, 7, steamEquipHB.FractionRadiant); - sqliteBindDouble(m_nominalSteamEquipmentInsertStmt, 8, steamEquipHB.FractionLost); - sqliteBindDouble(m_nominalSteamEquipmentInsertStmt, 9, steamEquipHB.FractionConvected); - sqliteBindText(m_nominalSteamEquipmentInsertStmt, 10, steamEquipHB.EndUseSubcategory); - - sqliteStepCommand(m_nominalSteamEquipmentInsertStmt); - sqliteResetCommand(m_nominalSteamEquipmentInsertStmt); - } + zoneLists.push_back( + std::unique_ptr(new ZoneList(m_errorStream, m_db, number, zoneListData)) + ); } -void SQLite::createSQLiteNominalHotWaterEquipmentTable() +void SQLite::addSurfaceData( int const number, DataSurfaces::SurfaceData const & surfaceData, std::string const surfaceClass ) { - for(int hWEquipNum = 1; hWEquipNum <= DataHeatBalance::TotHWEquip; ++hWEquipNum) { - auto const & zoneHW = DataHeatBalance::ZoneHWEq(hWEquipNum); - sqliteBindInteger(m_nominalHotWaterEquipmentInsertStmt, 1, hWEquipNum); - sqliteBindText(m_nominalHotWaterEquipmentInsertStmt, 2, zoneHW.Name); - sqliteBindForeignKey(m_nominalHotWaterEquipmentInsertStmt, 3, zoneHW.ZonePtr); - sqliteBindForeignKey(m_nominalHotWaterEquipmentInsertStmt, 4, zoneHW.SchedPtr); - sqliteBindDouble(m_nominalHotWaterEquipmentInsertStmt, 5, zoneHW.DesignLevel); - sqliteBindDouble(m_nominalHotWaterEquipmentInsertStmt, 6, zoneHW.FractionLatent); - sqliteBindDouble(m_nominalHotWaterEquipmentInsertStmt, 7, zoneHW.FractionRadiant); - sqliteBindDouble(m_nominalHotWaterEquipmentInsertStmt, 8, zoneHW.FractionLost); - sqliteBindDouble(m_nominalHotWaterEquipmentInsertStmt, 9, zoneHW.FractionConvected); - sqliteBindText(m_nominalHotWaterEquipmentInsertStmt, 10, zoneHW.EndUseSubcategory); - - sqliteStepCommand(m_nominalHotWaterEquipmentInsertStmt); - sqliteResetCommand(m_nominalHotWaterEquipmentInsertStmt); - } + surfaces.push_back( + std::unique_ptr(new Surface(m_errorStream, m_db, number, surfaceData, surfaceClass)) + ); } -void SQLite::createSQLiteNominalOtherEquipmentTable() +void SQLite::addZoneGroupData( int const number, DataHeatBalance::ZoneGroupData const & zoneGroupData ) { - for(int otherEquipNum = 1; otherEquipNum <= DataHeatBalance::TotOthEquip; ++otherEquipNum) { - auto const & otherEquip = DataHeatBalance::ZoneOtherEq(otherEquipNum); - sqliteBindInteger(m_nominalOtherEquipmentInsertStmt, 1, otherEquipNum); - sqliteBindText(m_nominalOtherEquipmentInsertStmt, 2, otherEquip.Name); - sqliteBindForeignKey(m_nominalOtherEquipmentInsertStmt, 3, otherEquip.ZonePtr); - sqliteBindForeignKey(m_nominalOtherEquipmentInsertStmt, 4, otherEquip.SchedPtr); - sqliteBindDouble(m_nominalOtherEquipmentInsertStmt, 5, otherEquip.DesignLevel); - sqliteBindDouble(m_nominalOtherEquipmentInsertStmt, 6, otherEquip.FractionLatent); - sqliteBindDouble(m_nominalOtherEquipmentInsertStmt, 7, otherEquip.FractionRadiant); - sqliteBindDouble(m_nominalOtherEquipmentInsertStmt, 8, otherEquip.FractionLost); - sqliteBindDouble(m_nominalOtherEquipmentInsertStmt, 9, otherEquip.FractionConvected); - sqliteBindText(m_nominalOtherEquipmentInsertStmt, 10, otherEquip.EndUseSubcategory); - - sqliteStepCommand(m_nominalOtherEquipmentInsertStmt); - sqliteResetCommand(m_nominalOtherEquipmentInsertStmt); - } + zoneGroups.push_back( + std::unique_ptr(new ZoneGroup(m_errorStream, m_db, number, zoneGroupData)) + ); } -void SQLite::createSQLiteNominalBaseboardHeatTable() -{ - for(int bBHeatNum = 1; bBHeatNum <= DataHeatBalance::TotBBHeat; ++bBHeatNum) { - auto const & baseboardHeat = DataHeatBalance::ZoneBBHeat(bBHeatNum); - sqliteBindInteger(m_nominalBaseboardHeatInsertStmt, 1, bBHeatNum); - sqliteBindText(m_nominalBaseboardHeatInsertStmt, 2, baseboardHeat.Name); - sqliteBindForeignKey(m_nominalBaseboardHeatInsertStmt, 3, baseboardHeat.ZonePtr); - sqliteBindForeignKey(m_nominalBaseboardHeatInsertStmt, 4, baseboardHeat.SchedPtr); - sqliteBindDouble(m_nominalBaseboardHeatInsertStmt, 5, baseboardHeat.CapatLowTemperature); - sqliteBindDouble(m_nominalBaseboardHeatInsertStmt, 6, baseboardHeat.LowTemperature); - sqliteBindDouble(m_nominalBaseboardHeatInsertStmt, 7, baseboardHeat.CapatHighTemperature); - sqliteBindDouble(m_nominalBaseboardHeatInsertStmt, 8, baseboardHeat.HighTemperature); - sqliteBindDouble(m_nominalBaseboardHeatInsertStmt, 9, baseboardHeat.FractionRadiant); - sqliteBindDouble(m_nominalBaseboardHeatInsertStmt, 10, baseboardHeat.FractionConvected); - sqliteBindText(m_nominalBaseboardHeatInsertStmt, 11, baseboardHeat.EndUseSubcategory); - - sqliteStepCommand(m_nominalBaseboardHeatInsertStmt); - sqliteResetCommand(m_nominalBaseboardHeatInsertStmt); - } +void SQLite::addMaterialData( int const number, DataHeatBalance::MaterialProperties const & materialData ) +{ + materials.push_back( + std::unique_ptr(new Material(m_errorStream, m_db, number, materialData)) + ); +} +void SQLite::addConstructionData( int const number, DataHeatBalance::ConstructionData const & constructionData, double const & constructionUValue ) +{ + constructions.push_back( + std::unique_ptr(new Construction(m_errorStream, m_db, number, constructionData, constructionUValue)) + ); +} +void SQLite::addNominalLightingData( int const number, DataHeatBalance::LightsData const & nominalLightingData ) +{ + nominalLightings.push_back( + std::unique_ptr(new NominalLighting(m_errorStream, m_db, number, nominalLightingData)) + ); +} +void SQLite::addNominalPeopleData( int const number, DataHeatBalance::PeopleData const & nominalPeopleData ) +{ + nominalPeoples.push_back( + std::unique_ptr(new NominalPeople(m_errorStream, m_db, number, nominalPeopleData)) + ); +} +void SQLite::addNominalElectricEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalElectricEquipmentData ) +{ + nominalElectricEquipments.push_back( + std::unique_ptr(new NominalElectricEquipment(m_errorStream, m_db, number, nominalElectricEquipmentData)) + ); +} +void SQLite::addNominalGasEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalGasEquipmentData ) +{ + nominalGasEquipments.push_back( + std::unique_ptr(new NominalGasEquipment(m_errorStream, m_db, number, nominalGasEquipmentData)) + ); +} +void SQLite::addNominalSteamEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalSteamEquipmentData ) +{ + nominalSteamEquipments.push_back( + std::unique_ptr(new NominalSteamEquipment(m_errorStream, m_db, number, nominalSteamEquipmentData)) + ); +} +void SQLite::addNominalHotWaterEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalHotWaterEquipmentData ) +{ + nominalHotWaterEquipments.push_back( + std::unique_ptr(new NominalHotWaterEquipment(m_errorStream, m_db, number, nominalHotWaterEquipmentData)) + ); +} +void SQLite::addNominalOtherEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalOtherEquipmentData ) +{ + nominalOtherEquipments.push_back( + std::unique_ptr(new NominalOtherEquipment(m_errorStream, m_db, number, nominalOtherEquipmentData)) + ); +} +void SQLite::addNominalBaseboardData( int const number, DataHeatBalance::BBHeatData const & nominalBaseboardData ) +{ + nominalBaseboardHeats.push_back( + std::unique_ptr(new NominalBaseboardHeat(m_errorStream, m_db, number, nominalBaseboardData)) + ); +} +void SQLite::addInfiltrationData( int const number, DataHeatBalance::InfiltrationData const & infiltrationData ) +{ + infiltrations.push_back( + std::unique_ptr(new Infiltration(m_errorStream, m_db, number, infiltrationData)) + ); +} +void SQLite::addVentilationData( int const number, DataHeatBalance::VentilationData const & ventilationData ) +{ + ventilations.push_back( + std::unique_ptr(new Ventilation(m_errorStream, m_db, number, ventilationData)) + ); +} +void SQLite::addRoomAirModelData( int const number, DataRoomAirModel::AirModelData const & roomAirModelData ) +{ + roomAirModels.push_back( + std::unique_ptr(new RoomAirModel(m_errorStream, m_db, number, roomAirModelData)) + ); } -void SQLite::createSQLiteInfiltrationTable() +bool SQLite::ZoneGroup::insertIntoSQLite ( sqlite3_stmt * insertStmt ) { - for(int stmtNum = 1; stmtNum <= DataHeatBalance::TotInfiltration; ++stmtNum) { - auto const & infiltration = DataHeatBalance::Infiltration(stmtNum); - sqliteBindInteger(m_infiltrationInsertStmt, 1, stmtNum); - sqliteBindText(m_infiltrationInsertStmt, 2, infiltration.Name); - sqliteBindForeignKey(m_infiltrationInsertStmt, 3, infiltration.ZonePtr); - sqliteBindForeignKey(m_infiltrationInsertStmt, 4, infiltration.SchedPtr); - sqliteBindDouble(m_infiltrationInsertStmt, 5, infiltration.DesignLevel); + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zoneList); + sqliteBindInteger(insertStmt, 4, multiplier); - sqliteStepCommand(m_infiltrationInsertStmt); - sqliteResetCommand(m_infiltrationInsertStmt); - } + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; } - -void SQLite::createSQLiteVentilationTable() +bool SQLite::Material::insertIntoSQLite ( sqlite3_stmt * insertStmt ) { - for(int stmtNum = 1; stmtNum <= DataHeatBalance::TotVentilation; ++stmtNum) { - auto const & ventilation = DataHeatBalance::Ventilation(stmtNum); - sqliteBindInteger(m_ventilationInsertStmt, 1, stmtNum); - sqliteBindText(m_ventilationInsertStmt, 2, ventilation.Name); - sqliteBindForeignKey(m_ventilationInsertStmt, 3, ventilation.ZonePtr); - sqliteBindForeignKey(m_ventilationInsertStmt, 4, ventilation.SchedPtr); - sqliteBindDouble(m_ventilationInsertStmt, 5, ventilation.DesignLevel); + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindInteger(insertStmt, 3, group); + sqliteBindInteger(insertStmt, 4, roughness); + sqliteBindDouble(insertStmt, 5, conductivity); + sqliteBindDouble(insertStmt, 6, density); + sqliteBindDouble(insertStmt, 7, isoMoistCap); + sqliteBindDouble(insertStmt, 8, porosity); + sqliteBindDouble(insertStmt, 9, resistance); + sqliteBindLogical(insertStmt, 10, rOnly); + sqliteBindDouble(insertStmt, 11, specHeat); + sqliteBindDouble(insertStmt, 12, thermGradCoef); + sqliteBindDouble(insertStmt, 13, thickness); + sqliteBindDouble(insertStmt, 14, vaporDiffus); - sqliteStepCommand(m_ventilationInsertStmt); - sqliteResetCommand(m_ventilationInsertStmt); - } + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; } +bool SQLite::Construction::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindInteger(insertStmt, 3, totLayers); + sqliteBindInteger(insertStmt, 4, totSolidLayers); + sqliteBindInteger(insertStmt, 5, totGlassLayers); + sqliteBindDouble(insertStmt, 6, insideAbsorpVis); + sqliteBindDouble(insertStmt, 7, outsideAbsorpVis); + sqliteBindDouble(insertStmt, 8, insideAbsorpSolar); + sqliteBindDouble(insertStmt, 9, outsideAbsorpSolar); + sqliteBindDouble(insertStmt, 10, insideAbsorpThermal); + sqliteBindDouble(insertStmt, 11, outsideAbsorpThermal); + sqliteBindInteger(insertStmt, 12, outsideRoughness); + sqliteBindLogical(insertStmt, 13, typeIsWindow); + sqliteBindDouble(insertStmt, 14, uValue); -void SQLite::createSQLiteSurfacesTable() -{ - for(int surfaceNumber = 1; surfaceNumber <= DataSurfaces::TotSurfaces; ++surfaceNumber) { - auto const & surface = DataSurfaces::Surface(surfaceNumber); - sqliteBindInteger(m_surfaceInsertStmt, 1, surfaceNumber); - sqliteBindText(m_surfaceInsertStmt, 2, surface.Name); - sqliteBindForeignKey(m_surfaceInsertStmt, 3, surface.Construction); - sqliteBindText(m_surfaceInsertStmt, 4, DataSurfaces::cSurfaceClass(surface.Class)); - sqliteBindDouble(m_surfaceInsertStmt, 5, surface.Area); - sqliteBindDouble(m_surfaceInsertStmt, 6, surface.GrossArea); - sqliteBindDouble(m_surfaceInsertStmt, 7, surface.Perimeter); - sqliteBindDouble(m_surfaceInsertStmt, 8, surface.Azimuth); - sqliteBindDouble(m_surfaceInsertStmt, 9, surface.Height); - sqliteBindDouble(m_surfaceInsertStmt, 10, surface.Reveal); - sqliteBindInteger(m_surfaceInsertStmt, 11, surface.Shape); - sqliteBindInteger(m_surfaceInsertStmt, 12, surface.Sides); - sqliteBindDouble(m_surfaceInsertStmt, 13, surface.Tilt); - sqliteBindDouble(m_surfaceInsertStmt, 14, surface.Width); - sqliteBindLogical(m_surfaceInsertStmt, 15, surface.HeatTransSurf); - sqliteBindForeignKey(m_surfaceInsertStmt, 16, surface.BaseSurf); - sqliteBindForeignKey(m_surfaceInsertStmt, 17, surface.Zone); - sqliteBindInteger(m_surfaceInsertStmt, 18, surface.ExtBoundCond); - sqliteBindLogical(m_surfaceInsertStmt, 19, surface.ExtSolar); - sqliteBindLogical(m_surfaceInsertStmt, 20, surface.ExtWind); - - sqliteStepCommand(m_surfaceInsertStmt); - sqliteResetCommand(m_surfaceInsertStmt); - } + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; } +bool SQLite::Construction::insertIntoSQLite ( sqlite3_stmt * insertStmt, sqlite3_stmt * subInsertStmt ) +{ + bool constructionInsertValid = insertIntoSQLite( insertStmt ); + if ( !constructionInsertValid ) return false; + + bool valid = true; + for(auto const & constructionLayer : constructionLayers) { + bool validInsert = constructionLayer->insertIntoSQLite( subInsertStmt ); + if ( valid && !validInsert ) valid = false; + } + return valid; +} +bool SQLite::Construction::ConstructionLayer::insertIntoSQLite( sqlite3_stmt * insertStmt ) +{ + sqliteBindForeignKey(insertStmt, 1, constructNumber); + sqliteBindInteger(insertStmt, 2, layerNumber); + sqliteBindForeignKey(insertStmt, 3, layerPoint); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalLighting::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedulePtr); + sqliteBindDouble(insertStmt, 5, designLevel); + sqliteBindDouble(insertStmt, 6, fractionReturnAir); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionShortWave); + sqliteBindDouble(insertStmt, 9, fractionReplaceable); + sqliteBindDouble(insertStmt, 10, fractionConvected); + sqliteBindText(insertStmt, 11, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalPeople::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindDouble(insertStmt, 4, numberOfPeople); + sqliteBindForeignKey(insertStmt, 5, numberOfPeoplePtr); + sqliteBindForeignKey(insertStmt, 6, activityLevelPtr); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionConvected); + sqliteBindForeignKey(insertStmt, 9, workEffPtr); + sqliteBindForeignKey(insertStmt, 10, clothingPtr); + sqliteBindForeignKey(insertStmt, 11, airVelocityPtr); + sqliteBindLogical(insertStmt, 12, fanger); + sqliteBindLogical(insertStmt, 13, pierce); + sqliteBindLogical(insertStmt, 14, ksu); + sqliteBindInteger(insertStmt, 15, mrtCalcType); + sqliteBindForeignKey(insertStmt, 16, surfacePtr); + sqliteBindText(insertStmt, 17, angleFactorListName); + sqliteBindInteger(insertStmt, 18, angleFactorListPtr); + sqliteBindDouble(insertStmt, 19, userSpecSensFrac); + sqliteBindLogical(insertStmt, 20, show55Warning); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalElectricEquipment::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedulePtr); + sqliteBindDouble(insertStmt, 5, designLevel); + sqliteBindDouble(insertStmt, 6, fractionLatent); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionLost); + sqliteBindDouble(insertStmt, 9, fractionConvected); + sqliteBindText(insertStmt, 10, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalGasEquipment::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedulePtr); + sqliteBindDouble(insertStmt, 5, designLevel); + sqliteBindDouble(insertStmt, 6, fractionLatent); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionLost); + sqliteBindDouble(insertStmt, 9, fractionConvected); + sqliteBindText(insertStmt, 10, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalSteamEquipment::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedulePtr); + sqliteBindDouble(insertStmt, 5, designLevel); + sqliteBindDouble(insertStmt, 6, fractionLatent); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionLost); + sqliteBindDouble(insertStmt, 9, fractionConvected); + sqliteBindText(insertStmt, 10, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalHotWaterEquipment::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedulePtr); + sqliteBindDouble(insertStmt, 5, designLevel); + sqliteBindDouble(insertStmt, 6, fractionLatent); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionLost); + sqliteBindDouble(insertStmt, 9, fractionConvected); + sqliteBindText(insertStmt, 10, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalOtherEquipment::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedulePtr); + sqliteBindDouble(insertStmt, 5, designLevel); + sqliteBindDouble(insertStmt, 6, fractionLatent); + sqliteBindDouble(insertStmt, 7, fractionRadiant); + sqliteBindDouble(insertStmt, 8, fractionLost); + sqliteBindDouble(insertStmt, 9, fractionConvected); + sqliteBindText(insertStmt, 10, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::NominalBaseboardHeat::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedPtr); + sqliteBindDouble(insertStmt, 5, capatLowTemperature); + sqliteBindDouble(insertStmt, 6, lowTemperature); + sqliteBindDouble(insertStmt, 7, capatHighTemperature); + sqliteBindDouble(insertStmt, 8, highTemperature); + sqliteBindDouble(insertStmt, 9, fractionRadiant); + sqliteBindDouble(insertStmt, 10, fractionConvected); + sqliteBindText(insertStmt, 11, endUseSubcategory); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::Infiltration::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedPtr); + sqliteBindDouble(insertStmt, 5, designLevel); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::Ventilation::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, zonePtr); + sqliteBindForeignKey(insertStmt, 4, schedPtr); + sqliteBindDouble(insertStmt, 5, designLevel); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} +bool SQLite::RoomAirModel::insertIntoSQLite ( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, airModelName); + sqliteBindInteger(insertStmt, 3, airModelType); + sqliteBindInteger(insertStmt, 4, tempCoupleScheme); + sqliteBindLogical(insertStmt, 5, simAirModel); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} + +bool SQLite::Surface::insertIntoSQLite( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindForeignKey(insertStmt, 3, construction); + sqliteBindText(insertStmt, 4, surfaceClass); + sqliteBindDouble(insertStmt, 5, area); + sqliteBindDouble(insertStmt, 6, grossArea); + sqliteBindDouble(insertStmt, 7, perimeter); + sqliteBindDouble(insertStmt, 8, azimuth); + sqliteBindDouble(insertStmt, 9, height); + sqliteBindDouble(insertStmt, 10, reveal); + sqliteBindInteger(insertStmt, 11, shape); + sqliteBindInteger(insertStmt, 12, sides); + sqliteBindDouble(insertStmt, 13, tilt); + sqliteBindDouble(insertStmt, 14, width); + sqliteBindLogical(insertStmt, 15, heatTransSurf); + sqliteBindForeignKey(insertStmt, 16, baseSurf); + sqliteBindForeignKey(insertStmt, 17, zone); + sqliteBindInteger(insertStmt, 18, extBoundCond); + sqliteBindLogical(insertStmt, 19, extSolar); + sqliteBindLogical(insertStmt, 20, extWind); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} + +bool SQLite::ZoneList::insertIntoSQLite( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} + +bool SQLite::ZoneList::insertIntoSQLite( sqlite3_stmt * insertStmt, sqlite3_stmt * subInsertStmt ) +{ + bool zoneListInsertValid = insertIntoSQLite( insertStmt ); + if ( !zoneListInsertValid ) return false; + bool valid = true; + for ( int i = 1; i <= zones.size(); ++i ) { + sqliteBindForeignKey(subInsertStmt, 1, number); + sqliteBindForeignKey(subInsertStmt, 2, zones( i )); + int rc = sqliteStepCommand(subInsertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(subInsertStmt); + if ( valid && !validInsert ) valid = false; + } + return valid; +} + +bool SQLite::Schedule::insertIntoSQLite( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindText(insertStmt, 3, type); + sqliteBindDouble(insertStmt, 4, minValue); + sqliteBindDouble(insertStmt, 5, maxValue); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} + +bool SQLite::Zone::insertIntoSQLite( sqlite3_stmt * insertStmt ) +{ + sqliteBindInteger(insertStmt, 1, number); + sqliteBindText(insertStmt, 2, name); + sqliteBindDouble(insertStmt, 3, relNorth); + sqliteBindDouble(insertStmt, 4, originX); + sqliteBindDouble(insertStmt, 5, originY); + sqliteBindDouble(insertStmt, 6, originZ); + sqliteBindDouble(insertStmt, 7, centroidX); + sqliteBindDouble(insertStmt, 8, centroidY); + sqliteBindDouble(insertStmt, 9, centroidZ); + sqliteBindInteger(insertStmt, 10, ofType); + sqliteBindInteger(insertStmt, 11, multiplier); + sqliteBindInteger(insertStmt, 12, listMultiplier); + sqliteBindDouble(insertStmt, 13, minimumX); + sqliteBindDouble(insertStmt, 14, maximumX); + sqliteBindDouble(insertStmt, 15, minimumY); + sqliteBindDouble(insertStmt, 16, maximumY); + sqliteBindDouble(insertStmt, 17, minimumZ); + sqliteBindDouble(insertStmt, 18, maximumZ); + sqliteBindDouble(insertStmt, 19, ceilingHeight); + sqliteBindDouble(insertStmt, 20, volume); + sqliteBindInteger(insertStmt, 21, insideConvectionAlgo); + sqliteBindInteger(insertStmt, 22, outsideConvectionAlgo); + sqliteBindDouble(insertStmt, 23, floorArea); + sqliteBindDouble(insertStmt, 24, extGrossWallArea); + sqliteBindDouble(insertStmt, 25, extNetWallArea); + sqliteBindDouble(insertStmt, 26, extWindowArea); + sqliteBindLogical(insertStmt, 27, isPartOfTotalArea); + + int rc = sqliteStepCommand(insertStmt); + bool validInsert = sqliteStepValidity( rc ); + sqliteResetCommand(insertStmt); + return validInsert; +} + +SQLite::SQLiteData::SQLiteData( std::shared_ptr const & errorStream, std::shared_ptr const & db ) + : + SQLiteProcedures( errorStream, db ) +{} + +SQLiteProcedures::SQLiteProcedures( std::shared_ptr const & errorStream, std::shared_ptr const & db ) + : + m_db(db), + m_writeOutputToSQLite(true), + m_connection(nullptr), + m_errorStream(errorStream) +{} + +SQLiteProcedures::SQLiteProcedures( std::shared_ptr const & errorStream, bool writeOutputToSQLite, std::string const & dbName, std::string const & errorFileName ) + : + m_writeOutputToSQLite(writeOutputToSQLite), + m_connection(nullptr), + m_errorStream(errorStream) +{ + if( m_writeOutputToSQLite ) { + int rc = -1; + bool ok = true; -void SQLite::createSQLiteConstructionsTable() -{ - static int constructionLayerIndex = 0; - for(int constructNum = 1; constructNum <= DataHeatBalance::TotConstructs; ++constructNum) { - auto const & construction = DataHeatBalance::Construct(constructNum); - sqliteBindInteger(m_constructionInsertStmt, 1, constructNum); - sqliteBindText(m_constructionInsertStmt, 2, construction.Name); - sqliteBindInteger(m_constructionInsertStmt, 3, construction.TotLayers); - sqliteBindInteger(m_constructionInsertStmt, 4, construction.TotSolidLayers); - sqliteBindInteger(m_constructionInsertStmt, 5, construction.TotGlassLayers); - sqliteBindDouble(m_constructionInsertStmt, 6, construction.InsideAbsorpVis); - sqliteBindDouble(m_constructionInsertStmt, 7, construction.OutsideAbsorpVis); - sqliteBindDouble(m_constructionInsertStmt, 8, construction.InsideAbsorpSolar); - sqliteBindDouble(m_constructionInsertStmt, 9, construction.OutsideAbsorpSolar); - sqliteBindDouble(m_constructionInsertStmt, 10, construction.InsideAbsorpThermal); - sqliteBindDouble(m_constructionInsertStmt, 11, construction.OutsideAbsorpThermal); - sqliteBindInteger(m_constructionInsertStmt, 12, construction.OutsideRoughness); - sqliteBindLogical(m_constructionInsertStmt, 13, construction.TypeIsWindow); - - if(construction.TotGlassLayers == 0) { - sqliteBindDouble(m_constructionInsertStmt, 14, construction.UValue); + // Test if we can write to the sqlite error file + // Does there need to be a seperate sqlite.err file at all? Consider using eplusout.err + if( m_errorStream ) { + *m_errorStream << "SQLite3 message, " << errorFileName << " open for processing!" << std::endl; } else { - sqliteBindDouble(m_constructionInsertStmt, 14, DataHeatBalance::NominalU(constructNum)); + ok = false; } - sqliteStepCommand(m_constructionInsertStmt); - sqliteResetCommand(m_constructionInsertStmt); + // Test if we can create a new file named dbName + if( ok && dbName != ":memory:" ) { + std::ofstream test(dbName, std::ofstream::out | std::ofstream::trunc); + if( test.is_open() ) { + test.close(); + } else { + ok = false; + } + } - for(int layerNum = 1; layerNum <= construction.TotLayers; ++layerNum) { - ++constructionLayerIndex; - sqliteBindInteger(m_constructionLayerInsertStmt, 1, constructionLayerIndex); - sqliteBindForeignKey(m_constructionLayerInsertStmt, 2, constructNum); - sqliteBindInteger(m_constructionLayerInsertStmt, 3, layerNum); - sqliteBindForeignKey(m_constructionLayerInsertStmt, 4, construction.LayerPoint(layerNum)); + // Test if we can write to the database + // If we can't then there are probably locks on the database + if( ok ) { + sqlite3_open_v2(dbName.c_str(), &m_connection, SQLITE_OPEN_READWRITE, nullptr); + char * zErrMsg = nullptr; + rc = sqlite3_exec(m_connection, "CREATE TABLE Test(x INTEGER PRIMARY KEY)", nullptr, 0, &zErrMsg); + sqlite3_close(m_connection); + if( rc ) { + *m_errorStream << "SQLite3 message, can't get exclusive lock on existing database: " << sqlite3_errmsg(m_connection) << std::endl; + ok = false; + } else { + if (dbName != ":memory:") { + // Remove test db + rc = remove( dbName.c_str() ); + if( rc ) { + *m_errorStream << "SQLite3 message, can't remove old database: " << sqlite3_errmsg(m_connection) << std::endl; + ok = false; + } + } + } + sqlite3_free(zErrMsg); + } + + if( ok ) { + // Now open the output db for the duration of the simulation + rc = sqlite3_open_v2(dbName.c_str(), &m_connection, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, nullptr); + m_db = std::shared_ptr(m_connection, sqlite3_close); + if( rc ) { + *m_errorStream << "SQLite3 message, can't open new database: " << sqlite3_errmsg(m_connection) << std::endl; + ok = false; + } + } - sqliteStepCommand(m_constructionLayerInsertStmt); - sqliteResetCommand(m_constructionLayerInsertStmt); + if( !ok ) { + throw std::runtime_error("The SQLite database failed to open."); } } } -void SQLite::createSQLiteMaterialsTable() -{ - for(int materialNum = 1; materialNum <= DataHeatBalance::TotMaterials; ++materialNum) { - auto const & material = DataHeatBalance::Material(materialNum); - sqliteBindInteger(m_materialInsertStmt, 1, materialNum); - sqliteBindText(m_materialInsertStmt, 2, material.Name); - sqliteBindInteger(m_materialInsertStmt, 3, material.Group); - sqliteBindInteger(m_materialInsertStmt, 4, material.Roughness); - sqliteBindDouble(m_materialInsertStmt, 5, material.Conductivity); - sqliteBindDouble(m_materialInsertStmt, 6, material.Density); - sqliteBindDouble(m_materialInsertStmt, 7, material.IsoMoistCap); - sqliteBindDouble(m_materialInsertStmt, 8, material.Porosity); - sqliteBindDouble(m_materialInsertStmt, 9, material.Resistance); - sqliteBindLogical(m_materialInsertStmt, 10, material.ROnly); - sqliteBindDouble(m_materialInsertStmt, 11, material.SpecHeat); - sqliteBindDouble(m_materialInsertStmt, 12, material.ThermGradCoef); - sqliteBindDouble(m_materialInsertStmt, 13, material.Thickness); - sqliteBindDouble(m_materialInsertStmt, 14, material.VaporDiffus); - - sqliteStepCommand(m_materialInsertStmt); - sqliteResetCommand(m_materialInsertStmt); +int SQLiteProcedures::sqliteExecuteCommand(const std::string & commandBuffer) +{ + char *zErrMsg = 0; + + int rc = sqlite3_exec(m_db.get(), commandBuffer.c_str(), NULL, 0, &zErrMsg); + if( rc != SQLITE_OK ) { + *m_errorStream << zErrMsg; } + sqlite3_free(zErrMsg); + + return rc; } -void SQLite::createSQLiteZoneListTable() +int SQLiteProcedures::sqlitePrepareStatement(sqlite3_stmt* & stmt, const std::string & stmtBuffer) { - for(int listNum = 1; listNum <= DataHeatBalance::NumOfZoneLists; ++listNum) { - auto const & zoneList = DataHeatBalance::ZoneList(listNum); - for(int zoneNum = 1; zoneNum <= zoneList.NumOfZones; ++zoneNum) { - sqliteBindInteger(m_zoneListInsertStmt, 1, listNum); - sqliteBindText(m_zoneListInsertStmt, 2, zoneList.Name); - sqliteBindForeignKey(m_zoneListInsertStmt, 3, zoneList.Zone(zoneNum)); - - sqliteStepCommand(m_zoneListInsertStmt); - sqliteResetCommand(m_zoneListInsertStmt); - } + int rc = sqlite3_prepare_v2(m_db.get(), stmtBuffer.c_str(), -1, &stmt, nullptr); + if( rc != SQLITE_OK ) { + *m_errorStream << "SQLite3 message, sqlite3_prepare_v2 message: " << stmtBuffer << std::endl; } + + return rc; } -void SQLite::createSQLiteZoneGroupTable() +int SQLiteProcedures::sqliteBindText(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const std::string & textBuffer) { - for(int groupNum = 1; groupNum <= DataHeatBalance::NumOfZoneGroups; ++groupNum) { - auto const & zoneGroup = DataHeatBalance::ZoneGroup(groupNum); - sqliteBindInteger(m_zoneGroupInsertStmt, 1, groupNum); - sqliteBindText(m_zoneGroupInsertStmt, 2, zoneGroup.Name); - sqliteBindInteger(m_zoneGroupInsertStmt, 3, zoneGroup.ZoneList); + int rc = sqlite3_bind_text(stmt, stmtInsertLocationIndex, textBuffer.c_str(), -1, SQLITE_TRANSIENT); + if( rc != SQLITE_OK ) { + *m_errorStream << "SQLite3 message, sqlite3_bind_text failed: " << textBuffer << std::endl; + } + + return rc; +} - sqliteStepCommand(m_zoneGroupInsertStmt); - sqliteResetCommand(m_zoneGroupInsertStmt); +int SQLiteProcedures::sqliteBindInteger(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert) +{ + int rc = sqlite3_bind_int(stmt, stmtInsertLocationIndex, intToInsert); + if( rc != SQLITE_OK ) { + *m_errorStream << "SQLite3 message, sqlite3_bind_int failed: " << intToInsert << std::endl; } + + return rc; } -void SQLite::createSQLiteSchedulesTable() +int SQLiteProcedures::sqliteBindDouble(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const double doubleToInsert) { - int numberOfSchedules = ScheduleManager::GetNumberOfSchedules(); - for(int scheduleNumber = 1; scheduleNumber <= numberOfSchedules; ++scheduleNumber) { - sqliteBindInteger(m_scheduleInsertStmt, 1, scheduleNumber); - sqliteBindText(m_scheduleInsertStmt, 2, ScheduleManager::GetScheduleName(scheduleNumber)); - sqliteBindText(m_scheduleInsertStmt, 3, ScheduleManager::GetScheduleType(scheduleNumber)); - sqliteBindDouble(m_scheduleInsertStmt, 4, ScheduleManager::GetScheduleMinValue(scheduleNumber)); - sqliteBindDouble(m_scheduleInsertStmt, 5, ScheduleManager::GetScheduleMaxValue(scheduleNumber)); + int rc = sqlite3_bind_double(stmt, stmtInsertLocationIndex, doubleToInsert); + if( rc != SQLITE_OK ) { + *m_errorStream << "SQLite3 message, sqlite3_bind_double failed: " << doubleToInsert << std::endl; + } + + return rc; +} - sqliteStepCommand(m_scheduleInsertStmt); - sqliteResetCommand(m_scheduleInsertStmt); +int SQLiteProcedures::sqliteBindNULL(sqlite3_stmt * stmt, const int stmtInsertLocationIndex) +{ + int rc = sqlite3_bind_null(stmt, stmtInsertLocationIndex); + if( rc != SQLITE_OK ) { + *m_errorStream << "SQLite3 message, sqlite3_bind_null failed" << std::endl; } + + return rc; } -void SQLite::createZoneExtendedOutput() +int SQLiteProcedures::sqliteBindForeignKey(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert) { - if( m_writeOutputToSQLite ) { - createSQLiteZoneTable(); - createSQLiteZoneListTable(); - createSQLiteZoneGroupTable(); - createSQLiteSchedulesTable(); - createSQLiteMaterialsTable(); - createSQLiteConstructionsTable(); - createSQLiteSurfacesTable(); - createSQLiteNominalLightingTable(); - createSQLiteNominalPeopleTable(); - createSQLiteNominalElectricEquipmentTable(); - createSQLiteNominalGasEquipmentTable(); - createSQLiteNominalSteamEquipmentTable(); - createSQLiteNominalHotWaterEquipmentTable(); - createSQLiteNominalOtherEquipmentTable(); - createSQLiteNominalBaseboardHeatTable(); - createSQLiteInfiltrationTable(); - createSQLiteVentilationTable(); - createSQLiteRoomAirModelTable(); + int rc = -1; + if ( intToInsert > 0 ) { + rc = sqlite3_bind_int(stmt, stmtInsertLocationIndex, intToInsert); + } else { + rc = sqlite3_bind_null(stmt, stmtInsertLocationIndex); } + if( rc != SQLITE_OK ) { + *m_errorStream << "SQLite3 message, sqliteBindForeignKey failed: " << intToInsert << std::endl; + } + + return rc; } -void SQLite::createSQLiteEnvironmentPeriodRecord() +int SQLiteProcedures::sqliteBindLogical(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const bool valueToInsert) { - if( m_writeOutputToSQLite ) { - sqliteBindInteger(m_environmentPeriodInsertStmt, 1, DataEnvironment::CurEnvirNum); - sqliteBindForeignKey(m_environmentPeriodInsertStmt, 2, 1); - sqliteBindText(m_environmentPeriodInsertStmt, 3, DataEnvironment::EnvironmentName); - sqliteBindInteger(m_environmentPeriodInsertStmt, 4, DataGlobals::KindOfSim); + return sqliteBindInteger(stmt,stmtInsertLocationIndex, valueToInsert ? 1 : 0); +} - sqliteStepCommand(m_environmentPeriodInsertStmt); - sqliteResetCommand(m_environmentPeriodInsertStmt); +bool SQLiteProcedures::sqliteStepValidity( int const rc ) +{ + bool isValid = false; + switch(rc) { + case SQLITE_DONE: + case SQLITE_OK: + case SQLITE_ROW: + isValid = true; + break; + default: + break; } + return isValid; } -namespace SQLiteProcedures { +int SQLiteProcedures::sqliteStepCommand(sqlite3_stmt * stmt) +{ + int rc = sqlite3_step(stmt); + switch(rc) { + case SQLITE_DONE: + case SQLITE_OK: + case SQLITE_ROW: + break; + default: + *m_errorStream << "SQLite3 message, sqlite3_step message: " << sqlite3_errmsg(m_db.get()) << std::endl; + break; + } + + return rc; +} + +int SQLiteProcedures::sqliteResetCommand(sqlite3_stmt * stmt) +{ + return sqlite3_reset(stmt); +} -//// Data -//bool WriteOutputToSQLite( false ); -//bool WriteTabularDataToSQLite( false ); +// int SQLiteProcedures::sqliteClearBindings(sqlite3_stmt * stmt) +// { +// return sqlite3_clear_bindings(stmt); +// } -} // SQLiteProcedures +// int SQLiteProcedures::sqliteFinalizeCommand(sqlite3_stmt * stmt) +// { +// return sqlite3_finalize(stmt); +// } } // EnergyPlus diff --git a/src/EnergyPlus/SQLiteProcedures.hh b/src/EnergyPlus/SQLiteProcedures.hh index 2088020d15b..30b824d35ac 100644 --- a/src/EnergyPlus/SQLiteProcedures.hh +++ b/src/EnergyPlus/SQLiteProcedures.hh @@ -8,20 +8,75 @@ // EnergyPlus Headers #include +#include "DataHeatBalance.hh" +#include "DataRoomAirModel.hh" #include #include +#include #include namespace EnergyPlus { -class SQLite { +class SQLiteProcedures +{ +protected: + SQLiteProcedures( std::shared_ptr const & errorStream, std::shared_ptr const & db ); + SQLiteProcedures( std::shared_ptr const & errorStream, bool writeOutputToSQLite, std::string const & dbName, std::string const & errorFileName ); + + int sqliteExecuteCommand(const std::string & commandBuffer); + int sqlitePrepareStatement(sqlite3_stmt* & stmt, const std::string & stmtBuffer); + + int sqliteBindText(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const std::string & textBuffer); + int sqliteBindInteger(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert); + int sqliteBindDouble(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const double doubleToInsert); + int sqliteBindNULL(sqlite3_stmt * stmt, const int stmtInsertLocationIndex); + int sqliteBindLogical(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const bool valueToInsert); + + // This assumes a Foreign Key must be greater than 0 to be a valid Foreign Key, otherwise it sets the field to NULL. + int sqliteBindForeignKey(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert); + + bool sqliteStepValidity( int const rc ); + int sqliteStepCommand(sqlite3_stmt * stmt); + int sqliteResetCommand(sqlite3_stmt * stmt); + // int sqliteClearBindings(sqlite3_stmt * stmt); + // int sqliteFinalizeCommand(sqlite3_stmt * stmt); + + bool m_writeOutputToSQLite; + std::shared_ptr m_errorStream; + sqlite3 * m_connection; + std::shared_ptr m_db; +}; + +class SQLite : SQLiteProcedures { public: + // Friend SQLiteFixture which is the gtest fixture class for testing SQLite + // This allows for testing of private methods in SQLite + friend class SQLiteFixture; + + void addScheduleData( int const number, std::string const name, std::string const type, double const minValue, double const maxValue ); + void addZoneData( int const number, DataHeatBalance::ZoneData const & zoneData ); + void addZoneListData( int const number, DataHeatBalance::ZoneListData const & zoneListData ); + void addSurfaceData( int const number, DataSurfaces::SurfaceData const & surfaceData, std::string const surfaceClass ); + void addZoneGroupData( int const number, DataHeatBalance::ZoneGroupData const & zoneGroupData ); + void addMaterialData( int const number, DataHeatBalance::MaterialProperties const & materialData ); + void addConstructionData( int const number, DataHeatBalance::ConstructionData const & constructionData, double const & constructionUValue ); + void addNominalLightingData( int const number, DataHeatBalance::LightsData const & nominalLightingData ); + void addNominalPeopleData( int const number, DataHeatBalance::PeopleData const & nominalPeopleData ); + void addNominalElectricEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalElectricEquipmentData ); + void addNominalGasEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalGasEquipmentData ); + void addNominalSteamEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalSteamEquipmentData ); + void addNominalHotWaterEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalHotWaterEquipmentData ); + void addNominalOtherEquipmentData( int const number, DataHeatBalance::ZoneEquipData const & nominalOtherEquipmentData ); + void addNominalBaseboardData( int const number, DataHeatBalance::BBHeatData const & nominalBaseboardData ); + void addInfiltrationData( int const number, DataHeatBalance::InfiltrationData const & infiltrationData ); + void addVentilationData( int const number, DataHeatBalance::VentilationData const & ventilationData ); + void addRoomAirModelData( int const number, DataRoomAirModel::AirModelData const & roomAirModelData ); // Open the DB and prepare for writing data // Create all of the tables on construction - SQLite(); + SQLite( std::shared_ptr errorStream, std::string const & dbName, std::string const & errorFileName, bool writeOutputToSQLite = false, bool writeTabularDataToSQLite = false ); // Close database and free prepared statements virtual ~SQLite(); @@ -63,13 +118,15 @@ public: int const reportingInterval, int const recordIndex, int const CumlativeSimulationDays, + int const curEnvirNum, Optional_int_const Month = _, Optional_int_const DayOfMonth = _, Optional_int_const Hour = _, Optional< Real64 const > EndMinute = _, Optional< Real64 const > StartMinute = _, Optional_int_const DST = _, - Optional_string_const DayType = _ + Optional_string_const DayType = _, + bool const warmupFlag = false ); void addSQLiteZoneSizingRecord( @@ -99,8 +156,6 @@ public: Real64 const VarValue // the value from the sizing calculation ); - void createSQLiteRoomAirModelTable(); - void createSQLiteDaylightMapTitle( int const mapNum, std::string const & mapName, @@ -117,10 +172,10 @@ public: int const dayOfMonth, int const hourOfDay, int const nX, - FArray1S< Real64 > const & x, + FArray1< Real64 > const & x, int const nY, - FArray1S< Real64 > const & y, - FArray2S< Real64 > const & illuminance + FArray1< Real64 > const & y, + FArray2< Real64 > const & illuminance ); void createSQLiteTabularDataRecords( @@ -132,7 +187,7 @@ public: std::string const & TableName ); - void createSQLiteSimulationsRecord( int const ID ); + void createSQLiteSimulationsRecord( int const ID, const std::string& verString, const std::string& currentDateTime ); void createSQLiteErrorRecord( int const simulationIndex, @@ -143,16 +198,11 @@ public: void updateSQLiteErrorRecord( std::string const & errorMessage ); - void updateSQLiteSimulationRecord( - bool const completed, - bool const completedSuccessfully - ); + void updateSQLiteSimulationRecord( bool const completed, bool const completedSuccessfully, int const id = 1 ); - void updateSQLiteSimulationRecord( - int const id - ); + void updateSQLiteSimulationRecord( int const id, int const numOfTimeStepInHour ); - void createSQLiteEnvironmentPeriodRecord(); + void createSQLiteEnvironmentPeriodRecord( const int curEnvirNum, const std::string& environmentName, const int kindOfSim, const int simulationIndex = 1 ); void sqliteWriteMessage(const std::string & message); @@ -161,42 +211,6 @@ public: void initializeIndexes(); private: - - void createSQLiteZoneTable(); - void createSQLiteNominalLightingTable(); - void createSQLiteNominalPeopleTable(); - void createSQLiteNominalElectricEquipmentTable(); - void createSQLiteNominalGasEquipmentTable(); - void createSQLiteNominalSteamEquipmentTable(); - void createSQLiteNominalHotWaterEquipmentTable(); - void createSQLiteNominalOtherEquipmentTable(); - void createSQLiteNominalBaseboardHeatTable(); - void createSQLiteInfiltrationTable(); - void createSQLiteVentilationTable(); - void createSQLiteSurfacesTable(); - void createSQLiteConstructionsTable(); - void createSQLiteMaterialsTable(); - void createSQLiteZoneListTable(); - void createSQLiteZoneGroupTable(); - void createSQLiteSchedulesTable(); - - int sqliteExecuteCommand(const std::string & commandBuffer); - int sqlitePrepareStatement(sqlite3_stmt* & stmt, const std::string & stmtBuffer); - - int sqliteBindText(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const std::string & textBuffer); - int sqliteBindInteger(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert); - int sqliteBindDouble(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const double doubleToInsert); - int sqliteBindNULL(sqlite3_stmt * stmt, const int stmtInsertLocationIndex); - int sqliteBindLogical(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const bool valueToInsert); - - // This assumes a Foreign Key must be greater than 0 to be a valid Foreign Key, otherwise it sets the field to NULL. - int sqliteBindForeignKey(sqlite3_stmt * stmt, const int stmtInsertLocationIndex, const int intToInsert); - - int sqliteStepCommand(sqlite3_stmt * stmt); - int sqliteResetCommand(sqlite3_stmt * stmt); - int sqliteClearBindings(sqlite3_stmt * stmt); - int sqliteFinalizeCommand(sqlite3_stmt * stmt); - int createSQLiteStringTableRecord(std::string const & stringValue, int const stringType); static std::string storageType(const int storageTypeIndex); @@ -215,6 +229,7 @@ private: void initializeReportDataTables(); void initializeTimeIndicesTable(); void initializeZoneInfoTable(); + void initializeZoneInfoZoneListTable(); void initializeNominalPeopleTable(); void initializeNominalLightingTable(); void initializeNominalElectricEquipmentTable(); @@ -243,17 +258,14 @@ private: void initializeTabularDataTable(); void initializeTabularDataView(); - bool m_writeOutputToSQLite; bool m_writeTabularDataToSQLite; int m_sqlDBTimeIndex; - std::ofstream m_errorStream; - sqlite3 * m_db; - std::string m_dbName; sqlite3_stmt * m_reportDataInsertStmt; sqlite3_stmt * m_reportExtendedDataInsertStmt; sqlite3_stmt * m_reportDictionaryInsertStmt; sqlite3_stmt * m_timeIndexInsertStmt; sqlite3_stmt * m_zoneInfoInsertStmt; + sqlite3_stmt * m_zoneInfoZoneListInsertStmt; sqlite3_stmt * m_nominalLightingInsertStmt; sqlite3_stmt * m_nominalElectricEquipmentInsertStmt; sqlite3_stmt * m_nominalGasEquipmentInsertStmt; @@ -302,10 +314,675 @@ private: static const int RowNameId; static const int ColumnNameId; static const int UnitsId; + + class SQLiteData : public SQLiteProcedures + { + protected: + SQLiteData( std::shared_ptr const & errorStream, std::shared_ptr const & db ); + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ) = 0; + }; + + class Schedule : SQLiteData + { + public: + Schedule( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const scheduleNumber, std::string const scheduleName, + std::string const scheduleType, double const scheduleMinValue, double const scheduleMaxValue ) : + SQLiteData( errorStream, db ), + number( scheduleNumber ), + name( scheduleName ), + type( scheduleType ), + minValue( scheduleMinValue ), + maxValue( scheduleMaxValue ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const name; + std::string const type; + double const minValue; + double const maxValue; + }; + + class Surface : SQLiteData + { + public: + Surface( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const surfaceNumber, DataSurfaces::SurfaceData const & surfaceData, std::string const surfaceClass ) : + SQLiteData( errorStream, db ), + number( surfaceNumber ), + name( surfaceData.Name ), + construction( surfaceData.Construction ), + surfaceClass( surfaceClass ), + area( surfaceData.Area ), + grossArea( surfaceData.GrossArea ), + perimeter( surfaceData.Perimeter ), + azimuth( surfaceData.Azimuth ), + height( surfaceData.Height ), + reveal( surfaceData.Reveal ), + shape( surfaceData.Shape ), + sides( surfaceData.Sides ), + tilt( surfaceData.Tilt ), + width( surfaceData.Width ), + heatTransSurf( surfaceData.HeatTransSurf ), + baseSurf( surfaceData.BaseSurf ), + zone( surfaceData.Zone ), + extBoundCond( surfaceData.ExtBoundCond ), + extSolar( surfaceData.ExtSolar ), + extWind( surfaceData.ExtWind ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & construction; + std::string const surfaceClass; + double const & area; + double const & grossArea; + double const & perimeter; + double const & azimuth; + double const & height; + double const & reveal; + int const & shape; + int const & sides; + double const & tilt; + double const & width; + bool const & heatTransSurf; + int const & baseSurf; + int const & zone; + int const & extBoundCond; + bool const & extSolar; + bool const & extWind; + }; + + class Zone : SQLiteData + { + public: + Zone( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const zoneNumber, DataHeatBalance::ZoneData const & zoneData ) : + SQLiteData( errorStream, db ), + number( zoneNumber ), + name( zoneData.Name ), + relNorth( zoneData.RelNorth ), + originX( zoneData.OriginX ), + originY( zoneData.OriginY ), + originZ( zoneData.OriginZ ), + centroidX( zoneData.Centroid.x ), + centroidY( zoneData.Centroid.y ), + centroidZ( zoneData.Centroid.z ), + ofType( zoneData.OfType ), + multiplier( zoneData.Multiplier ), + listMultiplier( zoneData.ListMultiplier ), + minimumX( zoneData.MinimumX ), + maximumX( zoneData.MaximumX ), + minimumY( zoneData.MinimumY ), + maximumY( zoneData.MaximumY ), + minimumZ( zoneData.MinimumZ ), + maximumZ( zoneData.MaximumZ ), + ceilingHeight( zoneData.CeilingHeight ), + volume( zoneData.Volume ), + insideConvectionAlgo( zoneData.InsideConvectionAlgo ), + outsideConvectionAlgo( zoneData.OutsideConvectionAlgo ), + floorArea( zoneData.FloorArea ), + extGrossWallArea( zoneData.ExtGrossWallArea ), + extNetWallArea( zoneData.ExtNetWallArea ), + extWindowArea( zoneData.ExtWindowArea ), + isPartOfTotalArea( zoneData.isPartOfTotalArea ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + double const & relNorth; + double const & originX; + double const & originY; + double const & originZ; + double const & centroidX; + double const & centroidY; + double const & centroidZ; + int const & ofType; + int const & multiplier; + int const & listMultiplier; + double const & minimumX; + double const & maximumX; + double const & minimumY; + double const & maximumY; + double const & minimumZ; + double const & maximumZ; + double const & ceilingHeight; + double const & volume; + int const & insideConvectionAlgo; + int const & outsideConvectionAlgo; + double const & floorArea; + double const & extGrossWallArea; + double const & extNetWallArea; + double const & extWindowArea; + bool const & isPartOfTotalArea; + }; + + class ZoneList : SQLiteData + { + public: + ZoneList( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const zoneListNumber, DataHeatBalance::ZoneListData const & zoneListData ) : + SQLiteData( errorStream, db ), + number( zoneListNumber ), + name( zoneListData.Name ), + zones( zoneListData.Zone ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt, sqlite3_stmt * subInsertStmt ); + + private: + int const number; + std::string const & name; + FArray1D_int const & zones; + }; + + class ZoneGroup : SQLiteData + { + public: + ZoneGroup( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const zoneGroupNumber, DataHeatBalance::ZoneGroupData const & zoneGroupData ) : + SQLiteData( errorStream, db ), + number( zoneGroupNumber ), + name( zoneGroupData.Name ), + zoneList( zoneGroupData.ZoneList ), + multiplier( zoneGroupData.Multiplier ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zoneList; + int const & multiplier; + }; + + class Material : SQLiteData + { + public: + Material( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const materialNumber, DataHeatBalance::MaterialProperties const & materialData ) : + SQLiteData( errorStream, db ), + number( materialNumber ), + name( materialData.Name ), + group( materialData.Group ), + roughness( materialData.Roughness ), + conductivity( materialData.Conductivity ), + density( materialData.Density ), + isoMoistCap( materialData.IsoMoistCap ), + porosity( materialData.Porosity ), + resistance( materialData.Resistance ), + rOnly( materialData.ROnly ), + specHeat( materialData.SpecHeat ), + thermGradCoef( materialData.ThermGradCoef ), + thickness( materialData.Thickness ), + vaporDiffus( materialData.VaporDiffus ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & group; + int const & roughness; + double const & conductivity; + double const & density; + double const & isoMoistCap; + double const & porosity; + double const & resistance; + bool const & rOnly; + double const & specHeat; + double const & thermGradCoef; + double const & thickness; + double const & vaporDiffus; + }; + + class Construction : SQLiteData + { + public: + Construction( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const constructionNumber, DataHeatBalance::ConstructionData const & constructionData, double const & constructionUValue ) : + SQLiteData( errorStream, db ), + number( constructionNumber ), + name( constructionData.Name ), + totLayers( constructionData.TotLayers ), + totSolidLayers( constructionData.TotSolidLayers ), + totGlassLayers( constructionData.TotGlassLayers ), + insideAbsorpVis( constructionData.InsideAbsorpVis ), + outsideAbsorpVis( constructionData.OutsideAbsorpVis ), + insideAbsorpSolar( constructionData.InsideAbsorpSolar ), + outsideAbsorpSolar( constructionData.OutsideAbsorpSolar ), + insideAbsorpThermal( constructionData.InsideAbsorpThermal ), + outsideAbsorpThermal( constructionData.OutsideAbsorpThermal ), + outsideRoughness( constructionData.OutsideRoughness ), + typeIsWindow( constructionData.TypeIsWindow ), + uValue( constructionUValue ) + { + for(int layerNum = 1; layerNum <= constructionData.TotLayers; ++layerNum) { + constructionLayers.push_back( + std::unique_ptr(new ConstructionLayer(m_errorStream, m_db, number, layerNum, constructionData.LayerPoint(layerNum))) + ); + } + } + + // only inserts construction + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + // inserts construction and construction layers + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt, sqlite3_stmt * subInsertStmt ); + + private: + int const number; + std::string const & name; + int const & totLayers; + int const & totSolidLayers; + int const & totGlassLayers; + double const & insideAbsorpVis; + double const & outsideAbsorpVis; + double const & insideAbsorpSolar; + double const & outsideAbsorpSolar; + double const & insideAbsorpThermal; + double const & outsideAbsorpThermal; + int const & outsideRoughness; + bool const & typeIsWindow; + double const & uValue; + + class ConstructionLayer : SQLiteData + { + public: + ConstructionLayer( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const & constructNumber, int const layerNumber, int const & layerPoint ) : + SQLiteData( errorStream, db ), + constructNumber( constructNumber ), + layerNumber( layerNumber ), + layerPoint( layerPoint ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const & constructNumber; + int const layerNumber; + int const & layerPoint; + }; + + std::vector< std::unique_ptr > constructionLayers; + }; + + class NominalLighting : SQLiteData + { + public: + NominalLighting( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalLightingNumber, DataHeatBalance::LightsData const & nominalLightingData ) : + SQLiteData( errorStream, db ), + number( nominalLightingNumber ), + name( nominalLightingData.Name ), + zonePtr( nominalLightingData.ZonePtr ), + schedulePtr( nominalLightingData.SchedPtr ), + designLevel( nominalLightingData.DesignLevel ), + fractionReturnAir( nominalLightingData.FractionReturnAir ), + fractionRadiant( nominalLightingData.FractionRadiant ), + fractionShortWave( nominalLightingData.FractionShortWave ), + fractionReplaceable( nominalLightingData.FractionReplaceable ), + fractionConvected( nominalLightingData.FractionConvected ), + endUseSubcategory( nominalLightingData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedulePtr; + double const & designLevel; + double const & fractionReturnAir; + double const & fractionRadiant; + double const & fractionShortWave; + double const & fractionReplaceable; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class NominalPeople : SQLiteData + { + public: + NominalPeople( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalPeopleNumber, DataHeatBalance::PeopleData const & nominalPeopleData ) : + SQLiteData( errorStream, db ), + number( nominalPeopleNumber ), + name( nominalPeopleData.Name ), + zonePtr( nominalPeopleData.ZonePtr ), + numberOfPeople( nominalPeopleData.NumberOfPeople ), + numberOfPeoplePtr( nominalPeopleData.NumberOfPeoplePtr ), + activityLevelPtr( nominalPeopleData.ActivityLevelPtr ), + fractionRadiant( nominalPeopleData.FractionRadiant ), + fractionConvected( nominalPeopleData.FractionConvected ), + workEffPtr( nominalPeopleData.WorkEffPtr ), + clothingPtr( nominalPeopleData.ClothingPtr ), + airVelocityPtr( nominalPeopleData.AirVelocityPtr ), + fanger( nominalPeopleData.Fanger ), + pierce( nominalPeopleData.Pierce ), + ksu( nominalPeopleData.KSU ), + mrtCalcType( nominalPeopleData.MRTCalcType ), + surfacePtr( nominalPeopleData.SurfacePtr ), + angleFactorListName( nominalPeopleData.AngleFactorListName ), + angleFactorListPtr( nominalPeopleData.AngleFactorListPtr ), + userSpecSensFrac( nominalPeopleData.UserSpecSensFrac ), + show55Warning( nominalPeopleData.Show55Warning ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + double const & numberOfPeople; + int const & numberOfPeoplePtr; + int const & activityLevelPtr; + double const & fractionRadiant; + double const & fractionConvected; + int const & workEffPtr; + int const & clothingPtr; + int const & airVelocityPtr; + bool const & fanger; + bool const & pierce; + bool const & ksu; + int const & mrtCalcType; + int const & surfacePtr; + std::string const & angleFactorListName; + int const & angleFactorListPtr; + double const & userSpecSensFrac; + bool const & show55Warning; + }; + + class NominalElectricEquipment : SQLiteData + { + public: + NominalElectricEquipment( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalElectricEquipmentNumber, DataHeatBalance::ZoneEquipData const & nominalElectricEquipmentData ) : + SQLiteData( errorStream, db ), + number( nominalElectricEquipmentNumber ), + name( nominalElectricEquipmentData.Name ), + zonePtr( nominalElectricEquipmentData.ZonePtr ), + schedulePtr( nominalElectricEquipmentData.SchedPtr ), + designLevel( nominalElectricEquipmentData.DesignLevel ), + fractionLatent( nominalElectricEquipmentData.FractionLatent ), + fractionRadiant( nominalElectricEquipmentData.FractionRadiant ), + fractionLost( nominalElectricEquipmentData.FractionLost ), + fractionConvected( nominalElectricEquipmentData.FractionConvected ), + endUseSubcategory( nominalElectricEquipmentData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedulePtr; + double const & designLevel; + double const & fractionLatent; + double const & fractionRadiant; + double const & fractionLost; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class NominalGasEquipment : SQLiteData + { + public: + NominalGasEquipment( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalGasEquipmentNumber, DataHeatBalance::ZoneEquipData const & nominalGasEquipmentData ) : + SQLiteData( errorStream, db ), + number( nominalGasEquipmentNumber ), + name( nominalGasEquipmentData.Name ), + zonePtr( nominalGasEquipmentData.ZonePtr ), + schedulePtr( nominalGasEquipmentData.SchedPtr ), + designLevel( nominalGasEquipmentData.DesignLevel ), + fractionLatent( nominalGasEquipmentData.FractionLatent ), + fractionRadiant( nominalGasEquipmentData.FractionRadiant ), + fractionLost( nominalGasEquipmentData.FractionLost ), + fractionConvected( nominalGasEquipmentData.FractionConvected ), + endUseSubcategory( nominalGasEquipmentData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedulePtr; + double const & designLevel; + double const & fractionLatent; + double const & fractionRadiant; + double const & fractionLost; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class NominalSteamEquipment : SQLiteData + { + public: + NominalSteamEquipment( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalSteamEquipmentNumber, DataHeatBalance::ZoneEquipData const & nominalSteamEquipmentData ) : + SQLiteData( errorStream, db ), + number( nominalSteamEquipmentNumber ), + name( nominalSteamEquipmentData.Name ), + zonePtr( nominalSteamEquipmentData.ZonePtr ), + schedulePtr( nominalSteamEquipmentData.SchedPtr ), + designLevel( nominalSteamEquipmentData.DesignLevel ), + fractionLatent( nominalSteamEquipmentData.FractionLatent ), + fractionRadiant( nominalSteamEquipmentData.FractionRadiant ), + fractionLost( nominalSteamEquipmentData.FractionLost ), + fractionConvected( nominalSteamEquipmentData.FractionConvected ), + endUseSubcategory( nominalSteamEquipmentData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedulePtr; + double const & designLevel; + double const & fractionLatent; + double const & fractionRadiant; + double const & fractionLost; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class NominalHotWaterEquipment : SQLiteData + { + public: + NominalHotWaterEquipment( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalHotWaterEquipmentNumber, DataHeatBalance::ZoneEquipData const & nominalHotWaterEquipmentData ) : + SQLiteData( errorStream, db ), + number( nominalHotWaterEquipmentNumber ), + name( nominalHotWaterEquipmentData.Name ), + zonePtr( nominalHotWaterEquipmentData.ZonePtr ), + schedulePtr( nominalHotWaterEquipmentData.SchedPtr ), + designLevel( nominalHotWaterEquipmentData.DesignLevel ), + fractionLatent( nominalHotWaterEquipmentData.FractionLatent ), + fractionRadiant( nominalHotWaterEquipmentData.FractionRadiant ), + fractionLost( nominalHotWaterEquipmentData.FractionLost ), + fractionConvected( nominalHotWaterEquipmentData.FractionConvected ), + endUseSubcategory( nominalHotWaterEquipmentData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedulePtr; + double const & designLevel; + double const & fractionLatent; + double const & fractionRadiant; + double const & fractionLost; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class NominalOtherEquipment : SQLiteData + { + public: + NominalOtherEquipment( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalOtherEquipmentNumber, DataHeatBalance::ZoneEquipData const & nominalOtherEquipmentData ) : + SQLiteData( errorStream, db ), + number( nominalOtherEquipmentNumber ), + name( nominalOtherEquipmentData.Name ), + zonePtr( nominalOtherEquipmentData.ZonePtr ), + schedulePtr( nominalOtherEquipmentData.SchedPtr ), + designLevel( nominalOtherEquipmentData.DesignLevel ), + fractionLatent( nominalOtherEquipmentData.FractionLatent ), + fractionRadiant( nominalOtherEquipmentData.FractionRadiant ), + fractionLost( nominalOtherEquipmentData.FractionLost ), + fractionConvected( nominalOtherEquipmentData.FractionConvected ), + endUseSubcategory( nominalOtherEquipmentData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedulePtr; + double const & designLevel; + double const & fractionLatent; + double const & fractionRadiant; + double const & fractionLost; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class NominalBaseboardHeat : SQLiteData + { + public: + NominalBaseboardHeat( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const nominalBaseboardHeatNumber, DataHeatBalance::BBHeatData const & nominalBaseboardHeatData ) : + SQLiteData( errorStream, db ), + number( nominalBaseboardHeatNumber ), + name( nominalBaseboardHeatData.Name ), + zonePtr( nominalBaseboardHeatData.ZonePtr ), + schedPtr( nominalBaseboardHeatData.SchedPtr ), + capatLowTemperature( nominalBaseboardHeatData.CapatLowTemperature ), + lowTemperature( nominalBaseboardHeatData.LowTemperature ), + capatHighTemperature( nominalBaseboardHeatData.CapatHighTemperature ), + highTemperature( nominalBaseboardHeatData.HighTemperature ), + fractionRadiant( nominalBaseboardHeatData.FractionRadiant ), + fractionConvected( nominalBaseboardHeatData.FractionConvected ), + endUseSubcategory( nominalBaseboardHeatData.EndUseSubcategory ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedPtr; + double const & capatLowTemperature; + double const & lowTemperature; + double const & capatHighTemperature; + double const & highTemperature; + double const & fractionRadiant; + double const & fractionConvected; + std::string const & endUseSubcategory; + }; + + class Infiltration : SQLiteData + { + public: + Infiltration( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const infiltrationNumber, DataHeatBalance::InfiltrationData const & infiltrationData ) : + SQLiteData( errorStream, db ), + number( infiltrationNumber ), + name( infiltrationData.Name ), + zonePtr( infiltrationData.ZonePtr ), + schedPtr( infiltrationData.SchedPtr ), + designLevel( infiltrationData.DesignLevel ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedPtr; + double const & designLevel; + }; + + class Ventilation : SQLiteData + { + public: + Ventilation( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const ventilationNumber, DataHeatBalance::VentilationData const & ventilationData ) : + SQLiteData( errorStream, db ), + number( ventilationNumber ), + name( ventilationData.Name ), + zonePtr( ventilationData.ZonePtr ), + schedPtr( ventilationData.SchedPtr ), + designLevel( ventilationData.DesignLevel ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & name; + int const & zonePtr; + int const & schedPtr; + double const & designLevel; + }; + + class RoomAirModel : SQLiteData + { + public: + RoomAirModel( std::shared_ptr const & errorStream, std::shared_ptr const & db, int const roomAirModelNumber, DataRoomAirModel::AirModelData const & roomAirModelData ) : + SQLiteData( errorStream, db ), + number( roomAirModelNumber ), + airModelName( roomAirModelData.AirModelName ), + airModelType( roomAirModelData.AirModelType ), + tempCoupleScheme( roomAirModelData.TempCoupleScheme ), + simAirModel( roomAirModelData.SimAirModel ) + {} + + virtual bool insertIntoSQLite( sqlite3_stmt * insertStmt ); + + private: + int const number; + std::string const & airModelName; + int const & airModelType; + int const & tempCoupleScheme; + bool const & simAirModel; + }; + + std::vector< std::unique_ptr > zones; + std::vector< std::unique_ptr > zoneLists; + std::vector< std::unique_ptr > zoneGroups; + std::vector< std::unique_ptr > schedules; + std::vector< std::unique_ptr > surfaces; + std::vector< std::unique_ptr > materials; + std::vector< std::unique_ptr > constructions; + std::vector< std::unique_ptr > nominalLightings; + std::vector< std::unique_ptr > nominalPeoples; + std::vector< std::unique_ptr > nominalElectricEquipments; + std::vector< std::unique_ptr > nominalGasEquipments; + std::vector< std::unique_ptr > nominalSteamEquipments; + std::vector< std::unique_ptr > nominalHotWaterEquipments; + std::vector< std::unique_ptr > nominalOtherEquipments; + std::vector< std::unique_ptr > nominalBaseboardHeats; + std::vector< std::unique_ptr > infiltrations; + std::vector< std::unique_ptr > ventilations; + std::vector< std::unique_ptr > roomAirModels; }; extern std::unique_ptr sqlite; +std::unique_ptr CreateSQLiteDatabase(); + +void CreateSQLiteZoneExtendedOutput(); + } // EnergyPlus #endif diff --git a/src/EnergyPlus/ScheduleManager.cc b/src/EnergyPlus/ScheduleManager.cc index 82d8496a9e9..8c70de679d7 100644 --- a/src/EnergyPlus/ScheduleManager.cc +++ b/src/EnergyPlus/ScheduleManager.cc @@ -2331,9 +2331,8 @@ namespace ScheduleManager { Real64 LookUpScheduleValue( int const ScheduleIndex, - Optional_int ThisHour, - Optional_int ThisTimeStep, - Optional_int ThisDayOfYear + int const ThisHour, // Negative => unspecified + int const ThisTimeStep // Negative => unspecified ) { @@ -2391,13 +2390,13 @@ namespace ScheduleManager { return LookUpScheduleValue; } - if ( ! present( ThisHour ) ) { + if ( ThisHour < 0 ) { // ThisHour unspecified LookUpScheduleValue = GetCurrentScheduleValue( ScheduleIndex ); // ELSEIF (ThisHour == 0) THEN ! odd answers when thishour=0 (initialization of shadowing) // LookUpScheduleValue=GetCurrentScheduleValue(ScheduleIndex) - } else if ( ! present( ThisDayOfYear ) ) { // ThisHour present, check other optional parameters + } else { // ThisHour specified // so, current date, but maybe TimeStep added // Determine which Week Schedule is used @@ -2445,7 +2444,7 @@ namespace ScheduleManager { } } WhichHour += DSTIndicator; - if ( present( ThisTimeStep ) ) { + if ( ThisTimeStep >= 0 ) { // ThisTimeStep specified if ( ThisTimeStep == 0 ) { WhichTimeStep = NumOfTimeStepInHour; } else { @@ -2466,8 +2465,6 @@ namespace ScheduleManager { } } - } else { // date present, not ready for that yet. - ShowFatalError( "DayofYear Requested in LookUpScheduleValue, not implemented yet" ); } return LookUpScheduleValue; diff --git a/src/EnergyPlus/ScheduleManager.hh b/src/EnergyPlus/ScheduleManager.hh index 1cd5f40ee94..2ea7ec3c0da 100644 --- a/src/EnergyPlus/ScheduleManager.hh +++ b/src/EnergyPlus/ScheduleManager.hh @@ -238,9 +238,8 @@ namespace ScheduleManager { Real64 LookUpScheduleValue( int const ScheduleIndex, - Optional_int ThisHour = _, - Optional_int ThisTimeStep = _, - Optional_int ThisDayOfYear = _ + int const ThisHour = -1, // Negative => unspecified + int const ThisTimeStep = -1 // Negative => unspecified ); int diff --git a/src/EnergyPlus/SimAirServingZones.cc b/src/EnergyPlus/SimAirServingZones.cc index a8f14bacc95..27261865c39 100644 --- a/src/EnergyPlus/SimAirServingZones.cc +++ b/src/EnergyPlus/SimAirServingZones.cc @@ -3555,6 +3555,8 @@ namespace SimAirServingZones { SysSizing.allocate( NumPrimaryAirSys, TotDesDays + TotRunDesPersDays ); FinalSysSizing.allocate( NumPrimaryAirSys ); CalcSysSizing.allocate( NumPrimaryAirSys ); + SysSizPeakDDNum.allocate( NumPrimaryAirSys ); + for ( DesDayEnvrnNum = 1; DesDayEnvrnNum <= TotDesDays + TotRunDesPersDays; ++DesDayEnvrnNum ) { for ( AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum ) { @@ -3563,6 +3565,8 @@ namespace SimAirServingZones { SysSizNum = FindItemInList( SysSizing( AirLoopNum, DesDayEnvrnNum ).AirPriLoopName, SysSizInput.AirPriLoopName(), NumSysSizInput ); if ( SysSizNum > 0 ) { // move data from system sizing input SysSizing( AirLoopNum, DesDayEnvrnNum ).LoadSizeType = SysSizInput( SysSizNum ).LoadSizeType; + SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolingPeakLoadType = SysSizInput( SysSizNum ).CoolingPeakLoadType; + SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolCapControl = SysSizInput( SysSizNum ).CoolCapControl; SysSizing( AirLoopNum, DesDayEnvrnNum ).DesOutAirVolFlow = SysSizInput( SysSizNum ).DesOutAirVolFlow; SysSizing( AirLoopNum, DesDayEnvrnNum ).SysAirMinFlowRat = SysSizInput( SysSizNum ).SysAirMinFlowRat; SysSizing( AirLoopNum, DesDayEnvrnNum ).PreheatTemp = SysSizInput( SysSizNum ).PreheatTemp; @@ -3589,6 +3593,8 @@ namespace SimAirServingZones { } else { // Set missing inputs to the first SysSizing( AirLoopNum, DesDayEnvrnNum ).LoadSizeType = SysSizInput( 1 ).LoadSizeType; + SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolingPeakLoadType = SysSizInput( 1 ).CoolingPeakLoadType; + SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolCapControl = SysSizInput( 1 ).CoolCapControl; SysSizing( AirLoopNum, DesDayEnvrnNum ).DesOutAirVolFlow = SysSizInput( 1 ).DesOutAirVolFlow; SysSizing( AirLoopNum, DesDayEnvrnNum ).SysAirMinFlowRat = SysSizInput( 1 ).SysAirMinFlowRat; SysSizing( AirLoopNum, DesDayEnvrnNum ).PreheatTemp = SysSizInput( 1 ).PreheatTemp; @@ -3615,7 +3621,10 @@ namespace SimAirServingZones { } SysSizing( AirLoopNum, DesDayEnvrnNum ).HeatFlowSeq.allocate( NumOfTimeStepInDay ); SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolFlowSeq.allocate( NumOfTimeStepInDay ); + SysSizing( AirLoopNum, DesDayEnvrnNum ).SumZoneCoolLoadSeq.allocate( NumOfTimeStepInDay ); + SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolZoneAvgTempSeq.allocate( NumOfTimeStepInDay ); SysSizing( AirLoopNum, DesDayEnvrnNum ).SensCoolCapSeq.allocate( NumOfTimeStepInDay ); + SysSizing( AirLoopNum, DesDayEnvrnNum ).TotCoolCapSeq.allocate (NumOfTimeStepInDay ); SysSizing( AirLoopNum, DesDayEnvrnNum ).HeatCapSeq.allocate( NumOfTimeStepInDay ); SysSizing( AirLoopNum, DesDayEnvrnNum ).PreheatCapSeq.allocate( NumOfTimeStepInDay ); SysSizing( AirLoopNum, DesDayEnvrnNum ).SysCoolRetTempSeq.allocate( NumOfTimeStepInDay ); @@ -3628,7 +3637,10 @@ namespace SimAirServingZones { SysSizing( AirLoopNum, DesDayEnvrnNum ).SysHeatOutHumRatSeq.allocate( NumOfTimeStepInDay ); SysSizing( AirLoopNum, DesDayEnvrnNum ).HeatFlowSeq = 0.0; SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolFlowSeq = 0.0; + SysSizing( AirLoopNum, DesDayEnvrnNum ).SumZoneCoolLoadSeq = 0.0; + SysSizing( AirLoopNum, DesDayEnvrnNum ).CoolZoneAvgTempSeq = 0.0; SysSizing( AirLoopNum, DesDayEnvrnNum ).SensCoolCapSeq = 0.0; + SysSizing( AirLoopNum, DesDayEnvrnNum ).TotCoolCapSeq = 0.0; SysSizing( AirLoopNum, DesDayEnvrnNum ).HeatCapSeq = 0.0; SysSizing( AirLoopNum, DesDayEnvrnNum ).PreheatCapSeq = 0.0; SysSizing( AirLoopNum, DesDayEnvrnNum ).SysCoolRetTempSeq = 0.0; @@ -3649,6 +3661,8 @@ namespace SimAirServingZones { SysSizNum = FindItemInList( FinalSysSizing( AirLoopNum ).AirPriLoopName, SysSizInput.AirPriLoopName(), NumSysSizInput ); if ( SysSizNum > 0 ) { // move data from system sizing input FinalSysSizing( AirLoopNum ).LoadSizeType = SysSizInput( SysSizNum ).LoadSizeType; + FinalSysSizing( AirLoopNum ).CoolingPeakLoadType = SysSizInput( SysSizNum ).CoolingPeakLoadType; + FinalSysSizing( AirLoopNum ).CoolCapControl = SysSizInput( SysSizNum ).CoolCapControl; FinalSysSizing( AirLoopNum ).DesOutAirVolFlow = SysSizInput( SysSizNum ).DesOutAirVolFlow; FinalSysSizing( AirLoopNum ).SysAirMinFlowRat = SysSizInput( SysSizNum ).SysAirMinFlowRat; FinalSysSizing( AirLoopNum ).PreheatTemp = SysSizInput( SysSizNum ).PreheatTemp; @@ -3686,6 +3700,8 @@ namespace SimAirServingZones { FinalSysSizing( AirLoopNum ).FlowPerHeatingCapacity = SysSizInput( SysSizNum ).FlowPerHeatingCapacity; CalcSysSizing( AirLoopNum ).LoadSizeType = SysSizInput( SysSizNum ).LoadSizeType; + CalcSysSizing( AirLoopNum ).CoolingPeakLoadType = SysSizInput( SysSizNum ).CoolingPeakLoadType; + CalcSysSizing( AirLoopNum ).CoolCapControl = SysSizInput( SysSizNum ).CoolCapControl; CalcSysSizing( AirLoopNum ).DesOutAirVolFlow = SysSizInput( SysSizNum ).DesOutAirVolFlow; CalcSysSizing( AirLoopNum ).SysAirMinFlowRat = SysSizInput( SysSizNum ).SysAirMinFlowRat; CalcSysSizing( AirLoopNum ).PreheatTemp = SysSizInput( SysSizNum ).PreheatTemp; @@ -3724,6 +3740,8 @@ namespace SimAirServingZones { } else { // Set missing inputs to the first ShowWarningError( "SetUpSysSizingArrays: Sizing for System (HVACAirLoop)=\"" + FinalSysSizing( AirLoopNum ).AirPriLoopName + "\" will use Sizing:System specifications listed for System=\"" + SysSizInput( 1 ).AirPriLoopName + "\"." ); FinalSysSizing( AirLoopNum ).LoadSizeType = SysSizInput( 1 ).LoadSizeType; + FinalSysSizing( AirLoopNum ).CoolingPeakLoadType = SysSizInput( 1 ).CoolingPeakLoadType; + FinalSysSizing( AirLoopNum ).CoolCapControl = SysSizInput( 1 ).CoolCapControl; FinalSysSizing( AirLoopNum ).DesOutAirVolFlow = SysSizInput( 1 ).DesOutAirVolFlow; FinalSysSizing( AirLoopNum ).SysAirMinFlowRat = SysSizInput( 1 ).SysAirMinFlowRat; FinalSysSizing( AirLoopNum ).PreheatTemp = SysSizInput( 1 ).PreheatTemp; @@ -3760,6 +3778,8 @@ namespace SimAirServingZones { FinalSysSizing(AirLoopNum).FlowPerHeatingCapacity = SysSizInput(1).FlowPerHeatingCapacity; CalcSysSizing( AirLoopNum ).LoadSizeType = SysSizInput( 1 ).LoadSizeType; + CalcSysSizing( AirLoopNum ).CoolingPeakLoadType = SysSizInput( 1 ).CoolingPeakLoadType; + CalcSysSizing( AirLoopNum ).CoolCapControl = SysSizInput( 1 ).CoolCapControl; CalcSysSizing( AirLoopNum ).DesOutAirVolFlow = SysSizInput( 1 ).DesOutAirVolFlow; CalcSysSizing( AirLoopNum ).SysAirMinFlowRat = SysSizInput( 1 ).SysAirMinFlowRat; CalcSysSizing( AirLoopNum ).PreheatTemp = SysSizInput( 1 ).PreheatTemp; @@ -3797,7 +3817,10 @@ namespace SimAirServingZones { } FinalSysSizing( AirLoopNum ).HeatFlowSeq.allocate( NumOfTimeStepInDay ); FinalSysSizing( AirLoopNum ).CoolFlowSeq.allocate( NumOfTimeStepInDay ); + FinalSysSizing( AirLoopNum ).SumZoneCoolLoadSeq.allocate( NumOfTimeStepInDay ); + FinalSysSizing( AirLoopNum ).CoolZoneAvgTempSeq.allocate( NumOfTimeStepInDay ); FinalSysSizing( AirLoopNum ).SensCoolCapSeq.allocate( NumOfTimeStepInDay ); + FinalSysSizing( AirLoopNum ).TotCoolCapSeq.allocate (NumOfTimeStepInDay ); FinalSysSizing( AirLoopNum ).HeatCapSeq.allocate( NumOfTimeStepInDay ); FinalSysSizing( AirLoopNum ).PreheatCapSeq.allocate( NumOfTimeStepInDay ); FinalSysSizing( AirLoopNum ).SysCoolRetTempSeq.allocate( NumOfTimeStepInDay ); @@ -3810,7 +3833,10 @@ namespace SimAirServingZones { FinalSysSizing( AirLoopNum ).SysHeatOutHumRatSeq.allocate( NumOfTimeStepInDay ); FinalSysSizing( AirLoopNum ).HeatFlowSeq = 0.0; FinalSysSizing( AirLoopNum ).CoolFlowSeq = 0.0; + FinalSysSizing( AirLoopNum ).SumZoneCoolLoadSeq = 0.0; + FinalSysSizing( AirLoopNum ).CoolZoneAvgTempSeq = 0.0; FinalSysSizing( AirLoopNum ).SensCoolCapSeq = 0.0; + FinalSysSizing( AirLoopNum ).TotCoolCapSeq = 0.0; FinalSysSizing( AirLoopNum ).HeatCapSeq = 0.0; FinalSysSizing( AirLoopNum ).PreheatCapSeq = 0.0; FinalSysSizing( AirLoopNum ).SysCoolRetTempSeq = 0.0; @@ -3825,7 +3851,10 @@ namespace SimAirServingZones { FinalSysSizing( AirLoopNum ).FloorAreaOnAirLoopHeated = 0.0; CalcSysSizing( AirLoopNum ).HeatFlowSeq.allocate( NumOfTimeStepInDay ); CalcSysSizing( AirLoopNum ).CoolFlowSeq.allocate( NumOfTimeStepInDay ); + CalcSysSizing( AirLoopNum ).SumZoneCoolLoadSeq.allocate( NumOfTimeStepInDay ); + CalcSysSizing( AirLoopNum ).CoolZoneAvgTempSeq.allocate( NumOfTimeStepInDay ); CalcSysSizing( AirLoopNum ).SensCoolCapSeq.allocate( NumOfTimeStepInDay ); + CalcSysSizing( AirLoopNum ).TotCoolCapSeq.allocate( NumOfTimeStepInDay ); CalcSysSizing( AirLoopNum ).HeatCapSeq.allocate( NumOfTimeStepInDay ); CalcSysSizing( AirLoopNum ).PreheatCapSeq.allocate( NumOfTimeStepInDay ); CalcSysSizing( AirLoopNum ).SysCoolRetTempSeq.allocate( NumOfTimeStepInDay ); @@ -3838,7 +3867,10 @@ namespace SimAirServingZones { CalcSysSizing( AirLoopNum ).SysHeatOutHumRatSeq.allocate( NumOfTimeStepInDay ); CalcSysSizing( AirLoopNum ).HeatFlowSeq = 0.0; CalcSysSizing( AirLoopNum ).CoolFlowSeq = 0.0; + CalcSysSizing( AirLoopNum ).SumZoneCoolLoadSeq = 0.0; + CalcSysSizing( AirLoopNum ).CoolZoneAvgTempSeq = 0.0; CalcSysSizing( AirLoopNum ).SensCoolCapSeq = 0.0; + CalcSysSizing( AirLoopNum ).TotCoolCapSeq = 0.0; CalcSysSizing( AirLoopNum ).HeatCapSeq = 0.0; CalcSysSizing( AirLoopNum ).PreheatCapSeq = 0.0; CalcSysSizing( AirLoopNum ).SysCoolRetTempSeq = 0.0; @@ -3852,6 +3884,13 @@ namespace SimAirServingZones { CalcSysSizing( AirLoopNum ).FloorAreaOnAirLoopCooled = 0.0; CalcSysSizing( AirLoopNum ).FloorAreaOnAirLoopHeated = 0.0; + SysSizPeakDDNum( AirLoopNum ).TimeStepAtSensCoolPk.allocate( TotDesDays + TotRunDesPersDays ); + SysSizPeakDDNum( AirLoopNum ).TimeStepAtTotCoolPk.allocate( TotDesDays + TotRunDesPersDays ); + SysSizPeakDDNum( AirLoopNum ).TimeStepAtCoolFlowPk.allocate( TotDesDays + TotRunDesPersDays ); + SysSizPeakDDNum( AirLoopNum ).TimeStepAtSensCoolPk = 0; + SysSizPeakDDNum( AirLoopNum ).TimeStepAtTotCoolPk = 0; + SysSizPeakDDNum( AirLoopNum ).TimeStepAtCoolFlowPk = 0; + if ( AnyEnergyManagementSystemInModel ) { SetupEMSInternalVariable( "Intermediate Air System Main Supply Volume Flow Rate", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[m3/s]", FinalSysSizing( AirLoopNum ).DesMainVolFlow ); @@ -3875,17 +3914,18 @@ namespace SimAirServingZones { SetupEMSActuator( "Sizing:System", FinalSysSizing( AirLoopNum ).AirPriLoopName, "Main Cooling Volume Flow Rate", "[m3/s]", FinalSysSizing( AirLoopNum ).EMSOverrideDesCoolVolFlowOn, FinalSysSizing( AirLoopNum ).EMSValueDesCoolVolFlow ); // internal variables useful for sizing air system component models SetupEMSInternalVariable( "Air System Cooling Design Sensible Capacity", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[W]", FinalSysSizing( AirLoopNum ).SensCoolCap ); + SetupEMSInternalVariable("Air System Cooling Design Total Capacity", FinalSysSizing(AirLoopNum).AirPriLoopName, "[W]", FinalSysSizing(AirLoopNum).TotCoolCap); SetupEMSInternalVariable( "Air System Heating Design Sensible Capacity", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[W]", FinalSysSizing( AirLoopNum ).HeatCap ); SetupEMSInternalVariable( "Air System Preheating Design Sensible Capacity", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[W]", FinalSysSizing( AirLoopNum ).PreheatCap ); SetupEMSInternalVariable( "Air System Outdoor Air Design Volume Flow Rate", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[m3/s]", FinalSysSizing( AirLoopNum ).DesOutAirVolFlow ); - SetupEMSInternalVariable( "Air System Cooling Design Mixed Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).CoolMixTemp ); - SetupEMSInternalVariable( "Air System Cooling Design Mixed Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).CoolMixHumRat ); - SetupEMSInternalVariable( "Air System Cooling Design Return Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).CoolRetTemp ); - SetupEMSInternalVariable( "Air System Cooling Design Return Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).CoolRetHumRat ); - SetupEMSInternalVariable( "Air System Cooling Design Outdoor Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).CoolOutTemp ); - SetupEMSInternalVariable( "Air System Cooling Design Outdoor Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).CoolOutHumRat ); + SetupEMSInternalVariable( "Air System Cooling Design Mixed Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).MixTempAtCoolPeak ); + SetupEMSInternalVariable( "Air System Cooling Design Mixed Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).MixHumRatAtCoolPeak ); + SetupEMSInternalVariable( "Air System Cooling Design Return Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).RetTempAtCoolPeak ); + SetupEMSInternalVariable( "Air System Cooling Design Return Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).RetHumRatAtCoolPeak ); + SetupEMSInternalVariable( "Air System Cooling Design Outdoor Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).OutTempAtCoolPeak ); + SetupEMSInternalVariable( "Air System Cooling Design Outdoor Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).OutHumRatAtCoolPeak ); SetupEMSInternalVariable( "Air System Heating Design Mixed Air Temperature", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[C]", FinalSysSizing( AirLoopNum ).HeatMixTemp ); SetupEMSInternalVariable( "Air System Heating Design Mixed Air Humidity Ratio", FinalSysSizing( AirLoopNum ).AirPriLoopName, "[kgWater/kgDryAir]", FinalSysSizing( AirLoopNum ).HeatMixHumRat ); @@ -4292,7 +4332,9 @@ namespace SimAirServingZones { VozClgSum += VbzByZone( CtrlZoneNum ) / FinalZoneSizing( CtrlZoneNum ).ZoneADEffCooling; } // accumulate values for system ventilation parameters report - RpPzSum += FinalZoneSizing( CtrlZoneNum ).DesOAFlowPPer * FinalZoneSizing( CtrlZoneNum ).TotPeopleInZone; + if ( FinalZoneSizing( CtrlZoneNum ).OADesMethod == OAFlowPPer || FinalZoneSizing( CtrlZoneNum ).OADesMethod == OAFlowSum || FinalZoneSizing( CtrlZoneNum ).OADesMethod == OAFlowMax ){ + RpPzSum += FinalZoneSizing( CtrlZoneNum ).DesOAFlowPPer * FinalZoneSizing( CtrlZoneNum ).TotPeopleInZone; + } RaAzSum += FinalZoneSizing( CtrlZoneNum ).DesOAFlowPerArea * FinalZoneSizing( CtrlZoneNum ).TotalZoneFloorArea; AzSum += FinalZoneSizing( CtrlZoneNum ).TotalZoneFloorArea; VbzSum += VbzByZone( CtrlZoneNum ); @@ -4427,6 +4469,7 @@ namespace SimAirServingZones { using DataEnvironment::StdRhoAir; using Psychrometrics::PsyRhoAirFnPbTdbW; using Psychrometrics::PsyCpAirFnWTdb; + using Psychrometrics::PsyHFnTdbW; using EMSManager::ManageEMS; using namespace OutputReportPredefined; using DataHeatBalance::Zone; @@ -4441,8 +4484,10 @@ namespace SimAirServingZones { static gio::Fmt fmtA( "(A)" ); static gio::Fmt SSizeFmt10( "('Time')" ); static gio::Fmt SSizeFmt11( "(A1,A,A,A1,A,A,A1,A,A,A1,A,A)" ); + static gio::Fmt SSizeFmt12( "(A1,A,A,I2,A,A1,A,A,I2,A,A1,A,A,I2,A,A1,A,A,I2,A,A1,A,A,I2,A)" ); static gio::Fmt SSizeFmt20( "(I2.2,':',I2.2,':00')" ); static gio::Fmt SSizeFmt21( "(A1,ES12.6,A1,ES12.6,A1,ES12.6,A1,ES12.6)" ); + static gio::Fmt SSizeFmt22( "(A1,ES12.6,A1,ES12.6,A1,ES12.6,A1,ES12.6,A1,ES12.6)" ); static gio::Fmt SSizeFmt30( "('Coinc Peak ')" ); static gio::Fmt SSizeFmt31( "(A1,ES12.6,A1,ES12.6,A1,ES12.6,A1,ES12.6)" ); static gio::Fmt SSizeFmt40( "('NonCoinc Peak')" ); @@ -4464,6 +4509,7 @@ namespace SimAirServingZones { int ZonesCooledNum; // loop index of zones cooled in a system int CtrlZoneNum; // controlled zone number of a zone int I; // write statement index + int J; // write statement index // REAL(r64) :: HourFrac ! fractional hour Real64 SysCoolRetTemp; // system cooling return temperature for a time step [C] Real64 SysHeatRetTemp; // system heating return temperature for a time step [C] @@ -4472,6 +4518,8 @@ namespace SimAirServingZones { Real64 SysCoolMixTemp; // system cooling mixed air temperature [C] Real64 SysHeatMixTemp; // system heating mixed air temperature [C] Real64 SysSensCoolCap; // system sensible cooling capacity [W] + Real64 SysTotCoolCap; // system total cooling capacity [W] + Real64 SysCoolZoneAvgTemp; // system cooling zone average temperature [C] Real64 SysHeatCap; // system heating capacity [W] int HourCounter; // Hour Counter int TimeStepCounter; // Time Step Counter @@ -4522,6 +4570,8 @@ namespace SimAirServingZones { static FArray1D< Real64 > VotHtgBySys; // saved value of heating ventilation required at primary AHU, used in 62.1 tabular report static FArray1D< Real64 > VozSumClgBySys; // saved value of cooling ventilation required at clg zones static FArray1D< Real64 > VozSumHtgBySys; // saved value of cooling ventilation required at htg zones + static FArray1D< Real64 > TotCoolCapTemp; // scratch variable used for calulating peak load [W] + static FArray1D< Real64 > SensCoolCapTemp; // scratch variable used for calulating peak load [W] static Real64 Evz( 1.0 ); // zone ventilation efficiency static Real64 MinHeatingEvz( 1.0 ); // minimum zone ventilation efficiency for heating (to be used as system efficiency) static FArray1D< Real64 > EvzMinBySysHeat; // saved value of EvzMin used in 62.1 tabular report @@ -4546,6 +4596,14 @@ namespace SimAirServingZones { // NumZonesCooled=0 // NumZonesHeated=0 + // allocate scratch arrays + if ( !allocated( SensCoolCapTemp ) ) { + SensCoolCapTemp.allocate( NumPrimaryAirSys ); + SensCoolCapTemp = 0.0; + TotCoolCapTemp.allocate( NumPrimaryAirSys ); + TotCoolCapTemp = 0.0; + } + // allocate arrays used to store values for standard 62.1 tabular report if ( ! allocated( FaByZoneCool ) ) { FaByZoneCool.dimension( NumOfZones, 0.0 ); @@ -4604,6 +4662,8 @@ namespace SimAirServingZones { NumZonesHeated = AirToZoneNodeInfo( AirLoopNum ).NumZonesHeated; SysSizing( AirLoopNum, CurOverallSimDay ).CoolDesDay = EnvironmentName; SysSizing( AirLoopNum, CurOverallSimDay ).HeatDesDay = EnvironmentName; + SensCoolCapTemp( AirLoopNum ) = 0.0; + TotCoolCapTemp( AirLoopNum ) = 0.0; for ( ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum ) { // loop over cooled zones CtrlZoneNum = AirToZoneNodeInfo( AirLoopNum ).CoolCtrlZoneNums( ZonesCooledNum ); @@ -4659,22 +4719,29 @@ namespace SimAirServingZones { SysSensCoolCap = 0.0; SysCoolRetHumRat = 0.0; SysCoolMixHumRat = 0.0; + SysCoolZoneAvgTemp = 0.0; for ( ZonesCooledNum = 1; ZonesCooledNum <= NumZonesCooled; ++ZonesCooledNum ) { // loop over zones cooled by central system CtrlZoneNum = AirToZoneNodeInfo( AirLoopNum ).CoolCtrlZoneNums( ZonesCooledNum ); // sum up the system mass flow rate for this time step SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) += ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) / ( 1.0 + TermUnitSizing( CtrlZoneNum ).InducRat ); + // sum up the zone cooling load to be met by this system for this time step + SysSizing( AirLoopNum, CurOverallSimDay ).SumZoneCoolLoadSeq( TimeStepInDay ) += ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolLoadSeq( TimeStepInDay ); // calculate the return air temperature for this time step SysCoolRetTemp += ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolZoneRetTempSeq( TimeStepInDay ) * ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) / ( 1.0 + TermUnitSizing( CtrlZoneNum ).InducRat ); SysCoolRetHumRat += ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolZoneHumRatSeq( TimeStepInDay ) * ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) / ( 1.0 + TermUnitSizing( CtrlZoneNum ).InducRat ); + SysCoolZoneAvgTemp += ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolZoneTempSeq( TimeStepInDay ) * + ZoneSizing( CtrlZoneNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) / ( 1.0 + TermUnitSizing( CtrlZoneNum ).InducRat ); } // end of loop over zones cooled by central system // check that there is system mass flow if ( SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) > 0.0 ) { // complete return air temp calc SysCoolRetTemp /= SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ); SysCoolRetHumRat /= SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ); + SysCoolZoneAvgTemp /= SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ); SysSizing( AirLoopNum, CurOverallSimDay ).SysCoolRetTempSeq( TimeStepInDay ) = SysCoolRetTemp; SysSizing( AirLoopNum, CurOverallSimDay ).SysCoolRetHumRatSeq( TimeStepInDay ) = SysCoolRetHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).CoolZoneAvgTempSeq( TimeStepInDay ) = SysCoolZoneAvgTemp; // calculate the outside air fraction for this time step RhoAir = StdRhoAir; if ( SysSizing( AirLoopNum, CurOverallSimDay ).CoolOAOption == MinOA ) { @@ -4692,23 +4759,54 @@ namespace SimAirServingZones { // calculate the system sensible cooling capacity SysSensCoolCap = PsyCpAirFnWTdb( constant_zero, constant_twenty ) * SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) * ( SysCoolMixTemp - SysSizing( AirLoopNum, CurOverallSimDay ).CoolSupTemp ); SysSensCoolCap = max( 0.0, SysSensCoolCap ); + // calculate the system total cooling capacity + SysTotCoolCap = SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) * (PsyHFnTdbW( SysCoolMixTemp, SysCoolMixHumRat ) - + PsyHFnTdbW( SysSizing( AirLoopNum, CurOverallSimDay ).CoolSupTemp, SysSizing( AirLoopNum, CurOverallSimDay ).CoolSupHumRat ) ); + SysTotCoolCap = max( 0.0, SysTotCoolCap ); // Save the sens cool cap for this time step SysSizing( AirLoopNum, CurOverallSimDay ).SensCoolCapSeq( TimeStepInDay ) = SysSensCoolCap; + // Save the tot cool cap for this time step + SysSizing( AirLoopNum, CurOverallSimDay ).TotCoolCapSeq( TimeStepInDay ) = SysTotCoolCap; + } // end of system mass flow check // get the maximum system sensible cooling capacity - if ( SysSensCoolCap > SysSizing( AirLoopNum, CurOverallSimDay ).SensCoolCap ) { - SysSizing( AirLoopNum, CurOverallSimDay ).SensCoolCap = SysSensCoolCap; - SysSizing( AirLoopNum, CurOverallSimDay ).CoolMixTemp = SysCoolMixTemp; - SysSizing( AirLoopNum, CurOverallSimDay ).CoolMixHumRat = SysCoolMixHumRat; - SysSizing( AirLoopNum, CurOverallSimDay ).CoolRetTemp = SysCoolRetTemp; - SysSizing( AirLoopNum, CurOverallSimDay ).CoolRetHumRat = SysCoolRetHumRat; - SysSizing( AirLoopNum, CurOverallSimDay ).CoolOutTemp = OutDryBulbTemp; - SysSizing( AirLoopNum, CurOverallSimDay ).CoolOutHumRat = OutHumRat; + if ( SysSensCoolCap > SensCoolCapTemp(AirLoopNum) ) { + SysSizPeakDDNum( AirLoopNum ).TimeStepAtSensCoolPk( CurOverallSimDay ) = TimeStepInDay; + SensCoolCapTemp( AirLoopNum ) = SysSensCoolCap; + if ( SysSizing( AirLoopNum, CurOverallSimDay ).CoolingPeakLoadType == SensibleCoolingLoad ) { + SysSizing( AirLoopNum, CurOverallSimDay ).SensCoolCap = SysSensCoolCap; + SysSizing( AirLoopNum, CurOverallSimDay ).TotCoolCap = SysTotCoolCap; + SysSizing( AirLoopNum, CurOverallSimDay ).MixTempAtCoolPeak = SysCoolMixTemp; + SysSizing( AirLoopNum, CurOverallSimDay ).MixHumRatAtCoolPeak = SysCoolMixHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).RetTempAtCoolPeak = SysCoolRetTemp; + SysSizing( AirLoopNum, CurOverallSimDay ).RetHumRatAtCoolPeak = SysCoolRetHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).OutTempAtCoolPeak = OutDryBulbTemp; + SysSizing( AirLoopNum, CurOverallSimDay ).OutHumRatAtCoolPeak = OutHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).MassFlowAtCoolPeak = SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ); + } + } + // get the maximum system total cooling capacity + if ( SysTotCoolCap > TotCoolCapTemp( AirLoopNum ) ) { + SysSizPeakDDNum( AirLoopNum ).TimeStepAtTotCoolPk( CurOverallSimDay ) = TimeStepInDay; + TotCoolCapTemp( AirLoopNum ) = SysTotCoolCap; + if ( SysSizing( AirLoopNum, CurOverallSimDay ).CoolingPeakLoadType == TotalCoolingLoad ) { + SysSizing( AirLoopNum, CurOverallSimDay ).SensCoolCap = SysSensCoolCap; + SysSizing( AirLoopNum, CurOverallSimDay ).TotCoolCap = SysTotCoolCap; + SysSizing( AirLoopNum, CurOverallSimDay ).MixTempAtCoolPeak = SysCoolMixTemp; + SysSizing( AirLoopNum, CurOverallSimDay ).MixHumRatAtCoolPeak = SysCoolMixHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).RetTempAtCoolPeak = SysCoolRetTemp; + SysSizing( AirLoopNum, CurOverallSimDay ).RetHumRatAtCoolPeak = SysCoolRetHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).OutTempAtCoolPeak = OutDryBulbTemp; + SysSizing( AirLoopNum, CurOverallSimDay ).OutHumRatAtCoolPeak = OutHumRat; + SysSizing( AirLoopNum, CurOverallSimDay ).MassFlowAtCoolPeak = SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ); + } } // get the maximum cooling mass flow rate - SysSizing( AirLoopNum, CurOverallSimDay ).CoinCoolMassFlow = max( SysSizing( AirLoopNum, CurOverallSimDay ).CoinCoolMassFlow, SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) ); - + if ( SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ) > SysSizing( AirLoopNum, CurOverallSimDay ).CoinCoolMassFlow ) { + SysSizing( AirLoopNum, CurOverallSimDay ).CoinCoolMassFlow = SysSizing( AirLoopNum, CurOverallSimDay ).CoolFlowSeq( TimeStepInDay ); + SysSizPeakDDNum( AirLoopNum ).TimeStepAtCoolFlowPk( CurOverallSimDay ) = TimeStepInDay; + } SysHeatRetTemp = 0.0; OutAirFrac = 0.0; SysHeatMixTemp = 0.0; @@ -5330,29 +5428,73 @@ namespace SimAirServingZones { // Get final design flows for ( AirLoopNum = 1; AirLoopNum <= NumPrimaryAirSys; ++AirLoopNum ) { + SensCoolCapTemp( AirLoopNum ) = 0.0; + TotCoolCapTemp( AirLoopNum ) = 0.0; // For coincident sizing, loop over design days and pick out the largest central heating amd // cooling flow rates and associated data for ( DDNum = 1; DDNum <= TotDesDays + TotRunDesPersDays; ++DDNum ) { - if ( SysSizing( AirLoopNum, DDNum ).SensCoolCap > CalcSysSizing( AirLoopNum ).SensCoolCap ) { - CalcSysSizing( AirLoopNum ).DesCoolVolFlow = SysSizing( AirLoopNum, DDNum ).DesCoolVolFlow; - CalcSysSizing( AirLoopNum ).CoolDesDay = SysSizing( AirLoopNum, DDNum ).CoolDesDay; + if ( SysSizing( AirLoopNum, DDNum ).SensCoolCap > SensCoolCapTemp( AirLoopNum ) ) { + SysSizPeakDDNum( AirLoopNum ).SensCoolPeakDD = DDNum; + SensCoolCapTemp( AirLoopNum ) = SysSizing( AirLoopNum, DDNum ).SensCoolCap; + if ( SysSizing( AirLoopNum, DDNum ).CoolingPeakLoadType == SensibleCoolingLoad ) { + CalcSysSizing( AirLoopNum ).DesCoolVolFlow = SysSizing( AirLoopNum, DDNum ).DesCoolVolFlow; + CalcSysSizing( AirLoopNum ).CoolDesDay = SysSizing( AirLoopNum, DDNum ).CoolDesDay; + // CalcSysSizing( AirLoopNum ).CoinCoolMassFlow = SysSizing( AirLoopNum, DDNum ).CoinCoolMassFlow; + CalcSysSizing( AirLoopNum ).MassFlowAtCoolPeak = SysSizing( AirLoopNum, DDNum ).MassFlowAtCoolPeak; + CalcSysSizing( AirLoopNum ).SensCoolCap = SysSizing( AirLoopNum, DDNum ).SensCoolCap; + CalcSysSizing( AirLoopNum ).TotCoolCap = SysSizing( AirLoopNum, DDNum ).TotCoolCap; + CalcSysSizing( AirLoopNum ).CoolFlowSeq = SysSizing( AirLoopNum, DDNum ).CoolFlowSeq; + CalcSysSizing( AirLoopNum ).SumZoneCoolLoadSeq = SysSizing( AirLoopNum, DDNum ).SumZoneCoolLoadSeq; + CalcSysSizing( AirLoopNum ).CoolZoneAvgTempSeq = SysSizing( AirLoopNum, DDNum ).CoolZoneAvgTempSeq; + CalcSysSizing( AirLoopNum ).SensCoolCapSeq = SysSizing( AirLoopNum, DDNum ).SensCoolCapSeq; + CalcSysSizing( AirLoopNum ).TotCoolCapSeq = SysSizing( AirLoopNum, DDNum ).TotCoolCapSeq; + CalcSysSizing( AirLoopNum ).MixTempAtCoolPeak = SysSizing( AirLoopNum, DDNum ).MixTempAtCoolPeak; + CalcSysSizing( AirLoopNum ).RetTempAtCoolPeak = SysSizing( AirLoopNum, DDNum ).RetTempAtCoolPeak; + CalcSysSizing( AirLoopNum ).MixHumRatAtCoolPeak = SysSizing( AirLoopNum, DDNum ).MixHumRatAtCoolPeak; + CalcSysSizing( AirLoopNum ).RetHumRatAtCoolPeak = SysSizing( AirLoopNum, DDNum ).RetHumRatAtCoolPeak; + CalcSysSizing( AirLoopNum ).OutTempAtCoolPeak = SysSizing( AirLoopNum, DDNum ).OutTempAtCoolPeak; + CalcSysSizing( AirLoopNum ).OutHumRatAtCoolPeak = SysSizing( AirLoopNum, DDNum ).OutHumRatAtCoolPeak; + CalcSysSizing( AirLoopNum ).SysCoolRetTempSeq = SysSizing( AirLoopNum, DDNum ).SysCoolRetTempSeq; + CalcSysSizing( AirLoopNum ).SysCoolRetHumRatSeq = SysSizing( AirLoopNum, DDNum ).SysCoolRetHumRatSeq; + CalcSysSizing( AirLoopNum ).SysCoolOutTempSeq = SysSizing( AirLoopNum, DDNum ).SysCoolOutTempSeq; + CalcSysSizing( AirLoopNum ).SysCoolOutHumRatSeq = SysSizing( AirLoopNum, DDNum ).SysCoolOutHumRatSeq; + } + } + + if ( SysSizing( AirLoopNum, DDNum ).TotCoolCap > TotCoolCapTemp( AirLoopNum ) ) { + SysSizPeakDDNum( AirLoopNum ).TotCoolPeakDD = DDNum; + TotCoolCapTemp( AirLoopNum ) = SysSizing( AirLoopNum, DDNum ).TotCoolCap; + if ( SysSizing( AirLoopNum, DDNum ).CoolingPeakLoadType == TotalCoolingLoad ) { + CalcSysSizing( AirLoopNum ).DesCoolVolFlow = SysSizing( AirLoopNum, DDNum ).DesCoolVolFlow; + CalcSysSizing( AirLoopNum ).CoolDesDay = SysSizing( AirLoopNum, DDNum ).CoolDesDay; + // CalcSysSizing( AirLoopNum ).CoinCoolMassFlow = SysSizing( AirLoopNum, DDNum ).CoinCoolMassFlow; + CalcSysSizing( AirLoopNum ).MassFlowAtCoolPeak = SysSizing( AirLoopNum, DDNum ).MassFlowAtCoolPeak; + CalcSysSizing( AirLoopNum ).SensCoolCap = SysSizing( AirLoopNum, DDNum ).SensCoolCap; + CalcSysSizing( AirLoopNum ).TotCoolCap = SysSizing( AirLoopNum, DDNum ).TotCoolCap; + CalcSysSizing( AirLoopNum ).CoolFlowSeq = SysSizing( AirLoopNum, DDNum ).CoolFlowSeq; + CalcSysSizing( AirLoopNum ).SumZoneCoolLoadSeq = SysSizing( AirLoopNum, DDNum ).SumZoneCoolLoadSeq; + CalcSysSizing( AirLoopNum ).CoolZoneAvgTempSeq = SysSizing( AirLoopNum, DDNum ).CoolZoneAvgTempSeq; + CalcSysSizing( AirLoopNum ).SensCoolCapSeq = SysSizing( AirLoopNum, DDNum ).SensCoolCapSeq; + CalcSysSizing( AirLoopNum ).TotCoolCapSeq = SysSizing( AirLoopNum, DDNum ).TotCoolCapSeq; + CalcSysSizing( AirLoopNum ).MixTempAtCoolPeak = SysSizing( AirLoopNum, DDNum ).MixTempAtCoolPeak; + CalcSysSizing( AirLoopNum ).RetTempAtCoolPeak = SysSizing( AirLoopNum, DDNum ).RetTempAtCoolPeak; + CalcSysSizing( AirLoopNum ).MixHumRatAtCoolPeak = SysSizing( AirLoopNum, DDNum ).MixHumRatAtCoolPeak; + CalcSysSizing( AirLoopNum ).RetHumRatAtCoolPeak = SysSizing( AirLoopNum, DDNum ).RetHumRatAtCoolPeak; + CalcSysSizing( AirLoopNum ).OutTempAtCoolPeak = SysSizing( AirLoopNum, DDNum ).OutTempAtCoolPeak; + CalcSysSizing( AirLoopNum ).OutHumRatAtCoolPeak = SysSizing( AirLoopNum, DDNum ).OutHumRatAtCoolPeak; + CalcSysSizing( AirLoopNum ).SysCoolRetTempSeq = SysSizing( AirLoopNum, DDNum ).SysCoolRetTempSeq; + CalcSysSizing( AirLoopNum ).SysCoolRetHumRatSeq = SysSizing( AirLoopNum, DDNum ).SysCoolRetHumRatSeq; + CalcSysSizing( AirLoopNum ).SysCoolOutTempSeq = SysSizing( AirLoopNum, DDNum ).SysCoolOutTempSeq; + CalcSysSizing( AirLoopNum ).SysCoolOutHumRatSeq = SysSizing( AirLoopNum, DDNum ).SysCoolOutHumRatSeq; + } + } + + if ( SysSizing( AirLoopNum, DDNum ).CoinCoolMassFlow > CalcSysSizing( AirLoopNum ).CoinCoolMassFlow ) { CalcSysSizing( AirLoopNum ).CoinCoolMassFlow = SysSizing( AirLoopNum, DDNum ).CoinCoolMassFlow; - CalcSysSizing( AirLoopNum ).SensCoolCap = SysSizing( AirLoopNum, DDNum ).SensCoolCap; - CalcSysSizing( AirLoopNum ).CoolFlowSeq = SysSizing( AirLoopNum, DDNum ).CoolFlowSeq; - CalcSysSizing( AirLoopNum ).SensCoolCapSeq = SysSizing( AirLoopNum, DDNum ).SensCoolCapSeq; - CalcSysSizing( AirLoopNum ).CoolMixTemp = SysSizing( AirLoopNum, DDNum ).CoolMixTemp; - CalcSysSizing( AirLoopNum ).CoolRetTemp = SysSizing( AirLoopNum, DDNum ).CoolRetTemp; - CalcSysSizing( AirLoopNum ).CoolMixHumRat = SysSizing( AirLoopNum, DDNum ).CoolMixHumRat; - CalcSysSizing( AirLoopNum ).CoolRetHumRat = SysSizing( AirLoopNum, DDNum ).CoolRetHumRat; - CalcSysSizing( AirLoopNum ).CoolOutTemp = SysSizing( AirLoopNum, DDNum ).CoolOutTemp; - CalcSysSizing( AirLoopNum ).CoolOutHumRat = SysSizing( AirLoopNum, DDNum ).CoolOutHumRat; - CalcSysSizing( AirLoopNum ).SysCoolRetTempSeq = SysSizing( AirLoopNum, DDNum ).SysCoolRetTempSeq; - CalcSysSizing( AirLoopNum ).SysCoolRetHumRatSeq = SysSizing( AirLoopNum, DDNum ).SysCoolRetHumRatSeq; - CalcSysSizing( AirLoopNum ).SysCoolOutTempSeq = SysSizing( AirLoopNum, DDNum ).SysCoolOutTempSeq; - CalcSysSizing( AirLoopNum ).SysCoolOutHumRatSeq = SysSizing( AirLoopNum, DDNum ).SysCoolOutHumRatSeq; + SysSizPeakDDNum( AirLoopNum ).CoolFlowPeakDD = DDNum; } if ( SysSizing( AirLoopNum, DDNum ).HeatCap > CalcSysSizing( AirLoopNum ).HeatCap ) { @@ -5389,6 +5531,7 @@ namespace SimAirServingZones { OutAirFrac = 0.0; SysCoolMixTemp = 0.0; SysSensCoolCap = 0.0; + SysTotCoolCap = 0.0; CoolTimeStepNum = 0; CoolDDNum = 0; OutAirTemp = 0.0; @@ -5431,6 +5574,8 @@ namespace SimAirServingZones { SysCoolMixHumRat = OutAirHumRat * OutAirFrac + SysCoolRetHumRat * ( 1.0 - OutAirFrac ); SysSensCoolCap = PsyCpAirFnWTdb( constant_zero, constant_twenty ) * CalcSysSizing( AirLoopNum ).NonCoinCoolMassFlow * ( SysCoolMixTemp - CalcSysSizing( AirLoopNum ).CoolSupTemp ); SysSensCoolCap = max( 0.0, SysSensCoolCap ); + SysTotCoolCap = CalcSysSizing( AirLoopNum ).NonCoinCoolMassFlow * ( PsyHFnTdbW( SysCoolMixTemp, SysCoolMixHumRat ) - PsyHFnTdbW( CalcSysSizing( AirLoopNum ).CoolSupTemp, CalcSysSizing( AirLoopNum ).CoolSupHumRat ) ); + SysTotCoolCap = max( 0.0, SysTotCoolCap ); } SysHeatRetTemp = 0.0; @@ -5527,12 +5672,13 @@ namespace SimAirServingZones { // But first check to see if the noncoincident result is actually bigger than the coincident (for 100% outside air) if ( ! ( FinalSysSizing( AirLoopNum ).CoolOAOption == 1 && SysSensCoolCap <= 0.0 ) ) { CalcSysSizing( AirLoopNum ).SensCoolCap = SysSensCoolCap; - CalcSysSizing( AirLoopNum ).CoolMixTemp = SysCoolMixTemp; - CalcSysSizing( AirLoopNum ).CoolRetTemp = SysCoolRetTemp; - CalcSysSizing( AirLoopNum ).CoolMixHumRat = SysCoolMixHumRat; - CalcSysSizing( AirLoopNum ).CoolRetHumRat = SysCoolRetHumRat; - CalcSysSizing( AirLoopNum ).CoolOutTemp = SysCoolOutTemp; - CalcSysSizing( AirLoopNum ).CoolOutHumRat = SysCoolOutHumRat; + CalcSysSizing( AirLoopNum ).TotCoolCap = SysTotCoolCap; + CalcSysSizing( AirLoopNum ).MixTempAtCoolPeak = SysCoolMixTemp; + CalcSysSizing( AirLoopNum ).RetTempAtCoolPeak = SysCoolRetTemp; + CalcSysSizing( AirLoopNum ).MixHumRatAtCoolPeak = SysCoolMixHumRat; + CalcSysSizing( AirLoopNum ).RetHumRatAtCoolPeak = SysCoolRetHumRat; + CalcSysSizing( AirLoopNum ).OutTempAtCoolPeak = SysCoolOutTemp; + CalcSysSizing( AirLoopNum ).OutHumRatAtCoolPeak = SysCoolOutHumRat; } // check to see is the noncoincident result is actually bigger than the coincident (for 100% outside air) if ( ! ( FinalSysSizing( AirLoopNum ).HeatOAOption == 1 && SysHeatCap < 0.0 ) ) { @@ -5562,15 +5708,17 @@ namespace SimAirServingZones { FinalSysSizing.DesMainVolFlow() = CalcSysSizing.DesMainVolFlow(); FinalSysSizing.DesHeatVolFlow() = CalcSysSizing.DesHeatVolFlow(); FinalSysSizing.DesCoolVolFlow() = CalcSysSizing.DesCoolVolFlow(); + FinalSysSizing.MassFlowAtCoolPeak() = CalcSysSizing.MassFlowAtCoolPeak(); FinalSysSizing.SensCoolCap() = CalcSysSizing.SensCoolCap(); + FinalSysSizing.TotCoolCap() = CalcSysSizing.TotCoolCap(); FinalSysSizing.HeatCap() = CalcSysSizing.HeatCap(); FinalSysSizing.PreheatCap() = CalcSysSizing.PreheatCap(); - FinalSysSizing.CoolMixTemp() = CalcSysSizing.CoolMixTemp(); - FinalSysSizing.CoolMixHumRat() = CalcSysSizing.CoolMixHumRat(); - FinalSysSizing.CoolRetTemp() = CalcSysSizing.CoolRetTemp(); - FinalSysSizing.CoolRetHumRat() = CalcSysSizing.CoolRetHumRat(); - FinalSysSizing.CoolOutTemp() = CalcSysSizing.CoolOutTemp(); - FinalSysSizing.CoolOutHumRat() = CalcSysSizing.CoolOutHumRat(); + FinalSysSizing.MixTempAtCoolPeak() = CalcSysSizing.MixTempAtCoolPeak(); + FinalSysSizing.MixHumRatAtCoolPeak() = CalcSysSizing.MixHumRatAtCoolPeak(); + FinalSysSizing.RetTempAtCoolPeak() = CalcSysSizing.RetTempAtCoolPeak(); + FinalSysSizing.RetHumRatAtCoolPeak() = CalcSysSizing.RetHumRatAtCoolPeak(); + FinalSysSizing.OutTempAtCoolPeak() = CalcSysSizing.OutTempAtCoolPeak(); + FinalSysSizing.OutHumRatAtCoolPeak() = CalcSysSizing.OutHumRatAtCoolPeak(); FinalSysSizing.HeatMixTemp() = CalcSysSizing.HeatMixTemp(); FinalSysSizing.HeatMixHumRat() = CalcSysSizing.HeatMixHumRat(); FinalSysSizing.HeatRetTemp() = CalcSysSizing.HeatRetTemp(); @@ -5582,7 +5730,10 @@ namespace SimAirServingZones { for ( TimeStepIndex = 1; TimeStepIndex <= NumOfTimeStepInDay; ++TimeStepIndex ) { FinalSysSizing( AirLoopNum ).HeatFlowSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).HeatFlowSeq( TimeStepIndex ); FinalSysSizing( AirLoopNum ).CoolFlowSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).CoolFlowSeq( TimeStepIndex ); + FinalSysSizing( AirLoopNum ).SumZoneCoolLoadSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).SumZoneCoolLoadSeq( TimeStepIndex ); + FinalSysSizing( AirLoopNum ).CoolZoneAvgTempSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).CoolZoneAvgTempSeq( TimeStepIndex ); FinalSysSizing( AirLoopNum ).SensCoolCapSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).SensCoolCapSeq( TimeStepIndex ); + FinalSysSizing( AirLoopNum ).TotCoolCapSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).TotCoolCapSeq( TimeStepIndex ); FinalSysSizing( AirLoopNum ).HeatCapSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).HeatCapSeq( TimeStepIndex ); FinalSysSizing( AirLoopNum ).PreheatCapSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).PreheatCapSeq( TimeStepIndex ); FinalSysSizing( AirLoopNum ).SysCoolRetTempSeq( TimeStepIndex ) = CalcSysSizing( AirLoopNum ).SysCoolRetTempSeq( TimeStepIndex ); @@ -5643,6 +5794,7 @@ namespace SimAirServingZones { FinalSysSizing( AirLoopNum ).CoinCoolMassFlow = SysCoolSizingRat * CalcSysSizing( AirLoopNum ).CoinCoolMassFlow; FinalSysSizing( AirLoopNum ).NonCoinCoolMassFlow = SysCoolSizingRat * CalcSysSizing( AirLoopNum ).NonCoinCoolMassFlow; FinalSysSizing( AirLoopNum ).DesCoolVolFlow = SysCoolSizingRat * CalcSysSizing( AirLoopNum ).DesCoolVolFlow; + FinalSysSizing( AirLoopNum ).MassFlowAtCoolPeak = SysCoolSizingRat * CalcSysSizing( AirLoopNum ).MassFlowAtCoolPeak; if ( FinalSysSizing( AirLoopNum ).DesCoolVolFlow > 0.0 ) { @@ -5661,7 +5813,10 @@ namespace SimAirServingZones { SysCoolMixHumRat = FinalSysSizing( AirLoopNum ).SysCoolOutHumRatSeq( TimeStepIndex ) * OutAirFrac + FinalSysSizing( AirLoopNum ).SysCoolRetHumRatSeq( TimeStepIndex ) * ( 1.0 - OutAirFrac ); SysSensCoolCap = PsyCpAirFnWTdb( constant_zero, constant_twenty ) * FinalSysSizing( AirLoopNum ).CoolFlowSeq( TimeStepIndex ) * ( SysCoolMixTemp - FinalSysSizing( AirLoopNum ).CoolSupTemp ); SysSensCoolCap = max( 0.0, SysSensCoolCap ); + SysTotCoolCap = FinalSysSizing( AirLoopNum ).CoolFlowSeq( TimeStepIndex ) * ( PsyHFnTdbW( SysCoolMixTemp, SysCoolMixHumRat ) - PsyHFnTdbW( FinalSysSizing( AirLoopNum ).CoolSupTemp, FinalSysSizing( AirLoopNum ).CoolSupHumRat ) ); + SysTotCoolCap = max (0.0, SysTotCoolCap ); FinalSysSizing( AirLoopNum ).SensCoolCapSeq( TimeStepIndex ) = SysSensCoolCap; + FinalSysSizing( AirLoopNum ).TotCoolCapSeq( TimeStepIndex ) = SysTotCoolCap; } @@ -5673,11 +5828,14 @@ namespace SimAirServingZones { } else { OutAirFrac = 1.0; } - FinalSysSizing( AirLoopNum ).CoolMixTemp = FinalSysSizing( AirLoopNum ).CoolOutTemp * OutAirFrac + FinalSysSizing( AirLoopNum ).CoolRetTemp * ( 1.0 - OutAirFrac ); - FinalSysSizing( AirLoopNum ).CoolMixHumRat = FinalSysSizing( AirLoopNum ).CoolOutHumRat * OutAirFrac + FinalSysSizing( AirLoopNum ).CoolRetHumRat * ( 1.0 - OutAirFrac ); - FinalSysSizing( AirLoopNum ).SensCoolCap = PsyCpAirFnWTdb( constant_zero, constant_twenty ) * RhoAir * FinalSysSizing( AirLoopNum ).DesCoolVolFlow * ( FinalSysSizing( AirLoopNum ).CoolMixTemp - FinalSysSizing( AirLoopNum ).CoolSupTemp ); + FinalSysSizing( AirLoopNum ).MixTempAtCoolPeak = FinalSysSizing( AirLoopNum ).OutTempAtCoolPeak * OutAirFrac + FinalSysSizing( AirLoopNum ).RetTempAtCoolPeak * ( 1.0 - OutAirFrac ); + FinalSysSizing( AirLoopNum ).MixHumRatAtCoolPeak = FinalSysSizing( AirLoopNum ).OutHumRatAtCoolPeak * OutAirFrac + FinalSysSizing( AirLoopNum ).RetHumRatAtCoolPeak * ( 1.0 - OutAirFrac ); + FinalSysSizing( AirLoopNum ).SensCoolCap = PsyCpAirFnWTdb( constant_zero, constant_twenty ) * RhoAir * FinalSysSizing( AirLoopNum ).DesCoolVolFlow * ( FinalSysSizing( AirLoopNum ).MixTempAtCoolPeak - FinalSysSizing( AirLoopNum ).CoolSupTemp ); FinalSysSizing( AirLoopNum ).SensCoolCap = max( 0.0, FinalSysSizing( AirLoopNum ).SensCoolCap ); - + FinalSysSizing( AirLoopNum ).TotCoolCap = RhoAir * FinalSysSizing( AirLoopNum ).DesCoolVolFlow * + ( PsyHFnTdbW( FinalSysSizing( AirLoopNum ).MixTempAtCoolPeak, FinalSysSizing( AirLoopNum ).MixHumRatAtCoolPeak ) - + PsyHFnTdbW( FinalSysSizing( AirLoopNum ).CoolSupTemp, FinalSysSizing( AirLoopNum ).CoolSupHumRat ) ); + FinalSysSizing( AirLoopNum ).TotCoolCap = max( 0.0, FinalSysSizing( AirLoopNum ).TotCoolCap ); } // take account of the user input system flow rates and alter the zone flow rates to match @@ -5822,8 +5980,18 @@ namespace SimAirServingZones { // write out the sys design calc results { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt10, flags ); } + // for ( I = 1; I <= NumPrimaryAirSys; ++I ) { + // { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt11, flags ) << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Heat Mass Flow [kg/s]" << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Cool Mass Flow [kg/s]" << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Heat Cap [W]" << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Sens Cool Cap [W]"; } + // } for ( I = 1; I <= NumPrimaryAirSys; ++I ) { - { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt11, flags ) << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Heat Mass Flow [kg/s]" << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Cool Mass Flow [kg/s]" << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Heat Cap [W]" << SizingFileColSep << CalcSysSizing( I ).AirPriLoopName << ":Des Sens Cool Cap [W]"; } + for ( J = 1; J <= TotDesDays + TotRunDesPersDays; ++J ) { + { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt12, flags ) << SizingFileColSep + << CalcSysSizing( I ).AirPriLoopName << ":DesPer" << J << ":Des Heat Mass Flow [kg/s]" << SizingFileColSep + << CalcSysSizing( I ).AirPriLoopName << ":DesPer" << J << ":Des Heat Cap [W]" << SizingFileColSep + << CalcSysSizing( I ).AirPriLoopName << ":DesPer" << J << ":Des Cool Mass Flow [kg/s]" << SizingFileColSep + << CalcSysSizing( I ).AirPriLoopName << ":DesPer" << J << ":Des Sens Cool Cap [W]" << SizingFileColSep + << CalcSysSizing( I ).AirPriLoopName << ":DesPer" << J << ":Des Tot Cool Cap [W]"; } + } } gio::write( OutputFileSysSizing ); // HourFrac = 0.0 @@ -5839,11 +6007,16 @@ namespace SimAirServingZones { } else { HourPrint = HourCounter - 1; } - // DO TimeStepIndex=1,NumOfTimeStepInDay - // HourFrac = HourFrac + TimeStepZone { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt20, flags ) << HourPrint << Minutes; } for ( I = 1; I <= NumPrimaryAirSys; ++I ) { - { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt21, flags ) << SizingFileColSep << CalcSysSizing( I ).HeatFlowSeq( TimeStepIndex ) << SizingFileColSep << CalcSysSizing( I ).CoolFlowSeq( TimeStepIndex ) << SizingFileColSep << CalcSysSizing( I ).HeatCapSeq( TimeStepIndex ) << SizingFileColSep << CalcSysSizing( I ).SensCoolCapSeq( TimeStepIndex ); } + for ( J = 1; J <= TotDesDays + TotRunDesPersDays; ++J ) { + { IOFlags flags; flags.ADVANCE( "No" ); gio::write( OutputFileSysSizing, SSizeFmt22, flags ) << SizingFileColSep + << SysSizing( I, J ).HeatFlowSeq( TimeStepIndex ) << SizingFileColSep + << SysSizing( I, J ).HeatCapSeq( TimeStepIndex ) << SizingFileColSep + << SysSizing( I, J ).CoolFlowSeq( TimeStepIndex ) << SizingFileColSep + << SysSizing( I, J ).SensCoolCapSeq( TimeStepIndex ) << SizingFileColSep + << SysSizing( I, J ).TotCoolCapSeq( TimeStepIndex ); } + } } gio::write( OutputFileSysSizing ); } @@ -6014,8 +6187,8 @@ namespace SimAirServingZones { FractionOfAutosize = FinalSysSizing( AirLoopNum ).ScaledCoolingCapacity; } if ( PrimaryAirSystem( AirLoopNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - CoilInTemp = FinalSysSizing( AirLoopNum ).CoolMixTemp; - CoilInHumRat = FinalSysSizing( AirLoopNum ).CoolMixHumRat; + CoilInTemp = FinalSysSizing( AirLoopNum ).MixTempAtCoolPeak; + CoilInHumRat = FinalSysSizing( AirLoopNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( FinalSysSizing( AirLoopNum ).DesCoolVolFlow > 0.0 ) { OutAirFrac = FinalSysSizing( AirLoopNum ).DesOutAirVolFlow / FinalSysSizing( AirLoopNum ).DesCoolVolFlow; @@ -6023,8 +6196,8 @@ namespace SimAirServingZones { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - CoilInTemp = OutAirFrac * FinalSysSizing( AirLoopNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( AirLoopNum ).CoolRetTemp; - CoilInHumRat = OutAirFrac * FinalSysSizing( AirLoopNum ).PrecoolHumRat + ( 1.0 - OutAirFrac )*FinalSysSizing( AirLoopNum ).CoolRetHumRat; + CoilInTemp = OutAirFrac * FinalSysSizing( AirLoopNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( AirLoopNum ).RetTempAtCoolPeak; + CoilInHumRat = OutAirFrac * FinalSysSizing( AirLoopNum ).PrecoolHumRat + ( 1.0 - OutAirFrac )*FinalSysSizing( AirLoopNum ).RetHumRatAtCoolPeak; } CoilOutTemp = FinalSysSizing( AirLoopNum ).CoolSupTemp; CoilOutHumRat = FinalSysSizing( AirLoopNum ).CoolSupHumRat; diff --git a/src/EnergyPlus/SimulationManager.cc b/src/EnergyPlus/SimulationManager.cc index 4e2079abdd6..70b45119d88 100644 --- a/src/EnergyPlus/SimulationManager.cc +++ b/src/EnergyPlus/SimulationManager.cc @@ -264,16 +264,11 @@ namespace SimulationManager { static gio::Fmt Format_700( "('Environment:WarmupDays,',I3)" ); //CreateSQLiteDatabase(); - try { - EnergyPlus::sqlite = std::unique_ptr(new SQLite()); - } catch(const std::runtime_error& error) { - // Maybe this could be higher in the call stack, and then handle all runtime exceptions this way. - ShowFatalError(error.what()); - } + sqlite = EnergyPlus::CreateSQLiteDatabase(); - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->sqliteBegin(); - sqlite->createSQLiteSimulationsRecord( 1 ); + sqlite->createSQLiteSimulationsRecord( 1, DataStringGlobals::VerString, DataStringGlobals::CurrentDateTime ); sqlite->sqliteCommit(); } @@ -391,9 +386,9 @@ namespace SimulationManager { } } - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->sqliteBegin(); - sqlite->updateSQLiteSimulationRecord( 1 ); + sqlite->updateSQLiteSimulationRecord( 1, DataGlobals::NumOfTimeStepInHour ); sqlite->sqliteCommit(); } @@ -416,9 +411,9 @@ namespace SimulationManager { ++EnvCount; - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->sqliteBegin(); - sqlite->createSQLiteEnvironmentPeriodRecord(); + sqlite->createSQLiteEnvironmentPeriodRecord( DataEnvironment::CurEnvirNum, DataEnvironment::EnvironmentName, DataGlobals::KindOfSim ); sqlite->sqliteCommit(); } @@ -438,7 +433,7 @@ namespace SimulationManager { while ( ( DayOfSim < NumOfDayInEnvrn ) || ( WarmupFlag ) ) { // Begin day loop ... - if ( sqlite->writeOutputToSQLite() ) sqlite->sqliteBegin(); // setup for one transaction per day + if ( sqlite ) sqlite->sqliteBegin(); // setup for one transaction per day ++DayOfSim; gio::write( DayOfSimChr, fmtLD ) << DayOfSim; @@ -519,7 +514,7 @@ namespace SimulationManager { } // ... End hour loop. - if ( sqlite->writeOutputToSQLite() ) sqlite->sqliteCommit(); // one transaction per day + if ( sqlite ) sqlite->sqliteCommit(); // one transaction per day } // ... End day loop. @@ -541,7 +536,7 @@ namespace SimulationManager { } } - if ( sqlite->writeOutputToSQLite() ) sqlite->sqliteBegin(); // for final data to write + if ( sqlite ) sqlite->sqliteBegin(); // for final data to write #ifdef EP_Detailed_Timings epStartTime( "Closeout Reporting=" ); @@ -569,9 +564,10 @@ namespace SimulationManager { #endif CloseOutputFiles(); - sqlite->createZoneExtendedOutput(); + // sqlite->createZoneExtendedOutput(); + CreateSQLiteZoneExtendedOutput(); - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { DisplayString( "Writing final SQL reports" ); sqlite->sqliteCommit(); // final transactions sqlite->initializeIndexes(); // do not create indexes (SQL) until all is done. @@ -788,6 +784,7 @@ namespace SimulationManager { TimeStepZone = 1.0 / double( NumOfTimeStepInHour ); MinutesPerTimeStep = TimeStepZone * 60; + TimeStepZoneSec = TimeStepZone * SecInHour; CurrentModuleObject = "ConvergenceLimits"; Num = GetNumObjectsFound( CurrentModuleObject ); @@ -2468,7 +2465,7 @@ namespace SimulationManager { if ( iostatus != 0 ) break; if ( is_blank( ErrorMessage ) ) continue; ShowErrorMessage( ErrorMessage ); - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { // Following code relies on specific formatting of Severes, Warnings, and continues // that occur in the IP processing. Later ones -- i.e. Fatals occur after the // automatic sending of error messages to SQLite are turned on. @@ -2786,7 +2783,7 @@ Resimulate( } // NOTICE -// Copyright � 1996-2014 The Board of Trustees of the University of Illinois +// Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. // Portions of the EnergyPlus software package have been developed and copyrighted diff --git a/src/EnergyPlus/SingleDuct.cc b/src/EnergyPlus/SingleDuct.cc index f0ad2d7f609..66d18537c5c 100644 --- a/src/EnergyPlus/SingleDuct.cc +++ b/src/EnergyPlus/SingleDuct.cc @@ -3746,7 +3746,7 @@ namespace SingleDuct { Real64 VAVVSCoolingResidual( Real64 const SupplyAirMassFlow, // supply air mass flow rate [kg/s] - Optional< FArray1S< Real64 > const > Par // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ) { @@ -3803,20 +3803,16 @@ namespace SingleDuct { int FanOp; // fan operation; 0=off, 1=on. Real64 UnitOutput; // cooling output [W] (cooling is negative) - UnitIndex = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - ZoneNodeIndex = int( Par()( 3 ) ); - HCType = int( Par()( 4 ) ); - MinHWFlow = Par()( 5 ); - FanType = int( Par()( 6 ) ); - FanOp = int( Par()( 7 ) ); + UnitIndex = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + ZoneNodeIndex = int( Par( 3 ) ); + HCType = int( Par( 4 ) ); + MinHWFlow = Par( 5 ); + FanType = int( Par( 6 ) ); + FanOp = int( Par( 7 ) ); CalcVAVVS( UnitIndex, FirstHVACSoln, ZoneNodeIndex, HCType, MinHWFlow, 0.0, FanType, SupplyAirMassFlow, FanOp, UnitOutput ); - Residuum = ( Par()( 8 ) - UnitOutput ) / Par()( 8 ); + Residuum = ( Par( 8 ) - UnitOutput ) / Par( 8 ); return Residuum; } @@ -3824,7 +3820,7 @@ namespace SingleDuct { Real64 VAVVSHWNoFanResidual( Real64 const HWMassFlow, // hot water mass flow rate [kg/s] - Optional< FArray1S< Real64 > const > Par // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ) { @@ -3887,33 +3883,29 @@ namespace SingleDuct { Real64 MaxSteamFlow; Real64 MaxSteamCoilCapacity; - UnitIndex = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - ZoneNodeIndex = int( Par()( 3 ) ); - HCType = int( Par()( 4 ) ); - AirMassFlow = Par()( 5 ); - FanType = int( Par()( 6 ) ); - FanOp = int( Par()( 7 ) ); + UnitIndex = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + ZoneNodeIndex = int( Par( 3 ) ); + HCType = int( Par( 4 ) ); + AirMassFlow = Par( 5 ); + FanType = int( Par( 6 ) ); + FanOp = int( Par( 7 ) ); QSteamLoad = 0.0; // vary the load to be met by the steam coil to converge on a steam flow rate to meet the load if ( HCType == HCoilType_SteamAirHeating ) { // backwards way of varying steam flow rate. Steam coil calculates a flow rate to meet a load. - MinSteamFlow = Par()( 9 ); - MaxSteamFlow = Par()( 10 ); - MaxSteamCoilCapacity = Par()( 11 ); + MinSteamFlow = Par( 9 ); + MaxSteamFlow = Par( 10 ); + MaxSteamCoilCapacity = Par( 11 ); if ( ( MaxSteamFlow - MinSteamFlow ) == 0.0 ) { - QSteamLoad = Par()( 8 ); // Use QTotLoad, bad starting value error for RegulaFalsi will occur + QSteamLoad = Par( 8 ); // Use QTotLoad, bad starting value error for RegulaFalsi will occur } else { QSteamLoad = MaxSteamCoilCapacity * HWMassFlow / ( MaxSteamFlow - MinSteamFlow ); } } CalcVAVVS( UnitIndex, FirstHVACSoln, ZoneNodeIndex, HCType, HWMassFlow, QSteamLoad, FanType, AirMassFlow, FanOp, UnitOutput ); - Residuum = ( Par()( 8 ) - UnitOutput ) / Par()( 8 ); + Residuum = ( Par( 8 ) - UnitOutput ) / Par( 8 ); return Residuum; } @@ -3921,7 +3913,7 @@ namespace SingleDuct { Real64 VAVVSHWFanOnResidual( Real64 const SupplyAirMassFlow, // supply air mass flow rate [kg/s] - Optional< FArray1S< Real64 > const > Par // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ) { @@ -3978,20 +3970,16 @@ namespace SingleDuct { int FanOp; // fan operation; 0=off, 1=on. Real64 UnitOutput; // heating output [W] - UnitIndex = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - ZoneNodeIndex = int( Par()( 3 ) ); - HCType = int( Par()( 4 ) ); - HWMassFlow = Par()( 5 ); - FanType = int( Par()( 6 ) ); - FanOp = int( Par()( 7 ) ); - CalcVAVVS( UnitIndex, FirstHVACSoln, ZoneNodeIndex, HCType, HWMassFlow, Par()( 8 ), FanType, SupplyAirMassFlow, FanOp, UnitOutput ); + UnitIndex = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + ZoneNodeIndex = int( Par( 3 ) ); + HCType = int( Par( 4 ) ); + HWMassFlow = Par( 5 ); + FanType = int( Par( 6 ) ); + FanOp = int( Par( 7 ) ); + CalcVAVVS( UnitIndex, FirstHVACSoln, ZoneNodeIndex, HCType, HWMassFlow, Par( 8 ), FanType, SupplyAirMassFlow, FanOp, UnitOutput ); - Residuum = ( Par()( 8 ) - UnitOutput ) / Par()( 8 ); + Residuum = ( Par( 8 ) - UnitOutput ) / Par( 8 ); return Residuum; } @@ -3999,7 +3987,7 @@ namespace SingleDuct { Real64 VAVVSHCFanOnResidual( Real64 const HeatingFrac, // fraction of maximum heating output - Optional< FArray1S< Real64 > const > Par // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ) { @@ -4058,23 +4046,19 @@ namespace SingleDuct { Real64 AirMassFlowRate; // [kg/s] Real64 HeatOut; // heating coil output [W] - UnitIndex = int( Par()( 1 ) ); - if ( Par()( 2 ) > 0.0 ) { - FirstHVACSoln = true; - } else { - FirstHVACSoln = false; - } - ZoneNodeIndex = int( Par()( 3 ) ); - HCType = int( Par()( 4 ) ); - MaxHeatOut = Par()( 5 ); - FanType = int( Par()( 6 ) ); - FanOp = int( Par()( 7 ) ); + UnitIndex = int( Par( 1 ) ); + FirstHVACSoln = ( Par( 2 ) > 0.0 ); + ZoneNodeIndex = int( Par( 3 ) ); + HCType = int( Par( 4 ) ); + MaxHeatOut = Par( 5 ); + FanType = int( Par( 6 ) ); + FanOp = int( Par( 7 ) ); HeatOut = HeatingFrac * MaxHeatOut; AirMassFlowRate = max( HeatingFrac * Sys( UnitIndex ).HeatAirMassFlowRateMax, SysInlet( UnitIndex ).AirMassFlowRateMaxAvail * Sys( UnitIndex ).ZoneMinAirFrac ); CalcVAVVS( UnitIndex, FirstHVACSoln, ZoneNodeIndex, HCType, 0.0, HeatOut, FanType, AirMassFlowRate, FanOp, UnitOutput ); - Residuum = ( Par()( 8 ) - UnitOutput ) / Par()( 8 ); + Residuum = ( Par( 8 ) - UnitOutput ) / Par( 8 ); return Residuum; } diff --git a/src/EnergyPlus/SingleDuct.hh b/src/EnergyPlus/SingleDuct.hh index 094c1d5ddfa..9ba1917b256 100644 --- a/src/EnergyPlus/SingleDuct.hh +++ b/src/EnergyPlus/SingleDuct.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -618,25 +617,25 @@ namespace SingleDuct { Real64 VAVVSCoolingResidual( Real64 const SupplyAirMassFlow, // supply air mass flow rate [kg/s] - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ); Real64 VAVVSHWNoFanResidual( Real64 const HWMassFlow, // hot water mass flow rate [kg/s] - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ); Real64 VAVVSHWFanOnResidual( Real64 const SupplyAirMassFlow, // supply air mass flow rate [kg/s] - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ); Real64 VAVVSHCFanOnResidual( Real64 const HeatingFrac, // fraction of maximum heating output - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = REAL(SysNum) + FArray1< Real64 > const & Par // Par(1) = REAL(SysNum) ); // End Algorithm Section of the Module diff --git a/src/EnergyPlus/SizingManager.cc b/src/EnergyPlus/SizingManager.cc index f1e4f7caea0..0c94374f746 100644 --- a/src/EnergyPlus/SizingManager.cc +++ b/src/EnergyPlus/SizingManager.cc @@ -649,7 +649,6 @@ namespace SizingManager { } // Deallocate arrays no longer needed SysSizing.deallocate(); - CalcSysSizing.deallocate(); } if ( ( DoPlantSizing ) && ( NumPltSizInput == 0 ) ) { @@ -758,67 +757,9 @@ namespace SizingManager { ErrorsFound = true; if ( IsBlank ) Alphas( 1 ) = "xxxxx"; } - OARequirements( OAIndex ).Name = Alphas( 1 ); - if ( NumAlphas > 1 ) { - if ( SameString( Alphas( 2 ), "Flow/Person" ) ) { - OARequirements( OAIndex ).OAFlowMethod = OAFlowPPer; - } else if ( SameString( Alphas( 2 ), "Flow/Zone" ) ) { - OARequirements( OAIndex ).OAFlowMethod = OAFlow; - } else if ( SameString( Alphas( 2 ), "Flow/Area" ) ) { - OARequirements( OAIndex ).OAFlowMethod = OAFlowPerArea; - } else if ( SameString( Alphas( 2 ), "AirChanges/Hour" ) ) { - OARequirements( OAIndex ).OAFlowMethod = OAFlowACH; - } else if ( SameString( Alphas( 2 ), "Sum" ) ) { - OARequirements( OAIndex ).OAFlowMethod = OAFlowSum; - } else if ( SameString( Alphas( 2 ), "Maximum" ) ) { - OARequirements( OAIndex ).OAFlowMethod = OAFlowMax; - } else { - ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + OARequirements( OAIndex ).Name + "\"," ); - ShowContinueError( "...Invalid " + cAlphaFields( 2 ) + "=\"" + Alphas( 2 ) + "\"," ); - ShowContinueError( "...Valid choices are Flow/Person, Flow/Zone, Flow/Area, AirChanges/Hour, Sum, Maximum." ); - ErrorsFound = true; - } - } else { - // default value for Outdoor Air Method - OARequirements( OAIndex ).OAFlowMethod = OAFlowPPer; - } - if ( NumNumbers > 0 ) { - OARequirements( OAIndex ).OAFlowPerPerson = Numbers( 1 ); - } else { - // default value for Outdoor Air Flow per Person - OARequirements( OAIndex ).OAFlowPerPerson = 0.00944; - } - // remaining fields default to 0 - if ( NumNumbers > 1 ) { - OARequirements( OAIndex ).OAFlowPerArea = Numbers( 2 ); - } - if ( NumNumbers > 2 ) { - OARequirements( OAIndex ).OAFlowPerZone = Numbers( 3 ); - } - if ( NumNumbers > 3 ) { - OARequirements( OAIndex ).OAFlowACH = Numbers( 4 ); - } - if ( NumAlphas > 2 ) { - if ( ! lAlphaBlanks( 3 ) ) { - OARequirements( OAIndex ).OAFlowFracSchPtr = GetScheduleIndex( Alphas( 3 ) ); - if ( OARequirements( OAIndex ).OAFlowFracSchPtr > 0 ) { - if ( ! CheckScheduleValueMinMax( OARequirements( OAIndex ).OAFlowFracSchPtr, ">=", 0.0, "<=", 1.0 ) ) { - ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + OARequirements( OAIndex ).Name + "\"," ); - ShowContinueError( "Error found in " + cAlphaFields( 3 ) + " = " + Alphas( 3 ) ); - ShowContinueError( "Schedule values must be (>=0., <=1.)" ); - ErrorsFound = true; - } else { - OARequirements( OAIndex ).MaxOAFractionSchValue = GetScheduleMaxValue( OARequirements( OAIndex ).OAFlowFracSchPtr ); - } - } else { - ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + OARequirements( OAIndex ).Name + "\"," ); - ShowContinueError( "...Not Found " + cAlphaFields( 3 ) + "=\"" + Alphas( 3 ) + "\"." ); - ErrorsFound = true; - } - } - } + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); } @@ -837,6 +778,155 @@ namespace SizingManager { } + void + ProcessInputOARequirements( + std::string const & CurrentModuleObject, + int const OAIndex, + FArray1_string const & Alphas, + int & NumAlphas, + FArray1< Real64 > const & Numbers, + int & NumNumbers, + FArray1_bool const & lNumericBlanks, //Unused + FArray1_bool const & lAlphaBlanks, + FArray1_string const & cAlphaFields, + FArray1_string const & cNumericFields, //Unused + bool & ErrorsFound // If errors found in input + ) + { + + // SUBROUTINE INFORMATION: + // AUTHOR R. Raustad - FSEC + // DATE WRITTEN February 2010 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS SUBROUTINE: + // Obtains input data for the OA Requirements object and stores it in + // appropriate data structure. + + // METHODOLOGY EMPLOYED: + // Uses InputProcessor "Get" routines to obtain data. + // This object requires only a name where the default values are assumed + // if subsequent fields are not entered. + + // REFERENCES: + // na + + using InputProcessor::VerifyName; + using InputProcessor::SameString; + using ScheduleManager::GetScheduleIndex; + using ScheduleManager::CheckScheduleValueMinMax; + using ScheduleManager::GetScheduleMaxValue; + using namespace DataIPShortCuts; + using General::RoundSigDigits; + + // Locals + // SUBROUTINE ARGUMENT DEFINITIONS: + // na + + // SUBROUTINE PARAMETER DEFINITIONS: + static std::string const RoutineName( "GetOARequirements: " ); // include trailing blank space + + // INTERFACE BLOCK SPECIFICATIONS + // na + + // DERIVED TYPE DEFINITIONS + // na + + + + if ( NumAlphas > 1 ) { + if ( SameString( Alphas( 2 ), "Flow/Person" ) ) { + OARequirements( OAIndex ).OAFlowMethod = OAFlowPPer; + } + else if ( SameString( Alphas( 2 ), "Flow/Zone" ) ) { + OARequirements( OAIndex ).OAFlowMethod = OAFlow; + } + else if ( SameString( Alphas( 2 ), "Flow/Area" ) ) { + OARequirements( OAIndex ).OAFlowMethod = OAFlowPerArea; + } + else if ( SameString( Alphas( 2 ), "AirChanges/Hour" ) ) { + OARequirements( OAIndex ).OAFlowMethod = OAFlowACH; + } + else if ( SameString( Alphas( 2 ), "Sum" ) ) { + OARequirements( OAIndex ).OAFlowMethod = OAFlowSum; + } + else if ( SameString( Alphas( 2 ), "Maximum" ) ) { + OARequirements( OAIndex ).OAFlowMethod = OAFlowMax; + } + else { + ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + OARequirements( OAIndex ).Name + "\"," ); + ShowContinueError( "...Invalid " + cAlphaFields( 2 ) + "=\"" + Alphas( 2 ) + "\"," ); + ShowContinueError( "...Valid choices are Flow/Person, Flow/Zone, Flow/Area, AirChanges/Hour, Sum, Maximum." ); + ErrorsFound = true; + } + } + else { + // default value for Outdoor Air Method + OARequirements( OAIndex ).OAFlowMethod = OAFlowPPer; + } + if ( NumNumbers > 0 ) { + OARequirements( OAIndex ).OAFlowPerPerson = Numbers( 1 ); + } + else { + // default value for Outdoor Air Flow per Person when per person flow is counted + OARequirements( OAIndex ).OAFlowPerPerson = 0.00944; + } + // if one of the methods that should not use the flow per person field is chosen then zero out the flow per person to avoid it + // being counted later #4378 + if ( OARequirements( OAIndex ).OAFlowMethod != OAFlowPPer && OARequirements( OAIndex ).OAFlowMethod != OAFlowSum && OARequirements( OAIndex ).OAFlowMethod != OAFlowMax ){ + OARequirements( OAIndex ).OAFlowPerPerson = 0.0; + } + // remaining fields default to 0 + if ( NumNumbers > 1 ) { + if ( OARequirements( OAIndex ).OAFlowMethod == OAFlowPerArea || OARequirements( OAIndex ).OAFlowMethod == OAFlowSum || OARequirements( OAIndex ).OAFlowMethod == OAFlowMax ){ + OARequirements( OAIndex ).OAFlowPerArea = Numbers( 2 ); + } + else { + OARequirements( OAIndex ).OAFlowPerArea = 0.0; + } + } + if ( NumNumbers > 2 ) { + if ( OARequirements( OAIndex ).OAFlowMethod == OAFlow || OARequirements( OAIndex ).OAFlowMethod == OAFlowSum || OARequirements( OAIndex ).OAFlowMethod == OAFlowMax ){ + OARequirements( OAIndex ).OAFlowPerZone = Numbers( 3 ); + } + else { + OARequirements( OAIndex ).OAFlowPerZone = 0.0; + } + } + if ( NumNumbers > 3 ) { + if ( OARequirements( OAIndex ).OAFlowMethod == OAFlowACH || OARequirements( OAIndex ).OAFlowMethod == OAFlowSum || OARequirements( OAIndex ).OAFlowMethod == OAFlowMax ){ + OARequirements( OAIndex ).OAFlowACH = Numbers( 4 ); + } + else { + OARequirements( OAIndex ).OAFlowACH = 0.0; + } + } + if ( NumAlphas > 2 ) { + if ( !lAlphaBlanks( 3 ) ) { + OARequirements( OAIndex ).OAFlowFracSchPtr = GetScheduleIndex( Alphas( 3 ) ); + if ( OARequirements( OAIndex ).OAFlowFracSchPtr > 0 ) { + if ( !CheckScheduleValueMinMax( OARequirements( OAIndex ).OAFlowFracSchPtr, ">=", 0.0, "<=", 1.0 ) ) { + ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + OARequirements( OAIndex ).Name + "\"," ); + ShowContinueError( "Error found in " + cAlphaFields( 3 ) + " = " + Alphas( 3 ) ); + ShowContinueError( "Schedule values must be (>=0., <=1.)" ); + ErrorsFound = true; + } + else { + OARequirements( OAIndex ).MaxOAFractionSchValue = GetScheduleMaxValue( OARequirements( OAIndex ).OAFlowFracSchPtr ); + } + } + else { + ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + OARequirements( OAIndex ).Name + "\"," ); + ShowContinueError( "...Not Found " + cAlphaFields( 3 ) + "=\"" + Alphas( 3 ) + "\"." ); + ErrorsFound = true; + } + } + } + + } + + void GetZoneAirDistribution() { @@ -1793,6 +1883,7 @@ namespace SizingManager { //Sizing:System; int const iNameAlphaNum = 1; // A1, \field AirLoop Name int const iLoadTypeSizeAlphaNum = 2; // A2, \field Type of Load to Size On + int const iCoolCapControlAlphaNum = 11; // A11 \field Central Cooling Capacity Control Method int const iDesignOAVolFlowNumericNum = 1; // N1, \field Design Outdoor Air Flow Rate int const iMinSysAirFlowRatioNumericNum = 2; // N2, \field Minimum System Air Flow Ratio int const iPreheatDesignTempNumericNum = 3; // N3, \field Preheat Design Temperature @@ -1876,8 +1967,8 @@ namespace SizingManager { { auto const loadSizeType( cAlphaArgs( iLoadTypeSizeAlphaNum ) ); if ( loadSizeType == "SENSIBLE" ) { SysSizInput( SysSizIndex ).LoadSizeType = Sensible; - } else if ( loadSizeType == "LATENT" ) { - SysSizInput( SysSizIndex ).LoadSizeType = Latent; + // } else if ( loadSizeType == "LATENT" ) { + // SysSizInput( SysSizIndex ).LoadSizeType = Latent; } else if ( loadSizeType == "TOTAL" ) { SysSizInput( SysSizIndex ).LoadSizeType = Total; } else if ( loadSizeType == "VENTILATIONREQUIREMENT" ) { @@ -1885,10 +1976,41 @@ namespace SizingManager { } else { ShowSevereError( cCurrentModuleObject + "=\"" + cAlphaArgs( iNameAlphaNum ) + "\", invalid data." ); ShowContinueError( "... incorrect " + cAlphaFieldNames( iLoadTypeSizeAlphaNum ) + "=\"" + cAlphaArgs( iLoadTypeSizeAlphaNum ) + "\"."); - ShowContinueError( "... valid values are Sensible, Latent, Total, or VentilationRequirement." ); + ShowContinueError( "... valid values are Sensible, Total, or VentilationRequirement." ); ErrorsFound = true; }} - { auto const sizingOption( cAlphaArgs( iSizingOptionAlphaNum ) ); + // assign CoolingPeakLoadType based on LoadSizeType for now + if ( SysSizInput( SysSizIndex ).LoadSizeType == Sensible ) { + SysSizInput( SysSizIndex ).CoolingPeakLoadType = SensibleCoolingLoad; + } + else if ( SysSizInput( SysSizIndex ).LoadSizeType == Total ) { + SysSizInput( SysSizIndex ).CoolingPeakLoadType = TotalCoolingLoad; + } + else { + SysSizInput( SysSizIndex ).CoolingPeakLoadType = SensibleCoolingLoad; + } + // set the CoolCapControl input + SysSizInput( SysSizIndex ).CoolCapControl = VAV; + { auto const CoolCapCtrl( cAlphaArgs( iCoolCapControlAlphaNum ) ); + if ( CoolCapCtrl == "VAV" ) { + SysSizInput( SysSizIndex ).CoolCapControl = VAV; + } + else if ( CoolCapCtrl == "BYPASS" ) { + SysSizInput( SysSizIndex ).CoolCapControl = Bypass; + } + else if ( CoolCapCtrl == "VT" ) { + SysSizInput( SysSizIndex ).CoolCapControl = VT; + } + else if ( CoolCapCtrl == "ONOFF" ) { + SysSizInput( SysSizIndex ).CoolCapControl = OnOff; + } + else { + ShowSevereError( cCurrentModuleObject + "=\"" + cAlphaArgs( iNameAlphaNum ) + "\", invalid data." ); + ShowContinueError( "... incorrect " + cAlphaFieldNames( iCoolCapControlAlphaNum ) + "=\"" + cAlphaArgs( iCoolCapControlAlphaNum ) + "\"." ); + ShowContinueError( "... valid values are VAV, Bypass, VT, or OnOff." ); + ErrorsFound = true; + }} + { auto const sizingOption( cAlphaArgs( iSizingOptionAlphaNum ) ); if ( sizingOption == "COINCIDENT" ) { SysSizInput( SysSizIndex ).SizingOption = Coincident; } else if ( sizingOption == "NONCOINCIDENT" ) { @@ -2106,18 +2228,10 @@ namespace SizingManager { // Determine SysSizInput electric Cooling design capacity sizing method if ( SameString( cAlphaArgs( iCoolCAPMAlphaNum ), "COOLINGDESIGNCAPACITY" ) ) { SysSizInput( SysSizIndex ).CoolingCapMethod = CoolingDesignCapacity; - - if ( !lNumericFieldBlanks( iCoolDesignCapacityNumericNum ) ) { - SysSizInput( SysSizIndex ).ScaledCoolingCapacity = rNumericArgs( iCoolDesignCapacityNumericNum ); - if ( SysSizInput( SysSizIndex ).ScaledCoolingCapacity < 0.0 && SysSizInput( SysSizIndex ).ScaledCoolingCapacity != AutoSize ) { - ShowSevereError( cCurrentModuleObject + " = " + SysSizInput( SysSizIndex ).AirPriLoopName ); - ShowContinueError( "Illegal " + cNumericFieldNames( iCoolDesignCapacityNumericNum ) + " = " + TrimSigDigits( rNumericArgs( iCoolDesignCapacityNumericNum ), 7 ) ); - ErrorsFound = true; - } - } else { + SysSizInput( SysSizIndex ).ScaledCoolingCapacity = rNumericArgs( iCoolDesignCapacityNumericNum ); + if( SysSizInput( SysSizIndex ).ScaledCoolingCapacity < 0.0 && SysSizInput( SysSizIndex ).ScaledCoolingCapacity != AutoSize ) { ShowSevereError( cCurrentModuleObject + " = " + SysSizInput( SysSizIndex ).AirPriLoopName ); - ShowContinueError( "Input for " + cAlphaFieldNames( iCoolCAPMAlphaNum ) + " = " + cAlphaArgs( iCoolCAPMAlphaNum ) ); - ShowContinueError( "Blank field not allowed for " + cNumericFieldNames( iCoolDesignCapacityNumericNum ) ); + ShowContinueError( "Illegal " + cNumericFieldNames( iCoolDesignCapacityNumericNum ) + " = " + TrimSigDigits( rNumericArgs( iCoolDesignCapacityNumericNum ), 7 ) ); ErrorsFound = true; } } else if ( SameString( cAlphaArgs( iCoolCAPMAlphaNum ), "CAPACITYPERFLOORAREA" ) ) { @@ -2150,34 +2264,32 @@ namespace SizingManager { ShowContinueError( "Illegal " + cNumericFieldNames( iCoolFracOfAutosizedCapacityNumericNum ) + " = " + TrimSigDigits( rNumericArgs( iCoolFracOfAutosizedCapacityNumericNum ), 7 ) ); ErrorsFound = true; } - } else { + } + else { ShowSevereError( cCurrentModuleObject + " = " + SysSizInput( SysSizIndex ).AirPriLoopName ); ShowContinueError( "Input for " + cAlphaFieldNames( iCoolCAPMAlphaNum ) + " = " + cAlphaArgs( iCoolCAPMAlphaNum ) ); ShowContinueError( "Blank field not allowed for " + cNumericFieldNames( iCoolFracOfAutosizedCapacityNumericNum ) ); ErrorsFound = true; } + } + else if ( SameString( cAlphaArgs( iCoolCAPMAlphaNum ), "NONE" ) ) { + SysSizInput( SysSizIndex ).CoolingCapMethod = None; + SysSizInput( SysSizIndex ).ScaledCoolingCapacity = 0.0; } else { - //ShowSevereError(cCurrentModuleObject + " = " + SysSizInput(SysSizIndex).AirPriLoopName); - //ShowContinueError("Illegal " + cAlphaFieldNames(iCoolCAPMAlphaNum) + " = " + cAlphaArgs(iCoolCAPMAlphaNum)); - //ErrorsFound = true; + ShowSevereError( cCurrentModuleObject + "=\"" + cAlphaArgs( iNameAlphaNum ) + "\", invalid data." ); + ShowContinueError( "... incorrect " + cAlphaFieldNames( iCoolCAPMAlphaNum ) + "=\"" + cAlphaArgs( iCoolCAPMAlphaNum ) + "\"." ); + ShowContinueError( "... valid values are CoolingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity, or None." ); + ErrorsFound = true; } - // Determine SysSizInput electric heating design capacity sizing method if ( SameString( cAlphaArgs( iHeatCAPMAlphaNum ), "HEATINGDESIGNCAPACITY" ) ) { SysSizInput( SysSizIndex ).HeatingCapMethod = HeatingDesignCapacity; - if ( !lNumericFieldBlanks( iHeatDesignCapacityNumericNum ) ) { - SysSizInput( SysSizIndex ).ScaledHeatingCapacity = rNumericArgs( iHeatDesignCapacityNumericNum ); - if ( SysSizInput( SysSizIndex ).ScaledHeatingCapacity < 0.0 && SysSizInput( SysSizIndex ).ScaledHeatingCapacity != AutoSize ) { - ShowSevereError( cCurrentModuleObject + " = " + SysSizInput( SysSizIndex ).AirPriLoopName ); - ShowContinueError( "Illegal " + cNumericFieldNames( iHeatDesignCapacityNumericNum ) + " = " + TrimSigDigits( rNumericArgs( iHeatDesignCapacityNumericNum ), 7 ) ); - ErrorsFound = true; - } - } else { + SysSizInput( SysSizIndex ).ScaledHeatingCapacity = rNumericArgs( iHeatDesignCapacityNumericNum ); + if( SysSizInput( SysSizIndex ).ScaledHeatingCapacity < 0.0 && SysSizInput( SysSizIndex ).ScaledHeatingCapacity != AutoSize ) { ShowSevereError( cCurrentModuleObject + " = " + SysSizInput( SysSizIndex ).AirPriLoopName ); - ShowContinueError( "Input for " + cAlphaFieldNames( iHeatCAPMAlphaNum ) + " = " + cAlphaArgs( iHeatCAPMAlphaNum ) ); - ShowContinueError( "Blank field not allowed for " + cNumericFieldNames( iHeatDesignCapacityNumericNum ) ); + ShowContinueError( "Illegal " + cNumericFieldNames( iHeatDesignCapacityNumericNum ) + " = " + TrimSigDigits( rNumericArgs( iHeatDesignCapacityNumericNum ), 7 ) ); ErrorsFound = true; } } else if ( SameString( cAlphaArgs( iHeatCAPMAlphaNum ), "CAPACITYPERFLOORAREA" ) ) { @@ -2216,10 +2328,14 @@ namespace SizingManager { ShowContinueError( "Blank field not allowed for " + cNumericFieldNames( iHeatFracOfAutosizedCapacityNumericNum ) ); ErrorsFound = true; } + } else if ( SameString( cAlphaArgs( iHeatCAPMAlphaNum ), "NONE" ) ) { + SysSizInput( SysSizIndex ).HeatingCapMethod = None; + SysSizInput( SysSizIndex ).ScaledHeatingCapacity = 0.0; } else { - //ShowSevereError(cCurrentModuleObject + " = " + SysSizInput(SysSizIndex).AirPriLoopName); - //ShowContinueError("Illegal " + cAlphaFieldNames(iHeatCAPMAlphaNum) + " = " + cAlphaArgs(iHeatCAPMAlphaNum)); - //ErrorsFound = true; + ShowSevereError( cCurrentModuleObject + "=\"" + cAlphaArgs( iNameAlphaNum ) + "\", invalid data." ); + ShowContinueError( "... incorrect " + cAlphaFieldNames( iHeatCAPMAlphaNum ) + "=\"" + cAlphaArgs( iHeatCAPMAlphaNum ) + "\"." ); + ShowContinueError( "... valid values are HeatingDesignCapacity, CapacityPerFloorArea, FractionOfAutosizedHeatingCapacity, or None." ); + ErrorsFound = true; } } @@ -2509,7 +2625,7 @@ namespace SizingManager { gio::write( OutputFileInits, Format_991 ) << ZoneName << LoadType << RoundSigDigits( CalcDesLoad, 5 ) << RoundSigDigits( UserDesLoad, 5 ) << RoundSigDigits( CalcDesFlow, 5 ) << RoundSigDigits( UserDesFlow, 5 ) << DesDayName << PeakHrMin << RoundSigDigits( PeakTemp, 5 ) << RoundSigDigits( PeakHumRat, 5 ) << RoundSigDigits( FloorArea, 5 ) << RoundSigDigits( TotOccs, 5 ) << RoundSigDigits( MinOAVolFlow, 5 ); // BSLLC Start - if ( sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->addSQLiteZoneSizingRecord( ZoneName, LoadType, CalcDesLoad, UserDesLoad, CalcDesFlow, UserDesFlow, DesDayName, PeakHrMin, PeakTemp, PeakHumRat, MinOAVolFlow ); } // BSLLC Finish @@ -2571,7 +2687,7 @@ namespace SizingManager { gio::write( OutputFileInits, Format_991 ) << SysName << VarDesc << RoundSigDigits( VarValue, 5 ); // BSLLC Start - if ( sqlite->writeOutputToSQLite() ) sqlite->addSQLiteSystemSizingRecord( SysName, VarDesc, VarValue ); + if ( sqlite ) sqlite->addSQLiteSystemSizingRecord( SysName, VarDesc, VarValue ); // BSLLC Finish } diff --git a/src/EnergyPlus/SizingManager.hh b/src/EnergyPlus/SizingManager.hh index 157fdf53ad4..c1462e2fecf 100644 --- a/src/EnergyPlus/SizingManager.hh +++ b/src/EnergyPlus/SizingManager.hh @@ -61,6 +61,21 @@ namespace SizingManager { void GetOARequirements(); + void + ProcessInputOARequirements( + std::string const & cCurrentModuleObject, + int const OAIndex, + FArray1_string const & cAlphaArgs, + int & NumAlphas, + FArray1< Real64 > const & rNumericArgs, + int & NumNumbers, + FArray1_bool const & lNumericFieldBlanks, //Unused + FArray1_bool const & lAlphaFieldBlanks, + FArray1_string const & cAlphaFieldNames, + FArray1_string const & cNumericFieldNames, //Unused + bool & ErrorsFound // If errors found in input + ); + void GetZoneAirDistribution(); diff --git a/src/EnergyPlus/SolarShading.cc b/src/EnergyPlus/SolarShading.cc index d5379ea3eb3..efdaae46112 100644 --- a/src/EnergyPlus/SolarShading.cc +++ b/src/EnergyPlus/SolarShading.cc @@ -106,12 +106,9 @@ namespace SolarShading { // Homogeneous Coordinates are represented in integers (64 bit). This changes the surface coordinates from meters // to .01 millimeters -- making that the resolution for shadowing, polygon clipping, etc. Real64 const sqHCMULT( HCMULT * HCMULT ); // Square of HCMult used in Homogeneous coordinates + Real64 const sqHCMULT_fac( 0.5 / sqHCMULT ); // ( 0.5 / sqHCMULT ) factor Real64 const kHCMULT( 1.0 / ( HCMULT * HCMULT ) ); // half of inverse square of HCMult used in Homogeneous coordinates - //INTEGER, PRIVATE, PARAMETER :: MAXCMB = 2000 ! Length of SHDCMB array - //INTEGER, PARAMETER :: MaxHCS = 15000 ! 200 ! Maximum number of HC surfaces (was 56) - //INTEGER, PARAMETER :: MaxHCV = 12 ! Maximum number of HC vertices - // Parameters for use with the variable OverlapStatus... int const NoOverlap( 1 ); int const FirstSurfWithinSecond( 2 ); @@ -126,7 +123,7 @@ namespace SolarShading { // na // MODULE VARIABLE DECLARATIONS: - int MaxHCV( 12 ); // Maximum number of HC vertices + int MaxHCV( 15 ); // Maximum number of HC vertices // (needs to be based on maxnumvertices) int MaxHCS( 15000 ); // 200 ! Maximum number of HC surfaces (was 56) // Following are initially set in AllocateModuleArrays @@ -263,7 +260,8 @@ namespace SolarShading { if ( GetInputFlag ) { GetShadowingInput(); GetInputFlag = false; - MaxHCV = max( 12, MaxVerticesPerSurface + 1 ); + MaxHCV = ( ( ( max( 15, MaxVerticesPerSurface ) + 16 ) / 16 ) * 16 ) - 1; // Assure MaxHCV+1 is multiple of 16 for 128 B alignment + assert( ( MaxHCV + 1 ) % 16 == 0 ); } if ( firstTime ) DisplayString( "Allocate Solar Module Arrays" ); @@ -732,15 +730,15 @@ namespace SolarShading { // Weiler-Atherton MAXHCArrayBounds = 2 * ( MaxVerticesPerSurface + 1 ); MAXHCArrayIncrement = MaxVerticesPerSurface + 1; - XTEMP.dimension( ( MaxVerticesPerSurface + 1 ) * 2, 0.0 ); - YTEMP.dimension( ( MaxVerticesPerSurface + 1 ) * 2, 0.0 ); + XTEMP.dimension( 2 * ( MaxVerticesPerSurface + 1 ), 0.0 ); + YTEMP.dimension( 2 * ( MaxVerticesPerSurface + 1 ), 0.0 ); XVC.dimension( MaxVerticesPerSurface + 1, 0.0 ); XVS.dimension( MaxVerticesPerSurface + 1, 0.0 ); YVC.dimension( MaxVerticesPerSurface + 1, 0.0 ); YVS.dimension( MaxVerticesPerSurface + 1, 0.0 ); ZVC.dimension( MaxVerticesPerSurface + 1, 0.0 ); - //Sutherland-Hodgman + // Sutherland-Hodgman ATEMP.dimension( 2 * ( MaxVerticesPerSurface + 1 ), 0.0 ); BTEMP.dimension( 2 * ( MaxVerticesPerSurface + 1 ), 0.0 ); CTEMP.dimension( 2 * ( MaxVerticesPerSurface + 1 ), 0.0 ); @@ -2109,27 +2107,22 @@ namespace SolarShading { NVS = NABOVE + 2; NumVertInShadowOrClippedSurface = NABOVE + 2; + Real64 ZVT_N, ZVT_P( ZVT( 1 ) ); XVT( NVT + 1 ) = XVT( 1 ); YVT( NVT + 1 ) = YVT( 1 ); - ZVT( NVT + 1 ) = ZVT( 1 ); - for ( int N = 1; N <= NVT; ++N ) { - Real64 const ZVT_N( ZVT( N ) ); - Real64 const ZVT_P( ZVT( N + 1 ) ); + ZVT( NVT + 1 ) = ZVT_P; + for ( int N = 1, P = 2; N <= NVT; ++N, ++P ) { + ZVT_N = ZVT_P; + ZVT_P = ZVT( P ); if ( ZVT_N >= 0.0 && ZVT_P < 0.0 ) { // Line enters plane of receiving surface - Real64 const ZVT_fac( 1.0 / ( ZVT_P - ZVT_N ) ); - XIN = ( ZVT_P * XVT( N ) - ZVT_N * XVT( N + 1 ) ) * ZVT_fac; - YIN = ( ZVT_P * YVT( N ) - ZVT_N * YVT( N + 1 ) ) * ZVT_fac; - //? Just keeps going on to next N: break here? - + XIN = ( ZVT_P * XVT( N ) - ZVT_N * XVT( P ) ) * ZVT_fac; + YIN = ( ZVT_P * YVT( N ) - ZVT_N * YVT( P ) ) * ZVT_fac; } else if ( ZVT_N <= 0.0 && ZVT_P > 0.0 ) { // Line exits plane of receiving surface - NEXT = N + 1; Real64 const ZVT_fac( 1.0 / ( ZVT_P - ZVT_N ) ); - XOUT = ( ZVT_P * XVT( N ) - ZVT_N * XVT( N + 1 ) ) * ZVT_fac; - YOUT = ( ZVT_P * YVT( N ) - ZVT_N * YVT( N + 1 ) ) * ZVT_fac; - //? Just keeps going on to next N: break here? - + XOUT = ( ZVT_P * XVT( N ) - ZVT_N * XVT( P ) ) * ZVT_fac; + YOUT = ( ZVT_P * YVT( N ) - ZVT_N * YVT( P ) ) * ZVT_fac; } } @@ -2298,34 +2291,50 @@ namespace SolarShading { // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - if ( NS > MaxHCS * 2 ) { + if ( NS > 2 * MaxHCS ) { ShowFatalError( "Solar Shading: HTrans: Too many Figures (>" + TrimSigDigits( MaxHCS ) + ')' ); } HCNV( NS ) = NumVertices; + //Tuned Linear indexing + + assert( equal_dimensions( HCX, HCY ) ); + assert( equal_dimensions( HCX, HCA ) ); + assert( equal_dimensions( HCX, HCB ) ); + assert( equal_dimensions( HCX, HCC ) ); + auto const l1( HCX.index( 1, NS ) ); if ( I != 0 ) { // Transform vertices of figure ns. // See comment at top of module regarding HCMULT - for ( int N = 1; N <= NumVertices; ++N ) { - HCX( N, NS ) = nint64( XVS( N ) * HCMULT ); - HCY( N, NS ) = nint64( YVS( N ) * HCMULT ); + auto l( l1 ); + for ( int N = 1; N <= NumVertices; ++N, ++l ) { // [ l ] == ( N, NS ) + HCX[ l ] = nint64( XVS( N ) * HCMULT ); + HCY[ l ] = nint64( YVS( N ) * HCMULT ); } } // Establish extra point for finding lines between points. - HCX( NumVertices + 1, NS ) = HCX( 1, NS ); - HCY( NumVertices + 1, NS ) = HCY( 1, NS ); + auto l( HCX.index( NumVertices + 1, NS ) ); + Int64 HCX_m( HCX[ l ] = HCX[ l1 ] ); // [ l ] == ( NumVertices + 1, NS ), [ l1 ] == ( 1, NS ) + Int64 HCY_m( HCY[ l ] = HCY[ l1 ] ); // [ l ] == ( NumVertices + 1, NS ), [ l1 ] == ( 1, NS ) // Determine lines between points. + l = l1; + auto m( l1 + 1u ); + Int64 HCX_l; + Int64 HCY_l; Real64 SUM( 0.0 ); // Sum variable - for ( int N = 1; N <= NumVertices; ++N ) { - HCA( N, NS ) = HCY( N, NS ) - HCY( N + 1, NS ); - HCB( N, NS ) = HCX( N + 1, NS ) - HCX( N, NS ); - HCC( N, NS ) = ( HCY( N + 1, NS ) * HCX( N, NS ) ) - ( HCX( N + 1, NS ) * HCY( N, NS ) ); - SUM += HCC( N, NS ); + for ( int N = 1; N <= NumVertices; ++N, ++l, ++m ) { // [ l ] == ( N, NS ), [ m ] == ( N + 1, NS ) + HCX_l = HCX_m; + HCY_l = HCY_m; + HCX_m = HCX[ m ]; + HCY_m = HCY[ m ]; + HCA[ l ] = HCY_l - HCY_m; + HCB[ l ] = HCX_m - HCX_l; + SUM += HCC[ l ] = ( HCY_m * HCX_l ) - ( HCX_m * HCY_l ); } // Compute area of polygon. @@ -2333,7 +2342,7 @@ namespace SolarShading { // DO N = 1, NumVertices // SUM = SUM + HCX(N,NS)*HCY(N+1,NS) - HCY(N,NS)*HCX(N+1,NS) ! Since HCX and HCY integerized, value of SUM should be ok // END DO - HCAREA( NS ) = ( 0.5 * SUM ) / ( sqHCMULT ); + HCAREA( NS ) = SUM * sqHCMULT_fac; // HCAREA(NS)=0.5d0*SUM*(kHCMULT) } @@ -2349,33 +2358,41 @@ namespace SolarShading { // Locals - if ( NS > MaxHCS * 2 ) { + if ( NS > 2 * MaxHCS ) { ShowFatalError( "Solar Shading: HTrans0: Too many Figures (>" + TrimSigDigits( MaxHCS ) + ')' ); } - assert( equal_dimensions( HCX, HCY ) ); // For linear indexing - assert( equal_dimensions( HCX, HCA ) ); // For linear indexing - assert( equal_dimensions( HCX, HCB ) ); // For linear indexing - assert( equal_dimensions( HCX, HCC ) ); // For linear indexing + HCNV( NS ) = NumVertices; + + //Tuned Linear indexing + + assert( equal_dimensions( HCX, HCY ) ); + assert( equal_dimensions( HCX, HCA ) ); + assert( equal_dimensions( HCX, HCB ) ); + assert( equal_dimensions( HCX, HCC ) ); auto const l1( HCX.index( 1, NS ) ); - HCNV( NS ) = NumVertices; auto l( HCX.index( NumVertices + 1, NS ) ); - HCX[ l ] = HCX[ l1 ]; // [ l1 ] == ( 1, NS ) - HCY[ l ] = HCY[ l1 ]; // [ l1 ] == ( 1, NS ) + Int64 HCX_m( HCX[ l ] = HCX[ l1 ] ); // [ l1 ] == ( 1, NS ) + Int64 HCY_m( HCY[ l ] = HCY[ l1 ] ); // [ l1 ] == ( 1, NS ) - //Tuned Linear indexing l = l1; - auto m( l + 1u ); + auto m( l1 + 1u ); + Int64 HCX_l; + Int64 HCY_l; Real64 SUM( 0.0 ); for ( int N = 1; N <= NumVertices; ++N, ++l, ++m ) { // [ l ] == ( N, NS ), [ m ] == ( N + 1, NS ) - HCA[ l ] = HCY[ l ] - HCY[ m ]; - HCB[ l ] = HCX[ m ] - HCX[ l ]; - SUM += HCC[ l ] = ( HCY[ m ] * HCX[ l ] ) - ( HCX[ m ] * HCY[ l ] ); + HCX_l = HCX_m; + HCY_l = HCY_m; + HCX_m = HCX[ m ]; + HCY_m = HCY[ m ]; + HCA[ l ] = HCY_l - HCY_m; + HCB[ l ] = HCX_m - HCX_l; + SUM += HCC[ l ] = ( HCY_m * HCX_l ) - ( HCX_m * HCY_l ); } - HCAREA( NS ) = ( 0.5 * SUM ) / ( sqHCMULT ); + HCAREA( NS ) = SUM * sqHCMULT_fac; } @@ -2388,40 +2405,48 @@ namespace SolarShading { // Using/Aliasing using General::TrimSigDigits; - if ( NS > MaxHCS * 2 ) { + if ( NS > 2 * MaxHCS ) { ShowFatalError( "Solar Shading: HTrans1: Too many Figures (>" + TrimSigDigits( MaxHCS ) + ')' ); } - assert( equal_dimensions( HCX, HCY ) ); // For linear indexing - assert( equal_dimensions( HCX, HCA ) ); // For linear indexing - assert( equal_dimensions( HCX, HCB ) ); // For linear indexing - assert( equal_dimensions( HCX, HCC ) ); // For linear indexing + HCNV( NS ) = NumVertices; - // only in HTRANS1 //Tuned Linear indexing + + assert( equal_dimensions( HCX, HCY ) ); + assert( equal_dimensions( HCX, HCA ) ); + assert( equal_dimensions( HCX, HCB ) ); + assert( equal_dimensions( HCX, HCC ) ); + auto const l1( HCX.index( 1, NS ) ); + + // only in HTRANS1 auto l( l1 ); for ( int N = 1; N <= NumVertices; ++N, ++l ) { // [ l ] == ( N, NS ) HCX[ l ] = nint64( XVS( N ) * HCMULT ); HCY[ l ] = nint64( YVS( N ) * HCMULT ); } - HCNV( NS ) = NumVertices; l = HCX.index( NumVertices + 1, NS ); - HCX[ l ] = HCX[ l1 ]; // [ l1 ] == ( 1, NS ) - HCY[ l ] = HCY[ l1 ]; // [ l1 ] == ( 1, NS ) + Int64 HCX_m( HCX[ l ] = HCX[ l1 ] ); // [ l1 ] == ( 1, NS ) + Int64 HCY_m( HCY[ l ] = HCY[ l1 ] ); - //Tuned Linear indexing l = l1; - auto m( l + 1u ); + auto m( l1 + 1u ); + Int64 HCX_l; + Int64 HCY_l; Real64 SUM( 0.0 ); for ( int N = 1; N <= NumVertices; ++N, ++l, ++m ) { // [ l ] == ( N, NS ), [ m ] == ( N + 1, NS ) - HCA[ l ] = HCY[ l ] - HCY[ m ]; - HCB[ l ] = HCX[ m ] - HCX[ l ]; - SUM += HCC[ l ] = ( HCY[ m ] * HCX[ l ] ) - ( HCX[ m ] * HCY[ l ] ); + HCX_l = HCX_m; + HCY_l = HCY_m; + HCX_m = HCX[ m ]; + HCY_m = HCY[ m ]; + HCA[ l ] = HCY_l - HCY_m; + HCB[ l ] = HCX_m - HCX_l; + SUM += HCC[ l ] = ( HCY_m * HCX_l ) - ( HCX_m * HCY_l ); } - HCAREA( NS ) = ( 0.5 * SUM ) / ( sqHCMULT ); + HCAREA( NS ) = SUM * sqHCMULT_fac; } @@ -2549,8 +2574,6 @@ namespace SolarShading { // na // Locals - FArray1D< Real64 > XTEMP1; // Temporary 'X' values for HC vertices of the overlap - FArray1D< Real64 > YTEMP1; // Temporary 'Y' values for HC vertices of the overlap // SUBROUTINE ARGUMENT DEFINITIONS: @@ -2598,16 +2621,8 @@ namespace SolarShading { YUntrunc = ( HCA( M, NS2 ) * HCC( N, NS1 ) - HCC( M, NS2 ) * HCA( N, NS1 ) ) / W; if ( NV3 > isize( XTEMP ) ) { // write(outputfiledebug,*) 'nv3=',nv3,' SIZE(xtemp)=',SIZE(xtemp) - XTEMP1.dimension( isize( XTEMP ) + 10, 0.0 ); - YTEMP1.dimension( isize( YTEMP ) + 10, 0.0 ); - XTEMP1( {1,NV3 - 1} ) = XTEMP( {1,NV3 - 1} ); - YTEMP1( {1,NV3 - 1} ) = YTEMP( {1,NV3 - 1} ); - XTEMP.allocate( isize( XTEMP1 ) ); - YTEMP.allocate( isize( YTEMP1 ) ); - XTEMP = XTEMP1; - YTEMP = YTEMP1; - XTEMP1.deallocate(); - YTEMP1.deallocate(); + XTEMP.redimension( isize( XTEMP ) + 10, 0.0 ); + YTEMP.redimension( isize( YTEMP ) + 10, 0.0 ); } XTEMP( NV3 ) = nint64( XUntrunc ); YTEMP( NV3 ) = nint64( YUntrunc ); @@ -2676,32 +2691,28 @@ namespace SolarShading { // na // SUBROUTINE LOCAL VARIABLE DECLARATIONS: + typedef FArray2D< Int64 >::size_type size_type; bool INTFLAG; // For overlap status - int E; // Edge loop index - int P; // Point loop index int S; // Test vertex - int K; // Duplicate test index int KK; // Duplicate test index int NVOUT; // Current output length for loops int NVTEMP; Real64 W; // Normalization factor Real64 HFunct; - // REAL(r64), DIMENSION(2*(MaxVerticesPerSurface + 1)) :: ATEMP ! Temporary 'A' values for HC vertices of the overlap - // REAL(r64), DIMENSION(2*(MaxVerticesPerSurface + 1)) :: BTEMP ! Temporary 'B' values for HC vertices of the overlap - // REAL(r64), DIMENSION(2*(MaxVerticesPerSurface + 1)) :: CTEMP ! Temporary 'C' values for HC vertices of the overlap - // REAL(r64), DIMENSION(2*(MaxVerticesPerSurface + 1)) :: XTEMP1 ! Temporary 'X' values for HC vertices of the overlap - // REAL(r64), DIMENSION(2*(MaxVerticesPerSurface + 1)) :: YTEMP1 ! Temporary 'Y' values for HC vertices of the overlap #ifdef EP_Count_Calls ++NumClipPoly_Calls; #endif - // Populate the arrays with the original polygon - assert( equal_dimensions( HCX, HCY ) ); // For linear indexing + //Tuned Linear indexing + + assert( equal_dimensions( HCX, HCY ) ); assert( equal_dimensions( HCX, HCA ) ); assert( equal_dimensions( HCX, HCB ) ); assert( equal_dimensions( HCX, HCC ) ); - for ( FArray2D< Real64 >::size_type j = 0, l = HCX.index( 1, NS1 ), e = NV1; j < e; ++j, ++l ) { //Tuned + + // Populate the arrays with the original polygon + for ( size_type j = 0, l = HCX.index( 1, NS1 ), e = NV1; j < e; ++j, ++l ) { XTEMP[ j ] = HCX[ l ]; // [ l ] == ( j+1, NS1 ) YTEMP[ j ] = HCY[ l ]; ATEMP[ j ] = HCA[ l ]; @@ -2715,36 +2726,40 @@ namespace SolarShading { KK = 0; auto l( HCA.index( 1, NS2 ) ); - for ( E = 1; E <= NV2; ++E, ++l ) { // Loop over edges of the clipping polygon - for ( P = 1; P <= NVOUT; ++P ) { + for ( int E = 1; E <= NV2; ++E, ++l ) { // Loop over edges of the clipping polygon + for ( int P = 1; P <= NVOUT; ++P ) { XTEMP1( P ) = XTEMP( P ); YTEMP1( P ) = YTEMP( P ); } S = NVOUT; - Int64 const HCA_E( HCA[ l ] ); - Int64 const HCB_E( HCB[ l ] ); - Int64 const HCC_E( HCC[ l ] ); - for ( P = 1; P <= NVOUT; ++P ) { - HFunct = XTEMP1( P ) * HCA_E + YTEMP1( P ) * HCB_E + HCC_E; + Real64 const HCA_E( HCA[ l ] ); + Real64 const HCB_E( HCB[ l ] ); + Real64 const HCC_E( HCC[ l ] ); + Real64 XTEMP1_S( XTEMP1( S ) ); + Real64 YTEMP1_S( YTEMP1( S ) ); + for ( int P = 1; P <= NVOUT; ++P ) { + Real64 const XTEMP1_P( XTEMP1( P ) ); + Real64 const YTEMP1_P( YTEMP1( P ) ); + HFunct = XTEMP1_P * HCA_E + YTEMP1_P * HCB_E + HCC_E; // S is constant within this block - Real64 const ATEMP_S( ATEMP( S ) ); - Real64 const BTEMP_S( BTEMP( S ) ); - Real64 const CTEMP_S( CTEMP( S ) ); if ( HFunct <= 0.0 ) { // Vertex is not in the clipping plane - HFunct = XTEMP1( S ) * HCA_E + YTEMP1( S ) * HCB_E + HCC_E; + HFunct = XTEMP1_S * HCA_E + YTEMP1_S * HCB_E + HCC_E; if ( HFunct > 0.0 ) { // Test vertex is in the clipping plane // Find/store the intersection of the clip edge and the line connecting S and P KK = NVTEMP; ++NVTEMP; + Real64 const ATEMP_S( ATEMP( S ) ); + Real64 const BTEMP_S( BTEMP( S ) ); + Real64 const CTEMP_S( CTEMP( S ) ); W = HCB_E * ATEMP_S - HCA_E * BTEMP_S; if ( W != 0.0 ) { Real64 const W_inv( 1.0 / W ); XTEMP( NVTEMP ) = nint64( ( HCC_E * BTEMP_S - HCB_E * CTEMP_S ) * W_inv ); YTEMP( NVTEMP ) = nint64( ( HCA_E * CTEMP_S - HCC_E * ATEMP_S ) * W_inv ); } else { - XTEMP( NVTEMP ) = SafeDivide( ( HCC_E * BTEMP_S - HCB_E * CTEMP_S ), W ); - YTEMP( NVTEMP ) = SafeDivide( ( HCA_E * CTEMP_S - HCC_E * ATEMP_S ), W ); + XTEMP( NVTEMP ) = SafeDivide( HCC_E * BTEMP_S - HCB_E * CTEMP_S, W ); + YTEMP( NVTEMP ) = SafeDivide( HCA_E * CTEMP_S - HCC_E * ATEMP_S, W ); } INTFLAG = true; @@ -2752,11 +2767,11 @@ namespace SolarShading { if ( KK != 0 ) { auto const x( XTEMP( NVTEMP ) ); auto const y( YTEMP( NVTEMP ) ); - for ( K = 1; K <= KK; ++K ) { + for ( int K = 1; K <= KK; ++K ) { if ( std::abs( x - XTEMP( K ) ) > 2.0 ) continue; if ( std::abs( y - YTEMP( K ) ) > 2.0 ) continue; NVTEMP = KK; - break; // K DO loop + break; // K loop } } } @@ -2777,36 +2792,39 @@ namespace SolarShading { MAXHCArrayBounds = NewArrayBounds; } - XTEMP( NVTEMP ) = XTEMP1( P ); - YTEMP( NVTEMP ) = YTEMP1( P ); + XTEMP( NVTEMP ) = XTEMP1_P; + YTEMP( NVTEMP ) = YTEMP1_P; if ( E == NV2 ) { // Remove near-duplicates on last edge if ( KK != 0 ) { auto const x( XTEMP( NVTEMP ) ); auto const y( YTEMP( NVTEMP ) ); - for ( K = 1; K <= KK; ++K ) { + for ( int K = 1; K <= KK; ++K ) { if ( std::abs( x - XTEMP( K ) ) > 2.0 ) continue; if ( std::abs( y - YTEMP( K ) ) > 2.0 ) continue; NVTEMP = KK; - break; // K DO loop + break; // K loop } } } } else { - HFunct = XTEMP1( S ) * HCA_E + YTEMP1( S ) * HCB_E + HCC_E; + HFunct = XTEMP1_S * HCA_E + YTEMP1_S * HCB_E + HCC_E; if ( HFunct <= 0.0 ) { // Test vertex is not in the clipping plane KK = NVTEMP; ++NVTEMP; + Real64 const ATEMP_S( ATEMP( S ) ); + Real64 const BTEMP_S( BTEMP( S ) ); + Real64 const CTEMP_S( CTEMP( S ) ); W = HCB_E * ATEMP_S - HCA_E * BTEMP_S; if ( W != 0.0 ) { Real64 const W_inv( 1.0 / W ); XTEMP( NVTEMP ) = nint64( ( HCC_E * BTEMP_S - HCB_E * CTEMP_S ) * W_inv ); YTEMP( NVTEMP ) = nint64( ( HCA_E * CTEMP_S - HCC_E * ATEMP_S ) * W_inv ); } else { - XTEMP( NVTEMP ) = SafeDivide( ( HCC_E * BTEMP_S - HCB_E * CTEMP_S ), W ); - YTEMP( NVTEMP ) = SafeDivide( ( HCA_E * CTEMP_S - HCC_E * ATEMP_S ), W ); + XTEMP( NVTEMP ) = SafeDivide( HCC_E * BTEMP_S - HCB_E * CTEMP_S, W ); + YTEMP( NVTEMP ) = SafeDivide( HCA_E * CTEMP_S - HCC_E * ATEMP_S, W ); } INTFLAG = true; @@ -2814,11 +2832,11 @@ namespace SolarShading { if ( KK != 0 ) { auto const x( XTEMP( NVTEMP ) ); auto const y( YTEMP( NVTEMP ) ); - for ( K = 1; K <= KK; ++K ) { + for ( int K = 1; K <= KK; ++K ) { if ( std::abs( x - XTEMP( K ) ) > 2.0 ) continue; if ( std::abs( y - YTEMP( K ) ) > 2.0 ) continue; NVTEMP = KK; - break; // K DO loop + break; // K loop } } } @@ -2826,21 +2844,32 @@ namespace SolarShading { } } S = P; + XTEMP1_S = XTEMP1_P; + YTEMP1_S = YTEMP1_P; } // end loop over points of subject polygon NVOUT = NVTEMP; + if ( NVOUT == 0 ) break; // Added to avoid array bounds violation of XTEMP1 and YTEMP1 and wasted looping NVTEMP = 0; if ( E != NV2 ) { if ( NVOUT > 2 ) { // Compute HC values for edges of output polygon - for ( P = 1; P <= NVOUT - 1; ++P ) { - ATEMP( P ) = YTEMP( P ) - YTEMP( P + 1 ); - BTEMP( P ) = XTEMP( P + 1 ) - XTEMP( P ); - CTEMP( P ) = XTEMP( P ) * YTEMP( P + 1 ) - YTEMP( P ) * XTEMP( P + 1 ); + Real64 const X_1( XTEMP( 1 ) ); + Real64 const Y_1( YTEMP( 1 ) ); + Real64 X_P( X_1 ), X_P1; + Real64 Y_P( Y_1 ), Y_P1; + for ( int P = 1; P < NVOUT; ++P ) { + X_P1 = XTEMP( P + 1 ); + Y_P1 = YTEMP( P + 1 ); + ATEMP( P ) = Y_P - Y_P1; + BTEMP( P ) = X_P1 - X_P; + CTEMP( P ) = X_P * Y_P1 - Y_P * X_P1; + X_P = X_P1; + Y_P = Y_P1; } - ATEMP( NVOUT ) = YTEMP( NVOUT ) - YTEMP( 1 ); - BTEMP( NVOUT ) = XTEMP( 1 ) - XTEMP( NVOUT ); - CTEMP( NVOUT ) = XTEMP( NVOUT ) * YTEMP( 1 ) - YTEMP( NVOUT ) * XTEMP( 1 ); + ATEMP( NVOUT ) = Y_P1 - Y_1; + BTEMP( NVOUT ) = X_1 - X_P1; + CTEMP( NVOUT ) = X_P1 * Y_1 - Y_P1 * X_1; } } @@ -3201,7 +3230,7 @@ namespace SolarShading { auto l( HCX.index( 1, NS3 ) ); for ( N = 1; N <= NV3; ++N, ++l ) { HCX[ l ] = nint64( XTEMP( N ) ); // [ l ] == ( N, NS3 ) - HCY[ l ] = nint64( YTEMP( N ) ); // [ l ] == ( N, NS3 ) + HCY[ l ] = nint64( YTEMP( N ) ); } } @@ -3214,12 +3243,13 @@ namespace SolarShading { if ( HCAREA( NS1 ) * HCAREA( NS2 ) > 0.0 ) HCAREA( NS3 ) = -HCAREA( NS3 ); // Determine sign of area of overlap Real64 const HCT_1( HCT( NS1 ) ); Real64 const HCT_2( HCT( NS2 ) ); - HCT( NS3 ) = HCT_2 * HCT_1; // Determine transmission of overlap - if ( HCT_2 != 1.0 && HCT_2 != 0.0 && HCT_1 != 1.0 && HCT_1 != 0.0 ) { - if ( HCT_2 >= 0.5 && HCT_1 >= 0.5 ) { - HCT( NS3 ) = 1.0 - HCT( NS3 ); + Real64 HCT_3( HCT_2 * HCT_1 ); // Determine transmission of overlap + if ( HCT_2 >= 0.5 && HCT_1 >= 0.5 ) { + if ( HCT_2 != 1.0 && HCT_1 != 1.0 ) { + HCT_3 = 1.0 - HCT_3; } } + HCT( NS3 ) = HCT_3; } } else if ( NV3 > MaxHCV ) { @@ -3480,7 +3510,7 @@ namespace SolarShading { Real64 Fac1WoShdg; // Intermediate calculation factor, without shading Real64 Fac1WithShdg; // Intermediate calculation factor, with shading - //Recover the sun direction from the array stored in previous loop + // Recover the sun direction from the array stored in previous loop SUNCOS = SUNCOSTS( {1,3}, iHour, iTimeStep ); CTHETA = 0.0; @@ -3631,7 +3661,6 @@ namespace SolarShading { FArray1D_int GSS; // List of shadowing surfaces numbers for a receiving surface FArray1D_int BKS; // List of back surface numbers for a receiving surface FArray1D_int SBS; // List of subsurfaces for a receiving surface - FArray1D_int ListTemp; // Temporary array for reallocations static int MaxGSS( 50 ); // Current Max for GSS array static int MaxBKS( 50 ); // Current Max for BKS array static int MaxSBS( 50 ); // Current Max for SBS array @@ -3659,15 +3688,15 @@ namespace SolarShading { CastingSurface.dimension( TotSurfaces, false ); - HCA.dimension( MaxHCV + 1, MaxHCS * 2, 0 ); - HCB.dimension( MaxHCV + 1, MaxHCS * 2, 0 ); - HCC.dimension( MaxHCV + 1, MaxHCS * 2, 0 ); - HCX.dimension( MaxHCV + 1, MaxHCS * 2, 0 ); - HCY.dimension( MaxHCV + 1, MaxHCS * 2, 0 ); - HCAREA.dimension( MaxHCS * 2, 0.0 ); - HCNS.dimension( MaxHCS * 2, 0 ); - HCNV.dimension( MaxHCS * 2, 0 ); - HCT.dimension( MaxHCS * 2, 0.0 ); + HCA.dimension( MaxHCV + 1, 2 * MaxHCS, 0 ); + HCB.dimension( MaxHCV + 1, 2 * MaxHCS, 0 ); + HCC.dimension( MaxHCV + 1, 2 * MaxHCS, 0 ); + HCX.dimension( MaxHCV + 1, 2 * MaxHCS, 0 ); + HCY.dimension( MaxHCV + 1, 2 * MaxHCS, 0 ); + HCAREA.dimension( 2 * MaxHCS, 0.0 ); + HCNS.dimension( 2 * MaxHCS, 0 ); + HCNV.dimension( 2 * MaxHCS, 0 ); + HCT.dimension( 2 * MaxHCS, 0.0 ); GSS.dimension( MaxGSS, 0 ); BKS.dimension( MaxGSS, 0 ); @@ -3716,14 +3745,7 @@ namespace SolarShading { ++NGSS; if ( NGSS > MaxGSS ) { - ListTemp.allocate( MaxGSS * 2 ); - ListTemp = 0; - ListTemp( {1,MaxGSS} ) = GSS( {1,MaxGSS} ); - GSS.deallocate(); - GSS.allocate( MaxGSS * 2 ); - GSS = ListTemp; - MaxGSS *= 2; - ListTemp.deallocate(); + GSS.redimension( MaxGSS *= 2, 0 ); } GSS( NGSS ) = GSSNR; @@ -3733,14 +3755,7 @@ namespace SolarShading { if ( ! CannotShade ) { // Update the shadowing surface data if shading is possible ++NGSS; if ( NGSS > MaxGSS ) { - ListTemp.allocate( MaxGSS * 2 ); - ListTemp = 0; - ListTemp( {1,MaxGSS} ) = GSS( {1,MaxGSS} ); - GSS.deallocate(); - GSS.allocate( MaxGSS * 2 ); - GSS = ListTemp; - MaxGSS *= 2; - ListTemp.deallocate(); + GSS.redimension( MaxGSS *= 2, 0 ); } GSS( NGSS ) = GSSNR; } @@ -3757,14 +3772,7 @@ namespace SolarShading { if ( Surface( GSSNR ).BaseSurf == GRSNR ) { // Shadowing subsurface of receiving surface ++NGSS; if ( NGSS > MaxGSS ) { - ListTemp.allocate( MaxGSS * 2 ); - ListTemp = 0; - ListTemp( {1,MaxGSS} ) = GSS( {1,MaxGSS} ); - GSS.deallocate(); - GSS.allocate( MaxGSS * 2 ); - GSS = ListTemp; - MaxGSS *= 2; - ListTemp.deallocate(); + GSS.redimension( MaxGSS *= 2, 0 ); } GSS( NGSS ) = GSSNR; } @@ -3787,14 +3795,7 @@ namespace SolarShading { // severe error if not ++NSBS; if ( NSBS > MaxSBS ) { - ListTemp.allocate( MaxSBS * 2 ); - ListTemp = 0; - ListTemp( {1,MaxSBS} ) = SBS( {1,MaxSBS} ); - SBS.deallocate(); - SBS.allocate( MaxSBS * 2 ); - SBS = ListTemp; - MaxSBS *= 2; - ListTemp.deallocate(); + SBS.redimension( MaxSBS *= 2, 0 ); } SBS( NSBS ) = SBSNR; @@ -3822,14 +3823,7 @@ namespace SolarShading { CHKBKS( BackSurfaceNumber, GRSNR ); // CHECK FOR CONVEX ZONE; severe error if not ++NBKS; if ( NBKS > MaxBKS ) { - ListTemp.allocate( MaxBKS * 2 ); - ListTemp = 0; - ListTemp( {1,MaxBKS} ) = BKS( {1,MaxBKS} ); - BKS.deallocate(); - BKS.allocate( MaxBKS * 2 ); - BKS = ListTemp; - MaxBKS *= 2; - ListTemp.deallocate(); + BKS.redimension( MaxBKS *= 2, 0 ); } BKS( NBKS ) = BackSurfaceNumber; @@ -4153,6 +4147,7 @@ namespace SolarShading { // na // SUBROUTINE LOCAL VARIABLE DECLARATIONS: + typedef FArray2D< Int64 >::size_type size_type; int I; int M; int N; @@ -4167,6 +4162,11 @@ namespace SolarShading { int NS2; // Number of the figure doing overlapping int NS3; // Location to place results of overlap + //Tuned Linear indexing + + assert( equal_dimensions( HCX, HCY ) ); + assert( equal_dimensions( HCX, HCA ) ); + if ( OneTimeFlag ) { XVT.allocate( MaxVerticesPerSurface + 1 ); YVT.allocate( MaxVerticesPerSurface + 1 ); @@ -4210,12 +4210,17 @@ namespace SolarShading { // Adjust near-duplicate points. NVR = HCNV( 1 ); - for ( N = 1; N <= NVT; ++N ) { - for ( M = 1; M <= NVR; ++M ) { - if ( std::abs( HCX( M, 1 ) - HCX( N, NS3 ) ) > 6 ) continue; - if ( std::abs( HCY( M, 1 ) - HCY( N, NS3 ) ) > 6 ) continue; - HCX( N, NS3 ) = HCX( M, 1 ); - HCY( N, NS3 ) = HCY( M, 1 ); + auto l3( HCX.index( 1, NS3 ) ); + for ( N = 1; N <= NVT; ++N, ++l3 ) { + auto const x3( HCX[ l3 ] ); // [ l3 ] == ( N, NS3 ) + auto const y3( HCY[ l3 ] ); + size_type l1( 0 ); + for ( M = 1; M <= NVR; ++M, ++l1 ) { + if ( std::abs( HCX[ l1 ] - x3 ) > 6 ) continue; // [ l1 ] == ( M, 1 ) + if ( std::abs( HCY[ l1 ] - y3 ) > 6 ) continue; + HCX[ l3 ] = HCX[ l1 ]; + HCY[ l3 ] = HCY[ l1 ]; + break; } } @@ -4287,15 +4292,10 @@ namespace SolarShading { // na // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int I; - int N; - int M; - int NVR; - Real64 A; // Area + typedef FArray2D< Int64 >::size_type size_type; int GSSNR; // General shadowing surface number int MainOverlapStatus; // Overlap status of the main overlap calculation not the check for // multiple overlaps (unless there was an error) - int NVT; static FArray1D< Real64 > XVT; static FArray1D< Real64 > YVT; static FArray1D< Real64 > ZVT; @@ -4304,7 +4304,6 @@ namespace SolarShading { int NS2; // Number of the figure doing overlapping int NS3; // Location to place results of overlap Real64 SchValue; // Value for Schedule of shading transmittence - int ExitLoopStatus; if ( OneTimeFlag ) { XVT.dimension( MaxVerticesPerSurface + 1, 0.0 ); @@ -4323,18 +4322,17 @@ namespace SolarShading { } else { + int ExitLoopStatus( -1 ); auto const & GenSurf( ShadowComb( CurSurf ).GenSurf ); - ShadowingSurfaces: for ( I = 1; I <= NGSS; ++I ) { // Loop through all shadowing surfaces... + auto const sunIsUp( SunIsUpValue ); + for ( int I = 1; I <= NGSS; ++I ) { // Loop through all shadowing surfaces... GSSNR = GenSurf( I ); - CurrentSurfaceBeingShadowed = GSSNR; - CurrentShadowingSurface = I; - ExitLoopStatus = -1; - - if ( CTHETA( GSSNR ) > SunIsUpValue ) continue; //.001) CYCLE ! NO SHADOW IF GSS IN SUNLIGHT. + if ( CTHETA( GSSNR ) > sunIsUp ) continue; //.001) CYCLE ! NO SHADOW IF GSS IN SUNLIGHT. auto const & surface( Surface( GSSNR ) ); + bool const notHeatTransSurf( ! surface.HeatTransSurf ); // This used to check to see if the shadowing surface was not opaque (within the scheduled dates of // transmittance value. Perhaps it ignored it if it were outside the range. (if so, was an error) @@ -4343,27 +4341,14 @@ namespace SolarShading { //---former stmt IF ((.NOT.Surface(GSSNR)%HeatTransSurf) .AND. & //---former stmt GetCurrentScheduleValue(Surface(GSSNR)%SchedShadowSurfIndex,IHOUR) == 0.0) CYCLE - if ( ! surface.HeatTransSurf ) { - if ( surface.IsTransparent ) continue; + if ( notHeatTransSurf ) { + if ( surface.IsTransparent ) continue; // No shadow if shading surface is transparent if ( surface.SchedShadowSurfIndex > 0 ) { if ( LookUpScheduleValue( surface.SchedShadowSurfIndex, iHour ) == 1.0 ) continue; - } - } - - // No shadow if shading surface is transparent - if ( ! CalcSkyDifShading ) { - if ( ! surface.HeatTransSurf ) { - if ( surface.IsTransparent ) continue; - if ( surface.SchedShadowSurfIndex > 0 ) { + if ( ! CalcSkyDifShading ) { if ( LookUpScheduleValue( surface.SchedShadowSurfIndex, iHour, TS ) == 1.0 ) continue; } } - } else { - if ( ! surface.HeatTransSurf ) { - if ( surface.SchedShadowSurfIndex > 0 ) { - if ( surface.IsTransparent ) continue; - } - } } // IF ((.NOT.Surface(GSSNR)%HeatTransSurf) .AND. & @@ -4371,7 +4356,7 @@ namespace SolarShading { // Transform shadow casting surface from cartesian to homogeneous coordinates according to surface type. - if ( ( surface.BaseSurf != 0 ) && ( ! surface.HeatTransSurf ) ) { + if ( ( notHeatTransSurf ) && ( surface.BaseSurf != 0 ) ) { // For shadowing subsurface coordinates of shadow casting surface are relative to the receiving surface // project shadow to the receiving surface @@ -4380,22 +4365,23 @@ namespace SolarShading { auto const & XV( ShadeV( GSSNR ).XV ); auto const & YV( ShadeV( GSSNR ).YV ); auto const & ZV( ShadeV( GSSNR ).ZV ); - for ( N = 1; N <= NVS; ++N ) { + for ( int N = 1; N <= NVS; ++N ) { XVS( N ) = XV( N ) - XShadowProjection * ZV( N ); YVS( N ) = YV( N ) - YShadowProjection * ZV( N ); } } else { // Transform coordinates of shadow casting surface from general system to the system relative to the receiving surface + int NVT; CTRANS( GSSNR, NGRS, NVT, XVT, YVT, ZVT ); CLIP( NVT, XVT, YVT, ZVT ); // Clip portions of the shadow casting surface which are behind the receiving surface if ( NumVertInShadowOrClippedSurface <= 2 ) continue; - // Project shadow from shadow casting surface along sun's rays to receiving surface Shadow vertices + // Project shadow from shadow casting surface along sun's rays to receiving surface Shadow vertices // become clockwise sequential - for ( N = 1; N <= NumVertInShadowOrClippedSurface; ++N ) { + for ( int N = 1; N <= NumVertInShadowOrClippedSurface; ++N ) { XVS( N ) = XVC( N ) - XShadowProjection * ZVC( N ); YVS( N ) = YVC( N ) - YShadowProjection * ZVC( N ); } @@ -4409,22 +4395,22 @@ namespace SolarShading { // Adjust near-duplicate points. - assert( equal_dimensions( HCX, HCY ) ); // For linear indexing - assert( HCX.index( 1, 1 ) == 0u ); // For linear indexing - FArray2D< Int64 >::size_type l, j( HCX.index( 1, NS3 ) ); - NVR = HCNV( 1 ); - for ( N = 1; N <= NumVertInShadowOrClippedSurface; ++N, ++j ) { - auto HCX_N( HCX[ j ] ); // [ j ] == ( N, NS3 ) - auto HCY_N( HCY[ j ] ); - l = 0u; - for ( M = 1; M <= NVR; ++M, ++l ) { // [ l ] == ( M, 1 ) - if ( std::abs( HCX[ l ] - HCX_N ) > 6 ) continue; - if ( std::abs( HCY[ l ] - HCY_N ) > 6 ) continue; - HCX_N = HCX[ l ]; //? This is fishy: Ends up with last values that get past the abs checks - HCY_N = HCY[ l ]; + assert( equal_dimensions( HCX, HCY ) ); + assert( HCX.index( 1, 1 ) == 0u ); + size_type j( HCX.index( 1, NS3 ) ); + size_type NVR( HCNV( 1 ) ); + for ( int N = 1; N <= NumVertInShadowOrClippedSurface; ++N, ++j ) { //Tuned Logic change: break after 1st "close" point found + auto const HCX_N( HCX[ j ] ); // [ j ] == ( N, NS3 ) + auto const HCY_N( HCY[ j ] ); + for ( size_type l = 0; l < NVR; ++l ) { // [ l ] == ( l+1, 1 ) + auto const delX( std::abs( HCX[ l ] - HCX_N ) ); + if ( delX > 6 ) continue; + auto const delY( std::abs( HCY[ l ] - HCY_N ) ); + if ( delY > 6 ) continue; + if ( delX > 0 ) HCX[ j ] = HCX[ l ]; // [ j ] == ( N, NS3 ) + if ( delY > 0 ) HCY[ j ] = HCY[ l ]; + break; } - HCX[ j ] = HCX_N; // [ j ] == ( N, NS3 ) - HCY[ j ] = HCY_N; } HTRANS0( NS3, NumVertInShadowOrClippedSurface ); if ( ! CalcSkyDifShading ) { @@ -4441,6 +4427,8 @@ namespace SolarShading { // Determine overlap of shadow with receiving surface + CurrentShadowingSurface = I; + CurrentSurfaceBeingShadowed = GSSNR; NS1 = 1; NS2 = NS3; DeterminePolygonOverlap( NS1, NS2, NS3 ); @@ -4450,26 +4438,19 @@ namespace SolarShading { ExitLoopStatus = MainOverlapStatus; if ( MainOverlapStatus == NoOverlap ) { // No overlap of general surface shadow and receiving surface - continue; - + // Continue } else if ( ( MainOverlapStatus == FirstSurfWithinSecond ) || ( MainOverlapStatus == TooManyVertices ) || ( MainOverlapStatus == TooManyFigures ) ) { goto ShadowingSurfaces_exit; - } else if ( ( MainOverlapStatus == SecondSurfWithinFirst ) || ( MainOverlapStatus == PartialOverlap ) ) { // Determine overlaps with previous shadows. LOCHCA = NS3; NGSSHC = LOCHCA - FGSSHC + 1; - if ( NGSSHC <= 1 ) continue; - MULTOL( LOCHCA, FGSSHC - 1, NGSSHC - 1 ); // HOYT - Remove this call - + if ( NGSSHC > 1 ) MULTOL( LOCHCA, FGSSHC - 1, NGSSHC - 1 ); // HOYT - Remove this call } else { goto ShadowingSurfaces_exit; - } ExitLoopStatus = -1; - - ShadowingSurfaces_loop: ; } ShadowingSurfaces_exit: ; @@ -4491,9 +4472,9 @@ namespace SolarShading { if ( NGSSHC <= 0 ) { SAREA( HTS ) = HCAREA( 1 ); // Surface fully sunlit } else { - A = HCAREA( 1 ); - for ( I = 1; I <= NGSSHC; ++I ) { - A += HCAREA( FGSSHC - 1 + I ) * ( 1.0 - HCT( FGSSHC - 1 + I ) ); + Real64 A( HCAREA( 1 ) ); // Area + for ( int i = FGSSHC, e = FGSSHC + NGSSHC - 1; i <= e; ++i ) { + A += HCAREA( i ) * ( 1.0 - HCT( i ) ); } SAREA( HTS ) = A; if ( SAREA( HTS ) <= 0.0 ) { // Surface fully shaded @@ -4564,9 +4545,7 @@ namespace SolarShading { // na // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - int I; // DO loop index - int J; - int IBKS; // Back surface DO loop index + typedef FArray2D< Int64 >::size_type size_type; int JBKS; // Counter of back surfaces with non-zero overlap with HTSS int JBKSbase; // Back base surface counter int BackSurfNum; // Back surface number @@ -4577,6 +4556,13 @@ namespace SolarShading { // FALSE means exact interior solar distribution // (track which back surfaces beam illuminates) + //Tuned Linear indexing + + assert( equal_dimensions( HCX, HCY ) ); + assert( equal_dimensions( HCX, HCA ) ); + assert( equal_dimensions( HCX, HCB ) ); + assert( equal_dimensions( HCX, HCC ) ); + if ( SAREA( HTSS ) > 0.0 ) { UseSimpleDistribution = false; @@ -4597,16 +4583,20 @@ namespace SolarShading { // only by reveal (FCW 6/28/02). if ( WindowRevealStatus( HTSS, iHour, TS ) == WindowShadedOnlyByReveal ) NRVLHC = 1; if ( NRVLHC > 0 ) { - for ( I = 1; I <= NRVLHC; ++I ) { - HCT( FSBSHC - 1 + I ) = HCT( FRVLHC - 1 + I ); - HCNV( FSBSHC - 1 + I ) = HCNV( FRVLHC - 1 + I ); - HCAREA( FSBSHC - 1 + I ) = HCAREA( FRVLHC - 1 + I ); - for ( J = 1; J <= MaxHCV; ++J ) { - HCX( J, FSBSHC - 1 + I ) = HCX( J, FRVLHC - 1 + I ); - HCY( J, FSBSHC - 1 + I ) = HCY( J, FRVLHC - 1 + I ); - HCA( J, FSBSHC - 1 + I ) = HCA( J, FRVLHC - 1 + I ); - HCB( J, FSBSHC - 1 + I ) = HCB( J, FRVLHC - 1 + I ); - HCC( J, FSBSHC - 1 + I ) = HCC( J, FRVLHC - 1 + I ); + for ( int I = 1; I <= NRVLHC; ++I ) { + int const iS( FSBSHC - 1 + I ); + int const iR( FRVLHC - 1 + I ); + HCT( iS ) = HCT( iR ); + HCNV( iS ) = HCNV( iR ); + HCAREA( iS ) = HCAREA( iR ); + size_type lS( HCX.index( 1, iS ) ); + size_type lR( HCX.index( 1, iR ) ); + for ( int J = 1; J <= MaxHCV; ++J, ++lS, ++lR ) { // [ lS ] == ( J, iS ), [ lR ] == ( J, iR ) + HCX[ lS ] = HCX[ lR ]; + HCY[ lS ] = HCY[ lR ]; + HCA[ lS ] = HCA[ lR ]; + HCB[ lS ] = HCB[ lR ]; + HCC[ lS ] = HCC[ lR ]; } } NSBSHC = NRVLHC; @@ -4624,7 +4614,7 @@ namespace SolarShading { JBKS = 0; JBKSbase = 0; - for ( IBKS = 1; IBKS <= NBKSHC; ++IBKS ) { // Loop over back surfaces to GRSNR this hour. NBKSHC is the number of + for ( int IBKS = 1; IBKS <= NBKSHC; ++IBKS ) { // Loop over back surfaces to GRSNR this hour. NBKSHC is the number of // back surfaces that would receive beam radiation from the base surface, GRSNR, // if the base surface was transparent. In general, some (at least one) or all of these // will receive beam radiation from the exterior window subsurface, HTSS, of GRSNR, @@ -4644,7 +4634,7 @@ namespace SolarShading { NINSHC = LOCHCA - FINSHC + 1; if ( NINSHC <= 0 ) continue; OverlapArea = HCAREA( FINSHC ); - for ( J = 2; J <= NINSHC; ++J ) { + for ( int J = 2; J <= NINSHC; ++J ) { OverlapArea += HCAREA( FINSHC - 1 + J ) * ( 1.0 - HCT( FINSHC - 1 + J ) ); } @@ -6387,11 +6377,11 @@ namespace SolarShading { AdjZoneNum = Surface( AdjSurfNum ).Zone; DBZoneIntWin( AdjZoneNum ) += BOverlap * TransBeamWin; //[m2] SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRep += BOverlap * TransBeamWin * BeamSolarRad; //[W] - SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRepEnergy = SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRep * TimeStepZone * SecInHour; + SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRepEnergy = SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRep * TimeStepZoneSec; } } // End of check if back surface is opaque or window BmIncInsSurfAmountRep( BackSurfNum ) += BOverlap; - BmIncInsSurfAmountRepEnergy( BackSurfNum ) = BmIncInsSurfAmountRep( BackSurfNum ) * TimeStepZone * SecInHour; + BmIncInsSurfAmountRepEnergy( BackSurfNum ) = BmIncInsSurfAmountRep( BackSurfNum ) * TimeStepZoneSec; } // End of loop over back surfaces } else if ( SurfaceWindow( SurfNum ).WindowModelType == WindowBSDFModel ) { // For complex window calculation goes over outgoing basis directions @@ -6502,7 +6492,7 @@ namespace SolarShading { AdjZoneNum = Surface( AdjSurfNum ).Zone; DBZoneIntWin( AdjZoneNum ) += CFDirBoverlap( CurTrnDir, IBack ) * SurfaceWindow( BackSurfaceNumber ).ComplexFen.State( CurBackState ).IntegratedBkTrans( bestBackTrn ); SurfaceWindow( BackSurfaceNumber ).BmSolTransThruIntWinRep += CFDirBoverlap( CurTrnDir, IBack ) * SurfaceWindow( BackSurfaceNumber ).ComplexFen.State( CurBackState ).IntegratedBkTrans( bestBackTrn ) * BeamSolarRad; //[W] - SurfaceWindow( BackSurfaceNumber ).BmSolTransThruIntWinRepEnergy = SurfaceWindow( BackSurfaceNumber ).BmSolTransThruIntWinRep * TimeStepZone * SecInHour; + SurfaceWindow( BackSurfaceNumber ).BmSolTransThruIntWinRepEnergy = SurfaceWindow( BackSurfaceNumber ).BmSolTransThruIntWinRep * TimeStepZoneSec; } } } @@ -6637,11 +6627,11 @@ namespace SolarShading { AdjZoneNum = Surface( AdjSurfNum ).Zone; DBZoneIntWin( AdjZoneNum ) += BOverlap * TransBeamWin; //[m2] SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRep += BOverlap * TransBeamWin * BeamSolarRad; //[W] - SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRepEnergy = SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRep * TimeStepZone * SecInHour; + SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRepEnergy = SurfaceWindow( BackSurfNum ).BmSolTransThruIntWinRep * TimeStepZoneSec; } } // End of check if back surface is opaque or window BmIncInsSurfAmountRep( BackSurfNum ) += BOverlap; - BmIncInsSurfAmountRepEnergy( BackSurfNum ) = BmIncInsSurfAmountRep( BackSurfNum ) * TimeStepZone * SecInHour; + BmIncInsSurfAmountRepEnergy( BackSurfNum ) = BmIncInsSurfAmountRep( BackSurfNum ) * TimeStepZoneSec; } // End of loop over back surfaces // ***************************** @@ -6740,7 +6730,7 @@ namespace SolarShading { if ( ! Surface( SurfNum ).HeatTransSurf ) continue; if ( SolarDistribution == FullInteriorExterior ) { BmIncInsSurfAmountRep( SurfNum ) *= BeamSolarRad; - BmIncInsSurfAmountRepEnergy( SurfNum ) = BmIncInsSurfAmountRep( SurfNum ) * TimeStepZone * SecInHour; + BmIncInsSurfAmountRepEnergy( SurfNum ) = BmIncInsSurfAmountRep( SurfNum ) * TimeStepZoneSec; BmIncInsSurfIntensRep( SurfNum ) = BmIncInsSurfAmountRep( SurfNum ) / ( Surface( SurfNum ).Area + SurfaceWindow( SurfNum ).DividerArea ); } else { // Simple interior solar distribution. All beam falls on floor. if ( ISABSF( SurfNum ) > 0.0 && Surface( SurfNum ).HeatTransSurf ) { @@ -6756,7 +6746,7 @@ namespace SolarShading { } } BmIncInsSurfAmountRep( SurfNum ) = Surface( SurfNum ).Area * BmIncInsSurfIntensRep( SurfNum ); - BmIncInsSurfAmountRepEnergy( SurfNum ) = BmIncInsSurfAmountRep( SurfNum ) * TimeStepZone * SecInHour; + BmIncInsSurfAmountRepEnergy( SurfNum ) = BmIncInsSurfAmountRep( SurfNum ) * TimeStepZoneSec; } if ( Surface( SurfNum ).Class == SurfaceClass_Window || Surface( SurfNum ).Class == SurfaceClass_TDD_Dome ) { @@ -6786,11 +6776,11 @@ namespace SolarShading { WinBmSolar( SurfNum ) = BeamSolarRad * WinTransBmSolar( SurfNum ); WinDifSolar( SurfNum ) = SkySolarTrans * Surface( SurfNum ).Area + GndSolarTrans * Surface( SurfNum ).Area; - WinBmSolarEnergy( SurfNum ) = WinBmSolar( SurfNum ) * TimeStepZone * SecInHour; - WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZone * SecInHour; + WinBmSolarEnergy( SurfNum ) = WinBmSolar( SurfNum ) * TimeStepZoneSec; + WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZoneSec; WinTransSolar( SurfNum ) = WinBmSolar( SurfNum ) + WinDifSolar( SurfNum ); //[W] - WinTransSolarEnergy( SurfNum ) = WinTransSolar( SurfNum ) * TimeStepZone * SecInHour; + WinTransSolarEnergy( SurfNum ) = WinTransSolar( SurfNum ) * TimeStepZoneSec; TDDPipe( PipeNum ).TransmittedSolar = WinTransSolar( SurfNum ); //TDDPipe(PipeNum)%TransSolBeam = TBmBm ! Reported above @@ -6807,11 +6797,11 @@ namespace SolarShading { WinBmSolar( SurfNum ) = BeamSolarRad * WinTransBmSolar( SurfNum ); WinDifSolar( SurfNum ) = DifSolarInc * WinTransDifSolar( SurfNum ); - WinBmSolarEnergy( SurfNum ) = WinBmSolar( SurfNum ) * TimeStepZone * SecInHour; - WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZone * SecInHour; + WinBmSolarEnergy( SurfNum ) = WinBmSolar( SurfNum ) * TimeStepZoneSec; + WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZoneSec; WinTransSolar( SurfNum ) = WinBmSolar( SurfNum ) + WinDifSolar( SurfNum ); //[W] - WinTransSolarEnergy( SurfNum ) = WinTransSolar( SurfNum ) * TimeStepZone * SecInHour; + WinTransSolarEnergy( SurfNum ) = WinTransSolar( SurfNum ) * TimeStepZoneSec; } else { // Regular window SkySolarInc = SurfaceWindow( SurfNum ).SkySolarInc; @@ -6822,17 +6812,17 @@ namespace SolarShading { // transmittance for sky and ground diffuse radiation (including beam radiation reflected from the ground) // so these calculations should be correct WinDifSolar( SurfNum ) = DifSolarInc * WinTransDifSolar( SurfNum ); - WinBmSolarEnergy( SurfNum ) = WinBmSolar( SurfNum ) * TimeStepZone * SecInHour; - WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZone * SecInHour; + WinBmSolarEnergy( SurfNum ) = WinBmSolar( SurfNum ) * TimeStepZoneSec; + WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZoneSec; if ( ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGBlindOn ) { if ( Blind( SurfaceWindow( SurfNum ).BlindNumber ).SlatOrientation == Horizontal ) { WinDifSolar( SurfNum ) = SkySolarInc * WinTransDifSolarSky( SurfNum ) + GndSolarInc * WinTransDifSolarGnd( SurfNum ); - WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZone * SecInHour; + WinDifSolarEnergy( SurfNum ) = WinDifSolar( SurfNum ) * TimeStepZoneSec; } } WinTransSolar( SurfNum ) = WinBmSolar( SurfNum ) + WinDifSolar( SurfNum ); //[W] - WinTransSolarEnergy( SurfNum ) = WinTransSolar( SurfNum ) * TimeStepZone * SecInHour; + WinTransSolarEnergy( SurfNum ) = WinTransSolar( SurfNum ) * TimeStepZoneSec; } @@ -6840,19 +6830,19 @@ namespace SolarShading { WinBmBmSolar( SurfNum ) = BeamSolarRad * WinTransBmBmSolar; WinBmDifSolar( SurfNum ) = BeamSolarRad * WinTransBmDifSolar; - WinBmBmSolarEnergy( SurfNum ) = WinBmBmSolar( SurfNum ) * TimeStepZone * SecInHour; - WinBmDifSolarEnergy( SurfNum ) = WinBmDifSolar( SurfNum ) * TimeStepZone * SecInHour; + WinBmBmSolarEnergy( SurfNum ) = WinBmBmSolar( SurfNum ) * TimeStepZoneSec; + WinBmDifSolarEnergy( SurfNum ) = WinBmDifSolar( SurfNum ) * TimeStepZoneSec; WinDirSolTransAtIncAngle( SurfNum ) = TBmBm + TBmDif; // For TDD:DIFFUSER this is the TDD transmittance // Solar not added by TDD:DOME; added to zone via TDD:DIFFUSER if ( Surface( SurfNum ).Class != SurfaceClass_TDD_Dome ) { ZoneTransSolar( ZoneNum ) += WinTransSolar( SurfNum ); //[W] - ZoneTransSolarEnergy( ZoneNum ) = ZoneTransSolar( ZoneNum ) * TimeStepZone * SecInHour; //[J] + ZoneTransSolarEnergy( ZoneNum ) = ZoneTransSolar( ZoneNum ) * TimeStepZoneSec; //[J] ZoneBmSolFrExtWinsRep( ZoneNum ) += WinBmSolar( SurfNum ); ZoneDifSolFrExtWinsRep( ZoneNum ) += WinDifSolar( SurfNum ); - ZoneBmSolFrExtWinsRepEnergy( ZoneNum ) = ZoneBmSolFrExtWinsRep( ZoneNum ) * TimeStepZone * SecInHour; //[J] - ZoneDifSolFrExtWinsRepEnergy( ZoneNum ) = ZoneDifSolFrExtWinsRep( ZoneNum ) * TimeStepZone * SecInHour; //[J] + ZoneBmSolFrExtWinsRepEnergy( ZoneNum ) = ZoneBmSolFrExtWinsRep( ZoneNum ) * TimeStepZoneSec; //[J] + ZoneDifSolFrExtWinsRepEnergy( ZoneNum ) = ZoneDifSolFrExtWinsRep( ZoneNum ) * TimeStepZoneSec; //[J] } } @@ -6866,7 +6856,7 @@ namespace SolarShading { for ( ZoneNum = 1; ZoneNum <= NumOfZones; ++ZoneNum ) { DBZone( ZoneNum ) += DBZoneIntWin( ZoneNum ); ZoneBmSolFrIntWinsRep( ZoneNum ) = DBZoneIntWin( ZoneNum ) * BeamSolarRad; - ZoneBmSolFrIntWinsRepEnergy( ZoneNum ) = ZoneBmSolFrIntWinsRep( ZoneNum ) * TimeStepZone * SecInHour; //[J] + ZoneBmSolFrIntWinsRepEnergy( ZoneNum ) = ZoneBmSolFrIntWinsRep( ZoneNum ) * TimeStepZoneSec; //[J] } // RJH - Calculate initial distribution of diffuse solar transmitted by exterior windows into each zone @@ -9104,7 +9094,7 @@ namespace SolarShading { BmSolRefldOutsReveal = A1ill * ( 1.0 - SurfaceWindow( SurfNum ).OutsideRevealSolAbs ) * CosBeta * tmp_SunlitFracWithoutReveal; SurfaceWindow( SurfNum ).BmSolRefldOutsRevealReport += BeamSolarRad * BmSolRefldOutsReveal; - SurfaceWindow( SurfNum ).BmSolRefldOutsRevealRepEnergy = SurfaceWindow( SurfNum ).BmSolRefldOutsRevealReport * TimeStepZone * SecInHour; + SurfaceWindow( SurfNum ).BmSolRefldOutsRevealRepEnergy = SurfaceWindow( SurfNum ).BmSolRefldOutsRevealReport * TimeStepZoneSec; // Reflected solar from outside horizontal and vertical reveal incident on glazing SurfaceWindow( SurfNum ).OutsRevealDiffOntoGlazing += FracToGlassOuts * BmSolRefldOutsReveal / Surface( SurfNum ).Area; @@ -9143,7 +9133,7 @@ namespace SolarShading { SurfaceWindow( SurfNum ).BmSolRefldInsReveal += BmSolRefldInsReveal; SurfaceWindow( SurfNum ).BmSolRefldInsRevealReport += BeamSolarRad * BmSolRefldInsReveal; // W, BeamSolarRad in W/m2 - SurfaceWindow( SurfNum ).BmSolRefldInsRevealRepEnergy = SurfaceWindow( SurfNum ).BmSolRefldInsRevealReport * TimeStepZone * SecInHour; + SurfaceWindow( SurfNum ).BmSolRefldInsRevealRepEnergy = SurfaceWindow( SurfNum ).BmSolRefldInsRevealReport * TimeStepZoneSec; // Reflected solar from inside horizontal and vertical reveal incident on glazing SurfaceWindow( SurfNum ).InsRevealDiffOntoGlazing += FracToGlassIns * BmSolRefldInsReveal / Surface( SurfNum ).Area; @@ -10605,19 +10595,13 @@ namespace SolarShading { Real64 TotAOverlap; // Total overlap area for given outgoing direction Real64 TotARhoVisOverlap; // Total overlap area time reflectance for given outgoing direction - XVT.allocate( MaxVerticesPerSurface + 1 ); - YVT.allocate( MaxVerticesPerSurface + 1 ); - ZVT.allocate( MaxVerticesPerSurface + 1 ); - XVT = 0.0; - YVT = 0.0; - ZVT = 0.0; + XVT.dimension( MaxVerticesPerSurface + 1, 0.0 ); + YVT.dimension( MaxVerticesPerSurface + 1, 0.0 ); + ZVT.dimension( MaxVerticesPerSurface + 1, 0.0 ); - Geom.AOverlap.allocate( Geom.Trn.NBasis, Window.NBkSurf ); - Geom.AOverlap = 0.0; - Geom.ARhoVisOverlap.allocate( Geom.Trn.NBasis, Window.NBkSurf ); - Geom.ARhoVisOverlap = 0.0; - Geom.AveRhoVisOverlap.allocate( Geom.Trn.NBasis ); - Geom.AveRhoVisOverlap = 0.0; + Geom.AOverlap.dimension( Geom.Trn.NBasis, Window.NBkSurf, 0.0 ); + Geom.ARhoVisOverlap.dimension( Geom.Trn.NBasis, Window.NBkSurf, 0.0 ); + Geom.AveRhoVisOverlap.dimension( Geom.Trn.NBasis, 0.0 ); // First to calculate and store coordinates of the window surface LOCHCA = 1; @@ -10753,10 +10737,6 @@ namespace SolarShading { // Reset back shadowing counter since complex windows do not need it anymore LOCHCA = 1; - XVT.deallocate(); - YVT.deallocate(); - ZVT.deallocate(); - } void diff --git a/src/EnergyPlus/SolarShading.hh b/src/EnergyPlus/SolarShading.hh index 06f36776ba9..87d4377f738 100644 --- a/src/EnergyPlus/SolarShading.hh +++ b/src/EnergyPlus/SolarShading.hh @@ -6,7 +6,6 @@ // ObjexxFCL Headers #include -#include #include #include @@ -32,12 +31,9 @@ namespace SolarShading { // Homogeneous Coordinates are represented in integers (64 bit). This changes the surface coordinates from meters // to .01 millimeters -- making that the resolution for shadowing, polygon clipping, etc. extern Real64 const sqHCMULT; // Square of HCMult used in Homogeneous coordinates + extern Real64 const sqHCMULT_fac; // ( 0.5 / sqHCMULT ) factor extern Real64 const kHCMULT; // half of inverse square of HCMult used in Homogeneous coordinates - //INTEGER, PRIVATE, PARAMETER :: MAXCMB = 2000 ! Length of SHDCMB array - //INTEGER, PARAMETER :: MaxHCS = 15000 ! 200 ! Maximum number of HC surfaces (was 56) - //INTEGER, PARAMETER :: MaxHCV = 12 ! Maximum number of HC vertices - // Parameters for use with the variable OverlapStatus... extern int const NoOverlap; extern int const FirstSurfWithinSecond; diff --git a/src/EnergyPlus/SortAndStringUtilities.cc b/src/EnergyPlus/SortAndStringUtilities.cc index eb13646784b..fe998c3a30a 100644 --- a/src/EnergyPlus/SortAndStringUtilities.cc +++ b/src/EnergyPlus/SortAndStringUtilities.cc @@ -191,7 +191,7 @@ namespace SortAndStringUtilities { std::string const & cpivot( Alphas( 1 ) ); int i = 0; - int j = Alphas.size() + 1; + int j = Alphas.isize() + 1; while ( true ) { --j; diff --git a/src/EnergyPlus/StandardRatings.cc b/src/EnergyPlus/StandardRatings.cc index 2f35b27b0eb..b0545e28833 100644 --- a/src/EnergyPlus/StandardRatings.cc +++ b/src/EnergyPlus/StandardRatings.cc @@ -400,7 +400,7 @@ namespace StandardRatings { Real64 ReformEIRChillerCondInletTempResidual( Real64 const CondenserOutletTemp, // Condenser outlet temperature (boundary condition or guess value) [C] - Optional< FArray1S< Real64 > const > Par // par(1) = Condenser inlet temperature at AHRI Standard + FArray1< Real64 > const & Par // par(1) = Condenser inlet temperature at AHRI Standard ) { // FUNCTION INFORMATION: @@ -463,28 +463,28 @@ namespace StandardRatings { static Real64 ReformEIRChillerEIRFT( 0.0 ); // Chiller electric input ratio (EIR = 1 / COP) as a function of temperature static Real64 ReformEIRChillerEIRFPLR( 0.0 ); // Chiller EIR as a function of part-load ratio (PLR) - EvapOutletTemp = Par()( 2 ); + EvapOutletTemp = Par( 2 ); - ReformEIRChillerCapFT = CurveValue( int( Par()( 6 ) ), EvapOutletTemp, CondenserOutletTemp ); + ReformEIRChillerCapFT = CurveValue( int( Par( 6 ) ), EvapOutletTemp, CondenserOutletTemp ); - ReformEIRChillerEIRFT = CurveValue( int( Par()( 7 ) ), EvapOutletTemp, CondenserOutletTemp ); + ReformEIRChillerEIRFT = CurveValue( int( Par( 7 ) ), EvapOutletTemp, CondenserOutletTemp ); // Available chiller capacity as a function of temperature - AvailChillerCap = Par()( 9 ) * ReformEIRChillerCapFT; + AvailChillerCap = Par( 9 ) * ReformEIRChillerCapFT; - ReformEIRChillerEIRFPLR = CurveValue( int( Par()( 8 ) ), CondenserOutletTemp, Par()( 4 ) ); + ReformEIRChillerEIRFPLR = CurveValue( int( Par( 8 ) ), CondenserOutletTemp, Par( 4 ) ); - Power = ( AvailChillerCap / Par()( 10 ) ) * ReformEIRChillerEIRFPLR * ReformEIRChillerEIRFT; + Power = ( AvailChillerCap / Par( 10 ) ) * ReformEIRChillerEIRFPLR * ReformEIRChillerEIRFT; - QEvap = AvailChillerCap * Par()( 4 ); + QEvap = AvailChillerCap * Par( 4 ); - QCond = Power * Par()( 11 ) + QEvap; + QCond = Power * Par( 11 ) + QEvap; - if ( Par()( 6 ) > MassFlowTolerance ) { - CondenserInletTemp = CondenserOutletTemp - QCond / Par()( 5 ) / Par()( 3 ); + if ( Par( 6 ) > MassFlowTolerance ) { + CondenserInletTemp = CondenserOutletTemp - QCond / Par( 5 ) / Par( 3 ); } - Residuum = ( Par()( 1 ) - CondenserInletTemp ) / Par()( 1 ); + Residuum = ( Par( 1 ) - CondenserInletTemp ) / Par( 1 ); return Residuum; } diff --git a/src/EnergyPlus/StandardRatings.hh b/src/EnergyPlus/StandardRatings.hh index 682c013b26e..1e6d93a9f95 100644 --- a/src/EnergyPlus/StandardRatings.hh +++ b/src/EnergyPlus/StandardRatings.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -105,7 +104,7 @@ namespace StandardRatings { Real64 ReformEIRChillerCondInletTempResidual( Real64 const CondenserOutletTemp, // Condenser outlet temperature (boundary condition or guess value) [C] - Optional< FArray1S< Real64 > const > Par = _ // par(1) = Condenser inlet temperature at AHRI Standard + FArray1< Real64 > const & Par // par(1) = Condenser inlet temperature at AHRI Standard ); void diff --git a/src/EnergyPlus/SwimmingPool.cc b/src/EnergyPlus/SwimmingPool.cc index 269e5057a13..27a10187409 100644 --- a/src/EnergyPlus/SwimmingPool.cc +++ b/src/EnergyPlus/SwimmingPool.cc @@ -59,7 +59,7 @@ namespace SwimmingPool { // METHODOLOGY EMPLOYED: // The swimming pool acts as a surface within the heat balance and then connects // to the plant via a water loop. - + // REFERENCES: // 1. ASHRAE (2011). 2011 ASHRAE Handbook – HVAC Applications. Atlanta: American Society of Heating, // Refrigerating and Air-Conditioning Engineers, Inc., p.5.6-5.9. @@ -129,7 +129,7 @@ namespace SwimmingPool { // Using/Aliasing using DataHeatBalFanSys::SumConvPool; using DataHeatBalFanSys::SumLatentPool; - + // Locals // SUBROUTINE ARGUMENT DEFINITIONS: @@ -151,7 +151,7 @@ namespace SwimmingPool { GetSwimmingPool( ); GetInputFlag = false; } - + // System wide (for all pools) inits SumConvPool = 0.0; SumLatentPool = 0.0; @@ -159,23 +159,23 @@ namespace SwimmingPool { for ( PoolNum = 1; PoolNum <= NumSwimmingPools; ++PoolNum ) { InitSwimmingPool( FirstHVACIteration, PoolNum ); - + CalcSwimmingPool( PoolNum ); - + UpdateSwimmingPool( PoolNum ); - + } - + if ( NumSwimmingPools > 0 ) CalcHeatBalanceInsideSurf( ); - + ReportSwimmingPool( ); - + } void GetSwimmingPool( ) { - + // SUBROUTINE INFORMATION: // AUTHOR Rick Strand, Ho-Sung Kim // DATE WRITTEN October 2014 @@ -357,7 +357,7 @@ namespace SwimmingPool { ShowContinueError( "Occurs in " + CurrentModuleObject + " = " + Alphas( 1 ) ); ErrorsFound = true; } - + Pool( Item ).MakeupWaterSupplySchedName = Alphas( 4 ); Pool( Item ).MakeupWaterSupplySchedPtr = GetScheduleIndex( Alphas( 4 ) ); if ( ( Pool( Item ).MakeupWaterSupplySchedPtr == 0 ) && ( ! lAlphaBlanks( 4 ) ) ) { @@ -365,7 +365,7 @@ namespace SwimmingPool { ShowContinueError( "Occurs in " + CurrentModuleObject + " = " + Alphas( 1 ) ); ErrorsFound = true; } - + Pool( Item ).CoverSchedName = Alphas( 5 ); Pool( Item ).CoverSchedPtr = GetScheduleIndex( Alphas( 5 ) ); if ( ( Pool( Item ).CoverSchedPtr == 0 ) && ( ! lAlphaBlanks( 5 ) ) ) { @@ -384,7 +384,7 @@ namespace SwimmingPool { ShowContinueError( "The evaporation cover factor has been reset to one." ); Pool( Item ).CoverEvapFactor = MaxCoverFactor; } - + Pool( Item ).CoverConvFactor = Numbers( 3 ); if ( Pool( Item ).CoverConvFactor < MinCoverFactor ) { ShowWarningError( RoutineName + CurrentModuleObject + "=\"" + Alphas( 1 ) + " has a convection cover factor less than zero." ); @@ -406,7 +406,7 @@ namespace SwimmingPool { ShowContinueError( "The short-wavelength radiation cover factor has been reset to one." ); Pool( Item ).CoverSWRadFactor = MaxCoverFactor; } - + Pool( Item ).CoverLWRadFactor = Numbers( 5 ); if ( Pool( Item ).CoverLWRadFactor < MinCoverFactor ) { ShowWarningError( RoutineName + CurrentModuleObject + "=\"" + Alphas( 1 ) + " has a long-wavelength radiation cover factor less than zero." ); @@ -417,7 +417,7 @@ namespace SwimmingPool { ShowContinueError( "The long-wavelength radiation cover factor has been reset to one." ); Pool( Item ).CoverLWRadFactor = MaxCoverFactor; } - + Pool( Item ).WaterInletNodeName = Alphas( 6 ); Pool( Item ).WaterOutletNodeName = Alphas( 7 ); Pool( Item ).WaterInletNode = GetOnlySingleNode( Alphas( 6 ), ErrorsFound, CurrentModuleObject, Alphas( 1 ), NodeType_Water, NodeConnectionType_Inlet, 1, ObjectIsNotParent ); @@ -433,7 +433,7 @@ namespace SwimmingPool { ShowContinueError( "The miscellaneous power factor has been reset to zero." ); Pool( Item ).MiscPowerFactor = MinPowerFactor; } - + Pool( Item ).SetPtTempSchedName = Alphas( 8 ); Pool( Item ).SetPtTempSchedPtr = GetScheduleIndex( Alphas( 8 ) ); if ( ( Pool( Item ).SetPtTempSchedPtr == 0 ) && ( ! lAlphaBlanks( 8 ) ) ) { @@ -446,7 +446,7 @@ namespace SwimmingPool { ShowContinueError( "Occurs in " + CurrentModuleObject + " = " + Alphas( 1 ) ); ErrorsFound = true; } - + Pool( Item ).MaxNumOfPeople = Numbers( 8 ); if ( Pool( Item ).MaxNumOfPeople < 0.0 ) { ShowWarningError( RoutineName + CurrentModuleObject + "=\"" + Alphas( 1 ) + " was entered with negative people. This is not allowed." ); @@ -461,7 +461,7 @@ namespace SwimmingPool { ShowContinueError( "Occurs in " + CurrentModuleObject + " = " + Alphas( 1 ) ); ErrorsFound = true; } - + Pool( Item ).PeopleHeatGainSchedName = Alphas( 10 ); Pool( Item ).PeopleHeatGainSchedPtr = GetScheduleIndex( Alphas( 10 ) ); if ( ( Pool( Item ).PeopleHeatGainSchedPtr == 0 ) && ( ! lAlphaBlanks( 10 ) ) ) { @@ -469,7 +469,7 @@ namespace SwimmingPool { ShowContinueError( "Occurs in " + CurrentModuleObject + " = " + Alphas( 1 ) ); ErrorsFound = true; } - + } Alphas.deallocate(); @@ -616,8 +616,8 @@ namespace SwimmingPool { MyEnvrnFlagGeneral = false; } if ( ! BeginEnvrnFlag ) MyEnvrnFlagGeneral = true; - - + + if ( BeginEnvrnFlag ) { Pool( PoolNum ).PoolWaterTemp = 23.0; Pool( PoolNum ).HeatPower = 0.0; @@ -631,7 +631,7 @@ namespace SwimmingPool { Density =GetDensityGlycol( "WATER", Pool( PoolNum ).PoolWaterTemp, Pool( PoolNum ).GlycolIndex, RoutineName ); Pool( PoolNum ).WaterMass = Surface( Pool( PoolNum ).SurfacePtr ).Area * Pool( PoolNum ).AvgDepth * Density; Pool( PoolNum ).WaterMassFlowRateMax = Pool( PoolNum ).WaterVolFlowMax * Density; - + if ( ! MyPlantScanFlagPool( PoolNum ) ) { if ( Pool( PoolNum ).WaterInletNode > 0 ) { InitComponentNodes( 0.0, Pool( PoolNum ).WaterVolFlowMax, Pool( PoolNum ).WaterInletNode, Pool( PoolNum ).WaterOutletNode, Pool( PoolNum ).HWLoopNum, Pool( PoolNum ).HWLoopSide, Pool( PoolNum ).HWBranchNum, Pool( PoolNum ).HWCompNum ); @@ -640,7 +640,7 @@ namespace SwimmingPool { } if ( BeginTimeStepFlag && FirstHVACIteration ) { // This is the first pass through in a particular time step - + ZoneNum = Pool( PoolNum ).ZonePtr; ZeroSourceSumHATsurf( ZoneNum ) = SumHATsurf( ZoneNum ); // Set this to figure what part of the load the radiant system meets SurfNum = Pool( PoolNum ).SurfacePtr; @@ -650,12 +650,12 @@ namespace SwimmingPool { LastSysTimeElapsed( SurfNum ) = 0.0; // At the start of a time step, reset to zero so average calculation can begin again LastTimeStepSys( SurfNum ) = 0.0; // At the start of a time step, reset to zero so average calculation can begin again } - + // initialize the flow rate for the component on the plant side (this follows standard procedure for other components like low temperature radiant systems) mdot = 0.0; SetComponentFlowRate( mdot, Pool( PoolNum ).WaterInletNode, Pool( PoolNum ).WaterOutletNode, Pool( PoolNum ).HWLoopNum, Pool( PoolNum ).HWLoopSide, Pool( PoolNum ).HWBranchNum, Pool( PoolNum ).HWCompNum ); Pool( PoolNum ).WaterInletTemp = Node( Pool( PoolNum ).WaterInletNode ).Temp; - + // get the schedule values for different scheduled parameters if ( Pool( PoolNum ).ActivityFactorSchedPtr > 0 ) { Pool( PoolNum ).CurActivityFactor = GetCurrentScheduleValue( Pool( PoolNum ).ActivityFactorSchedPtr ); @@ -675,14 +675,14 @@ namespace SwimmingPool { } Pool( PoolNum ).CurSetPtTemp = GetCurrentScheduleValue( Pool( PoolNum ).SetPtTempSchedPtr ); - + if ( Pool( PoolNum ).MakeupWaterSupplySchedPtr > 0 ) { Pool( PoolNum ).CurMakeupWaterTemp = GetCurrentScheduleValue( Pool( PoolNum ).MakeupWaterSupplySchedPtr ); } else { // use water main temperaure if no schedule present in input Pool( PoolNum ).CurMakeupWaterTemp = WaterMainsTemp; } - + // determine the current heat gain from people if ( Pool( PoolNum ).PeopleHeatGainSchedPtr > 0 ) { HeatGainPerPerson = GetCurrentScheduleValue( Pool(PoolNum).PeopleHeatGainSchedPtr ); @@ -706,7 +706,7 @@ namespace SwimmingPool { PeopleModifier = 0.0; } Pool( PoolNum ).PeopleHeatGain = PeopleModifier * HeatGainPerPerson * Pool( PoolNum ).MaxNumOfPeople; - + // once cover schedule value is established, define the current values of the cover heat transfer factors if ( Pool( PoolNum ).CoverSchedPtr > 0 ) { Pool( PoolNum ).CurCoverSchedVal = GetCurrentScheduleValue( Pool( PoolNum ).CoverSchedPtr ); @@ -737,7 +737,7 @@ namespace SwimmingPool { Pool( PoolNum ).CurCoverConvFac = 1.0 - ( Pool( PoolNum ).CurCoverSchedVal * Pool( PoolNum ).CoverConvFactor ); Pool( PoolNum ).CurCoverSWRadFac = 1.0 - ( Pool( PoolNum ).CurCoverSchedVal * Pool( PoolNum ).CoverSWRadFactor ); Pool( PoolNum ).CurCoverLWRadFac = 1.0 - ( Pool( PoolNum ).CurCoverSchedVal * Pool( PoolNum ).CoverLWRadFactor ); - + } void @@ -764,14 +764,14 @@ namespace SwimmingPool { // for the inside surface temperature which is assumed to be the same as the pool // water temperature. // Standard Heat Balance Equation: - // TempSurfInTmp( SurfNum ) = ( CTFConstInPart( SurfNum ) + QRadThermInAbs( SurfNum ) + QRadSWInAbs( SurfNum ) + HConvIn( SurfNum ) * RefAirTemp( SurfNum ) + NetLWRadToSurf( SurfNum ) + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( SurfNum, 1 ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TH11 ) / ( Construct( ConstrNum ).CTFInside( 0 ) + HConvIn( SurfNum ) + IterDampConst ); // Constant part of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Heat source/sink term for radiant systems | (if there is one present) | Radiant flux from high temp radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Iterative damping term (for stability) | Current conduction from | the outside surface | Coefficient for conduction (current time) | Convection and damping term + // TempSurfInTmp( SurfNum ) = ( CTFConstInPart( SurfNum ) + QRadThermInAbs( SurfNum ) + QRadSWInAbs( SurfNum ) + HConvIn( SurfNum ) * RefAirTemp( SurfNum ) + NetLWRadToSurf( SurfNum ) + Construct( ConstrNum ).CTFSourceIn( 0 ) * QsrcHist( 1, SurfNum ) + QHTRadSysSurf( SurfNum ) + QHWBaseboardSurf( SurfNum ) + QSteamBaseboardSurf( SurfNum ) + QElecBaseboardSurf( SurfNum ) + IterDampConst * TempInsOld( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TH11 ) / ( Construct( ConstrNum ).CTFInside( 0 ) + HConvIn( SurfNum ) + IterDampConst ); // Constant part of conduction eq (history terms) | LW radiation from internal sources | SW radiation from internal sources | Convection from surface to zone air | Net radiant exchange with other zone surfaces | Heat source/sink term for radiant systems | (if there is one present) | Radiant flux from high temp radiant heater | Radiant flux from a hot water baseboard heater | Radiant flux from a steam baseboard heater | Radiant flux from an electric baseboard heater | Iterative damping term (for stability) | Current conduction from | the outside surface | Coefficient for conduction (current time) | Convection and damping term // That equation is modified to include pool specific terms and removes the IterDampConst // term which is for iterations within the inside surface heat balance. Then, the resulting // equation is solved for the plant loop mass flow rate. It also assigns the appropriate // terms for use in the actual heat balance routine. - - + + // REFERENCES: // 1. ASHRAE (2011). 2011 ASHRAE Handbook – HVAC Applications. Atlanta: American Society of Heating, // Refrigerating and Air-Conditioning Engineers, Inc., p.5.6-5.9. @@ -801,7 +801,7 @@ namespace SwimmingPool { using FluidProperties::GetSpecificHeatGlycol; using DataHeatBalSurface::TH; using DataSurfaces::Surface; - using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using DataGlobals::SecInHour; using DataHVACGlobals::TimeStepSys; using DataHeatBalance::Construct; @@ -812,7 +812,7 @@ namespace SwimmingPool { using PlantUtilities::SetComponentFlowRate; using DataHeatBalFanSys::SumConvPool; using DataHeatBalFanSys::SumLatentPool; - + // Locals // SUBROUTINE ARGUMENT DEFINITIONS: @@ -851,7 +851,7 @@ namespace SwimmingPool { Real64 MUWTerm; // Makeup water term for the "surface" heat balance Real64 CpDeltaTi; // inverse of specific heat of water times the plant loop temperature difference Real64 MassFlowRate; // Target mass flow rate to achieve the proper setpoint temperature - + // FLOW: // initialize local variables SurfNum = Pool( PoolNum ).SurfacePtr; @@ -881,7 +881,7 @@ namespace SwimmingPool { // Heat gain from people (assumed to be all convective to pool water) PeopleGain = Pool( PoolNum ).PeopleHeatGain / Surface( SurfNum ).Area; - + // Get an estimate of the pool water specific heat Cp = GetSpecificHeatGlycol( "WATER", Pool( PoolNum ).PoolWaterTemp, Pool( PoolNum ).GlycolIndex, RoutineName ); @@ -892,7 +892,7 @@ namespace SwimmingPool { Tmuw = Pool( PoolNum ).CurMakeupWaterTemp; TLoopInletTemp = Node( Pool( PoolNum ).WaterInletNode ).Temp; Pool( PoolNum ).WaterInletTemp = TLoopInletTemp; - + CondTerms = CTFConstInPart( SurfNum ) + Construct( ConstrNum ).CTFCross( 0 ) * TH11 - Construct( ConstrNum ).CTFInside( 0 ) * TInSurf; ConvTerm = HConvIn * ( MAT( ZoneNum ) - TInSurf ); PoolMassTerm = Pool( PoolNum ).WaterMass * Cp * ( TH22 - TInSurf ) / ( TimeStepSys * SecInHour ) / Surface( SurfNum ).Area; // Use TimeStepSys here because this is a calculation for how much heat to add at the system time step and it is not a surface heat balance being done at the zone time step level @@ -912,10 +912,10 @@ namespace SwimmingPool { } SetComponentFlowRate( MassFlowRate, Pool( PoolNum ).WaterInletNode, Pool( PoolNum ).WaterOutletNode, Pool( PoolNum ).HWLoopNum, Pool( PoolNum ).HWLoopSide, Pool( PoolNum ).HWBranchNum, Pool( PoolNum ).HWCompNum ); Pool( PoolNum ).WaterMassFlowRate = MassFlowRate; - + // We now have a flow rate so we can assemble the terms needed for the surface heat balance that is solved for the inside face temperature - QPoolSurfNumerator( SurfNum ) = SWtotal + LWtotal + PeopleGain + EvapEnergyLossPerArea + HConvIn * MAT( ZoneNum ) + ( EvapRate * Tmuw + MassFlowRate * TLoopInletTemp + ( Pool( PoolNum ).WaterMass * TH22 / ( TimeStepZone * SecInHour ) ) ) * Cp / Surface( SurfNum ).Area; - PoolHeatTransCoefs( SurfNum ) = HConvIn + ( EvapRate + MassFlowRate + ( Pool( PoolNum ).WaterMass / ( TimeStepZone * SecInHour ) ) ) * Cp / Surface( SurfNum ).Area; + QPoolSurfNumerator( SurfNum ) = SWtotal + LWtotal + PeopleGain + EvapEnergyLossPerArea + HConvIn * MAT( ZoneNum ) + ( EvapRate * Tmuw + MassFlowRate * TLoopInletTemp + ( Pool( PoolNum ).WaterMass * TH22 / TimeStepZoneSec ) ) * Cp / Surface( SurfNum ).Area; + PoolHeatTransCoefs( SurfNum ) = HConvIn + ( EvapRate + MassFlowRate + ( Pool( PoolNum ).WaterMass / TimeStepZoneSec ) ) * Cp / Surface( SurfNum ).Area; // Finally take care of the latent and convective gains resulting from the pool SumConvPool( ZoneNum ) += Pool( PoolNum ).RadConvertToConvect; @@ -978,84 +978,84 @@ namespace SwimmingPool { // FLOW: SurfNum = Pool( PoolNum ).SurfacePtr; - + if ( LastSysTimeElapsed( SurfNum ) == SysTimeElapsed ) { // Still iterating or reducing system time step, so subtract old values which were // not valid QPoolSrcAvg( SurfNum ) -= LastQPoolSrc( SurfNum ) * LastTimeStepSys( SurfNum ) / TimeStepZone; HeatTransCoefsAvg( SurfNum ) -= LastHeatTransCoefs( SurfNum ) * LastTimeStepSys( SurfNum ) / TimeStepZone; } - + // Update the running average and the "last" values with the current values of the appropriate variables QPoolSrcAvg( SurfNum ) += QPoolSurfNumerator( SurfNum ) * TimeStepSys / TimeStepZone; HeatTransCoefsAvg( SurfNum ) += PoolHeatTransCoefs( SurfNum ) * TimeStepSys / TimeStepZone; - + LastQPoolSrc( SurfNum ) = QPoolSurfNumerator( SurfNum ); LastHeatTransCoefs( SurfNum ) = PoolHeatTransCoefs( SurfNum ); LastSysTimeElapsed( SurfNum ) = SysTimeElapsed; LastTimeStepSys( SurfNum ) = TimeStepSys; - + WaterInletNode = Pool( PoolNum ).WaterInletNode; WaterOutletNode = Pool( PoolNum ).WaterOutletNode; SafeCopyPlantNode( WaterInletNode, WaterOutletNode ); WaterMassFlow = Node( WaterInletNode ).MassFlowRate; if ( WaterMassFlow > 0.0 ) Node( WaterOutletNode ).Temp = Pool( PoolNum ).PoolWaterTemp; - + } void UpdatePoolSourceValAvg( bool & SwimmingPoolOn ) // .TRUE. if the swimming pool "runs" this zone time step { - + // SUBROUTINE INFORMATION: // AUTHOR Rick Strand // DATE WRITTEN October 2014 // MODIFIED na // RE-ENGINEERED na - + // PURPOSE OF THIS SUBROUTINE: // To transfer the average value of the pool heat balance term over the entire // zone time step back to the heat balance routines so that the heat // balance algorithms can simulate one last time with the average source // to maintain some reasonable amount of continuity and energy balance // in the temperature and flux histories. - + // METHODOLOGY EMPLOYED: // All of the record keeping for the average term is done in the Update // routine so the only other thing that this subroutine does is check to // see if the system was even on. If any average term is non-zero, then // one or more of the swimming pools was running. Method borrowed from // radiant systems. - + // REFERENCES: // na - + // USE STATEMENTS: using DataHeatBalFanSys::QPoolSurfNumerator; using DataHeatBalFanSys::PoolHeatTransCoefs; - + // Locals // SUBROUTINE ARGUMENT DEFINITIONS: - + // SUBROUTINE PARAMETER DEFINITIONS: Real64 const CloseEnough( 0.01 ); // Some arbitrarily small value to avoid zeros and numbers that are almost the same - + // INTERFACE BLOCK SPECIFICATIONS // na - + // DERIVED TYPE DEFINITIONS // na - + // SUBROUTINE LOCAL VARIABLE DECLARATIONS: int SurfNum; // DO loop counter for surface index - + // FLOW: SwimmingPoolOn = false; - + // If this was never allocated, then there are no radiant systems in this input file (just RETURN) if ( ! allocated( QPoolSrcAvg ) ) return; - + // If it was allocated, then we have to check to see if this was running at all... for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { if ( QPoolSrcAvg( SurfNum ) != 0.0 ) { @@ -1063,10 +1063,10 @@ namespace SwimmingPool { break; //DO loop } } - + QPoolSurfNumerator = QPoolSrcAvg; PoolHeatTransCoefs = HeatTransCoefsAvg; - + // For interzone surfaces, QPoolSrcAvg was only updated for the "active" side. The active side // would have a non-zero value at this point. If the numbers differ, then we have to manually update. for ( SurfNum = 1; SurfNum <= TotSurfaces; ++SurfNum ) { @@ -1093,77 +1093,77 @@ namespace SwimmingPool { } } } - + } - + Real64 SumHATsurf( int const ZoneNum ) // Zone number { - + // FUNCTION INFORMATION: // AUTHOR Peter Graham Ellis // DATE WRITTEN July 2003 // MODIFIED na // RE-ENGINEERED na - + // PURPOSE OF THIS FUNCTION: // This function calculates the zone sum of Hc*Area*Tsurf. It replaces the old SUMHAT. // The SumHATsurf code below is also in the CalcZoneSums subroutine in ZoneTempPredictorCorrector // and should be updated accordingly. - + // METHODOLOGY EMPLOYED: // na - + // REFERENCES: // na - + // Using/Aliasing using namespace DataSurfaces; using namespace DataHeatBalance; using namespace DataHeatBalSurface; - + // Return value Real64 SumHATsurf; - + // Locals // FUNCTION ARGUMENT DEFINITIONS: - + // FUNCTION LOCAL VARIABLE DECLARATIONS: int SurfNum; // Surface number Real64 Area; // Effective surface area - + // FLOW: SumHATsurf = 0.0; - + for ( SurfNum = Zone( ZoneNum ).SurfaceFirst; SurfNum <= Zone( ZoneNum ).SurfaceLast; ++SurfNum ) { if ( ! Surface( SurfNum ).HeatTransSurf ) continue; // Skip non-heat transfer surfaces - + Area = Surface( SurfNum ).Area; - + if ( Surface( SurfNum ).Class == SurfaceClass_Window ) { if ( SurfaceWindow( SurfNum ).ShadingFlag == IntShadeOn || SurfaceWindow( SurfNum ).ShadingFlag == IntBlindOn ) { // The area is the shade or blind are = sum of the glazing area and the divider area (which is zero if no divider) Area += SurfaceWindow( SurfNum ).DividerArea; } - + if ( SurfaceWindow( SurfNum ).FrameArea > 0.0 ) { // Window frame contribution SumHATsurf += HConvIn( SurfNum ) * SurfaceWindow( SurfNum ).FrameArea * ( 1.0 + SurfaceWindow( SurfNum ).ProjCorrFrIn ) * SurfaceWindow( SurfNum ).FrameTempSurfIn; } - + if ( SurfaceWindow( SurfNum ).DividerArea > 0.0 && SurfaceWindow( SurfNum ).ShadingFlag != IntShadeOn && SurfaceWindow( SurfNum ).ShadingFlag != IntBlindOn ) { // Window divider contribution (only from shade or blind for window with divider and interior shade or blind) SumHATsurf += HConvIn( SurfNum ) * SurfaceWindow( SurfNum ).DividerArea * ( 1.0 + 2.0 * SurfaceWindow( SurfNum ).ProjCorrDivIn ) * SurfaceWindow( SurfNum ).DividerTempSurfIn; } } - + SumHATsurf += HConvIn( SurfNum ) * Area * TempSurfInTmp( SurfNum ); } - + return SumHATsurf; - + } - + void ReportSwimmingPool( ) { @@ -1213,16 +1213,16 @@ namespace SwimmingPool { // FLOW: for ( PoolNum = 1; PoolNum <= NumSwimmingPools; ++PoolNum ) { - + SurfNum = Pool( PoolNum ).SurfacePtr; // First transfer the surface inside temperature data to the current pool water temperature Pool( PoolNum ).PoolWaterTemp = TH( SurfNum, 1, 2 ); - + // Next calculate the amount of heating done by the plant loop Cp = GetSpecificHeatGlycol( "WATER", Pool( PoolNum ).PoolWaterTemp, Pool( PoolNum ).GlycolIndex, RoutineName ); Pool( PoolNum ).HeatPower = Pool( PoolNum ).WaterMassFlowRate * Cp * ( Pool( PoolNum ).WaterInletTemp - Pool( PoolNum ).PoolWaterTemp ); - + // Now the power consumption of miscellaneous equipment Density = GetDensityGlycol("WATER", Pool( PoolNum ).PoolWaterTemp, Pool( PoolNum ).GlycolIndex, RoutineName ); if ( Density > MinDensity ) { @@ -1230,18 +1230,18 @@ namespace SwimmingPool { } else { Pool( PoolNum ).MiscEquipPower = 0.0; } - + // Also the radiant exchange converted to convection by the pool cover Pool( PoolNum ).RadConvertToConvectRep = Pool( PoolNum ).RadConvertToConvect * Surface( SurfNum ).Area; - + // Finally calculate the summed up report variables Pool( PoolNum ).MiscEquipEnergy = Pool( PoolNum ).MiscEquipPower * TimeStepSys * SecInHour; Pool( PoolNum ).HeatEnergy = Pool( PoolNum ).HeatPower * TimeStepSys * SecInHour; Pool( PoolNum ).MakeUpWaterMass = Pool( PoolNum ).MakeUpWaterMassFlowRate * TimeStepSys * SecInHour; Pool( PoolNum ).EvapEnergyLoss = Pool( PoolNum ).EvapHeatLossRate * TimeStepSys * SecInHour; - + } - + } // NOTICE diff --git a/src/EnergyPlus/SystemReports.cc b/src/EnergyPlus/SystemReports.cc index 11280c56e7e..047c852ac57 100644 --- a/src/EnergyPlus/SystemReports.cc +++ b/src/EnergyPlus/SystemReports.cc @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include namespace EnergyPlus { @@ -3868,6 +3870,13 @@ namespace SystemReports { using WindowAC::GetWindowACMixedAirNode; using WindowAC::GetWindowACZoneInletAirNode; using WindowAC::GetWindowACReturnAirNode; + using HVACVariableRefrigerantFlow::GetVRFTUOutAirNode; + using HVACVariableRefrigerantFlow::GetVRFTUMixedAirNode; + using HVACVariableRefrigerantFlow::GetVRFTUZoneInletAirNode; + using HVACVariableRefrigerantFlow::GetVRFTUReturnAirNode; + using OutdoorAirUnit::GetOutdoorAirUnitOutAirNode; + using OutdoorAirUnit::GetOutdoorAirUnitZoneInletNode; + using OutdoorAirUnit::GetOutdoorAirUnitReturnAirNode; using PackagedTerminalHeatPump::GetPTUnitOutAirNode; using PackagedTerminalHeatPump::GetPTUnitMixedAirNode; using PackagedTerminalHeatPump::GetPTUnitZoneInletAirNode; @@ -3908,36 +3917,37 @@ namespace SystemReports { int ZoneInNum; // counter for zone air distribution inlets int ReturnAirNode; // node number for return node on primary air loop int MixedAirNode; // mixed air node number (right after the mixing box) on primary air loop - int AirLoopNum; - int AirDistCoolInletNodeNum; - int AirDistHeatInletNodeNum; - - Real64 AirSysEnthReturnAir; // enthalpy of the return air (mixing box inlet node, return side) - Real64 AirSysEnthMixedAir; // enthalpy of the mixed air (mixing box outlet node, mixed air side) - Real64 AirSysZoneVentLoad; // ventilation load attributed to a particular zone from primary air system - Real64 ADUCoolFlowrate; - Real64 ADUHeatFlowrate; - Real64 AirSysTotalMixFlowRate; // Mixed air flow - Real64 AirSysOutAirFlow; // outside air flow rate for zone from primary air system - - Real64 ZFAUEnthReturnAir; // Zone forced Air unit enthalpy of the return air - Real64 ZFAUTempMixedAir; // Zone forced Air unit dry-bulb temperature of the mixed air - Real64 ZFAUHumRatMixedAir; // Zone forced Air unit humidity ratio of the mixed air - Real64 ZFAUEnthMixedAir; // Zone forced Air unit enthalpy of the mixed air - Real64 ZFAUFlowRate; - Real64 ZFAUZoneVentLoad; // ventilation load attributed to a particular zone from zone forced air units + int AirLoopNum; // index to AirloopHVAC + int AirDistCoolInletNodeNum; // Air distribution unit inlet node number + int AirDistHeatInletNodeNum; // Air distribution unit outlet node number + + Real64 AirSysEnthReturnAir; // enthalpy of the return air (mixing box inlet node, return side) [kJ/kgK] + Real64 AirSysEnthMixedAir; // enthalpy of the mixed air (mixing box outlet node, mixed air side) [kJ/kgK] + Real64 AirSysZoneVentLoad; // ventilation load attributed to a particular zone from primary air system [J] + Real64 ADUCoolFlowrate; // Air distribution unit cooling air mass flow rate [kg/s] + Real64 ADUHeatFlowrate; // Air distribution unit heating air mass flow rate [kg/s] + Real64 AirSysTotalMixFlowRate; // Mixed air mass flow rate [kg/s] + Real64 AirSysOutAirFlow; // outside air flow rate for zone from primary air system [kg/s] + + Real64 ZFAUEnthReturnAir; // Zone forced Air unit enthalpy of the return air [kJ/kgK] + Real64 ZFAUTempMixedAir; // Zone forced Air unit dry-bulb temperature of the mixed air [C] + Real64 ZFAUHumRatMixedAir; // Zone forced Air unit humidity ratio of the mixed air [kg/kg] + Real64 ZFAUEnthMixedAir; // Zone forced Air unit enthalpy of the mixed air [kJ/kgK] + Real64 ZFAUEnthOutdoorAir; // Zone forced Air unit enthalpy of the outdoor air [kJ/kgK] + Real64 ZFAUFlowRate; // Zone forced Air unit air mass flow rate [kg/s] + Real64 ZFAUZoneVentLoad; // ventilation load attributed to a particular zone from zone forced air units [J] Real64 ZFAUOutAirFlow; // outside air flow rate for zone from zone forced air units. - int ZoneInletAirNode; + int ZoneInletAirNode; // Zone forced Air unit zone inlet node number Real64 ZoneVentLoad; // ventilation load attributed to a particular zone Real64 ZoneLoad; // ventilation load attributed to a particular zone - Real64 OutAirFlow; // Total outside air flow + Real64 OutAirFlow; // Total outside air mass flow from zone equipment and air loop equipment [kg/s] Real64 ZoneFlowFrac; // fraction of mixed air flowing to a zone - Real64 ZoneVolume; // Volume of zone - Real64 currentZoneAirDensity; // current zone air density (outside barometric pressure) + Real64 ZoneVolume; // Volume of zone [m3] + Real64 currentZoneAirDensity; // current zone air density (outside barometric pressure) [kg/m3] - int ActualZoneNum; - int OutAirNode; + int ActualZoneNum; // Zone forced Air zone number + int OutAirNode; // Zone forced Air unit outdoor air node number int thisZoneEquipNum; // loop counter // CALL GetComponentEnergyUse @@ -3996,6 +4006,7 @@ namespace SystemReports { for ( thisZoneEquipNum = 1; thisZoneEquipNum <= ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).NumOfEquipTypes; ++thisZoneEquipNum ) { { auto const SELECT_CASE_var( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipType_Num( thisZoneEquipNum ) ); // case statement to cover all possible zone forced air units that could have outside air + if ( SELECT_CASE_var == WindowAC_Num ) { // Window Air Conditioner OutAirNode = GetWindowACOutAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); if ( OutAirNode > 0 ) ZFAUOutAirFlow += Node( OutAirNode ).MassFlowRate; @@ -4004,6 +4015,23 @@ namespace SystemReports { if ( ZoneInletAirNode > 0 ) ZFAUFlowRate = max( Node( ZoneInletAirNode ).MassFlowRate, 0.0 ); MixedAirNode = GetWindowACMixedAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); ReturnAirNode = GetWindowACReturnAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + if ( ( MixedAirNode > 0 ) && ( ReturnAirNode > 0 ) ) { + ZFAUEnthMixedAir = PsyHFnTdbW( Node( MixedAirNode ).Temp, Node( MixedAirNode ).HumRat ); + ZFAUEnthReturnAir = PsyHFnTdbW( Node( ReturnAirNode ).Temp, Node( ReturnAirNode ).HumRat ); + //Calculate the zone ventilation load for this supply air path (i.e. zone inlet) + ZFAUZoneVentLoad += (ZFAUFlowRate)* ( ZFAUEnthMixedAir - ZFAUEnthReturnAir ) * TimeStepSys * SecInHour; //*KJperJ + } else { + ZFAUZoneVentLoad += 0.0; + } + + } else if ( SELECT_CASE_var == VRFTerminalUnit_Num ) { + OutAirNode = GetVRFTUOutAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + if ( OutAirNode > 0 ) ZFAUOutAirFlow += Node( OutAirNode ).MassFlowRate; + + ZoneInletAirNode = GetVRFTUZoneInletAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + if ( ZoneInletAirNode > 0 ) ZFAUFlowRate = max( Node( ZoneInletAirNode ).MassFlowRate, 0.0 ); + MixedAirNode = GetVRFTUMixedAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + ReturnAirNode = GetVRFTUReturnAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); if ( ( MixedAirNode > 0 ) && ( ReturnAirNode > 0 ) ) { ZFAUEnthMixedAir = PsyHFnTdbW( Node( MixedAirNode ).Temp, Node( MixedAirNode ).HumRat ); ZFAUEnthReturnAir = PsyHFnTdbW( Node( ReturnAirNode ).Temp, Node( ReturnAirNode ).HumRat ); @@ -4016,7 +4044,7 @@ namespace SystemReports { } else if ( ( SELECT_CASE_var == PkgTermHPAirToAir_Num ) || ( SELECT_CASE_var == PkgTermACAirToAir_Num ) || ( SELECT_CASE_var == PkgTermHPWaterToAir_Num ) ) { OutAirNode = GetPTUnitOutAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ), ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipType_Num( thisZoneEquipNum ) ); if ( OutAirNode > 0 ) ZFAUOutAirFlow += Node( OutAirNode ).MassFlowRate; - + ZoneInletAirNode = GetPTUnitZoneInletAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ), ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipType_Num( thisZoneEquipNum ) ); if ( ZoneInletAirNode > 0 ) ZFAUFlowRate = max( Node( ZoneInletAirNode ).MassFlowRate, 0.0 ); MixedAirNode = GetPTUnitMixedAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ), ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipType_Num( thisZoneEquipNum ) ); @@ -4063,6 +4091,7 @@ namespace SystemReports { } else { ZFAUZoneVentLoad += 0.0; } + } else if ( SELECT_CASE_var == PurchasedAir_Num ) { ZFAUOutAirFlow += GetPurchasedAirOutAirMassFlow( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); ZoneInletAirNode = GetPurchasedAirZoneInletAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); @@ -4078,6 +4107,7 @@ namespace SystemReports { } else { ZFAUZoneVentLoad += 0.0; } + } else if ( SELECT_CASE_var == ERVStandAlone_Num ) { OutAirNode = GetStandAloneERVOutAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); if ( OutAirNode > 0 ) ZFAUOutAirFlow += Node( OutAirNode ).MassFlowRate; @@ -4095,6 +4125,42 @@ namespace SystemReports { ZFAUZoneVentLoad += 0.0; } + } else if ( SELECT_CASE_var == ZoneUnitarySystem_Num ) { + // add accounting for OA when unitary system is used as zone equipment + + } else if( SELECT_CASE_var == OutdoorAirUnit_Num ) { + OutAirNode = GetOutdoorAirUnitOutAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + if( OutAirNode > 0 ) ZFAUOutAirFlow += Node( OutAirNode ).MassFlowRate; + + ZoneInletAirNode = GetOutdoorAirUnitZoneInletNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + if( ZoneInletAirNode > 0 ) ZFAUFlowRate = max( Node( ZoneInletAirNode ).MassFlowRate, 0.0 ); + ReturnAirNode = GetOutdoorAirUnitReturnAirNode( ZoneEquipList( ZoneEquipConfig( CtrlZoneNum ).EquipListIndex ).EquipIndex( thisZoneEquipNum ) ); + if( ( OutAirNode > 0 ) && ( ReturnAirNode > 0 ) ) { + // ZFAUEnthMixedAir = PsyHFnTdbW( Node( MixedAirNode ).Temp, Node( MixedAirNode ).HumRat ); + ZFAUEnthReturnAir = PsyHFnTdbW( Node( ReturnAirNode ).Temp, Node( ReturnAirNode ).HumRat ); + ZFAUEnthOutdoorAir = PsyHFnTdbW( Node( OutAirNode ).Temp, Node( OutAirNode ).HumRat ); + //Calculate the zone ventilation load for this supply air path (i.e. zone inlet) + ZFAUZoneVentLoad += ( ZFAUFlowRate )* ( ZFAUEnthOutdoorAir - ZFAUEnthReturnAir ) * TimeStepSys * SecInHour; //*KJperJ + } else { + ZFAUZoneVentLoad += 0.0; + } + + } else if ( SELECT_CASE_var == UnitHeater_Num || SELECT_CASE_var == VentilatedSlab_Num || + // ZoneHVAC:EvaporativeCoolerUnit ????? + SELECT_CASE_var == ZoneEvaporativeCoolerUnit_Num || SELECT_CASE_var == AirDistUnit_Num || SELECT_CASE_var == DirectAir_Num || + SELECT_CASE_var == BBWaterConvective_Num || SELECT_CASE_var == BBElectricConvective_Num || SELECT_CASE_var == HiTempRadiant_Num || + // not sure how HeatExchanger:* could be used as zone equipment ????? + SELECT_CASE_var == LoTempRadiant_Num || SELECT_CASE_var == ZoneExhaustFan_Num || SELECT_CASE_var == HeatXchngr_Num || + // HPWaterHeater can be used as zone equipment + SELECT_CASE_var == HPWaterHeater_Num || SELECT_CASE_var == BBWater_Num || SELECT_CASE_var == ZoneDXDehumidifier_Num || + SELECT_CASE_var == BBSteam_Num || SELECT_CASE_var == BBElectric_Num || SELECT_CASE_var == RefrigerationAirChillerSet_Num || + SELECT_CASE_var == UserDefinedZoneHVACForcedAir_Num ) { + // do nothing, OA not included + + } else { + + ShowFatalError( "ReportMaxVentilationLoads: Developer must either create accounting for OA or include in final else if to do nothing" ); + }} } diff --git a/src/EnergyPlus/TranspiredCollector.cc b/src/EnergyPlus/TranspiredCollector.cc index ee33d3537a2..876fd9ceb95 100644 --- a/src/EnergyPlus/TranspiredCollector.cc +++ b/src/EnergyPlus/TranspiredCollector.cc @@ -953,7 +953,7 @@ namespace TranspiredCollector { // Isc = sum( QRadSWOutIncident( UTSC( UTSCNum ).SurfPtrs ) * Surface( UTSC( UTSCNum ).SurfPtrs ).Area ) / AreaSum; //Autodesk:F2C++ Array subscript usage: Replaced by below Isc = sum_product_sub( QRadSWOutIncident, Surface.Area(), UTSC( UTSCNum ).SurfPtrs ) / AreaSum; //Autodesk:F2C++ Functions handle array subscript usage -// Tso = sum( TH( ( UTSC( UTSCNum ).SurfPtrs ), 1, 1 ) * Surface( UTSC( UTSCNum ).SurfPtrs ).Area ) / AreaSum; //Autodesk:F2C++ Array subscript usage: Replaced by below +// Tso = sum( TH( UTSC( UTSCNum ).SurfPtrs, 1, 1 ) * Surface( UTSC( UTSCNum ).SurfPtrs ).Area ) / AreaSum; //Autodesk:F2C++ Array subscript usage: Replaced by below Tso = sum_product_sub( TH( _, 1, 1 ), Surface.Area(), UTSC( UTSCNum ).SurfPtrs ) / AreaSum; //Autodesk:F2C++ Functions handle array subscript usage if ( Vwind > 5.0 ) { diff --git a/src/EnergyPlus/UFADManager.cc b/src/EnergyPlus/UFADManager.cc index c14cfea6383..03e7069c2be 100644 --- a/src/EnergyPlus/UFADManager.cc +++ b/src/EnergyPlus/UFADManager.cc @@ -1799,7 +1799,7 @@ namespace UFADManager { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/UnitHeater.cc b/src/EnergyPlus/UnitHeater.cc index 8afa7955439..b9abaf4e3de 100644 --- a/src/EnergyPlus/UnitHeater.cc +++ b/src/EnergyPlus/UnitHeater.cc @@ -1647,7 +1647,7 @@ namespace UnitHeater { Real64 CalcUnitHeaterResidual( Real64 const PartLoadRatio, // heating coil part load ratio - Optional< FArray1S< Real64 > const > Par // Function parameters + FArray1< Real64 > const & Par // Function parameters ) { @@ -1698,13 +1698,9 @@ namespace UnitHeater { Real64 QUnitOut; // heating provided by unit heater [watts] // Convert parameters to usable variables - UnitHeaterNum = int( Par()( 1 ) ); //Autodesk:OPTIONAL Par used without PRESENT check - if ( Par()( 2 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 3 ) ); + UnitHeaterNum = int( Par( 1 ) ); //Autodesk:OPTIONAL Par used without PRESENT check + FirstHVACIteration = ( Par( 2 ) == 1.0 ); + OpMode = int( Par( 3 ) ); CalcUnitHeaterComponents( UnitHeaterNum, FirstHVACIteration, QUnitOut, OpMode, PartLoadRatio ); diff --git a/src/EnergyPlus/UnitHeater.hh b/src/EnergyPlus/UnitHeater.hh index e8a7c4195fb..9473876a9e5 100644 --- a/src/EnergyPlus/UnitHeater.hh +++ b/src/EnergyPlus/UnitHeater.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -325,7 +324,7 @@ namespace UnitHeater { Real64 CalcUnitHeaterResidual( Real64 const PartLoadRatio, // heating coil part load ratio - Optional< FArray1S< Real64 > const > Par = _ // Function parameters + FArray1< Real64 > const & Par // Function parameters ); // NOTICE diff --git a/src/EnergyPlus/UnitVentilator.cc b/src/EnergyPlus/UnitVentilator.cc index 4dd5037149c..6376e3fb4a0 100644 --- a/src/EnergyPlus/UnitVentilator.cc +++ b/src/EnergyPlus/UnitVentilator.cc @@ -3192,7 +3192,7 @@ namespace UnitVentilator { Real64 CalcUnitVentilatorResidual( Real64 const PartLoadRatio, // Coil Part Load Ratio - Optional< FArray1S< Real64 > const > Par // Function parameters + FArray1< Real64 > const & Par // Function parameters ) { // FUNCTION INFORMATION: @@ -3235,13 +3235,9 @@ namespace UnitVentilator { Real64 QUnitOut; // heating/Cooling provided by unit ventilator [watts] // Convert parameters to usable variables - UnitVentNum = int( Par()( 1 ) ); - if ( Par()( 2 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } - OpMode = int( Par()( 3 ) ); + UnitVentNum = int( Par( 1 ) ); + FirstHVACIteration = ( Par( 2 ) == 1.0 ); + OpMode = int( Par( 3 ) ); CalcUnitVentilatorComponents( UnitVentNum, FirstHVACIteration, QUnitOut, OpMode, PartLoadRatio ); // Calculate residual based on output calculation flag if ( QZnReq != 0.0 ) { diff --git a/src/EnergyPlus/UnitVentilator.hh b/src/EnergyPlus/UnitVentilator.hh index e9c7f9928b0..df872ea3d4d 100644 --- a/src/EnergyPlus/UnitVentilator.hh +++ b/src/EnergyPlus/UnitVentilator.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -531,7 +530,7 @@ namespace UnitVentilator { Real64 CalcUnitVentilatorResidual( Real64 const PartLoadRatio, // Coil Part Load Ratio - Optional< FArray1S< Real64 > const > Par = _ // Function parameters + FArray1< Real64 > const & Par // Function parameters ); // NOTICE diff --git a/src/EnergyPlus/UtilityRoutines.cc b/src/EnergyPlus/UtilityRoutines.cc index 4124e17485c..fded1590b1e 100644 --- a/src/EnergyPlus/UtilityRoutines.cc +++ b/src/EnergyPlus/UtilityRoutines.cc @@ -113,7 +113,7 @@ AbortEnergyPlus() bool TerminalError; int write_stat; - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->updateSQLiteSimulationRecord( true, false ); } @@ -382,7 +382,7 @@ EndEnergyPlus() Real64 Seconds; // Elapsed Time Second Reporting int write_stat; - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->updateSQLiteSimulationRecord( true, true ); } @@ -809,7 +809,7 @@ ShowFatalError( ShowErrorMessage( " ...Summary of Errors that led to program termination:", OutUnit1, OutUnit2 ); ShowErrorMessage( " ..... Reference severe error count=" + RoundSigDigits( TotalSevereErrors ), OutUnit1, OutUnit2 ); ShowErrorMessage( " ..... Last severe error=" + LastSevereError, OutUnit1, OutUnit2 ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->createSQLiteErrorRecord( 1, 2, ErrorMessage, 1 ); } AbortEnergyPlus(); @@ -873,7 +873,7 @@ ShowSevereError( // Could set a variable here that gets checked at some point? - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->createSQLiteErrorRecord( 1, 1, ErrorMessage, 1 ); } @@ -932,7 +932,7 @@ ShowSevereMessage( // Could set a variable here that gets checked at some point? - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->createSQLiteErrorRecord( 1, 1, ErrorMessage, 0 ); } @@ -978,7 +978,7 @@ ShowContinueError( // na ShowErrorMessage( " ** ~~~ ** " + Message, OutUnit1, OutUnit2 ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->updateSQLiteErrorRecord( Message ); } @@ -1044,13 +1044,13 @@ ShowContinueErrorTimeStamp( if ( len( Message ) < 50 ) { ShowErrorMessage( " ** ~~~ ** " + Message + cEnvHeader + EnvironmentName + ", at Simulation time=" + CurMnDy + ' ' + CreateSysTimeIntervalString(), OutUnit1, OutUnit2 ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->updateSQLiteErrorRecord( Message + cEnvHeader + EnvironmentName + ", at Simulation time=" + CurMnDy + ' ' + CreateSysTimeIntervalString() ); } } else { ShowErrorMessage( " ** ~~~ ** " + Message ); ShowErrorMessage( " ** ~~~ ** " + cEnvHeader + EnvironmentName + ", at Simulation time=" + CurMnDy + ' ' + CreateSysTimeIntervalString(), OutUnit1, OutUnit2 ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->updateSQLiteErrorRecord( Message + cEnvHeader + EnvironmentName + ", at Simulation time=" + CurMnDy + ' ' + CreateSysTimeIntervalString() ); } } @@ -1158,7 +1158,7 @@ ShowWarningError( if ( DoingSizing ) ++TotalWarningErrorsDuringSizing; ShowErrorMessage( " ** Warning ** " + ErrorMessage, OutUnit1, OutUnit2 ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->createSQLiteErrorRecord( 1, 0, ErrorMessage, 1 ); } @@ -1213,7 +1213,7 @@ ShowWarningMessage( } ShowErrorMessage( " ** Warning ** " + ErrorMessage, OutUnit1, OutUnit2 ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->createSQLiteErrorRecord( 1, 0, ErrorMessage, 0 ); } @@ -1702,7 +1702,7 @@ ShowRecurringErrors() // Suppress reporting the count if it is a continue error if ( has_prefix( error.Message, " ** ~~~ ** " ) ) { ShowMessage( error.Message ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { sqlite->updateSQLiteErrorRecord( error.Message ); } } else { @@ -1711,7 +1711,7 @@ ShowRecurringErrors() ShowMessage( StatMessageStart + " This error occurred " + RoundSigDigits( error.Count ) + " total times;" ); ShowMessage( StatMessageStart + " during Warmup " + RoundSigDigits( error.WarmupCount ) + " times;" ); ShowMessage( StatMessageStart + " during Sizing " + RoundSigDigits( error.SizingCount ) + " times." ); - if ( sqlite && sqlite->writeOutputToSQLite() ) { + if ( sqlite ) { if ( has_prefix( error.Message, " ** Warning ** " ) ) { sqlite->createSQLiteErrorRecord( 1, 0, error.Message.substr( 15 ), error.Count ); } else if ( has_prefix( error.Message, " ** Severe ** " ) ) { diff --git a/src/EnergyPlus/VariableSpeedCoils.cc b/src/EnergyPlus/VariableSpeedCoils.cc index 46c3df3dfe3..3e78b1bc44f 100644 --- a/src/EnergyPlus/VariableSpeedCoils.cc +++ b/src/EnergyPlus/VariableSpeedCoils.cc @@ -2512,16 +2512,16 @@ namespace VariableSpeedCoils { VolFlowRate = VarSpeedCoil( DXCoilNum ).RatedAirVolFlowRate; if ( VolFlowRate >= SmallAirVolFlow ) { if ( CurOASysNum > 0 ) { // coil is in the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; } else { // coil is on the main air loop SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / VolFlowRate; @@ -2529,11 +2529,11 @@ namespace VariableSpeedCoils { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( OutBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, OutBaroPress, RoutineName ); diff --git a/src/EnergyPlus/WaterCoils.cc b/src/EnergyPlus/WaterCoils.cc index 32d0c771c06..16a6ecbd92e 100644 --- a/src/EnergyPlus/WaterCoils.cc +++ b/src/EnergyPlus/WaterCoils.cc @@ -1613,6 +1613,7 @@ namespace WaterCoils { // USE BranchInputManager, ONLY: MyPlantSizingIndex using ReportSizingManager::ReportSizingOutput; using ReportSizingManager::RequestSizing; + using ReportSizingManager::GetCoilDesFlowT; // Locals // SUBROUTINE ARGUMENT DEFINITIONS: @@ -1642,12 +1643,18 @@ namespace WaterCoils { std::string SizingString; // input field sizing description (e.g., Nominal Capacity) bool bPRINT = true; // TRUE if sizing is reported to output (eio) Real64 TempSize; // autosized value + Real64 CpAirStd; // specific heat of air at standard conditions + Real64 DesCoilAirFlow; // design air flow rate for the coil [m3/s] + Real64 DesCoilExitTemp; // design coil exit temperature [C] ErrorsFound = false; PltSizCoolNum = 0; PltSizHeatNum = 0; PltSizNum = 0; + DesCoilAirFlow = 0.0; + DesCoilExitTemp = 0.0; LoopErrorsFound = false; + CpAirStd = PsyCpAirFnWTdb( 0.0, 20.0 ); // cooling coils if ( WaterCoil( CoilNum ).WaterCoilType == CoilType_Cooling && WaterCoil( CoilNum ).RequestingAutoSize ) { @@ -1679,9 +1686,18 @@ namespace WaterCoils { bPRINT = true; if ( WaterCoil ( CoilNum ).MaxWaterVolFlowRate != AutoSize ) bPRINT = false; if ( CurSysNum == 0 ) bPRINT = false; + if ( CurSysNum > 0 && CurOASysNum == 0 ) { + GetCoilDesFlowT( CurSysNum, CpAirStd, DesCoilAirFlow, DesCoilExitTemp ); + DataAirFlowUsedForSizing = DesCoilAirFlow; + DataFlowUsedForSizing = DesCoilAirFlow; + DataDesOutletAirTemp = DesCoilExitTemp; + DataDesOutletAirHumRat = PsyWFnTdbRhPb( DataDesOutletAirTemp, 0.9, StdBaroPress ); + } + SizingString = "Design Coil Load [W]"; // there is no input field for this value and this is not the rated capacity (we should always print this!) RequestSizing( CompType, CompName, CoolingCapacitySizing, SizingString, TempSize, bPRINT, RoutineName ); WaterCoil( CoilNum ).DesWaterCoolingCoilRate = TempSize; + WaterCoil( CoilNum ).InletAirMassFlowRate = StdRhoAir * DataFlowUsedForSizing; // inlet air mass flow rate is the autosized value DataCapacityUsedForSizing = WaterCoil( CoilNum ).DesWaterCoolingCoilRate; // Why isn't the water volume flow rate based on the user inputs for inlet/outlet air/water temps? Water volume flow rate is always based on autosized inputs. @@ -1882,6 +1898,7 @@ namespace WaterCoils { DataCapacityUsedForSizing = 0.0; DataDesInletAirTemp = 0.0; DataDesOutletAirTemp = 0.0; + DataDesOutletAirHumRat = 0.0; DataDesInletAirHumRat = 0.0; DataDesInletWaterTemp = 0.0; @@ -4430,7 +4447,7 @@ Label999: ; Real64 SimpleHeatingCoilUAResidual( Real64 const UA, // UA of coil - Optional< FArray1S< Real64 > const > Par // par(1) = design coil load [W] + FArray1< Real64 > const & Par // par(1) = design coil load [W] ) { @@ -4475,16 +4492,12 @@ Label999: ; int FanOpMode; Real64 PartLoadRatio; - CoilIndex = int( Par()( 2 ) ); - if ( Par()( 3 ) == 1.0 ) { - FanOpMode = CycFanCycCoil; - } else { - FanOpMode = ContFanCycCoil; - } - PartLoadRatio = Par()( 4 ); + CoilIndex = int( Par( 2 ) ); + FanOpMode = ( Par( 3 ) == 1.0 ? CycFanCycCoil : ContFanCycCoil ); + PartLoadRatio = Par( 4 ); WaterCoil( CoilIndex ).UACoilVariable = UA; CalcSimpleHeatingCoil( CoilIndex, FanOpMode, PartLoadRatio, SimCalc ); - Residuum = ( Par()( 1 ) - WaterCoil( CoilIndex ).TotWaterHeatingCoilRate ) / Par()( 1 ); + Residuum = ( Par( 1 ) - WaterCoil( CoilIndex ).TotWaterHeatingCoilRate ) / Par( 1 ); DataDesignCoilCapacity = WaterCoil ( CoilIndex ).TotWaterHeatingCoilRate; return Residuum; @@ -4493,7 +4506,7 @@ Label999: ; Real64 SimpleCoolingCoilUAResidual( Real64 const UA, // UA of coil - Optional< FArray1S< Real64 > const > Par // par(1) = design coil load [W] + FArray1< Real64 > const & Par // par(1) = design coil load [W] ) { @@ -4538,13 +4551,9 @@ Label999: ; int FanOpMode; Real64 PartLoadRatio; - CoilIndex = int( Par()( 2 ) ); - if ( Par()( 3 ) == 1.0 ) { - FanOpMode = CycFanCycCoil; - } else { - FanOpMode = ContFanCycCoil; - } - PartLoadRatio = Par()( 4 ); + CoilIndex = int( Par( 2 ) ); + FanOpMode = ( Par( 3 ) == 1.0 ? CycFanCycCoil : ContFanCycCoil ); + PartLoadRatio = Par( 4 ); WaterCoil( CoilIndex ).UACoilExternal = UA; WaterCoil( CoilIndex ).UACoilInternal = WaterCoil( CoilIndex ).UACoilExternal * 3.3; WaterCoil( CoilIndex ).UACoilTotal = 1.0 / ( 1.0 / WaterCoil( CoilIndex ).UACoilExternal + 1.0 / WaterCoil( CoilIndex ).UACoilInternal ); @@ -4555,7 +4564,7 @@ Label999: ; CoolingCoil( CoilIndex, true, DesignCalc, FanOpMode, PartLoadRatio ); - Residuum = ( Par()( 1 ) - WaterCoil( CoilIndex ).TotWaterCoolingCoilRate ) / Par()( 1 ); + Residuum = ( Par( 1 ) - WaterCoil( CoilIndex ).TotWaterCoolingCoilRate ) / Par( 1 ); return Residuum; } @@ -5534,7 +5543,7 @@ Label10: ; Real64 EnthalpyResidual( Real64 const Tprov, // test value of Tdb [C] - Optional< FArray1S< Real64 > const > Par // Par(1) = desired enthaply H [J/kg] + FArray1< Real64 > const & Par // Par(1) = desired enthaply H [J/kg] ) { @@ -5576,7 +5585,7 @@ Label10: ; // FUNCTION LOCAL VARIABLE DECLARATIONS: - Residuum = Par()( 1 ) - PsyHFnTdbRhPb( Tprov, Par()( 2 ), Par()( 3 ) ); + Residuum = Par( 1 ) - PsyHFnTdbRhPb( Tprov, Par( 2 ), Par( 3 ) ); return Residuum; } diff --git a/src/EnergyPlus/WaterCoils.hh b/src/EnergyPlus/WaterCoils.hh index e12377134ad..b55235e6343 100644 --- a/src/EnergyPlus/WaterCoils.hh +++ b/src/EnergyPlus/WaterCoils.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include #include @@ -788,13 +787,13 @@ namespace WaterCoils { Real64 SimpleHeatingCoilUAResidual( Real64 const UA, // UA of coil - Optional< FArray1S< Real64 > const > Par = _ // par(1) = design coil load [W] + FArray1< Real64 > const & Par // par(1) = design coil load [W] ); Real64 SimpleCoolingCoilUAResidual( Real64 const UA, // UA of coil - Optional< FArray1S< Real64 > const > Par = _ // par(1) = design coil load [W] + FArray1< Real64 > const & Par // par(1) = design coil load [W] ); // Iterate Routine for Cooling Coil @@ -887,7 +886,7 @@ namespace WaterCoils { Real64 EnthalpyResidual( Real64 const Tprov, // test value of Tdb [C] - Optional< FArray1S< Real64 > const > Par = _ // Par(1) = desired enthaply H [J/kg] + FArray1< Real64 > const & Par // Par(1) = desired enthaply H [J/kg] ); Real64 diff --git a/src/EnergyPlus/WaterThermalTanks.cc b/src/EnergyPlus/WaterThermalTanks.cc index 387a59de888..7f6c31afe3e 100644 --- a/src/EnergyPlus/WaterThermalTanks.cc +++ b/src/EnergyPlus/WaterThermalTanks.cc @@ -7198,7 +7198,7 @@ namespace WaterThermalTanks { Real64 PLRResidualMixedTank( Real64 const HPPartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = HP set point temperature [C] + FArray1< Real64 > const & Par // par(1) = HP set point temperature [C] ) { // FUNCTION INFORMATION: @@ -7247,18 +7247,14 @@ namespace WaterThermalTanks { Real64 NewTankTemp; // resulting tank temperature [C] bool FirstHVACIteration; // FirstHVACIteration flag - WaterThermalTankNum = int( Par()( 3 ) ); - WaterThermalTank( WaterThermalTankNum ).Mode = int( Par()( 2 ) ); - WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = Par()( 5 ) * HPPartLoadRatio; + WaterThermalTankNum = int( Par( 3 ) ); + WaterThermalTank( WaterThermalTankNum ).Mode = int( Par( 2 ) ); + WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = Par( 5 ) * HPPartLoadRatio; // FirstHVACIteration is a logical, Par is real, so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 4 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } + FirstHVACIteration = ( Par( 4 ) == 1.0 ); CalcWaterThermalTankMixed( WaterThermalTankNum ); NewTankTemp = WaterThermalTank( WaterThermalTankNum ).TankTemp; - PLRResidualMixedTank = Par()( 1 ) - NewTankTemp; + PLRResidualMixedTank = Par( 1 ) - NewTankTemp; return PLRResidualMixedTank; } @@ -7266,7 +7262,7 @@ namespace WaterThermalTanks { Real64 PLRResidualStratifiedTank( Real64 const HPPartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par // par(1) = HP set point temperature [C] + FArray1< Real64 > const & Par // par(1) = HP set point temperature [C] ) { // FUNCTION INFORMATION: @@ -7315,18 +7311,14 @@ namespace WaterThermalTanks { Real64 NewTankTemp; // resulting tank temperature [C] bool FirstHVACIteration; // FirstHVACIteration flag - WaterThermalTankNum = int( Par()( 3 ) ); - WaterThermalTank( WaterThermalTankNum ).Mode = int( Par()( 2 ) ); - WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = Par()( 5 ) * HPPartLoadRatio; + WaterThermalTankNum = int( Par( 3 ) ); + WaterThermalTank( WaterThermalTankNum ).Mode = int( Par( 2 ) ); + WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = Par( 5 ) * HPPartLoadRatio; // FirstHVACIteration is a logical, Par is real, so make 1.0=TRUE and 0.0=FALSE - if ( Par()( 4 ) == 1.0 ) { - FirstHVACIteration = true; - } else { - FirstHVACIteration = false; - } + FirstHVACIteration = ( Par( 4 ) == 1.0 ); CalcWaterThermalTankStratified( WaterThermalTankNum ); NewTankTemp = FindStratifiedTankSensedTemp( WaterThermalTankNum, HPWaterHeater( WaterThermalTank( WaterThermalTankNum ).HeatPumpNum ).ControlSensorLocation ); - PLRResidualStratifiedTank = Par()( 1 ) - NewTankTemp; + PLRResidualStratifiedTank = Par( 1 ) - NewTankTemp; return PLRResidualStratifiedTank; } diff --git a/src/EnergyPlus/WaterThermalTanks.hh b/src/EnergyPlus/WaterThermalTanks.hh index 938a5c8e00a..456c88ea3e1 100644 --- a/src/EnergyPlus/WaterThermalTanks.hh +++ b/src/EnergyPlus/WaterThermalTanks.hh @@ -3,7 +3,6 @@ // ObjexxFCL Headers #include -#include #include // EnergyPlus Headers @@ -1790,13 +1789,13 @@ namespace WaterThermalTanks { Real64 PLRResidualMixedTank( Real64 const HPPartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = HP set point temperature [C] + FArray1< Real64 > const & Par // par(1) = HP set point temperature [C] ); Real64 PLRResidualStratifiedTank( Real64 const HPPartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) - Optional< FArray1S< Real64 > const > Par = _ // par(1) = HP set point temperature [C] + FArray1< Real64 > const & Par // par(1) = HP set point temperature [C] ); Real64 diff --git a/src/EnergyPlus/WaterToAirHeatPump.cc b/src/EnergyPlus/WaterToAirHeatPump.cc index c4898e91e8b..9932ea08252 100644 --- a/src/EnergyPlus/WaterToAirHeatPump.cc +++ b/src/EnergyPlus/WaterToAirHeatPump.cc @@ -1451,7 +1451,7 @@ namespace WaterToAirHeatPump { Real64 CalcCompSuctionTempResidual( Real64 const CompSuctionTemp, // HP compressor suction temperature (C) - Optional< FArray1S< Real64 > const > Par // Function parameters + FArray1< Real64 > const & Par // Function parameters ) { @@ -1500,10 +1500,9 @@ namespace WaterToAirHeatPump { Real64 SuperHeatEnth; // Convert parameters to usable variables - Refrigerant = ""; - SuctionPr = Par()( 1 ); - RefrigIndex = int( Par()( 2 ) ); - SuperHeatEnth = Par()( 3 ); + SuctionPr = Par( 1 ); + RefrigIndex = int( Par( 2 ) ); + SuperHeatEnth = Par( 3 ); CompSuctionEnth = GetSupHeatEnthalpyRefrig( Refrigerant, CompSuctionTemp, SuctionPr, RefrigIndex, RoutineName ); diff --git a/src/EnergyPlus/WaterToAirHeatPump.hh b/src/EnergyPlus/WaterToAirHeatPump.hh index 9229e706834..7683c480c5b 100644 --- a/src/EnergyPlus/WaterToAirHeatPump.hh +++ b/src/EnergyPlus/WaterToAirHeatPump.hh @@ -3,8 +3,6 @@ // ObjexxFCL Headers #include -#include -#include // EnergyPlus Headers #include @@ -408,7 +406,7 @@ namespace WaterToAirHeatPump { Real64 CalcCompSuctionTempResidual( Real64 const CompSuctionTemp, // HP compressor suction temperature (C) - Optional< FArray1S< Real64 > const > Par = _ // Function parameters + FArray1< Real64 > const & Par // Function parameters ); void diff --git a/src/EnergyPlus/WaterToAirHeatPumpSimple.cc b/src/EnergyPlus/WaterToAirHeatPumpSimple.cc index d44f5f10685..d5530cd3838 100644 --- a/src/EnergyPlus/WaterToAirHeatPumpSimple.cc +++ b/src/EnergyPlus/WaterToAirHeatPumpSimple.cc @@ -1065,16 +1065,16 @@ namespace WaterToAirHeatPumpSimple { VolFlowRate = SimpleWatertoAirHP( HPNum ).RatedAirVolFlowRate; if ( VolFlowRate >= SmallAirVolFlow ) { if ( CurOASysNum > 0 ) { // coil is in the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; } else { // coil is on the main air loop SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / VolFlowRate; @@ -1082,11 +1082,11 @@ namespace WaterToAirHeatPumpSimple { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); @@ -1233,16 +1233,16 @@ namespace WaterToAirHeatPumpSimple { VolFlowRate = SimpleWatertoAirHP( HPNum ).RatedAirVolFlowRate; if ( VolFlowRate >= SmallAirVolFlow ) { if ( CurOASysNum > 0 ) { // coil is in the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolOutHumRat; + MixTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).OutHumRatAtCoolPeak; SupTemp = FinalSysSizing( CurSysNum ).PrecoolTemp; SupHumRat = FinalSysSizing( CurSysNum ).PrecoolHumRat; } else { // coil is on the main air loop SupTemp = FinalSysSizing( CurSysNum ).CoolSupTemp; SupHumRat = FinalSysSizing( CurSysNum ).CoolSupHumRat; if ( PrimaryAirSystem( CurSysNum ).NumOACoolCoils == 0 ) { // there is no precooling of the OA stream - MixTemp = FinalSysSizing( CurSysNum ).CoolMixTemp; - MixHumRat = FinalSysSizing( CurSysNum ).CoolMixHumRat; + MixTemp = FinalSysSizing( CurSysNum ).MixTempAtCoolPeak; + MixHumRat = FinalSysSizing( CurSysNum ).MixHumRatAtCoolPeak; } else { // there is precooling of OA stream if ( VolFlowRate > 0.0 ) { OutAirFrac = FinalSysSizing( CurSysNum ).DesOutAirVolFlow / VolFlowRate; @@ -1250,11 +1250,11 @@ namespace WaterToAirHeatPumpSimple { OutAirFrac = 1.0; } OutAirFrac = min( 1.0, max( 0.0, OutAirFrac ) ); - MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetTemp; - MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).CoolRetHumRat; + MixTemp = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolTemp + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetTempAtCoolPeak; + MixHumRat = OutAirFrac * FinalSysSizing( CurSysNum ).PrecoolHumRat + ( 1.0 - OutAirFrac ) * FinalSysSizing( CurSysNum ).RetHumRatAtCoolPeak; } } - OutTemp = FinalSysSizing( CurSysNum ).CoolOutTemp; + OutTemp = FinalSysSizing( CurSysNum ).OutTempAtCoolPeak; rhoair = PsyRhoAirFnPbTdbW( StdBaroPress, MixTemp, MixHumRat, RoutineName ); MixEnth = PsyHFnTdbW( MixTemp, MixHumRat ); MixWetBulb = PsyTwbFnTdbWPb( MixTemp, MixHumRat, StdBaroPress, RoutineName ); diff --git a/src/EnergyPlus/WindowComplexManager.cc b/src/EnergyPlus/WindowComplexManager.cc index c7f88ec7f62..23d7a0b538a 100644 --- a/src/EnergyPlus/WindowComplexManager.cc +++ b/src/EnergyPlus/WindowComplexManager.cc @@ -66,8 +66,7 @@ namespace WindowComplexManager { using DataGlobals::NumOfZones; using DataGlobals::rTinyValue; using DataGlobals::KelvinConv; - using DataGlobals::SecInHour; - using DataGlobals::TimeStepZone; + using DataGlobals::TimeStepZoneSec; using namespace DataSurfaces; // , ONLY: TotSurfaces,TotWindows,Surface,SurfaceWindow !update this later using DataEnvironment::SunIsUpValue; using DataEnvironment::SkyTempKelvin; @@ -3765,7 +3764,7 @@ namespace WindowComplexManager { SurfaceWindow( SurfNum ).ConvHeatFlowNatural = ConvHeatFlowNatural; WinGapConvHtFlowRep( SurfNum ) = ConvHeatFlowNatural; - WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZone * SecInHour; + WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZoneSec; // Window heat gain from glazing and shade/blind to zone. Consists of transmitted solar, convection // from air exiting gap, convection from zone-side of shade/blind, net IR to zone from shade and net IR to // zone from the glass adjacent to the shade/blind (zero if shade/blind IR transmittance is zero). @@ -3805,7 +3804,7 @@ namespace WindowComplexManager { ConvHeatFlowNatural = -qv( 2 ) * height * width; // qv(1) is exterior environment WinGapConvHtFlowRep( SurfNum ) = ConvHeatFlowNatural; - WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZone * SecInHour; + WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZoneSec; } } @@ -3823,7 +3822,7 @@ namespace WindowComplexManager { ConvHeatFlowForced = sum( qv ); // TODO. figure forced ventilation heat flow in Watts WinGapConvHtFlowRep( SurfNum ) = ConvHeatFlowForced; - WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZone * SecInHour; + WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZoneSec; // Add heat from gap airflow to zone air if destination is inside air; save the heat gain to return // air in case it needs to be sent to the zone (due to no return air determined in HVAC simulation) if ( SurfaceWindow( SurfNum ).AirflowDestination == AirFlowWindow_Destination_IndoorAir || SurfaceWindow( SurfNum ).AirflowDestination == AirFlowWindow_Destination_ReturnAir ) { @@ -3871,7 +3870,7 @@ namespace WindowComplexManager { if ( ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn ) { WinShadingAbsorbedSolar( SurfNum ) = ( SurfaceWindow( SurfNum ).ExtBeamAbsByShade + SurfaceWindow( SurfNum ).ExtDiffAbsByShade ) * ( Surface( SurfNum ).Area + SurfaceWindow( SurfNum ).DividerArea ); - WinShadingAbsorbedSolarEnergy( SurfNum ) = WinShadingAbsorbedSolar( SurfNum ) * TimeStepZone * SecInHour; + WinShadingAbsorbedSolarEnergy( SurfNum ) = WinShadingAbsorbedSolar( SurfNum ) * TimeStepZoneSec; } if ( SunIsUp ) { WinSysSolTransmittance( SurfNum ) = WinTransSolar( SurfNum ) / ( QRadSWOutIncident( SurfNum ) * ( Surface( SurfNum ).Area + SurfaceWindow( SurfNum ).DividerArea ) + 0.0001 ); diff --git a/src/EnergyPlus/WindowManager.cc b/src/EnergyPlus/WindowManager.cc index bc79512992a..4669eecbb70 100644 --- a/src/EnergyPlus/WindowManager.cc +++ b/src/EnergyPlus/WindowManager.cc @@ -2581,14 +2581,14 @@ namespace WindowManager { Tsout = SurfOutsideTemp + TKelvin; QdotConvOutRep( SurfNum ) = -surface.Area * hcout * ( Tsout - tout ); QdotConvOutRepPerArea( SurfNum ) = -hcout * ( Tsout - tout ); - QConvOutReport( SurfNum ) = QdotConvOutRep( SurfNum ) * SecInHour * TimeStepZone; + QConvOutReport( SurfNum ) = QdotConvOutRep( SurfNum ) * TimeStepZoneSec; Real64 const Tsout_4( pow_4( Tsout ) ); //Tuned To reduce pow calls and redundancies Real64 const rad_out_per_area( -SurfOutsideEmiss * sigma * ( ( ( ( 1.0 - AirSkyRadSplit( SurfNum ) ) * surface.ViewFactorSkyIR + surface.ViewFactorGroundIR ) * ( Tsout_4 - pow_4( tout ) ) ) + ( AirSkyRadSplit( SurfNum ) * surface.ViewFactorSkyIR * ( Tsout_4 - pow_4( SkyTempKelvin ) ) ) ) ); QdotRadOutRep( SurfNum ) = surface.Area * rad_out_per_area; QdotRadOutRepPerArea( SurfNum ) = rad_out_per_area; - QRadOutReport( SurfNum ) = QdotRadOutRep( SurfNum ) * SecInHour * TimeStepZone; + QRadOutReport( SurfNum ) = QdotRadOutRep( SurfNum ) * TimeStepZoneSec; } @@ -3413,7 +3413,7 @@ namespace WindowManager { SurfaceWindow( SurfNum ).TAirflowGapOutlet = TAirflowGapOutletC; if ( SurfaceWindow( SurfNum ).AirflowThisTS > 0.0 ) { WinGapConvHtFlowRep( SurfNum ) = ConvHeatFlowForced; - WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZone * SecInHour; + WinGapConvHtFlowRepEnergy( SurfNum ) = WinGapConvHtFlowRep( SurfNum ) * TimeStepZoneSec; // Add heat from gap airflow to zone air if destination is inside air; save the heat gain to return // air in case it needs to be sent to the zone (due to no return air determined in HVAC simulation) if ( SurfaceWindow( SurfNum ).AirflowDestination == AirFlowWindow_Destination_IndoorAir || SurfaceWindow( SurfNum ).AirflowDestination == AirFlowWindow_Destination_ReturnAir ) { @@ -3462,7 +3462,7 @@ namespace WindowManager { if ( ShadeFlag == IntShadeOn || ShadeFlag == ExtShadeOn || ShadeFlag == IntBlindOn || ShadeFlag == ExtBlindOn || ShadeFlag == BGShadeOn || ShadeFlag == BGBlindOn || ShadeFlag == ExtScreenOn ) { WinShadingAbsorbedSolar( SurfNum ) = ( SurfaceWindow( SurfNum ).ExtBeamAbsByShade + SurfaceWindow( SurfNum ).ExtDiffAbsByShade ) * ( Surface( SurfNum ).Area + SurfaceWindow( SurfNum ).DividerArea ); - WinShadingAbsorbedSolarEnergy( SurfNum ) = WinShadingAbsorbedSolar( SurfNum ) * TimeStepZone * SecInHour; + WinShadingAbsorbedSolarEnergy( SurfNum ) = WinShadingAbsorbedSolar( SurfNum ) * TimeStepZoneSec; } if ( SunIsUp ) { WinSysSolTransmittance( SurfNum ) = WinTransSolar( SurfNum ) / ( QRadSWOutIncident( SurfNum ) * ( Surface( SurfNum ).Area + SurfaceWindow( SurfNum ).DividerArea ) + 0.0001 ); diff --git a/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc b/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc index 0455b9e0a84..8df9d128e69 100644 --- a/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc +++ b/src/EnergyPlus/ZoneContaminantPredictorCorrector.cc @@ -397,10 +397,11 @@ namespace ZoneContaminantPredictorCorrector { ZoneContamGenericPDriven( Loop ).SurfNum = FindItemInList( AlphaName( 2 ), MultizoneSurfaceData.SurfName(), AirflowNetworkNumOfSurfaces ); if ( ZoneContamGenericPDriven( Loop ).SurfNum == 0 ) { ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + AlphaName( 1 ) + "\", invalid " + cAlphaFieldNames( 2 ) + " entered=" + AlphaName( 2 ) ); + ShowContinueError( "which is not listed in AirflowNetwork:MultiZone:Surface." ); ErrorsFound = true; } // Ensure external surface - if ( Surface( ZoneContamGenericPDriven( Loop ).SurfNum ).ExtBoundCond != ExternalEnvironment ) { + if ( ZoneContamGenericPDriven( Loop ).SurfNum > 0 && Surface( MultizoneSurfaceData( ZoneContamGenericPDriven( Loop ).SurfNum ).SurfNum ).ExtBoundCond != ExternalEnvironment ) { ShowSevereError( RoutineName + CurrentModuleObject + "=\"" + AlphaName( 1 ) + ". The entered surface (" + AlphaName( 2 ) + ") is not an exterior surface" ); ErrorsFound = true; } @@ -452,13 +453,18 @@ namespace ZoneContaminantPredictorCorrector { // Object report variables SetupOutputVariable( "Generic Air Contaminant Pressure Driven Generation Volume Flow Rate [m3/s]", ZoneContamGenericPDriven( Loop ).GCGenRate, "Zone", "Average", ZoneContamGenericPDriven( Loop ).Name ); - ZonePtr = Surface( ZoneContamGenericPDriven( Loop ).SurfNum ).Zone; + if ( ZoneContamGenericPDriven( Loop ).SurfNum > 0 ) { + ZonePtr = Surface( MultizoneSurfaceData( ZoneContamGenericPDriven( Loop ).SurfNum ).SurfNum ).Zone; + } + else { + ZonePtr = 0; + } // Zone total report variables - if ( RepVarSet( ZonePtr ) ) { + if ( ZonePtr > 0 && RepVarSet( ZonePtr ) ) { RepVarSet( ZonePtr ) = false; SetupOutputVariable( "Zone Generic Air Contaminant Generation Volume Flow Rate [m3/s]", ZnRpt( ZonePtr ).GCRate, "Zone", "Average", Zone( ZonePtr ).Name ); } - SetupZoneInternalGain( ZonePtr, "ZoneContaminantSourceAndSink:GenericContaminant", ZoneContamGenericPDriven( Loop ).Name, IntGainTypeOf_ZoneContaminantSourceAndSinkGenericContam, _, _, _, _, _, _, ZoneContamGenericPDriven( Loop ).GCGenRate ); + if ( ZonePtr > 0 ) SetupZoneInternalGain( ZonePtr, "ZoneContaminantSourceAndSink:GenericContaminant", ZoneContamGenericPDriven( Loop ).Name, IntGainTypeOf_ZoneContaminantSourceAndSinkGenericContam, _, _, _, _, _, _, ZoneContamGenericPDriven( Loop ).GCGenRate ); } CurrentModuleObject = "ZoneContaminantSourceAndSink:Generic:CutoffModel"; @@ -1375,7 +1381,7 @@ namespace ZoneContaminantPredictorCorrector { if ( Sch == 0.0 || BeginEnvrnFlag || WarmupFlag ) { ZoneContamGenericDecay( Loop ).GCTime = 0.0; } else { - ZoneContamGenericDecay( Loop ).GCTime += TimeStepZone * SecInHour; + ZoneContamGenericDecay( Loop ).GCTime += TimeStepZoneSec; } GCGain = ZoneContamGenericDecay( Loop ).GCInitEmiRate * Sch * std::exp( -ZoneContamGenericDecay( Loop ).GCTime / ZoneContamGenericDecay( Loop ).GCDelayTime ); ZoneContamGenericDecay( Loop ).GCGenRate = GCGain; diff --git a/src/EnergyPlus/ZoneEquipmentManager.cc b/src/EnergyPlus/ZoneEquipmentManager.cc index dd98df0a645..c144602ead3 100644 --- a/src/EnergyPlus/ZoneEquipmentManager.cc +++ b/src/EnergyPlus/ZoneEquipmentManager.cc @@ -1268,7 +1268,11 @@ namespace ZoneEquipmentManager { } } FinalZoneSizing( CtrlZoneNum ).TotalZoneFloorArea = ( Zone( ZoneIndex ).FloorArea * Zone( FinalZoneSizing( CtrlZoneNum ).ActualZoneNum ).Multiplier * Zone( FinalZoneSizing( CtrlZoneNum ).ActualZoneNum ).ListMultiplier ); - OAFromPeople = FinalZoneSizing( CtrlZoneNum ).DesOAFlowPPer * TotPeopleInZone; + if ( FinalZoneSizing( CtrlZoneNum ).OADesMethod == OAFlowPPer || FinalZoneSizing( CtrlZoneNum ).OADesMethod == OAFlowSum || FinalZoneSizing( CtrlZoneNum ).OADesMethod == OAFlowMax ){ + OAFromPeople = FinalZoneSizing( CtrlZoneNum ).DesOAFlowPPer * TotPeopleInZone; + } else { + OAFromPeople = 0.0; + } OAFromArea = FinalZoneSizing( CtrlZoneNum ).DesOAFlowPerArea * FinalZoneSizing( CtrlZoneNum ).TotalZoneFloorArea; FinalZoneSizing( CtrlZoneNum ).TotPeopleInZone = TotPeopleInZone; FinalZoneSizing( CtrlZoneNum ).TotalOAFromPeople = OAFromPeople; @@ -5033,7 +5037,7 @@ namespace ZoneEquipmentManager { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/ZoneTempPredictorCorrector.cc b/src/EnergyPlus/ZoneTempPredictorCorrector.cc index c3da84d16ea..0283c83e499 100644 --- a/src/EnergyPlus/ZoneTempPredictorCorrector.cc +++ b/src/EnergyPlus/ZoneTempPredictorCorrector.cc @@ -1936,7 +1936,6 @@ namespace ZoneTempPredictorCorrector { // na // Using/Aliasing - using DataZoneEquipment::ZoneEquipConfig; using DataZoneEquipment::ZoneEquipInputsFilled; using DataSurfaces::Surface; @@ -2566,6 +2565,14 @@ namespace ZoneTempPredictorCorrector { } } + //Tuned Precompute controlled equip zone numbers for performance + std::vector< int > controlledZoneEquipConfigNums; + for ( int ZoneEquipConfigNum = 1; ZoneEquipConfigNum <= NumOfZones; ++ZoneEquipConfigNum ) { + if ( Zone( ZoneEquipConfigNum ).IsControlled ) { + controlledZoneEquipConfigNums.push_back( ZoneEquipConfigNum ); + } + } + // Update zone temperatures for ( ZoneNum = 1; ZoneNum <= NumOfZones; ++ZoneNum ) { @@ -2633,7 +2640,7 @@ namespace ZoneTempPredictorCorrector { // Calculate the various heat balance sums // NOTE: SumSysMCp and SumSysMCpT are not used in the predict step - CalcZoneSums( ZoneNum, SumIntGain, SumHA, SumHATsurf, SumHATref, SumMCp, SumMCpT, SumSysMCp, SumSysMCpT ); + CalcZoneSums( ZoneNum, SumIntGain, SumHA, SumHATsurf, SumHATref, SumMCp, SumMCpT, SumSysMCp, SumSysMCpT, controlledZoneEquipConfigNums ); TempDepCoef = SumHA + SumMCp; TempIndCoef = SumIntGain + SumHATsurf - SumHATref + SumMCpT + SysDepZoneLoadsLagged( ZoneNum ); @@ -3505,13 +3512,21 @@ namespace ZoneTempPredictorCorrector { // Initializations ZoneTempChange = constant_zero; + //Tuned Precompute controlled equip zone numbers for performance + std::vector< int > controlledZoneEquipConfigNums; + for ( int ZoneEquipConfigNum = 1; ZoneEquipConfigNum <= NumOfZones; ++ZoneEquipConfigNum ) { + if ( Zone( ZoneEquipConfigNum ).IsControlled ) { + controlledZoneEquipConfigNums.push_back( ZoneEquipConfigNum ); + } + } + // Update zone temperatures for ( ZoneNum = 1; ZoneNum <= NumOfZones; ++ZoneNum ) { ZoneMult = Zone( ZoneNum ).Multiplier * Zone( ZoneNum ).ListMultiplier; if ( ShortenTimeStepSys ) { - //time step has gotten smaller, use zone timestep history to interpolate new set of "DS" history terms. + // time step has gotten smaller, use zone timestep history to interpolate new set of "DS" history terms. if ( NumOfSysTimeSteps != NumOfSysTimeStepsLastZoneTimeStep ) { // cannot reuse existing DS data, interpolate from zone time DownInterpolate4HistoryValues( PriorTimeStep, TimeStepSys, MAT( ZoneNum ), XMAT( ZoneNum ), XM2T( ZoneNum ), XM3T( ZoneNum ), XM4T( ZoneNum ), MAT( ZoneNum ), DSXMAT( ZoneNum ), DSXM2T( ZoneNum ), DSXM3T( ZoneNum ), DSXM4T( ZoneNum ) ); DownInterpolate4HistoryValues( PriorTimeStep, TimeStepSys, ZoneAirHumRat( ZoneNum ), WZoneTimeMinus1( ZoneNum ), WZoneTimeMinus2( ZoneNum ), WZoneTimeMinus3( ZoneNum ), WZoneTimeMinus4( ZoneNum ), ZoneAirHumRat( ZoneNum ), DSWZoneTimeMinus1( ZoneNum ), DSWZoneTimeMinus2( ZoneNum ), DSWZoneTimeMinus3( ZoneNum ), DSWZoneTimeMinus4( ZoneNum ) ); @@ -3544,7 +3559,6 @@ namespace ZoneTempPredictorCorrector { WZoneTimeMinus1Temp( ZoneNum ) = WZoneTimeMinus1( ZoneNum ); WZoneTimeMinus2Temp( ZoneNum ) = WZoneTimeMinus2( ZoneNum ); WZoneTimeMinus3Temp( ZoneNum ) = WZoneTimeMinus3( ZoneNum ); - } AIRRAT( ZoneNum ) = Zone( ZoneNum ).Volume * ZoneVolCapMultpSens * PsyRhoAirFnPbTdbW( OutBaroPress, MAT( ZoneNum ), ZoneAirHumRat( ZoneNum ), RoutineName ) * PsyCpAirFnWTdb( ZoneAirHumRat( ZoneNum ), MAT( ZoneNum ) ) / ( TimeStepSys * SecInHour ); @@ -3554,7 +3568,7 @@ namespace ZoneTempPredictorCorrector { ManageAirModel( ZoneNum ); // Calculate the various heat balance sums - CalcZoneSums( ZoneNum, SumIntGain, SumHA, SumHATsurf, SumHATref, SumMCp, SumMCpT, SumSysMCp, SumSysMCpT ); + CalcZoneSums( ZoneNum, SumIntGain, SumHA, SumHATsurf, SumHATref, SumMCp, SumMCpT, SumSysMCp, SumSysMCpT, controlledZoneEquipConfigNums ); // ZoneTempHistoryTerm = (3.0D0 * ZTM1(ZoneNum) - (3.0D0/2.0D0) * ZTM2(ZoneNum) + (1.0D0/3.0D0) * ZTM3(ZoneNum)) ZoneNodeNum = Zone( ZoneNum ).SystemZoneNodeNumber; @@ -3681,7 +3695,7 @@ namespace ZoneTempPredictorCorrector { SNLoadCoolEnergy( ZoneNum ) = std::abs( min( SNLoad, 0.0 ) * TimeStepSys * SecInHour ); // Final humidity calcs - CorrectZoneHumRat( ZoneNum ); + CorrectZoneHumRat( ZoneNum, controlledZoneEquipConfigNums ); ZoneAirHumRat( ZoneNum ) = ZoneAirHumRatTemp( ZoneNum ); ZoneAirRelHum( ZoneNum ) = 100.0 * PsyRhFnTdbWPb( ZT( ZoneNum ), ZoneAirHumRat( ZoneNum ), OutBaroPress, RoutineName ); @@ -3722,7 +3736,7 @@ namespace ZoneTempPredictorCorrector { } }} - CalcZoneComponentLoadSums( ZoneNum, TempDepCoef, TempIndCoef, ZnAirRpt( ZoneNum ).SumIntGains, ZnAirRpt( ZoneNum ).SumHADTsurfs, ZnAirRpt( ZoneNum ).SumMCpDTzones, ZnAirRpt( ZoneNum ).SumMCpDtInfil, ZnAirRpt( ZoneNum ).SumMCpDTsystem, ZnAirRpt( ZoneNum ).SumNonAirSystem, ZnAirRpt( ZoneNum ).CzdTdt, ZnAirRpt( ZoneNum ).imBalance ); // convection part of internal gains | surface convection heat transfer | interzone mixing | OA of various kinds except via system | air system | non air system | air mass energy storage term | measure of imbalance in zone air heat balance + CalcZoneComponentLoadSums( ZoneNum, TempDepCoef, TempIndCoef, ZnAirRpt( ZoneNum ).SumIntGains, ZnAirRpt( ZoneNum ).SumHADTsurfs, ZnAirRpt( ZoneNum ).SumMCpDTzones, ZnAirRpt( ZoneNum ).SumMCpDtInfil, ZnAirRpt( ZoneNum ).SumMCpDTsystem, ZnAirRpt( ZoneNum ).SumNonAirSystem, ZnAirRpt( ZoneNum ).CzdTdt, ZnAirRpt( ZoneNum ).imBalance, controlledZoneEquipConfigNums ); // convection part of internal gains | surface convection heat transfer | interzone mixing | OA of various kinds except via system | air system | non air system | air mass energy storage term | measure of imbalance in zone air heat balance } // ZoneNum @@ -3985,7 +3999,10 @@ namespace ZoneTempPredictorCorrector { } void - CorrectZoneHumRat( int const ZoneNum ) + CorrectZoneHumRat( + int const ZoneNum, + std::vector< int > const & controlledZoneEquipConfigNums // Precomputed controlled equip nums + ) { // SUBROUTINE INFORMATION: @@ -4064,13 +4081,15 @@ namespace ZoneTempPredictorCorrector { ZoneMult = Zone( ZoneNum ).Multiplier * Zone( ZoneNum ).ListMultiplier; // Check to see if this is a controlled zone + ZoneEquipConfigNum = 0; ControlledZoneAirFlag = false; - for ( ZoneEquipConfigNum = 1; ZoneEquipConfigNum <= NumOfZones; ++ZoneEquipConfigNum ) { - if ( ! Zone( ZoneEquipConfigNum ).IsControlled ) continue; - if ( ZoneEquipConfig( ZoneEquipConfigNum ).ActualZoneNum != ZoneNum ) continue; - ControlledZoneAirFlag = true; - break; - } // ZoneEquipConfigNum + for ( std::vector< int >::size_type i = 0, e = controlledZoneEquipConfigNums.size(); i < e; ++i ) { + if ( ZoneEquipConfig( controlledZoneEquipConfigNums[ i ] ).ActualZoneNum == ZoneNum ) { + ZoneEquipConfigNum = controlledZoneEquipConfigNums[ i ]; + ControlledZoneAirFlag = true; + break; + } + } // Check to see if this is a plenum zone ZoneRetPlenumAirFlag = false; @@ -4331,7 +4350,8 @@ namespace ZoneTempPredictorCorrector { Real64 & SumMCp, // Zone sum of MassFlowRate*Cp Real64 & SumMCpT, // Zone sum of MassFlowRate*Cp*T Real64 & SumSysMCp, // Zone sum of air system MassFlowRate*Cp - Real64 & SumSysMCpT // Zone sum of air system MassFlowRate*Cp*T + Real64 & SumSysMCpT, // Zone sum of air system MassFlowRate*Cp*T + std::vector< int > const & controlledZoneEquipConfigNums // Precomputed controlled equip nums ) { @@ -4436,18 +4456,15 @@ namespace ZoneTempPredictorCorrector { // Sum all system air flow: SumSysMCp, SumSysMCpT // Check to see if this is a controlled zone + ZoneEquipConfigNum = 0; ControlledZoneAirFlag = false; - // If (Zone(ZoneNum)%IsControlled) Then ! more CR 7384 - // ControlledZoneAirFlag = .TRUE. ! more CR 7384 - // ZoneEquipConfigNum = ZoneNum ! more CR 7384 - // endif - // BG feb 2008 repeating this do loop every time seems crazy, store ControlledZoneAirFlag in Zone structure? - for ( ZoneEquipConfigNum = 1; ZoneEquipConfigNum <= NumOfZones; ++ZoneEquipConfigNum ) { - if ( ! Zone( ZoneEquipConfigNum ).IsControlled ) continue; - if ( ZoneEquipConfig( ZoneEquipConfigNum ).ActualZoneNum != ZoneNum ) continue; - ControlledZoneAirFlag = true; - break; //sloppy way of finding ZoneEquipConfigNum for later use. - } // ZoneEquipConfigNum + for ( std::vector< int >::size_type i = 0, e = controlledZoneEquipConfigNums.size(); i < e; ++i ) { + if ( ZoneEquipConfig( controlledZoneEquipConfigNums[ i ] ).ActualZoneNum == ZoneNum ) { + ZoneEquipConfigNum = controlledZoneEquipConfigNums[ i ]; + ControlledZoneAirFlag = true; + break; + } + } // Check to see if this is a plenum zone // BG feb 2008 repeating this do loop every time seems crazy, store ControlledZoneAirFlag in Zone structure? @@ -4570,10 +4587,10 @@ namespace ZoneTempPredictorCorrector { WinHeatGain( SurfNum ) += SurfaceWindow( SurfNum ).RetHeatGainToZoneAir; if ( WinHeatGain( SurfNum ) >= 0.0 ) { WinHeatGainRep( SurfNum ) = WinHeatGain( SurfNum ); - WinHeatGainRepEnergy( SurfNum ) = WinHeatGainRep( SurfNum ) * TimeStepZone * SecInHour; + WinHeatGainRepEnergy( SurfNum ) = WinHeatGainRep( SurfNum ) * TimeStepZoneSec; } else { WinHeatLossRep( SurfNum ) = -WinHeatGain( SurfNum ); - WinHeatLossRepEnergy( SurfNum ) = WinHeatLossRep( SurfNum ) * TimeStepZone * SecInHour; + WinHeatLossRepEnergy( SurfNum ) = WinHeatLossRep( SurfNum ) * TimeStepZoneSec; } } } @@ -4643,7 +4660,8 @@ namespace ZoneTempPredictorCorrector { Real64 & SumMCpDTsystem, // Zone sum of air system MassFlowRate*Cp*(Tsup - Tz) Real64 & SumNonAirSystem, // Zone sum of non air system convective heat gains Real64 & CzdTdt, // Zone air energy storage term. - Real64 & imBalance // put all terms in eq. 5 on RHS , should be zero + Real64 & imBalance, // put all terms in eq. 5 on RHS , should be zero + std::vector< int > const & controlledZoneEquipConfigNums // Precomputed controlled equip nums ) { @@ -4758,13 +4776,15 @@ namespace ZoneTempPredictorCorrector { // Check to see if this is a controlled zone // CR 7384 continuation needed below. eliminate do loop for speed and clarity + ZoneEquipConfigNum = 0; ControlledZoneAirFlag = false; - for ( ZoneEquipConfigNum = 1; ZoneEquipConfigNum <= NumOfZones; ++ZoneEquipConfigNum ) { - if ( ! ZoneEquipConfig( ZoneEquipConfigNum ).IsControlled ) continue; - if ( ZoneEquipConfig( ZoneEquipConfigNum ).ActualZoneNum != ZoneNum ) continue; - ControlledZoneAirFlag = true; - break; - } // ZoneEquipConfigNum + for ( std::vector< int >::size_type i = 0, e = controlledZoneEquipConfigNums.size(); i < e; ++i ) { + if ( ZoneEquipConfig( controlledZoneEquipConfigNums[ i ] ).ActualZoneNum == ZoneNum ) { + ZoneEquipConfigNum = controlledZoneEquipConfigNums[ i ]; + ControlledZoneAirFlag = true; + break; + } + } // Check to see if this is a plenum zone ZoneRetPlenumAirFlag = false; @@ -5044,7 +5064,6 @@ namespace ZoneTempPredictorCorrector { using DataZoneEquipment::ZoneEquipConfig; // Return value - bool IsControlled; // True if does, false if not. // Locals // FUNCTION ARGUMENT DEFINITIONS: @@ -5061,13 +5080,7 @@ namespace ZoneTempPredictorCorrector { // FUNCTION LOCAL VARIABLE DECLARATIONS: // na - if ( FindItemInList( ZoneName, ZoneEquipConfig.ZoneName(), NumOfZones ) > 0 ) { - IsControlled = true; - } else { - IsControlled = false; - } - return IsControlled; - + return ( FindItemInList( ZoneName, ZoneEquipConfig.ZoneName(), NumOfZones ) > 0 ); } void @@ -5655,7 +5668,7 @@ namespace ZoneTempPredictorCorrector { Real64 PMVResidual( Real64 const Tset, - Optional< FArray1S< Real64 > const > Par // par(1) = PMV set point + FArray1< Real64 > const & Par // par(1) = PMV set point ) { // FUNCTION INFORMATION: @@ -5697,9 +5710,9 @@ namespace ZoneTempPredictorCorrector { int PeopleNum; // index of people object Real64 PMVresult; // resulting PMV values - PeopleNum = int( Par()( 2 ) ); + PeopleNum = int( Par( 2 ) ); CalcThermalComfortFanger( PeopleNum, Tset, PMVresult ); - PMVResidual = Par()( 1 ) - PMVresult; + PMVResidual = Par( 1 ) - PMVresult; return PMVResidual; } @@ -5775,7 +5788,7 @@ namespace ZoneTempPredictorCorrector { // NOTICE - // Copyright � 1996-2014 The Board of Trustees of the University of Illinois + // Copyright © 1996-2014 The Board of Trustees of the University of Illinois // and The Regents of the University of California through Ernest Orlando Lawrence // Berkeley National Laboratory. All rights reserved. diff --git a/src/EnergyPlus/ZoneTempPredictorCorrector.hh b/src/EnergyPlus/ZoneTempPredictorCorrector.hh index 057d5d0b749..4afa424eb03 100644 --- a/src/EnergyPlus/ZoneTempPredictorCorrector.hh +++ b/src/EnergyPlus/ZoneTempPredictorCorrector.hh @@ -1,11 +1,12 @@ #ifndef ZoneTempPredictorCorrector_hh_INCLUDED #define ZoneTempPredictorCorrector_hh_INCLUDED +// C++ Headers +#include + // ObjexxFCL Headers #include -#include #include -#include // EnergyPlus Headers #include @@ -238,7 +239,10 @@ namespace ZoneTempPredictorCorrector { RevertZoneTimestepHistories(); void - CorrectZoneHumRat( int const ZoneNum ); + CorrectZoneHumRat( + int const ZoneNum, + std::vector< int > const & controlledZoneEquipConfigNums // Precomputed controlled equip nums + ); void DownInterpolate4HistoryValues( @@ -266,7 +270,8 @@ namespace ZoneTempPredictorCorrector { Real64 & SumMCp, // Zone sum of MassFlowRate*Cp Real64 & SumMCpT, // Zone sum of MassFlowRate*Cp*T Real64 & SumSysMCp, // Zone sum of air system MassFlowRate*Cp - Real64 & SumSysMCpT // Zone sum of air system MassFlowRate*Cp*T + Real64 & SumSysMCpT, // Zone sum of air system MassFlowRate*Cp*T + std::vector< int > const & controlledZoneEquipConfigNums // Precomputed controlled equip nums ); void @@ -281,7 +286,8 @@ namespace ZoneTempPredictorCorrector { Real64 & SumMCpDTsystem, // Zone sum of air system MassFlowRate*Cp*(Tsup - Tz) Real64 & SumNonAirSystem, // Zone sum of non air system convective heat gains Real64 & CzdTdt, // Zone air energy storage term. - Real64 & imBalance // put all terms in eq. 5 on RHS , should be zero + Real64 & imBalance, // put all terms in eq. 5 on RHS , should be zero + std::vector< int > const & controlledZoneEquipConfigNums // Precomputed controlled equip nums ); bool @@ -314,7 +320,7 @@ namespace ZoneTempPredictorCorrector { Real64 PMVResidual( Real64 const Tset, - Optional< FArray1S< Real64 > const > Par = _ // par(1) = PMV set point + FArray1< Real64 > const & Par // par(1) = PMV set point ); void diff --git a/src/ExpandObjects/epfilter.f90 b/src/ExpandObjects/epfilter.f90 index be93a1d8fb2..93385f74e82 100644 --- a/src/ExpandObjects/epfilter.f90 +++ b/src/ExpandObjects/epfilter.f90 @@ -1513,11 +1513,11 @@ PROGRAM epfilter ! Chiller:Electric:ReformulatedEIR (for use with HVACTemplate:Plant:Chiller:ObjectReference) INTEGER,PARAMETER :: chlreirNameOff = 1 -INTEGER,PARAMETER :: chlreirChWInletNodeOff = 15 -INTEGER,PARAMETER :: chlreirChWOutletNodeOff = 16 -INTEGER,PARAMETER :: chlreirCondInletNodeOff = 17 -INTEGER,PARAMETER :: chlreirCondOutletNodeOff = 18 -INTEGER,PARAMETER :: chlreirLastFieldOff = 25 +INTEGER,PARAMETER :: chlreirChWInletNodeOff = 16 +INTEGER,PARAMETER :: chlreirChWOutletNodeOff = 17 +INTEGER,PARAMETER :: chlreirCondInletNodeOff = 18 +INTEGER,PARAMETER :: chlreirCondOutletNodeOff = 19 +INTEGER,PARAMETER :: chlreirLastFieldOff = 26 ! CoolingTower:SingleSpeed (for use with HVACTemplate:Plant:Tower:ObjectReference) INTEGER,PARAMETER :: twrssNameOff = 1 @@ -2298,7 +2298,7 @@ SUBROUTINE SetUpObjectsToProcess(doGatherSurfaces) ! Detailed Plant Objects CALL AddObjToProcess('Boiler:HotWater',.FALSE., blrhwOutletNodeOff, blrhwLastFieldOff, 17) CALL AddObjToProcess('Chiller:Electric:EIR',.FALSE., chleirCondTypeOff, chleirLastFieldOff, 30) -CALL AddObjToProcess('Chiller:Electric:ReformulatedEIR',.FALSE., chlreirCondOutletNodeOff, chlreirLastFieldOff, 25) +CALL AddObjToProcess('Chiller:Electric:ReformulatedEIR',.FALSE., chlreirCondOutletNodeOff, chlreirLastFieldOff, 26) CALL AddObjToProcess('CoolingTower:SingleSpeed',.FALSE., twrssOutletNodeOff, twrssLastFieldOff, 29) CALL AddObjToProcess('CoolingTower:TwoSpeed',.FALSE., twrtsOutletNodeOff, twrtsLastFieldOff, 32) CALL AddObjToProcess('CoolingTower:VariableSpeed',.FALSE., twrvsOutletNodeOff, twrvsLastFieldOff, 30) @@ -10306,11 +10306,11 @@ SUBROUTINE CreateNewVAV CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + vsMinOutsideFlowOff,' ') !This line if vsSupplyMaxRateOff=autosize or vsSupplyMinRateOff=autosize IF (isSupplyMaxRateAutosize .OR. isSupplyMinRateAutosize) THEN - CALL AddToObjStr('Minimum System Air Flow Ratio','0.3') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','0.3') ELSE minAirRatio = StringToReal(FldVal(base + vsSupplyMinRateOff)) / & StringToReal(FldVal(base + vsSupplyMaxRateOff)) - CALL AddToObjNum('Minimum System Air Flow Ratio', minAirRatio) + CALL AddToObjNum('Central Heating Maximum System Air Flow Ratio', minAirRatio) END IF CALL AddToObjFld('Preheat Design Temperature {C}', base + vsPreheatSetPtConstantOff,'') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') @@ -10322,31 +10322,40 @@ SUBROUTINE CreateNewVAV ELSE CALL AddToObjFld('Central Heating Design Supply Air Temperature {C}', base + vsHeatSetPtDesignOff,'') ENDIF - CALL AddToObjFld('Sizing Option', base + vsSizingOptionOff,'') + CALL AddToObjFld('Type of Zone Sum to Use', base + vsSizingOptionOff,'') CALL AddToObjStr('100% Outdoor Air in Cooling','No') CALL AddToObjStr('100% Outdoor Air in Heating','No') CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyMaxRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + vsSupplyMaxRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + vsSupplyMaxRateOff,' ') END IF ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') CALL AddToObjStr('System Outdoor Air Method','ZoneSum') - CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1',.true.) + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !AIR PRIMARY LOOP ~ line 184 CALL CreateNewObj('AirLoopHVAC') CALL AddToObjFld('Name', base + vsAirHandlerNameOff,' ') @@ -11732,11 +11741,11 @@ SUBROUTINE CreateNewVAV CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + pvavsMinOutsideFlowOff,' ') !This line if vsSupplyMaxRateOff=autosize or vsSupplyMinRateOff=autosize IF (isSupplyMaxRateAutosize .OR. isSupplyMinRateAutosize) THEN - CALL AddToObjStr('Minimum System Air Flow Ratio','0.3') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','0.3') ELSE minAirRatio = StringToReal(FldVal(base + pvavsSupplyMinRateOff)) / & StringToReal(FldVal(base + pvavsSupplyMaxRateOff)) - CALL AddToObjNum('Minimum System Air Flow Ratio', minAirRatio) + CALL AddToObjNum('Central Heating Maximum System Air Flow Ratio', minAirRatio) END IF CALL AddToObjStr('Preheat Design Temperature {C}', '2') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') @@ -11744,30 +11753,40 @@ SUBROUTINE CreateNewVAV CALL AddToObjStr('Precool Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjFld('Central Cooling Design Supply Air Temperature {C}', base + pvavsCoolSetPtDesignOff,'') CALL AddToObjFld('Central Heating Design Supply Air Temperature {C}', base + pvavsHeatSetPtDesignOff,'') - CALL AddToObjFld('Sizing Option', base + pvavsSizingOptionOff,'') + CALL AddToObjFld('Type of Zone Sum to Use', base + pvavsSizingOptionOff,'') CALL AddToObjStr('100% Outdoor Air in Cooling','No') CALL AddToObjStr('100% Outdoor Air in Heating','No') CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyMaxRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + pvavsSupplyMaxRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + pvavsSupplyMaxRateOff,' ') END IF ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') - CALL AddToObjStr('System Outdoor Air Method','ZoneSum',.true.) + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('System Outdoor Air Method','ZoneSum') + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !Object ==> AirLoopHVAC CALL CreateNewObj('AirLoopHVAC') CALL AddToObjFld('Name', base + pvavsAirHandlerNameOff,' ') @@ -13733,48 +13752,68 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('AirLoop Name', base + usAirHandlerNameOff,' ') CALL AddToObjStr('Type of Load to Size On','Sensible') CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + usMinOutsideFlowOff,' ') - CALL AddToObjStr('Minimum System Air Flow Ratio','1') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','1') CALL AddToObjStr('Preheat Design Set Temperature {C}','7') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Precool Design Temperature {C}','11') CALL AddToObjStr('Precool Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjFld('Central Cooling Design Supply Air Temperature {C}', base + usCoolDesignSupplyTempOff,'') CALL AddToObjFld('Central Heating Design Supply Air Temperature {C}', base + usHeatDesignSupplyTempOff,'') - CALL AddToObjStr('Sizing Option','NonCoincident') + CALL AddToObjStr('Type of Zone Sum to Use','NonCoincident') CALL AddToObjStr('100% Outdoor Air in Cooling','No') CALL AddToObjStr('100% Outdoor Air in Heating','No') CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyMaxRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') - CALL AddToObjStr('System Outdoor Air Method','ZoneSum',.true.) - ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + usSupplyMaxRateOff,' ') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('System Outdoor Air Method','ZoneSum') + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) + ELSE + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + usSupplyMaxRateOff,' ') ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','Flow/System') - CALL AddToObjFld('Heating Design Air Flow Rate {m3/s}', base + usSupplyMaxRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Heating Supply Air Flow Rate {m3/s}', base + usSupplyMaxRateOff,' ') ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') - CALL AddToObjStr('System Outdoor Air Method','ZoneSum',.true.) + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('System Outdoor Air Method','ZoneSum') + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) END IF !AIR PRIMARY LOOP CALL CreateNewObj('AirLoopHVAC') @@ -14135,21 +14174,21 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('Name', base + usAirHandlerNameOff,' Furnace with DX Cooling') END IF CALL AddToObjStr('Availability Schedule Name','HVACTemplate-Always 1') - CALL AddToObjFld('Furnace inlet node name', base + usAirHandlerNameOff, TRIM(furnaceInlet)) - CALL AddToObjFld('Furnace outlet node name', base + usAirHandlerNameOff, TRIM(furnaceOutlet)) + CALL AddToObjFld('Furnace Air Inlet Node Name', base + usAirHandlerNameOff, TRIM(furnaceInlet)) + CALL AddToObjFld('Furnace Air Outlet Node Name', base + usAirHandlerNameOff, TRIM(furnaceOutlet)) IF (isSupplyFanCycling) THEN - CALL AddToObjStr('Fan Operating Mode Schedule Name','HVACTemplate-Always 0') + CALL AddToObjStr('Supply Air Fan Operating Mode Schedule Name','HVACTemplate-Always 0') SchType='0' ELSE - CALL AddToObjFld('Fan Operating Mode Schedule Name', base + usSupplyFanModeOff,'') + CALL AddToObjFld('Supply Air Fan Operating Mode Schedule Name', base + usSupplyFanModeOff,'') END IF - CALL AddToObjStr('Maximum supply air temperature from furnace heater {C}','80') + CALL AddToObjStr('Maximum Supply Air Temperature {C}','80') IF (coolCoilKind .EQ. ccNone) THEN - CALL AddToObjStr('Design air flow rate through the furnace {m3/s}', 'autosize') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}', 'autosize') ELSE - CALL AddToObjStr('Supply air volumetric flow rate during cooling operation {m3/s}', 'autosize') - CALL AddToObjStr('Supply air volumetric flow rate during heating operation {m3/s}', 'autosize') - CALL AddToObjStr('Supply air volumetric flow rate when no cooling or heating is needed {m3/s}', 'autosize') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}', 'autosize') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}', 'autosize') + CALL AddToObjStr('No Load Supply Air Flow Rate {m3/s}', 'autosize') ENDIF CALL AddToObjFld('Controlling Zone or Thermostat Location', base + usControlZoneOff,' ') !CALL AddToObjStr('Fraction of Supply Air Flow That Goes Through the Controlling Zone','autosize') @@ -14813,7 +14852,7 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('AirLoop Name', base + uhpsAirHandlerNameOff,' ') CALL AddToObjStr('Type of Load to Size On','Sensible') CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + uhpsMinOutsideFlowOff,' ') - CALL AddToObjStr('Minimum System Air Flow Ratio','1') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','1') CALL AddToObjStr('Preheat Design Set Temperature {C}','7') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Precool Design Temperature {C}','11') @@ -14826,29 +14865,39 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyCoolRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + uhpsSupplyCoolFlowRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + uhpsSupplyCoolFlowRateOff,' ') END IF ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') IF (isSupplyHeatRateAutosize) THEN - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Heating Design Air Flow Method','Flow/System') - CALL AddToObjFld('Heating Design Air Flow Rate {m3/s}', base + uhpsSupplyHeatFlowRateOff,' ') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Heating Supply Air Flow Rate {m3/s}', base + uhpsSupplyHeatFlowRateOff,' ') END IF ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') - CALL AddToObjStr('System Outdoor Air Method','ZoneSum',.true.) + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('System Outdoor Air Method','ZoneSum') + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !Object ==> AirLoopHVAC CALL CreateNewObj('AirLoopHVAC') CALL AddToObjFld('Name', base + uhpsAirHandlerNameOff,' ') @@ -15124,9 +15173,9 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Availability Schedule Name', 'HVACTemplate-Always 1') CALL AddToObjFld('Air Inlet Node Name', base + uhpsAirHandlerNameOff, TRIM(unitInlet)) CALL AddToObjFld('Air Outlet Node Name', base + uhpsAirHandlerNameOff, TRIM(unitOutlet)) - CALL AddToObjFld('Supply Air Flow Rate During Cooling Operation', base + uhpsSupplyCoolFlowRateOff,'') - CALL AddToObjFld('Supply Air Flow Rate During Heating Operation', base + uhpsSupplyHeatFlowRateOff,'') - CALL AddToObjFld('Supply Air Flow Rate When No Cooling or Heating is Needed', base + uhpsSupplyNoLoadFlowRateOff,'') + CALL AddToObjFld('Cooling Supply Air Flow Rate', base + uhpsSupplyCoolFlowRateOff,'') + CALL AddToObjFld('Heating Supply Air Flow Rate', base + uhpsSupplyHeatFlowRateOff,'') + CALL AddToObjFld('No Load Supply Air Flow Rate', base + uhpsSupplyNoLoadFlowRateOff,'') CALL AddToObjFld('Controlling Zone or Thermostat Location', base + uhpsControlZoneOff,'') !CALL AddToObjStr('Fraction of Supply Air Flow That Goes Through the Controlling Zone','autosize') CALL AddToObjStr('Supply Air Fan Object Type','Fan:OnOff') @@ -15950,7 +15999,7 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('AirLoop Name', base + ussAirHandlerNameOff,' ') CALL AddToObjStr('Type of Load to Size On','Sensible') CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + ussMinOutsideFlowOff,' ') - CALL AddToObjStr('Minimum System Air Flow Ratio','1') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','1') CALL AddToObjStr('Preheat Design Set Temperature {C}','7') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Precool Design Temperature {C}','11') @@ -15963,29 +16012,39 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyCoolRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + ussSupplyCoolFlowRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + ussSupplyCoolFlowRateOff,' ') END IF ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') IF (isSupplyHeatRateAutosize) THEN - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Heating Design Air Flow Method','Flow/System') - CALL AddToObjFld('Heating Design Air Flow Rate {m3/s}', base + ussSupplyHeatFlowRateOff,' ') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Heating Supply Air Flow Rate {m3/s}', base + ussSupplyHeatFlowRateOff,' ') END IF ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') - CALL AddToObjStr('System Outdoor Air Method','ZoneSum',.true.) + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('System Outdoor Air Method','ZoneSum') + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !Object ==> AirLoopHVAC CALL CreateNewObj('AirLoopHVAC') CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' ') @@ -16260,23 +16319,23 @@ SUBROUTINE CreateNewUnitary CALL AddToObjStr('Latent Load Control','') CALL AddToObjStr('Supplemental Heating Coil Object Type',TRIM(supheatCoilObjectType)) CALL AddToObjStr('Supplemental Heating Coil Name',TRIM(supheatCoilObjectName)) - CALL AddToObjStr('Supply Air Flow Rate Method During Cooling Operation','SupplyAirFlowRate') - CALL AddToObjFld('Supply Air Flow Rate During Cooling Operation {m3/s}', base + ussSupplyCoolFlowRateOff,'') - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit of Capacity During Cooling Operation {m3/s-W','') - CALL AddToObjStr('Supply Air Flow Rate Method During Heating Operation','SupplyAirFlowRate') - CALL AddToObjFld('Supply Air Flow Rate During Heating Operation {m3/s}', base + ussSupplyHeatFlowRateOff,'') - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W','') - CALL AddToObjStr('Supply Air Flow Rate Method When No Cooling or Heating is Required','SupplyAirFlowRate') - CALL AddToObjFld('Supply Air Flow Rate When No Cooling or Heating is Required {m3/s}', base + ussSupplyNoLoadFlowRateOff,'') - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area When No Cooling or Heating is Required {m3/s-m2','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit of Capacity During Cooling Operation {m3/s-W','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','SupplyAirFlowRate') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + ussSupplyCoolFlowRateOff,'') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit of Capacity {m3/s-W','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','SupplyAirFlowRate') + CALL AddToObjFld('Heating Supply Air Flow Rate {m3/s}', base + ussSupplyHeatFlowRateOff,'') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit of Capacity {m3/s-W','') + CALL AddToObjStr('No Load Supply Air Flow Rate Method','SupplyAirFlowRate') + CALL AddToObjFld('No Load Supply Air Flow Rate {m3/s}', base + ussSupplyNoLoadFlowRateOff,'') + CALL AddToObjStr('No Load Supply Air Flow Rate Per Floor Area {m3/s-m2','') + CALL AddToObjStr('No Load Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('No Load Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('No Load Supply Air Flow Rate Per Unit of Capacity During Cooling Operation {m3/s-W','') + CALL AddToObjStr('No Load Supply Air Flow Rate Per Unit of Capacity During Heating Operation {m3/s-W','') 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', '') @@ -16303,26 +16362,14 @@ SUBROUTINE CreateNewUnitary CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' Unitary System MultiSpeed Performance') CALL AddToObjFld('Number of Speeds for Heating', base + ussHeatCoilNumSpeedOff,'') CALL AddToObjFld('Number of Speeds for Cooling', base + ussCoolCoilNumSpeedOff,'') - CALL AddToObjStr('Speed 1 Supply Air Flow Ratio During Heating Operation', 'autosize') - CALL AddToObjStr('Speed 1 Supply Air Flow Ratio During Cooling Operation', 'autosize') - CALL AddToObjStr('Speed 2 Supply Air Flow Ratio During Heating Operation', 'autosize') - CALL AddToObjStr('Speed 2 Supply Air Flow Ratio During Cooling Operation', 'autosize') - CALL AddToObjStr('Speed 3 Supply Air Flow Ratio During Heating Operation', 'autosize') - CALL AddToObjStr('Speed 3 Supply Air Flow Ratio During Cooling Operation', 'autosize') - CALL AddToObjStr('Speed 4 Supply Air Flow Ratio During Heating Operation', 'autosize') - CALL AddToObjStr('Speed 4 Supply Air Flow Ratio During Cooling Operation', 'autosize',.TRUE.) -! CALL AddToObjStr('Speed 5 Supply Air Flow Ratio During Heating Operation', 'autosize') -! CALL AddToObjStr('Speed 5 Supply Air Flow Ratio During Cooling Operation', 'autosize') -! CALL AddToObjStr('Speed 6 Supply Air Flow Ratio During Heating Operation', 'autosize') -! CALL AddToObjStr('Speed 6 Supply Air Flow Ratio During Cooling Operation', 'autosize') -! CALL AddToObjStr('Speed 7 Supply Air Flow Ratio During Heating Operation', 'autosize') -! CALL AddToObjStr('Speed 7 Supply Air Flow Ratio During Cooling Operation', 'autosize') -! CALL AddToObjStr('Speed 8 Supply Air Flow Ratio During Heating Operation', 'autosize') -! CALL AddToObjStr('Speed 8 Supply Air Flow Ratio During Cooling Operation', 'autosize') -! CALL AddToObjStr('Speed 9 Supply Air Flow Ratio During Heating Operation', 'autosize') -! CALL AddToObjStr('Speed 9 Supply Air Flow Ratio During Cooling Operation', 'autosize') -! CALL AddToObjStr('Speed 10 Supply Air Flow Ratio During Heating Operation', 'autosize') -! CALL AddToObjStr('Speed 10 Supply Air Flow Ratio During Cooling Operation', 'autosize',.TRUE.) + CALL AddToObjStr('Heating Speed 1 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Cooling Speed 1 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Heating Speed 2 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Cooling Speed 2 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Heating Speed 3 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Cooling Speed 3 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Heating Speed 4 Supply Air Flow Ratio', 'autosize') + CALL AddToObjStr('Cooling Speed 4 Supply Air Flow Ratio', 'autosize',.TRUE.) END IF ! add new schedule if needed (from Supply Fan Operating Mode Schedule, above) @@ -19280,7 +19327,7 @@ SUBROUTINE CreateNewConstVol CALL AddToObjFld('AirLoop Name', base + cvsAirHandlerNameOff,' ') CALL AddToObjStr('Type of Load to Size On','Sensible') CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + cvsMinOutsideFlowOff,' ') - CALL AddToObjStr('Minimum System Air Flow Ratio','1.0') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','1.0') CALL AddToObjFld('Preheat Design Temperature {C}', base + cvsPreheatSetPtConstantOff,'') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Precool Design Temperature {C}','11') @@ -19297,25 +19344,34 @@ SUBROUTINE CreateNewConstVol CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyMaxRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + cvsSupplyRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + cvsSupplyRateOff,' ') END IF ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') CALL AddToObjStr('System Outdoor Air Method','ZoneSum') - CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1',.true.) + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !***AirLoopHVAC CALL CreateNewObj('AirLoopHVAC') @@ -19857,10 +19913,11 @@ SUBROUTINE CreateNewConstVol CALL AddToObjStr('Performance Input Method','NominalCapacity') CALL AddToObjFld('Rated Capacity',base + cvsHeatCoilCapOff,'') END IF - CALL AddToObjStr('Design Inlet Water Temperature','82.2') - CALL AddToObjStr('Design Inlet Air Temperature','16.6') - CALL AddToObjStr('Design Outlet Water Temperature','71.1') - CALL AddToObjStr('Design Outlet Air Temperature','32.2',.TRUE.) + CALL AddToObjStr('Rated Inlet Water Temperature','82.2') + CALL AddToObjStr('Rated Inlet Air Temperature','16.6') + CALL AddToObjStr('Rated Outlet Water Temperature','71.1') + CALL AddToObjStr('Rated Outlet Air Temperature','32.2') + CALL AddToObjStr('Rated Ratio for Air and Water Convection','0.5',.true.) !***Branch CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + cvsAirHandlerNameOff,' Heating Coil HW Branch') @@ -21150,11 +21207,11 @@ SUBROUTINE CreateNewDualDuct CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + ddsMinOutsideFlowOff,' ') !This line if ddsSupplyMaxRateOff=autosize or ddsSupplyMinRateOff=autosize IF (coldFanKind .EQ. sfkVAV) THEN - CALL AddToObjFld('Minimum System Air Flow Ratio',base + ddsColdMinFracOff,'') + CALL AddToObjFld('Central Heating Maximum System Air Flow Ratio',base + ddsColdMinFracOff,'') ELSEIF (supFanKind .EQ. sfkVAV) THEN - CALL AddToObjFld('Minimum System Air Flow Ratio',base + ddsSupplyMinFracOff,'') + CALL AddToObjFld('Central Heating Maximum System Air Flow Ratio',base + ddsSupplyMinFracOff,'') ELSE - CALL AddToObjStr('Minimum System Air Flow Ratio', '1.0') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio', '1.0') END IF CALL AddToObjFld('Preheat Design Temperature {C}', base + ddsPreheatSetPtConstantOff,'') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') @@ -21172,25 +21229,34 @@ SUBROUTINE CreateNewDualDuct CALL AddToObjStr('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}','0.008') IF (isSupplyMaxRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + ddsSupplyMaxRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + ddsSupplyMaxRateOff,' ') END IF ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') CALL AddToObjStr('System Outdoor Air Method','ZoneSum') - CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1',.true.) + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !AIR PRIMARY LOOP ~ line 184 CALL CreateNewObj('AirLoopHVAC') CALL AddToObjFld('Name', base + ddsAirHandlerNameOff,' ') @@ -22879,20 +22945,20 @@ SUBROUTINE CreateNewVRF !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during cooling operation {m3/s}', & ! base + vrfzSupplyCoolFlowRateOff,'') - CALL AddToObjStr('Supply Air Flow Rate During Cooling Operation {m3/s}','autosize') - CALL AddToObjFld('Supply Air Flow Rate When No Cooling is Needed {m3/s}', & + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','autosize') + CALL AddToObjFld('No Cooling Supply Air Flow Rate {m3/s}', & base + vrfzSupplyNoCoolFlowRateOff,'') - CALL AddToObjStr('Supply Air Flow Rate During Heating Operation {m3/s}','autosize') - CALL AddToObjFld('Supply Air Flow Rate When No Heating is Needed {m3/s}', & + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','autosize') + CALL AddToObjFld('No Heating Supply Air Flow Rate {m3/s}', & base + vrfzSupplyNoHeatFlowRateOff,'') IF (isDedOutAirNameBlank) THEN - CALL AddToObjStr('Outdoor Air Flow Rate During Cooling Operation {m3/s}','autosize') - CALL AddToObjStr('Outdoor Air Flow Rate During Heating Operation {m3/s}','autosize') - CALL AddToObjStr('Outdoor Air Flow Rate When No Cooling or Heating is Needed {m3/s}','autosize') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','autosize') ELSE - CALL AddToObjStr('Outdoor Air Flow Rate During Cooling Operation {m3/s}','0.0') - CALL AddToObjStr('Outdoor Air Flow Rate During Heating Operation {m3/s}','0.0') - CALL AddToObjStr('Outdoor Air Flow Rate When No Cooling or Heating is Needed {m3/s}','0.0') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','0.0') END IF SchType=' ' SELECT CASE (fanMode) @@ -24965,31 +25031,31 @@ SUBROUTINE CreatePTAC !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during cooling operation {m3/s}', & ! base + ptaczSupplyCoolFlowRateOff,'') - CALL AddToObjStr('Supply air volumetric flow rate during cooling operation {m3/s}','autosize') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','autosize') !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during heating operation {m3/s}', & ! base + ptaczSupplyHeatFlowRateOff,'') - CALL AddToObjStr('Supply air volumetric flow rate during heating operation {m3/s}','autosize') - CALL AddToObjFld('Supply air volumetric flow rate when no cooling or heating is needed {m3/s}', & + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','autosize') + CALL AddToObjFld('No Load Supply Air Flow Rate {m3/s}', & base + ptaczSupplyNoLoadFlowRateOff,'') IF (isDedOutAirNameBlank) THEN - CALL AddToObjStr('Outside air volumetric flow rate during cooling operation {m3/s}','autosize') - CALL AddToObjStr('Outside air volumetric flow rate during heating operation {m3/s}','autosize') - CALL AddToObjStr('Outside air volumetric flow rate when no cooling or heating is needed {m3/s}','autosize') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','autosize') ELSE - CALL AddToObjStr('Outside air volumetric flow rate during cooling operation {m3/s}','0.0') - CALL AddToObjStr('Outside air volumetric flow rate during heating operation {m3/s}','0.0') - CALL AddToObjStr('Outside air volumetric flow rate when no cooling or heating is needed {m3/s}','0.0') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','0.0') END IF CALL AddToObjStr('Supply Air Fan Object Type','Fan:OnOff') CALL AddToObjFld('Supply Air Fan Name', base + ptaczNameOff,' PTAC Supply Fan') SELECT CASE (heatCoilKind) CASE (hcElectric) - CALL AddToObjStr('Supplemental Heating Coil Object Type','Coil:Heating:Electric') + CALL AddToObjStr('Heating Coil Object Type','Coil:Heating:Electric') CASE (hcWater) - CALL AddToObjStr('Supplemental Heating Coil Object Type','Coil:Heating:Water') + CALL AddToObjStr('Heating Coil Object Type','Coil:Heating:Water') CASE (hcGas) - CALL AddToObjStr('Supplemental Heating Coil Object Type','Coil:Heating:Gas') + CALL AddToObjStr('Heating Coil Object Type','Coil:Heating:Gas') END SELECT CALL AddToObjFld('Heating Coil Name', base + ptaczNameOff,' PTAC Heating Coil') CALL AddToObjStr('Cooling Coil Object Type','Coil:Cooling:DX:SingleSpeed') @@ -25569,32 +25635,32 @@ SUBROUTINE CreatePTHP !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during cooling operation {m3/s}', & ! base + pthpzSupplyCoolFlowRateOff,'') - CALL AddToObjStr('Supply air volumetric flow rate during cooling operation {m3/s}','autosize') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','autosize') !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during heating operation {m3/s}', & ! base + pthpzSupplyHeatFlowRateOff,'') - CALL AddToObjStr('Supply air volumetric flow rate during heating operation {m3/s}','autosize') - CALL AddToObjFld('Supply air volumetric flow rate when no cooling or heating is needed {m3/s}', & + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','autosize') + CALL AddToObjFld('No Load Supply Air Flow Rate {m3/s}', & base + pthpzSupplyNoLoadFlowRateOff,'') IF (isDedOutAirNameBlank) THEN - CALL AddToObjStr('Outside air volumetric flow rate during cooling operation {m3/s}','autosize') - CALL AddToObjStr('Outside air volumetric flow rate during heating operation {m3/s}','autosize') - CALL AddToObjStr('Outside air volumetric flow rate when no cooling or heating is needed {m3/s}','autosize') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','autosize') ELSE - CALL AddToObjStr('Outside air volumetric flow rate during cooling operation {m3/s}','0.0') - CALL AddToObjStr('Outside air volumetric flow rate during heating operation {m3/s}','0.0') - CALL AddToObjStr('Outside air volumetric flow rate when no cooling or heating is needed {m3/s}','0.0') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','0.0') END IF CALL AddToObjStr('Supply Air Fan Object Type','Fan:OnOff') CALL AddToObjFld('Supply Air Fan Name', base + pthpzNameOff,' PTHP Supply Fan') CALL AddToObjStr('Heating Coil Object Type','Coil:Heating:DX:SingleSpeed') CALL AddToObjFld('Heating Coil Name', base + pthpzNameOff,' PTHP Heating Coil') - CALL AddToObjStr('Heating convergence tolerance {dimensionless}','0.001') - CALL AddToObjFld('Minimum outdoor dry-bulb temperature for compressor operation {C}', & + CALL AddToObjStr('Heating Convergence Tolerance {dimensionless}','0.001') + CALL AddToObjFld('Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}', & base + pthpzHPHeatMinODBOff,'') CALL AddToObjStr('Cooling Coil Object Type','Coil:Cooling:DX:SingleSpeed') CALL AddToObjFld('Cooling Coil Name', base + pthpzNameOff,' PTHP Cooling Coil') - CALL AddToObjStr('Cooling convergence tolerance {dimensionless}','0.001') + CALL AddToObjStr('Cooling Convergence Tolerance {dimensionless}','0.001') SELECT CASE (suppHeatCoilKind) CASE (shcElectric) CALL AddToObjStr('Supplemental Heating Coil Object Type','Coil:Heating:Electric') @@ -25604,8 +25670,8 @@ SUBROUTINE CreatePTHP CALL AddToObjStr('Supplemental Heating Coil Object Type','Coil:Heating:Water') END SELECT CALL AddToObjFld('Supplemental Heating Coil Name', base + pthpzNameOff,' PTHP Supp Heating Coil') - CALL AddToObjStr('Maximum supply air temperature from supplemental heater {C}','autosize') - CALL AddToObjFld('Maximum outdoor dry-bulb temperature for supplemental heater operation {C}', & + CALL AddToObjStr('Maximum Supply Air Temperature from Supplemental Heater {C}','autosize') + CALL AddToObjFld('Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C}', & base + pthpzSuppHeatMaxODBOff,'') CALL AddToObjFld('Fan Placement', base + pthpzFanPlacementOff,'') SchType=' ' @@ -30080,21 +30146,21 @@ SUBROUTINE CreateWaterAirHP !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during cooling operation {m3/s}', & ! base + wahpSupplyCoolFlowRateOff,'') - CALL AddToObjStr('Supply air volumetric flow rate during cooling operation {m3/s}','autosize') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','autosize') !CR8001 !CALL AddToObjFld('Supply air volumetric flow rate during heating operation {m3/s}', & ! base + wahpSupplyHeatFlowRateOff,'') - CALL AddToObjStr('Supply air volumetric flow rate during heating operation {m3/s}','autosize') - CALL AddToObjFld('Supply air volumetric flow rate when no cooling or heating is needed {m3/s}', & + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','autosize') + CALL AddToObjFld('No Load Supply Air Flow Rate {m3/s}', & base + wahpSupplyNoLoadFlowRateOff,'') IF (isDedOutAirNameBlank) THEN - CALL AddToObjStr('Outside air volumetric flow rate during cooling operation {m3/s}','autosize') - CALL AddToObjStr('Outside air volumetric flow rate during heating operation {m3/s}','autosize') - CALL AddToObjStr('Outside air volumetric flow rate when no cooling or heating is needed {m3/s}','autosize') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','autosize') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','autosize') ELSE - CALL AddToObjStr('Outside air volumetric flow rate during cooling operation {m3/s}','0.0') - CALL AddToObjStr('Outside air volumetric flow rate during heating operation {m3/s}','0.0') - CALL AddToObjStr('Outside air volumetric flow rate when no cooling or heating is needed {m3/s}','0.0') + CALL AddToObjStr('Cooling Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('Heating Outdoor Air Flow Rate {m3/s}','0.0') + CALL AddToObjStr('No Load Outdoor Air Flow Rate {m3/s}','0.0') END IF CALL AddToObjStr('Supply Air Fan Object Type','Fan:OnOff') CALL AddToObjFld('Supply Air Fan Name', base + wahpNameOff,' WAHP Supply Fan') @@ -31441,6 +31507,8 @@ SUBROUTINE CreateDOAS coolCoilUnitOutlet = TRIM(FldVal(base + doasNameOff))//' Cooling Coil Outlet' END IF lastOutlet = TRIM(coolCoilUnitOutlet) + ELSE ! If there is no cooling coil, set to fan outlet in case the cooling setpoint is needed for heat recovery controls + coolCoilUnitOutlet = TRIM(FldVal(base + doasNameOff))//' Supply Fan Outlet' END IF ! desuperheater reheat coil @@ -31473,43 +31541,53 @@ SUBROUTINE CreateDOAS CALL AddToObjStr('Type of Load to Size On','VentilationRequirement') CALL AddToObjFld('Design Outdoor Air Flow Rate {m3/s}', base + doasSupplyRateOff,' ') !Currently support only constant volume - CALL AddToObjStr('Minimum System Air Flow Ratio','1.0') + CALL AddToObjStr('Central Heating Maximum System Air Flow Ratio','1.0') CALL AddToObjStr('Preheat Design Temperature {C}', '2') CALL AddToObjStr('Preheat Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjStr('Precool Design Temperature {C}','11') CALL AddToObjStr('Precool Design Humidity Ratio {kg-H2O/kg-air}','0.008') CALL AddToObjFld('Central Cooling Design Supply Air Temperature {C}', base + doasCoolSetPtDesignOff,'') CALL AddToObjFld('Central Heating Design Supply Air Temperature {C}', base + doasHeatSetPtDesignOff,'') - CALL AddToObjStr('Sizing Option','NonCoincident') + CALL AddToObjStr('Type of Zone Sum to Use','NonCoincident') CALL AddToObjStr('100% Outdoor Air in Cooling','Yes') CALL AddToObjStr('100% Outdoor Air in Heating','Yes') CALL AddToObjFld('Central Cooling Design Supply Air Humidity Ratio {kg-H2O/kg-air}', base + doasDehumSetPtOff,'') CALL AddToObjFld('Central Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air}', base + doasHumidSetPtOff,'') IF (isSupplyFlowRateAutosize) THEN - CALL AddToObjStr('Cooling Design Air Flow Method','DesignDay') - CALL AddToObjStr('Cooling Design Air Flow Rate {m3/s}','0') + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Cooling Supply Air Flow Rate {m3/s}','0') ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','DesignDay') - CALL AddToObjStr('Heating Design Air Flow Rate {m3/s}','0') - ELSE - CALL AddToObjStr('Cooling Design Air Flow Method','Flow/System') - CALL AddToObjFld('Cooling Design Air Flow Rate {m3/s}', base + doasSupplyRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','DesignDay') + CALL AddToObjStr('Heating Supply Air Flow Rate {m3/s}','0') + ELSE + CALL AddToObjStr('Cooling Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Cooling Supply Air Flow Rate {m3/s}', base + doasSupplyRateOff,' ') ! New fields for v8.2 next three rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') - CALL AddToObjStr('Heating Design Air Flow Method','Flow/System') - CALL AddToObjFld('Heating Design Air Flow Rate {m3/s}', base + doasSupplyRateOff,' ') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Cooling Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Cooling Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W}','') + CALL AddToObjStr('Heating Supply Air Flow Rate Method','Flow/System') + CALL AddToObjFld('Heating Supply Air Flow Rate {m3/s}', base + doasSupplyRateOff,' ') END IF ! New fields for v8.2 next four rows - CALL AddToObjStr('Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2}','') - CALL AddToObjStr('Fraction of Autosized Design Heating Supply Air Flow Rate','') - CALL AddToObjStr('Fraction of Autosized Design Cooling Supply Air Flow Rate','') - CALL AddToObjStr('Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') - CALL AddToObjStr('System Outdoor Air Method','ZoneSum',.true.) + CALL AddToObjStr('Heating Supply Air Flow Rate Per Floor Area {m3/s-m2}','') + CALL AddToObjStr('Heating Fraction of Autosized Heating Supply Air Flow Rate','') + CALL AddToObjStr('Heating Fraction of Autosized Cooling Supply Air Flow Rate','') + CALL AddToObjStr('Heating Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W}','') + CALL AddToObjStr('System Outdoor Air Method','ZoneSum') + CALL AddToObjStr('Zone Maximum Outdoor Air Fraction','1.0') + CALL AddToObjStr('Cooling Design Capacity Method','CoolingDesignCapacity') + CALL AddToObjStr('Cooling Design Capacity {W}','autosize') + CALL AddToObjStr('Cooling Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Cooling Design Capacity','') + CALL AddToObjStr('Heating Design Capacity Method','HeatingDesignCapacity') + CALL AddToObjStr('Heating Design Capacity {W}','autosize') + CALL AddToObjStr('Heating Design Capacity Per Floor Area {W/m2}','') + CALL AddToObjStr('Fraction of Autosized Heating Design Capacity','') + CALL AddToObjStr('Central Cooling Capacity Control Method','VAV',.true.) !***AirLoopHVAC CALL CreateNewObj('AirLoopHVAC') CALL AddToObjFld('Name', base + doasNameOff,' ') @@ -31691,8 +31769,8 @@ SUBROUTINE CreateDOAS CALL AddToObjFld('Schedule Name', base + doasSysAvailSchedNameOff,'',.TRUE.) END IF - ! Cooling coil setpoint manager - IF (coolCoilKind .NE. ccNone) THEN + ! Cooling coil setpoint manager (If there is no cooling coil and no heating coil but there is heat recovery, then need this) + IF ((coolCoilKind .NE. ccNone) .OR. ((heatRecovery .NE. htrecNone) .AND. heatCoilType .EQ. ctNone)) THEN CALL CreateNewObj('NodeList') CALL AddToObjFld('Name', base + doasNameOff,' Cooling Setpoint Nodes') IF (dehumidCtrlKind .EQ. dehumidCoolRhtDesuper) THEN @@ -31727,7 +31805,7 @@ SUBROUTINE CreateDOAS ELSE CALL AddToObjFld('Setpoint Node or NodeList Name', base + doasNameOff,' Cooling Setpoint Nodes',.TRUE.) END IF - IF (supFanPlacement .EQ. sfpDrawThru) THEN + IF ((supFanPlacement .EQ. sfpDrawThru) .AND. (coolCoilKind .NE. ccNone)) THEN !***SetpointManager:MixedAir CALL CreateNewObj('SetpointManager:MixedAir') CALL AddToObjFld('Name', base + doasNameOff,' Cooling Coil Air Temp Manager') @@ -32509,10 +32587,11 @@ SUBROUTINE CreateDOAS CALL AddToObjStr('Air Outlet Node Name', TRIM(heatCoilOutlet)) CALL AddToObjStr('Performance Input Method','UFactorTimesAreaAndDesignWaterFlowRate') CALL AddToObjStr('Nominal Capacity','autosize') - CALL AddToObjStr('Design Inlet Water Temperature','82.2') - CALL AddToObjStr('Design Inlet Air Temperature','16.6') - CALL AddToObjStr('Design Outlet Water Temperature','71.1') - CALL AddToObjStr('Design Outlet Air Temperature','32.2',.TRUE.) + CALL AddToObjStr('Rated Inlet Water Temperature','82.2') + CALL AddToObjStr('Rated Inlet Air Temperature','16.6') + CALL AddToObjStr('Rated Outlet Water Temperature','71.1') + CALL AddToObjStr('Rated Outlet Air Temperature','32.2') + CALL AddToObjStr('Rated Ratio for Air and Water Convection','0.5',.true.) !***Branch CALL CreateNewObj('Branch') CALL AddToObjFld('Name', base + doasNameOff,' Heating Coil HW Branch') diff --git a/src/Transition/CMakeLists.txt b/src/Transition/CMakeLists.txt index b4bb3bb282b..970d204980d 100644 --- a/src/Transition/CMakeLists.txt +++ b/src/Transition/CMakeLists.txt @@ -60,6 +60,7 @@ IF(${CMAKE_Fortran_COMPILER_ID} STREQUAL "GNU") ELSE() SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -cpp") SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-none") + SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fbounds-check") ENDIF() ENDIF() diff --git a/src/Transition/CreateNewIDFUsingRulesV8_3_0.f90 b/src/Transition/CreateNewIDFUsingRulesV8_3_0.f90 index aafcc64cc13..8e99c3c222e 100644 --- a/src/Transition/CreateNewIDFUsingRulesV8_3_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV8_3_0.f90 @@ -9,7 +9,8 @@ MODULE SetVersion SUBROUTINE SetThisVersionVariables() VerString='Conversion 8.2 => 8.3' - VersionNum=8.3 + VersionNum=8.2 + sVersionNum='8.2' IDDFileNameWithPath=TRIM(ProgramPath)//'V8-2-0-Energy+.idd' NewIDDFileNameWithPath=TRIM(ProgramPath)//'V8-3-0-Energy+.idd' RepVarFileNameWithPath=TRIM(ProgramPath)//'Report Variables 8-2-0 to 8-3-0.csv' @@ -203,6 +204,23 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile EXIT ENDIF + ! Clean up from any previous passes, then re-allocate + IF(ALLOCATED(DeleteThisRecord)) DEALLOCATE(DeleteThisRecord) + IF(ALLOCATED(Alphas)) DEALLOCATE(Alphas) + IF(ALLOCATED(Numbers)) DEALLOCATE(Numbers) + IF(ALLOCATED(InArgs)) DEALLOCATE(InArgs) + IF(ALLOCATED(AorN)) DEALLOCATE(AorN) + IF(ALLOCATED(ReqFld)) DEALLOCATE(ReqFld) + IF(ALLOCATED(FldNames)) DEALLOCATE(FldNames) + IF(ALLOCATED(FldDefaults)) DEALLOCATE(FldDefaults) + IF(ALLOCATED(FldUnits)) DEALLOCATE(FldUnits) + IF(ALLOCATED(NwAorN)) DEALLOCATE(NwAorN) + IF(ALLOCATED(NwReqFld)) DEALLOCATE(NwReqFld) + IF(ALLOCATED(NwFldNames)) DEALLOCATE(NwFldNames) + IF(ALLOCATED(NwFldDefaults)) DEALLOCATE(NwFldDefaults) + IF(ALLOCATED(NwFldUnits)) DEALLOCATE(NwFldUnits) + IF(ALLOCATED(OutArgs)) DEALLOCATE(OutArgs) + IF(ALLOCATED(MatchArg)) DEALLOCATE(MatchArg) ALLOCATE(Alphas(MaxAlphaArgsFound),Numbers(MaxNumericArgsFound)) ALLOCATE(InArgs(MaxTotalArgs)) ALLOCATE(AorN(MaxTotalArgs),ReqFld(MaxTotalArgs),FldNames(MaxTotalArgs),FldDefaults(MaxTotalArgs),FldUnits(MaxTotalArgs)) @@ -238,11 +256,11 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile IF (DeleteThisRecord(Num)) CYCLE DO xcount=IDFRecords(Num)%CommtS+1,IDFRecords(Num)%CommtE WRITE(DifLfn,fmta) TRIM(Comments(xcount)) - if (xcount == IDFRecords(Num)%CommtE) WRITE(DifLfn,fmta) ' ' + if (xcount == IDFRecords(Num)%CommtE) WRITE(DifLfn,fmta) '' ENDDO IF (NoVersion .and. Num == 1) THEN CALL GetNewObjectDefInIDD('VERSION',NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1)='8.0' + OutArgs(1) = sVersionNum CurArgs=1 CALL WriteOutIDFLinesAsComments(DifLfn,'Version',CurArgs,OutArgs,NwFldNames,NwFldUnits) ENDIF @@ -321,29 +339,27 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile SELECT CASE (MakeUPPERCase(TRIM(IDFRecords(Num)%Name))) CASE ('VERSION') - IF ((InArgs(1)(1:3) == '8.3').and. ArgFile) THEN + IF ((InArgs(1)(1:3)) == '8.3' .and. ArgFile) THEN CALL ShowWarningError('File is already at latest version. No new diff file made.',Auditf) CLOSE(diflfn,STATUS='DELETE') LatestVersion=.true. EXIT ENDIF CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1)='8.3' + OutArgs(1) = sVersionNum nodiff=.false. -! !!! Changes for this version - ! These will be conflicted, but uncommented when that branch is merged to develop - ! CASE('CHILLER:ELECTRIC:REFORMULATEDEIR') - ! nodiff=.false. - ! CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - ! ! fields 1-9 aren't affected - ! OutArgs(1:9)=InArgs(1:9) - ! ! add a blank for the new curve type field - ! OutArgs(10)=blank - ! ! then we just push the rest of the fields down 1 - ! OutArgs(11:)=InArgs(10:) - ! CurArgs = CurArgs + 1 - + !!! Changes for this version + CASE('CHILLER:ELECTRIC:REFORMULATEDEIR') + nodiff=.false. + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + ! fields 1-9 aren't affected + OutArgs(1:9)=InArgs(1:9) + ! add the new curve type field + OutArgs(10)='LeavingCondenserWaterTemperature' + ! then we just push the rest of the fields down 1 + OutArgs(11:CurArgs+1)=InArgs(10:CurArgs) + CurArgs = CurArgs + 1 CASE('SITE:GROUNDDOMAIN') ! Object rename @@ -358,8 +374,8 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile OutArgs(1:10) = InArgs(1:10) OutArgs(11:CurArgs-1) = InArgs(12:CurArgs) CurArgs = CurArgs - 1 - !!! Changes for report variables, meters, tables -- update names + !!! Changes for report variables, meters, tables -- update names CASE('OUTPUT:VARIABLE') CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) OutArgs(1:CurArgs)=InArgs(1:CurArgs) @@ -844,7 +860,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile IF (IDFRecords(NumIDFRecords)%CommtE /= CurComment) THEN DO xcount=IDFRecords(NumIDFRecords)%CommtE+1,CurComment WRITE(DifLfn,fmta) TRIM(Comments(xcount)) - if (xcount == IDFRecords(Num)%CommtE) WRITE(DifLfn,fmta) ' ' + if (xcount == IDFRecords(Num)%CommtE) WRITE(DifLfn,fmta) '' ENDDO ENDIF @@ -877,25 +893,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CALL CreateNewName('Reallocate',CreatedOutputName,' ') - IF (Allocated(DeleteThisRecord)) THEN - DEALLOCATE(DeleteThisRecord) - DEALLOCATE(Alphas) - DEALLOCATE(Numbers) - DEALLOCATE(InArgs) - DEALLOCATE(AorN) - DEALLOCATE(ReqFld) - DEALLOCATE(FldNames) - DEALLOCATE(FldDefaults) - DEALLOCATE(FldUnits) - DEALLOCATE(NwAorN) - DEALLOCATE(NwReqFld) - DEALLOCATE(NwFldNames) - DEALLOCATE(NwFldDefaults) - DEALLOCATE(NwFldUnits) - DEALLOCATE(OutArgs) - DEALLOCATE(MatchArg) - ENDIF - ENDDO IF (.not. ExitBecauseBadFile) THEN diff --git a/src/Transition/DataVCompareGlobals.f90 b/src/Transition/DataVCompareGlobals.f90 index 8b65daea3d4..198c7d38431 100644 --- a/src/Transition/DataVCompareGlobals.f90 +++ b/src/Transition/DataVCompareGlobals.f90 @@ -62,6 +62,7 @@ module DataVCompareGlobals logical LeaveBlank ! True if blank fields on input should be left blank (no default fill) integer auditf ! auditfile real :: VersionNum=0.0 +CHARACTER(len=3) :: sVersionNum='' ! Added for compare routines diff --git a/src/Transition/Transition.f90 b/src/Transition/Transition.f90 index 03a86da1fdb..b281608f122 100644 --- a/src/Transition/Transition.f90 +++ b/src/Transition/Transition.f90 @@ -322,8 +322,7 @@ PROGRAM Transition WRITE(Auditf,fmta) ' New IDF lines will have blank fields filled with defaults as applicable' ENDIF - WRITE(*,*) TRIM(RepVarFileNameWithPath) - 100 INQUIRE(File=TRIM(RepVarFileNameWithPath),EXIST=InExist) +100 INQUIRE(File=TRIM(RepVarFileNameWithPath),EXIST=InExist) IF (InExist) THEN LFN=GetNewUnitNumber() OPEN(LFN,FILE=TRIM(RepVarFileNameWithPath),IOSTAT=Ios,action='READ') diff --git a/src/Transition/VCompareGlobalRoutines.f90 b/src/Transition/VCompareGlobalRoutines.f90 index 6c85a0a4289..086fe6759b8 100644 --- a/src/Transition/VCompareGlobalRoutines.f90 +++ b/src/Transition/VCompareGlobalRoutines.f90 @@ -170,7 +170,7 @@ SUBROUTINE WriteOutIDFLines(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,FieldU ENDIF Write(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' RETURN @@ -240,7 +240,7 @@ SUBROUTINE WriteOutIDFLinesAsSingleLine(DifUnit,ObjectName,CurArgs,OutArgs,Field Write(DifUnit,fmta) TRIM(LineOut) ENDIF ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' RETURN @@ -383,7 +383,7 @@ SUBROUTINE WriteOutIDFLinesAsComments(DifUnit,ObjectName,CurArgs,OutArgs,FieldNa ENDIF Write(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' RETURN @@ -553,7 +553,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('SURFACE:SHADING:DETACHED','SURFACE:SHADING:DETACHED:FIXED','SURFACE:SHADING:DETACHED:BUILDING') IF (ObjectName == 'SURFACE:SHADING:DETACHED') THEN @@ -586,7 +586,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('SURFACE:SHADING:ATTACHED') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,4,OutArgs,FieldNames,FieldUnits) @@ -615,7 +615,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('WINDOWGLASSSPECTRALDATA') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,1,OutArgs,FieldNames,FieldUnits) @@ -635,7 +635,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie LineOut=TRIM(LineOut)//LString WRITE(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('FLUIDPROPERTYTEMPERATURES') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,1,OutArgs,FieldNames,FieldUnits) @@ -655,7 +655,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie LineOut=TRIM(LineOut)//LString WRITE(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('FLUIDPROPERTYSATURATED','FLUIDPROPERTYSUPERHEATED','FLUIDPROPERTYCONCENTRATION') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,4,OutArgs,FieldNames,FieldUnits) @@ -675,7 +675,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie LineOut=TRIM(LineOut)//LString WRITE(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE DEFAULT Written=.false. @@ -735,7 +735,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie Arg=Arg+1 ENDIF ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' if (compactwarning) then CALL writePreProcessorObject(DifUnit,ProgNameConversion,'Warning', & 'Compact Schedule object="'//trim(OutArgs(1))//'" terminated early. Check for accuracy.') @@ -775,7 +775,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('WALL:DETAILED','ROOFCEILING:DETAILED','FLOOR:DETAILED') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,9,OutArgs,FieldNames,FieldUnits) @@ -804,7 +804,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('SHADING:SITE:DETAILED','SHADING:BUILDING:DETAILED') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,3,OutArgs,FieldNames,FieldUnits) @@ -833,7 +833,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('SHADING:ZONE:DETAILED') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,4,OutArgs,FieldNames,FieldUnits) @@ -862,7 +862,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie ENDIF VArg=VArg+3 ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('MATERIALPROPERTY:GLAZINGSPECTRALDATA') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,1,OutArgs,FieldNames,FieldUnits) @@ -882,7 +882,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie LineOut=TRIM(LineOut)//LString WRITE(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('FLUIDPROPERTIES:TEMPERATURES') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,1,OutArgs,FieldNames,FieldUnits) @@ -902,7 +902,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie LineOut=TRIM(LineOut)//LString WRITE(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE('FLUIDPROPERTIES:SATURATED','FLUIDPROPERTIES:SUPERHEATED','FLUIDPROPERTIES:CONCENTRATION') CALL WriteOutPartialIDFLines(DifUnit,ObjectName,4,OutArgs,FieldNames,FieldUnits) @@ -922,7 +922,7 @@ SUBROUTINE CheckSpecialObjects(DifUnit,ObjectName,CurArgs,OutArgs,FieldNames,Fie LineOut=TRIM(LineOut)//LString WRITE(DifUnit,fmta) TRIM(LineOut) ENDDO - WRITE(DifUnit,fmta) ' ' + WRITE(DifUnit,fmta) '' CASE DEFAULT Written=.false. diff --git a/testfiles/1ZoneDataCenterCRAC_wPumpedDXCoolingCoil.idf b/testfiles/1ZoneDataCenterCRAC_wPumpedDXCoolingCoil.idf index 83dce5d3f14..0bda32edfaf 100644 --- a/testfiles/1ZoneDataCenterCRAC_wPumpedDXCoolingCoil.idf +++ b/testfiles/1ZoneDataCenterCRAC_wPumpedDXCoolingCoil.idf @@ -1,7 +1,9 @@ ! 1ZoneDataCenterCRAC_wPumpedDXCoolingCoil.idf -! Basic file description: This file demonstrates a simple data center model served by a CRAC system. +! Basic file description: This file demonstrates a simple data center model with air-cooled IT equipment (ITE) +! served by a CRAC system. ! -! Highlights: The CRAC system has been setup to represent a Lieber DSE 125 with pumped +! Highlights: The air-cooled ITE illustrates the user of various schedules and curves to vary server power use. +! The CRAC system has been setup to represent a Lieber DSE 125 with pumped ! refrigerant economizer DX cooling coil system. ! ! file adapted from example file "1ZoneEvapCooler.idf" which is adpated from @@ -19,7 +21,7 @@ ! Run Control: No zone or system sizing, weather file simulation ! ! Building: Fictional 1 zone building with resistive walls based on 1ZoneUncontrolled example. -! No windows. Data Center internal gains. No internal mass. The building is oriented due north. +! No windows. Data Center server ITE object for internal gains. No internal mass. The building is oriented due north. ! ! Floor Area: 232.25 m2 ! Number of Stories: 1 @@ -841,32 +843,19 @@ For: AllDays, !- Field 2 Until: 24:00,29.3; !- Field 3 -! ElectricEquipment, -! Data Center Equipment, !- Name -! Main Zone, !- Zone or ZoneList Name -! Data Center Equipment Schedule, !- Schedule Name -! Watts/area, !- Design Level Calculation Method -! , !- Design Level {W} -! 550.0, !- Watts per Zone Floor Area {W/m2} -! , !- Watts per Person {W/person} -! 0, !- Fraction Latent -! 0, !- Fraction Radiant -! 0, !- Fraction Lost -! Data Center IT equipment;!- End-Use Subcategory - ElectricEquipment:ITE:AirCooled, Data Center Servers, !- Name Main Zone, !- Zone Name Watts/Unit, !- Design Power Input Calculation Method 500, !- Watts per Unit {W} - 200, !- Number of Units + 100, !- Number of Units , !- Watts per Zone Floor Area {W/m2} Data Center Operation Schedule, !- Design Power Input Schedule Name Data Center CPU Loading Schedule, !- CPU Loading Schedule Name - Model 5250 Power fLoadTemp, !- CPU Power Input Function of Loading and Air Temperature Curve Name + Data Center Servers Power fLoadTemp, !- CPU Power Input Function of Loading and Air Temperature Curve Name 0.4, !- Design Fan Power Input Fraction 0.0001, !- Design Fan Air Flow Rate per Power Input {m3/s-W} - Model 5250 AifFlow fLoadTemp, !- Air Flow Function of Loading and Air Temperature Curve Name + Data Center Servers Airflow fLoadTemp, !- Air Flow Function of Loading and Air Temperature Curve Name ECM FanPower fFlow, !- Fan Power Input Function of Flow Curve Name 15, !- Design Entering Air Temperature {C} A3, !- Environmental Class @@ -900,7 +889,7 @@ ElectricEquipment:ITE:AirCooled, 99.0; !- Maximum Value of x Curve:Biquadratic, - Model 5250 Power fLoadTemp, !- Name + Data Center Servers Power fLoadTemp, !- Name -1.0, !- Coefficient1 Constant 1.0, !- Coefficient2 x 0.0, !- Coefficient3 x**2 @@ -918,7 +907,7 @@ ElectricEquipment:ITE:AirCooled, Dimensionless; !- Output Unit Type Curve:Biquadratic, - Model 5250 AifFlow fLoadTemp, !- Name + Data Center Servers Airflow fLoadTemp, !- Name -1.4, !- Coefficient1 Constant 0.9, !- Coefficient2 x 0.0, !- Coefficient3 x**2 @@ -1001,17 +990,17 @@ ElectricEquipment:ITE:AirCooled, Output:Constructions,Constructions; - Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + Output:Variable,*,Site Outdoor Air Drybulb Temperature,Hourly; - Output:Variable,*,Site Outdoor Air Wetbulb Temperature,hourly; + Output:Variable,*,Site Outdoor Air Wetbulb Temperature,Hourly; - Output:Variable,*,Site Outdoor Air Humidity Ratio,hourly; + Output:Variable,*,Site Outdoor Air Humidity Ratio,Hourly; - Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + Output:Variable,*,Site Outdoor Air Relative Humidity,Hourly; - Output:Variable,*,Zone Mean Air Temperature,timestep; + Output:Variable,*,Zone Mean Air Temperature,Hourly; - Output:Variable,*,Baseboard Electric Power,hourly; + Output:Variable,*,Baseboard Electric Power,Hourly; Output:Meter:MeterFileOnly,Electricity:Facility,monthly; @@ -1030,131 +1019,99 @@ ElectricEquipment:ITE:AirCooled, Output:SQLite, Simple; !- Option Type - Output:Variable,*,Performance Curve Input Variable 1 Value,detailed; + Output:Variable,*,Performance Curve Input Variable 1 Value,Hourly; + + Output:Variable,*,Performance Curve Input Variable 2 Value,Hourly; - Output:Variable,*,Performance Curve Input Variable 2 Value,detailed; + Output:Variable,*,Performance Curve Output Value,Hourly; - Output:Variable,*,Performance Curve Output Value,detailed; + Output:Variable,*,System Node Temperature,Hourly; - Output:Variable,*,System Node Temperature,detailed; + Output:Variable,*,System Node Mass Flow Rate,Hourly; - Output:Variable,*,System Node Mass Flow Rate,detailed; + Output:Variable,*,System Node Setpoint Temperature,Hourly; - Output:Variable,*,System Node Setpoint Temperature,detailed; + Output:Variable,*,System Node Standard Density Volume Flow Rate,Hourly; - Output:Variable,*,System Node Standard Density Volume Flow Rate,detailed; + Output:Variable,*,System Node Humidity Ratio,Hourly; - Output:Variable,*,System Node Humidity Ratio,detailed; + Output:Variable,Supply Inlet Node,System Node Dewpoint Temperature,Hourly; - Output:Variable,Supply Inlet Node,System Node Dewpoint Temperature,detailed; + Output:Variable,Main Cooling Coil 1 Outlet Node,System Node Dewpoint Temperature,Hourly; - Output:Variable,Main Cooling Coil 1 Outlet Node,System Node Dewpoint Temperature,detailed; + Output:Variable,Supply Inlet Node,System Node Relative Humidity,Hourly; - Output:Variable,Supply Inlet Node,System Node Relative Humidity,detailed; + Output:Variable,*,Zone Predicted Sensible Load to Cooling Setpoint Heat Transfer Rate,Hourly; - Output:Variable,*,Zone Predicted Sensible Load to Cooling Setpoint Heat Transfer Rate,timestep; - - Output:Variable,*,Cooling Coil Total Cooling Rate,detailed; + Output:Variable,*,Cooling Coil Total Cooling Rate,Hourly; - Output:Variable,*,Cooling Coil Sensible Cooling Rate,detailed; + Output:Variable,*,Cooling Coil Sensible Cooling Rate,Hourly; - Output:Variable,*,Cooling Coil Latent Cooling Rate,timestep; + Output:Variable,*,Cooling Coil Latent Cooling Rate,Hourly; - Output:Variable,*,Cooling Coil Electric Power,detailed; + Output:Variable,*,Cooling Coil Electric Power,Hourly; - Output:Variable,*,Cooling Coil Runtime Fraction,detailed; + Output:Variable,*,Cooling Coil Runtime Fraction,Hourly; - Output:Variable,*,Coil System Part Load Ratio,detailed; + Output:Variable,*,Coil System Part Load Ratio,Hourly; - Output:Variable,*,Coil System Frost Control Status,timestep; + Output:Variable,*,Coil System Frost Control Status,Hourly; - Output:Variable,*,Facility Total Building Electric Demand Power,timestep; + Output:Variable,*,Facility Total Building Electric Demand Power,Hourly; - Output:Variable,*,Facility Total HVAC Electric Demand Power,timestep; + Output:Variable,*,Facility Total HVAC Electric Demand Power,Hourly; - Output:Variable,*,Facility Total Electric Demand Power,timestep; + Output:Variable,*,Facility Total Electric Demand Power,Hourly; - Output:Variable,*,Zone Electric Equipment Total Heating Rate,timestep; + Output:Variable,*,Zone Electric Equipment Total Heating Rate,Hourly; - Output:Variable,*,Site Outdoor Air Drybulb Temperature,timestep; + Output:Variable,*,Site Outdoor Air Drybulb Temperature,Hourly; - Output:Variable,*,Site Outdoor Air Dewpoint Temperature,timestep; + Output:Variable,*,Site Outdoor Air Dewpoint Temperature,Hourly; - Output:Variable,*,Site Outdoor Air Wetbulb Temperature,timestep; + Output:Variable,*,Site Outdoor Air Wetbulb Temperature,Hourly; - Output:Variable,*,Fan Electric Power,detailed; + Output:Variable,*,Fan Electric Power,Hourly; - Output:Variable,*,Fan Rise in Air Temperature,timestep; + Output:Variable,*,Fan Rise in Air Temperature,Hourly; - Output:Variable,*,Schedule Value,timestep; + Output:Variable,*,Schedule Value,Hourly; -Output:Variable,*,ITE CPU Electric Power,timestep; !- Zone Average [W] -Output:Variable,*,ITE Fan Electric Power,timestep; !- Zone Average [W] -Output:Variable,*,ITE UPS Electric Power,timestep; !- Zone Average [W] -Output:Variable,*,ITE CPU Electric Power at Design Inlet Conditions,timestep; !- Zone Average [W] -Output:Variable,*,ITE Fan Electric Power at Design Inlet Conditions,timestep; !- Zone Average [W] -Output:Variable,*,ITE UPS Heat Gain to Zone Rate,timestep; !- Zone Average [W] -Output:Variable,*,ITE Total Heat Gain to Zone Rate,timestep; !- Zone Average [W] -Output:Variable,*,ITE CPU Electric Energy,timestep; !- Zone Sum [J] -Output:Variable,*,ITE Fan Electric Energy,timestep; !- Zone Sum [J] -Output:Variable,*,ITE UPS Electric Energy,timestep; !- Zone Sum [J] -Output:Variable,*,ITE CPU Electric Energy at Design Inlet Conditions,timestep; !- Zone Sum [J] -Output:Variable,*,ITE Fan Electric Energy at Design Inlet Conditions,timestep; !- Zone Sum [J] -Output:Variable,*,ITE UPS Heat Gain to Zone Energy,timestep; !- Zone Sum [J] -Output:Variable,*,ITE Total Heat Gain to Zone Energy,timestep; !- Zone Sum [J] -Output:Variable,*,ITE Standard Density Air Volume Flow Rate,timestep; !- Zone Average [m3/s] -Output:Variable,*,ITE Current Density Air Volume Flow Rate,timestep; !- Zone Average [m3/s] -Output:Variable,*,ITE Air Mass Flow Rate,timestep; !- Zone Average [kg/s] -Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature,timestep; !- Zone Average [C] -Output:Variable,*,ITE Air Inlet Dewpoint Temperature,timestep; !- Zone Average [C] -Output:Variable,*,ITE Air Inlet Relative Humidity,timestep; !- Zone Average [%] -Output:Variable,*,ITE Air Outlet Dry-Bulb Temperature,timestep; !- Zone Average [C] -Output:Variable,*,ITE Supply Heat Index,timestep; !- Zone Average [] -Output:Variable,*,ITE Air Inlet Operating Range Exceeded Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Above Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Below Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Dewpoint Temperature Above Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Dewpoint Temperature Below Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Relative Humidity Above Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Relative Humidity Below Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Difference Above Operating Range,timestep; !- Zone Average [deltaC] -Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Difference Below Operating Range,timestep; !- Zone Average [deltaC] -Output:Variable,*,ITE Air Inlet Dewpoint Temperature Difference Above Operating Range,timestep; !- Zone Average [deltaC] -Output:Variable,*,ITE Air Inlet Dewpoint Temperature Difference Below Operating Range,timestep; !- Zone Average [deltaC] -Output:Variable,*,ITE Air Inlet Relative Humidity Difference Above Operating Range,timestep; !- Zone Average [%] -Output:Variable,*,ITE Air Inlet Relative Humidity Difference Below Operating Range,timestep; !- Zone Average [%] -Output:Variable,*,Zone ITE CPU Electric Power,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE Fan Electric Power,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE UPS Electric Power,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE CPU Electric Power at Design Inlet Conditions,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE Fan Electric Power at Design Inlet Conditions,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE UPS Heat Gain to Zone Rate,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE Total Heat Gain to Zone Rate,timestep; !- Zone Average [W] -Output:Variable,*,Zone ITE CPU Electric Energy,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE Fan Electric Energy,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE UPS Electric Energy,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE CPU Electric Energy at Design Inlet Conditions,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE Fan Electric Energy at Design Inlet Conditions,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE UPS Heat Gain to Zone Energy,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE Total Heat Gain to Zone Energy,timestep; !- Zone Sum [J] -Output:Variable,*,Zone ITE Standard Density Air Volume Flow Rate,timestep; !- Zone Average [m3/s] -Output:Variable,*,Zone ITE Air Mass Flow Rate,timestep; !- Zone Average [kg/s] -Output:Variable,*,Zone ITE Average Supply Heat Index,timestep; !- Zone Average [] -Output:Variable,*,Zone ITE Any Air Inlet Operating Range Exceeded Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone ITE Any Air Inlet Dry-Bulb Temperature Above Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone ITE Any Air Inlet Dry-Bulb Temperature Below Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone ITE Any Air Inlet Dewpoint Temperature Above Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone ITE Any Air Inlet Dewpoint Temperature Below Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone ITE Any Air Inlet Relative Humidity Above Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone ITE Any Air Inlet Relative Humidity Below Operating Range Time,timestep; !- Zone Sum [hr] -Output:Variable,*,Zone Air Temperature,timestep; !- HVAC Average [C] -Output:Variable,*,Zone Air Heat Balance Internal Convective Heat Gain Rate,timestep; !- HVAC Average [W] -Output:Variable,*,Zone Air Heat Balance Surface Convection Rate,timestep; !- HVAC Average [W] -Output:Variable,*,Zone Air Heat Balance Interzone Air Transfer Rate,timestep; !- HVAC Average [W] -Output:Variable,*,Zone Air Heat Balance Outdoor Air Transfer Rate,timestep; !- HVAC Average [W] -Output:Variable,*,Zone Air Heat Balance System Air Transfer Rate,timestep; !- HVAC Average [W] -Output:Variable,*,Zone Air Heat Balance System Convective Heat Gain Rate,timestep; !- HVAC Average [W] -Output:Variable,*,Zone Air Heat Balance Air Energy Storage Rate,timestep; !- HVAC Average [W] +Output:Variable,*,ITE CPU Electric Power,Hourly; !- Zone Average [W] +Output:Variable,*,ITE Fan Electric Power,Hourly; !- Zone Average [W] +Output:Variable,*,ITE UPS Electric Power,Hourly; !- Zone Average [W] +Output:Variable,*,ITE CPU Electric Power at Design Inlet Conditions,Hourly; !- Zone Average [W] +Output:Variable,*,ITE Fan Electric Power at Design Inlet Conditions,Hourly; !- Zone Average [W] +Output:Variable,*,ITE UPS Heat Gain to Zone Rate,Hourly; !- Zone Average [W] +Output:Variable,*,ITE Total Heat Gain to Zone Rate,Hourly; !- Zone Average [W] +Output:Variable,*,ITE Standard Density Air Volume Flow Rate,Hourly; !- Zone Average [m3/s] +Output:Variable,*,ITE Air Mass Flow Rate,Hourly; !- Zone Average [kg/s] +Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature,Hourly; !- Zone Average [C] +Output:Variable,*,ITE Air Inlet Dewpoint Temperature,Hourly; !- Zone Average [C] +Output:Variable,*,ITE Air Inlet Relative Humidity,Hourly; !- Zone Average [%] +Output:Variable,*,ITE Air Outlet Dry-Bulb Temperature,Hourly; !- Zone Average [C] +Output:Variable,*,ITE Supply Heat Index,Hourly; !- Zone Average [] +Output:Variable,*,ITE Air Inlet Operating Range Exceeded Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Above Operating Range Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Below Operating Range Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Dewpoint Temperature Above Operating Range Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Dewpoint Temperature Below Operating Range Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Relative Humidity Above Operating Range Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Relative Humidity Below Operating Range Time,Hourly; !- Zone Sum [hr] +Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Difference Above Operating Range,Hourly; !- Zone Average [deltaC] +Output:Variable,*,ITE Air Inlet Dry-Bulb Temperature Difference Below Operating Range,Hourly; !- Zone Average [deltaC] +Output:Variable,*,ITE Air Inlet Dewpoint Temperature Difference Above Operating Range,Hourly; !- Zone Average [deltaC] +Output:Variable,*,ITE Air Inlet Dewpoint Temperature Difference Below Operating Range,Hourly; !- Zone Average [deltaC] +Output:Variable,*,ITE Air Inlet Relative Humidity Difference Above Operating Range,Hourly; !- Zone Average [%] +Output:Variable,*,ITE Air Inlet Relative Humidity Difference Below Operating Range,Hourly; !- Zone Average [%] +Output:Variable,*,Zone Air Temperature,Hourly; !- HVAC Average [C] +Output:Variable,*,Zone Air Heat Balance Internal Convective Heat Gain Rate,Hourly; !- HVAC Average [W] +Output:Variable,*,Zone Air Heat Balance Surface Convection Rate,Hourly; !- HVAC Average [W] +Output:Variable,*,Zone Air Heat Balance Interzone Air Transfer Rate,Hourly; !- HVAC Average [W] +Output:Variable,*,Zone Air Heat Balance Outdoor Air Transfer Rate,Hourly; !- HVAC Average [W] +Output:Variable,*,Zone Air Heat Balance System Air Transfer Rate,Hourly; !- HVAC Average [W] +Output:Variable,*,Zone Air Heat Balance System Convective Heat Gain Rate,Hourly; !- HVAC Average [W] +Output:Variable,*,Zone Air Heat Balance Air Energy Storage Rate,Hourly; !- HVAC Average [W] ! custom EMS output variables ! SCOP @@ -1244,11 +1201,11 @@ Output:Variable,*,Zone Air Heat Balance Air Energy Storage Rate,timestep; !- HVA Verbose, !- Internal Variable Availability Dictionary Reporting Verbose; !- EMS Runtime Language Debug Output Level - Output:Variable,*,CRAC SCOP,detailed; + Output:Variable,*,CRAC SCOP,Hourly; - Output:Variable,*,CRAC total system Power,detailed; + Output:Variable,*,CRAC total system Power,Hourly; - Output:Variable,*,CRAC Net Sensible Capacity,detailed; + Output:Variable,*,CRAC Net Sensible Capacity,Hourly; !PUE ! this is a very simple file with only one air loop and model is entirely a simple data center @@ -1278,5 +1235,4 @@ Output:Variable,*,Zone Air Heat Balance Air Energy Storage Rate,timestep; !- HVA CalcPUE, !- Name set PUE = whole_building_power / IT_Equip_power; !- Program Line 1 - Output:Variable,*,PUE,detailed; - + Output:Variable,*,PUE,Hourly; diff --git a/testfiles/5ZoneAirCooled.idf b/testfiles/5ZoneAirCooled.idf index 9aab2d6f5d6..ff60ce963fa 100644 --- a/testfiles/5ZoneAirCooled.idf +++ b/testfiles/5ZoneAirCooled.idf @@ -1890,14 +1890,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1913,7 +1913,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooledConvCoef.idf b/testfiles/5ZoneAirCooledConvCoef.idf index 0c917432d8b..3ebd2ae2ff0 100644 --- a/testfiles/5ZoneAirCooledConvCoef.idf +++ b/testfiles/5ZoneAirCooledConvCoef.idf @@ -1877,14 +1877,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1900,7 +1900,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooledConvCoefPIU.idf b/testfiles/5ZoneAirCooledConvCoefPIU.idf index 98f1578665d..3dec395deb7 100644 --- a/testfiles/5ZoneAirCooledConvCoefPIU.idf +++ b/testfiles/5ZoneAirCooledConvCoefPIU.idf @@ -1901,14 +1901,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1924,7 +1924,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooledDemandLimiting.idf b/testfiles/5ZoneAirCooledDemandLimiting.idf index 5d8305195de..7cb16b819fc 100644 --- a/testfiles/5ZoneAirCooledDemandLimiting.idf +++ b/testfiles/5ZoneAirCooledDemandLimiting.idf @@ -1738,14 +1738,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1761,7 +1761,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooledWithCoupledInGradeSlab.idf b/testfiles/5ZoneAirCooledWithCoupledInGradeSlab.idf index 83793fc20e0..4e2763a3a53 100644 --- a/testfiles/5ZoneAirCooledWithCoupledInGradeSlab.idf +++ b/testfiles/5ZoneAirCooledWithCoupledInGradeSlab.idf @@ -163,7 +163,7 @@ 1, !- Begin Day of Month 12, !- End Month 31, !- End Day of Month - Wednesday, !- Day of Week for Start Day + Wednesday, !- 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 @@ -245,30 +245,30 @@ 1.0; !- Sky Clearness Site:GroundDomain:Slab, - IngradeCoupledSlab, !- Name - 5, !- Ground Domain Depth {m} - 1, !- Aspect Ratio - 5, !- Domain Perimeter Offset {m} - 1.8, !- Soil Thermal Conductivity {W/m-K} - 3200, !- Soil Density {kg/m3} - 836, !- Soil Specific Heat {J/kg-K} - 30, !- Soil Moisture Content Volume Fraction {percent} - 50, !- Soil Moisture Content Volume Fraction at Saturation {percent} - 15.5, !- Kusuda-Achenbach Average Surface Temperature {C} - 12.8, !- Kusuda-Achenbach Average Amplitude of Surface Temperature {C} - 17.3, !- Kusuda-Achenbach Phase Shift of Minimum Surface Temperature {days} - 1, !- Evapotranspiration Ground Cover Parameter - GroundCoupledOSCM, !- Name of Floor Boundary Condition Model - InGrade, !- Slab Location (InGrade/OnGrade) - Slab Material-In-grade, !- Slab Material Name - Yes, !- Horizontal Insulation (Yes/No) - Slab Insulation, !- Horizontal Insulation Material Name - Full, !- Full Horizontal or Perimeter Only (Full/Perimeter) - , !- Perimeter insulation width (m) - Yes, !- Vertical Insulation (Yes/No) - Slab Insulation, !- Vertical Insulation Name - 2, !- Vertical perimeter insulation depth from surface (m) - Timestep; !- Simulation timestep. (Timestep/Hourly) + IngradeCoupledSlab, !- Name + 5, !- Month + 1, !- Day of Month + 5, !- Day Type + 1.8, !- Maximum Dry-Bulb Temperature {C} + 3200, !- Daily Dry-Bulb Temperature Range {deltaC} + 836, !- Dry-Bulb Temperature Range Modifier Type + 30, !- Dry-Bulb Temperature Range Modifier Day Schedule Name + 50, !- Humidity Condition Type + 15.5, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} + 12.8, !- Humidity Condition Day Schedule Name + 17.3, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir} + 1, !- Enthalpy at Maximum Dry-Bulb {J/kg} + GroundCoupledOSCM, !- Daily Wet-Bulb Temperature Range {deltaC} + InGrade, !- Barometric Pressure {Pa} + Slab Material-In-grade, !- Wind Speed {m/s} + Yes, !- Wind Direction {deg} + Slab Insulation, !- Rain Indicator + Full, !- Snow Indicator + , !- Daylight Saving Time Indicator + Yes, !- Solar Model Indicator + Slab Insulation, !- Beam Solar Day Schedule Name + 2, !- Diffuse Solar Day Schedule Name + Timestep; !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless} Material, WD10, !- Name @@ -370,7 +370,7 @@ 0.7500000; !- Visible Absorptance Material, - Slab Material-In-grade, !- Name + Slab Material-In-grade, !- Name MediumRough, !- Roughness 0.1397, !- Thickness {m} 1.310000, !- Conductivity {W/m-K} @@ -379,9 +379,9 @@ 0.9000000, !- Thermal Absorptance 0.6500000, !- Solar Absorptance 0.6500000; !- Visible Absorptance - + Material, - Slab Material-Top Layer, !- Name + Slab Material-Top Layer, !- Name MediumRough, !- Roughness 0.01270, !- Thickness {m} 1.310000, !- Conductivity {W/m-K} @@ -390,17 +390,17 @@ 0.9000000, !- Thermal Absorptance 0.6500000, !- Solar Absorptance 0.6500000; !- Visible Absorptance - + Material, - Slab Insulation, !- Name - Smooth, !- Roughness - 0.0254, !- Thickness {m} - 0.035, !- Conductivity {W/m-K} - 265, !- Density {kg/m3} - 1300, !- Specific Heat {J/kg-K} - 0.9, !- Thermal Absorptance - 0.65, !- Solar Absorptance - 0.65; !- Visible Absorptance + Slab Insulation, !- Name + Smooth, !- Roughness + 0.0254, !- Thickness {m} + 0.035, !- Conductivity {W/m-K} + 265, !- Density {kg/m3} + 1300, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.65, !- Solar Absorptance + 0.65; !- Visible Absorptance Material:NoMass, CP01, !- Name @@ -650,10 +650,10 @@ 0.609600067, !- Ceiling Height {m} 283.2; !- Volume {m3} -SurfaceProperty:OtherSideConditionsModel, - GroundCoupledOSCM, !- Name - GroundCoupledSurface; !- Type of Modeling - + SurfaceProperty:OtherSideConditionsModel, + GroundCoupledOSCM, !- Name + GroundCoupledSurface; !- Type of Modeling + BuildingSurface:Detailed, WALL-1PF, !- Name WALL, !- Surface Type @@ -966,8 +966,8 @@ SurfaceProperty:OtherSideConditionsModel, FLOOR, !- Surface Type FLOOR-SLAB-1, !- Construction Name SPACE1-1, !- Zone Name - OtherSideConditionsModel, !- Outside Boundary Condition - GroundCoupledOSCM, !- Outside Boundary Condition Object + OtherSideConditionsModel,!- Outside Boundary Condition + GroundCoupledOSCM, !- Outside Boundary Condition Object NoSun, !- Sun Exposure NoWind, !- Wind Exposure 0.0, !- View Factor to Ground @@ -1141,8 +1141,8 @@ SurfaceProperty:OtherSideConditionsModel, FLOOR, !- Surface Type FLOOR-SLAB-1, !- Construction Name SPACE2-1, !- Zone Name - OtherSideConditionsModel, !- Outside Boundary Condition - GroundCoupledOSCM, !- Outside Boundary Condition Object + OtherSideConditionsModel,!- Outside Boundary Condition + GroundCoupledOSCM, !- Outside Boundary Condition Object NoSun, !- Sun Exposure NoWind, !- Wind Exposure 0.0, !- View Factor to Ground @@ -1332,8 +1332,8 @@ SurfaceProperty:OtherSideConditionsModel, FLOOR, !- Surface Type FLOOR-SLAB-1, !- Construction Name SPACE3-1, !- Zone Name - OtherSideConditionsModel, !- Outside Boundary Condition - GroundCoupledOSCM, !- Outside Boundary Condition Object + OtherSideConditionsModel,!- Outside Boundary Condition + GroundCoupledOSCM, !- Outside Boundary Condition Object NoSun, !- Sun Exposure NoWind, !- Wind Exposure 0.0, !- View Factor to Ground @@ -1507,8 +1507,8 @@ SurfaceProperty:OtherSideConditionsModel, FLOOR, !- Surface Type FLOOR-SLAB-1, !- Construction Name SPACE4-1, !- Zone Name - OtherSideConditionsModel, !- Outside Boundary Condition - GroundCoupledOSCM, !- Outside Boundary Condition Object + OtherSideConditionsModel,!- Outside Boundary Condition + GroundCoupledOSCM, !- Outside Boundary Condition Object NoSun, !- Sun Exposure NoWind, !- Wind Exposure 0.0, !- View Factor to Ground @@ -1650,8 +1650,8 @@ SurfaceProperty:OtherSideConditionsModel, FLOOR, !- Surface Type FLOOR-SLAB-1, !- Construction Name SPACE5-1, !- Zone Name - OtherSideConditionsModel, !- Outside Boundary Condition - GroundCoupledOSCM, !- Outside Boundary Condition Object + OtherSideConditionsModel,!- Outside Boundary Condition + GroundCoupledOSCM, !- Outside Boundary Condition Object NoSun, !- Sun Exposure NoWind, !- Wind Exposure 0.0, !- View Factor to Ground @@ -1889,30 +1889,40 @@ SurfaceProperty:OtherSideConditionsModel, VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} DesignDay, !- Cooling Design Air Flow Method 0, !- Cooling Design Air Flow Rate {m3/s} - , ! Supply air flow rate per floor area during cooling operation - , ! fraction of autosized design cooling supply air flow rate - , ! design supply air flow rate per unit cooling capacity + , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} DesignDay, !- Heating Design Air Flow Method 0, !- Heating Design Air Flow Rate {m3/s} - , ! Supply air flow rate per floor area during heating operation - , ! Fraction of autosized design heating supply air flow rate - , ! fraction of autosized design cooling supply air flow rate - , ! design supply air flow rate per unit heating capacity - ; !- System Outdoor Air Method + , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name @@ -3387,24 +3397,25 @@ SurfaceProperty:OtherSideConditionsModel, CoolingPumpAvailSched; !- Pump Flow Rate Schedule Name Output:VariableDictionary,IDF; - + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; - + Output:Variable,*,Zone Coupled Surface Heat Flux,hourly; - + Output:Variable,*,Zone Coupled Surface Temperature,hourly; - + Output:Variable,*,Zone Air Temperature,hourly; Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; - - Output:Variable,*,Surface Other Side Conditions Modeled Convection Air Temperature,hourly; !- HVAC Average [C] - - Output:Variable,*,Surface Average Face Conduction Heat Transfer Rate per Area,hourly; !- Zone Average [W] - - Output:Diagnostics,DisplayExtraWarnings; + + Output:Variable,*,Surface Other Side Conditions Modeled Convection Air Temperature,hourly; + + Output:Variable,*,Surface Average Face Conduction Heat Transfer Rate per Area,hourly; + + Output:Diagnostics, + DisplayExtraWarnings; !- Key 1 ! The following custom meters are set up to illustrate the capabilities ! of custom meters. diff --git a/testfiles/5ZoneAirCooledWithSlab.idf b/testfiles/5ZoneAirCooledWithSlab.idf index e3fc09936be..ff0feed99a1 100644 --- a/testfiles/5ZoneAirCooledWithSlab.idf +++ b/testfiles/5ZoneAirCooledWithSlab.idf @@ -1957,14 +1957,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1980,7 +1980,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooled_UniformLoading.idf b/testfiles/5ZoneAirCooled_UniformLoading.idf index cd5e6ca6810..f30f6287986 100644 --- a/testfiles/5ZoneAirCooled_UniformLoading.idf +++ b/testfiles/5ZoneAirCooled_UniformLoading.idf @@ -1891,14 +1891,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1914,7 +1914,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooled_VRPSizing.idf b/testfiles/5ZoneAirCooled_VRPSizing.idf index 0fc5c79e23a..653eb6494cb 100644 --- a/testfiles/5ZoneAirCooled_VRPSizing.idf +++ b/testfiles/5ZoneAirCooled_VRPSizing.idf @@ -1920,14 +1920,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1943,7 +1943,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - VentilationRateProcedure;!- System Outdoor Air Method + VentilationRateProcedure,!- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooled_VRPSizing_MaxZd.idf b/testfiles/5ZoneAirCooled_VRPSizing_MaxZd.idf index 1b787b0a1b6..fabf4d39c01 100644 --- a/testfiles/5ZoneAirCooled_VRPSizing_MaxZd.idf +++ b/testfiles/5ZoneAirCooled_VRPSizing_MaxZd.idf @@ -1923,14 +1923,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1947,7 +1947,16 @@ , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} VentilationRateProcedure,!- System Outdoor Air Method - 0.6; !- Zone Maximum Outdoor Air Fraction {dimensionless} + 0.6, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf b/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf index 6cee0738f77..dc091495cb2 100644 --- a/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf +++ b/testfiles/5ZoneAirCooled_ZoneAirMassFlowBalance.idf @@ -8,9 +8,9 @@ ! Basic file description: 1 story building divided into 4 exterior and one interior conditioned zones and return plenum. ! ! Highlights: Zone Air Mass Flow Conservation calculation. The interior (core) zone is connected to each of the -! the four perimeter zones using ZoneMixing Objects. Zone Mixing air flow from the perimeter zones -! to the core zone is driven by an exhaust fan in the core zone. Additional infiltration is drawn in -! to the perimeter zones when required to balance the zone air mass flow. +! the four perimeter zones using ZoneMixing Objects. Zone Mixing air flow from the perimeter zones +! to the core zone is driven by an exhaust fan in the core zone. Additional infiltration is drawn in +! to the perimeter zones when required to balance the zone air mass flow. ! ! ! Simulation Location/Run: CHICAGO_IL_USA TMY2-94846, 2 design days, 2 run periods, @@ -120,9 +120,9 @@ Timestep,4; ZoneAirMassFlowConservation, - Yes, !- Adjust Zone Mixing For Zone Air Mass Flow Balance - AddInfiltrationFlow; !- Source Zone Infiltration Treatment - + Yes, !- Adjust Zone Mixing For Zone Air Mass Flow Balance + AddInfiltrationFlow; !- Source Zone Infiltration Treatment + SurfaceConvectionAlgorithm:Inside,Simple; SurfaceConvectionAlgorithm:Outside,SimpleCombined; @@ -168,8 +168,7 @@ 10, !- Upper Limit Value CONTINUOUS; !- Numeric Type - - RunPeriod, + RunPeriod, WinterRunPeriod, !- Name 1, !- Begin Month 1, !- Begin Day of Month @@ -182,8 +181,7 @@ Yes, !- Use Weather File Rain Indicators Yes; !- Use Weather File Snow Indicators - - RunPeriod, + RunPeriod, SummerRunPeriod, !- Name 7, !- Begin Month 1, !- Begin Day of Month @@ -196,7 +194,6 @@ Yes, !- Use Weather File Rain Indicators Yes; !- Use Weather File Snow Indicators - Site:Location, CHICAGO_IL_USA TMY2-94846, !- Name 41.78, !- Latitude {deg} @@ -444,7 +441,6 @@ ! Construction, ! SB-U, !- Name ! MAT-SB-U; !- Outside Layer - ! Construction, ! FLOOR-1, !- Name ! MAT-FLOOR-1; !- Outside Layer @@ -559,7 +555,6 @@ ! CLEAR 6MM, !- Outside Layer ! AIR 6MM, !- Layer 2 ! CLEAR 6MM; !- Layer 3 - ! Construction, ! Dbl LoE (e2=.1) Clr 6mm/6mm Air, !- Name ! LoE CLEAR 6MM, !- Outside Layer @@ -1606,7 +1601,6 @@ 2.438400269, !- Ceiling Height {m} 447.682556152; !- Volume {m3} - ! ***TRANSFER AIR*** ZoneMixing, @@ -1628,7 +1622,6 @@ , !- Minimum Outdoor Temperature Schedule Name ; !- Maximum Outdoor Temperature Schedule Name - ZoneMixing, SPACE5-1 Zone Mixing2, !- Name SPACE5-1, !- Zone Name @@ -1648,7 +1641,6 @@ , !- Minimum Outdoor Temperature Schedule Name ; !- Maximum Outdoor Temperature Schedule Name - ZoneMixing, SPACE5-1 Zone Mixing3, !- Name SPACE5-1, !- Zone Name @@ -1690,13 +1682,13 @@ Fan:ZoneExhaust, SPACE5-1 Exhaust Fan, !- Name ExhaustFan-SCH, !- Availability Schedule Name - 1.0, !- Fan Efficiency + 1.0, !- Fan Total Efficiency 1.0e-006, !- Pressure Rise {Pa} 0.20, !- Maximum Flow Rate {m3/s} SPACE5-1 Exhaust Fan Node, !- Air Inlet Node Name SPACE5-1 Exhaust Fan Outlet Node, !- Air Outlet Node Name Zone Exhaust Fans, !- End-Use Subcategory - , !- Flow Fraction Schedule Name + , !- Flow Fraction Schedule Name Decoupled; !- System Availability Manager Coupling Mode People, @@ -1997,14 +1989,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2012,15 +2004,25 @@ DesignDay, !- Cooling Design Air Flow Method , !- Cooling Design Air Flow Rate {m3/s} , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate {-} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} DesignDay, !- Heating Design Air Flow Method , !- Heating Design Air Flow Rate {m3/s} , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} - , !- Fraction of Autosized Design Heating Supply Air Flow Rate {-} - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate {-} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name @@ -2253,7 +2255,7 @@ SPACE5-1, !- Zone Name SPACE5-1 Eq, !- Zone Conditioning Equipment List Name SPACE5-1 In Node, !- Zone Air Inlet Node or NodeList Name - SPACE5-1 Exhaust Fan Node, !- Zone Air Exhaust Node or NodeList Name + SPACE5-1 Exhaust Fan Node, !- Zone Air Exhaust Node or NodeList Name SPACE5-1 Node, !- Zone Air Node Name SPACE5-1 Out Node; !- Zone Return Air Node Name @@ -2367,10 +2369,10 @@ SPACE5-1 ATU, !- Zone Equipment 1 Name 1, !- Zone Equipment 1 Cooling Sequence 1, !- Zone Equipment 1 Heating or No-Load Sequence - Fan:ZoneExhaust, !- Zone Equipment 1 Object Type - SPACE5-1 Exhaust Fan, !- Zone Equipment 1 Name - 2, !- Zone Equipment 1 Cooling Sequence - 2; !- Zone Equipment 1 Heating or No-Load Sequence + Fan:ZoneExhaust, !- Zone Equipment 2 Object Type + SPACE5-1 Exhaust Fan, !- Zone Equipment 2 Name + 2, !- Zone Equipment 2 Cooling Sequence + 2; !- Zone Equipment 2 Heating or No-Load Sequence ZoneHVAC:AirDistributionUnit, SPACE1-1 ATU, !- Name @@ -2759,7 +2761,6 @@ SimpleAnalysis, !- Type of Analysis CrossFlow; !- Heat Exchanger Configuration - Coil:Heating:Water, Main Heating Coil 1, !- Name ReheatCoilAvailSched, !- Availability Schedule Name @@ -2780,7 +2781,7 @@ Fan:VariableVolume, Supply Fan 1, !- Name FanAvailSched, !- Availability Schedule Name - 0.7, !- Fan Efficiency + 0.7, !- Fan Total Efficiency 600.0, !- Pressure Rise {Pa} autosize, !- Maximum Flow Rate {m3/s} Fraction, !- Fan Power Minimum Flow Rate Input Method @@ -2910,7 +2911,7 @@ HW Demand Outlet Node, !- Demand Side Outlet Node Name Heating Demand Side Branches, !- Demand Side Branch List Name Heating Demand Side Connectors, !- Demand Side Connector List Name - SequentialLoad; !- Load Distribution Scheme + SequentialLoad; !- Load Distribution Scheme SetpointManager:Scheduled, Hot Water Loop Setpoint Manager, !- Name @@ -3236,7 +3237,7 @@ CW Demand Outlet Node, !- Demand Side Outlet Node Name Cooling Demand Side Branches, !- Demand Side Branch List Name Cooling Demand Side Connectors, !- Demand Side Connector List Name - SequentialLoad, !- Load Distribution Scheme + SequentialLoad, !- Load Distribution Scheme CW Avail List; !- Availability Manager List Name AvailabilityManagerAssignmentList, @@ -3499,9 +3500,6 @@ INTERMITTENT, !- Pump Control Type CoolingPumpAvailSched; !- Pump Flow Rate Schedule Name - - - ! The following custom meters are set up to illustrate the capabilities ! of custom meters. ! Custom Meter "MyGeneralLights" duplicates the InteriorLights:Electricity meter. @@ -3548,64 +3546,103 @@ ZoneComponentLoadSummary;!- Report 2 Name Output:Surfaces:List,Details; - + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + Output:Variable,SPACE1-1,Zone Mean Air Temperature,hourly; - Output:Variable,SPACE2-1,Zone Mean Air Temperature,hourly; - Output:Variable,SPACE3-1,Zone Mean Air Temperature,hourly; - Output:Variable,SPACE4-1,Zone Mean Air Temperature,hourly; + + Output:Variable,SPACE2-1,Zone Mean Air Temperature,hourly; + + Output:Variable,SPACE3-1,Zone Mean Air Temperature,hourly; + + Output:Variable,SPACE4-1,Zone Mean Air Temperature,hourly; + Output:Variable,SPACE5-1,Zone Mean Air Temperature,hourly; - - Output:Variable,SPACE1-1,Zone Supply Air Mass Flow Rate, hourly; - Output:Variable,SPACE1-1,Zone Exhaust Air Mass Flow Rate, hourly; - Output:Variable,SPACE1-1,Zone Return Air Mass Flow Rate, hourly; - Output:Variable,SPACE1-1,Zone Mixing Receiving Air Mass Flow Rate, hourly; - Output:Variable,SPACE1-1,Zone Mixing Source Air Mass Flow Rate, hourly; - Output:Variable,SPACE1-1,Zone Mass Balance Infiltration Air Mass Flow Rate, hourly; - - Output:Variable,SPACE2-1,Zone Supply Air Mass Flow Rate, hourly; - Output:Variable,SPACE2-1,Zone Exhaust Air Mass Flow Rate, hourly; - Output:Variable,SPACE2-1,Zone Return Air Mass Flow Rate, hourly; - Output:Variable,SPACE2-1,Zone Mixing Receiving Air Mass Flow Rate, hourly; - Output:Variable,SPACE2-1,Zone Mixing Source Air Mass Flow Rate, hourly; - Output:Variable,SPACE2-1,Zone Mass Balance Infiltration Air Mass Flow Rate, hourly; - - Output:Variable,SPACE3-1,Zone Supply Air Mass Flow Rate, hourly; - Output:Variable,SPACE3-1,Zone Exhaust Air Mass Flow Rate, hourly; - Output:Variable,SPACE3-1,Zone Return Air Mass Flow Rate, hourly; - Output:Variable,SPACE3-1,Zone Mixing Receiving Air Mass Flow Rate, hourly; - Output:Variable,SPACE3-1,Zone Mixing Source Air Mass Flow Rate, hourly; - Output:Variable,SPACE3-1,Zone Mass Balance Infiltration Air Mass Flow Rate, hourly; - - Output:Variable,SPACE4-1,Zone Supply Air Mass Flow Rate, hourly; - Output:Variable,SPACE4-1,Zone Exhaust Air Mass Flow Rate, hourly; - Output:Variable,SPACE4-1,Zone Return Air Mass Flow Rate, hourly; - Output:Variable,SPACE4-1,Zone Mixing Receiving Air Mass Flow Rate, hourly; - Output:Variable,SPACE4-1,Zone Mixing Source Air Mass Flow Rate, hourly; - Output:Variable,SPACE4-1,Zone Mass Balance Infiltration Air Mass Flow Rate, hourly; - - Output:Variable,SPACE5-1,Zone Supply Air Mass Flow Rate, hourly; - Output:Variable,SPACE5-1,Zone Exhaust Air Mass Flow Rate, hourly; - Output:Variable,SPACE5-1,Zone Return Air Mass Flow Rate, hourly; - Output:Variable,SPACE5-1,Zone Mixing Receiving Air Mass Flow Rate, hourly; - Output:Variable,SPACE5-1,Zone Mixing Source Air Mass Flow Rate, hourly; + + Output:Variable,SPACE1-1,Zone Supply Air Mass Flow Rate,hourly; + + Output:Variable,SPACE1-1,Zone Exhaust Air Mass Flow Rate,hourly; + + Output:Variable,SPACE1-1,Zone Return Air Mass Flow Rate,hourly; + + Output:Variable,SPACE1-1,Zone Mixing Receiving Air Mass Flow Rate,hourly; + + Output:Variable,SPACE1-1,Zone Mixing Source Air Mass Flow Rate,hourly; + + Output:Variable,SPACE1-1,Zone Mass Balance Infiltration Air Mass Flow Rate,hourly; + + Output:Variable,SPACE2-1,Zone Supply Air Mass Flow Rate,hourly; + + Output:Variable,SPACE2-1,Zone Exhaust Air Mass Flow Rate,hourly; + + Output:Variable,SPACE2-1,Zone Return Air Mass Flow Rate,hourly; + + Output:Variable,SPACE2-1,Zone Mixing Receiving Air Mass Flow Rate,hourly; + + Output:Variable,SPACE2-1,Zone Mixing Source Air Mass Flow Rate,hourly; + + Output:Variable,SPACE2-1,Zone Mass Balance Infiltration Air Mass Flow Rate,hourly; + + Output:Variable,SPACE3-1,Zone Supply Air Mass Flow Rate,hourly; + + Output:Variable,SPACE3-1,Zone Exhaust Air Mass Flow Rate,hourly; + + Output:Variable,SPACE3-1,Zone Return Air Mass Flow Rate,hourly; + + Output:Variable,SPACE3-1,Zone Mixing Receiving Air Mass Flow Rate,hourly; + + Output:Variable,SPACE3-1,Zone Mixing Source Air Mass Flow Rate,hourly; + + Output:Variable,SPACE3-1,Zone Mass Balance Infiltration Air Mass Flow Rate,hourly; + + Output:Variable,SPACE4-1,Zone Supply Air Mass Flow Rate,hourly; + + Output:Variable,SPACE4-1,Zone Exhaust Air Mass Flow Rate,hourly; + + Output:Variable,SPACE4-1,Zone Return Air Mass Flow Rate,hourly; + + Output:Variable,SPACE4-1,Zone Mixing Receiving Air Mass Flow Rate,hourly; + + Output:Variable,SPACE4-1,Zone Mixing Source Air Mass Flow Rate,hourly; + + Output:Variable,SPACE4-1,Zone Mass Balance Infiltration Air Mass Flow Rate,hourly; + + Output:Variable,SPACE5-1,Zone Supply Air Mass Flow Rate,hourly; + + Output:Variable,SPACE5-1,Zone Exhaust Air Mass Flow Rate,hourly; + + Output:Variable,SPACE5-1,Zone Return Air Mass Flow Rate,hourly; + + Output:Variable,SPACE5-1,Zone Mixing Receiving Air Mass Flow Rate,hourly; + + Output:Variable,SPACE5-1,Zone Mixing Source Air Mass Flow Rate,hourly; + !Output:Variable,SPACE5-1,Zone Mass Balance Infiltration Air Mass Flow Rate, hourly; - - + Output:Variable,SPACE1-1 In Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE1-1 Out Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE2-1 In Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE2-1 Out Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE3-1 In Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE3-1 Out Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE4-1 In Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE4-1 Out Node,System Node Mass Flow Rate,hourly; + Output:Variable,SPACE5-1 In Node,System Node Mass Flow Rate,hourly; - Output:Variable,SPACE5-1 Out Node,System Node Mass Flow Rate,hourly; - Output:Variable,SPACE5-1 Exhaust Fan Node,System Node Mass Flow Rate,hourly; - - Output:Variable,*,Zone Infiltration Standard Density Volume Flow Rate,hourly; - Output:Variable,*,Zone Infiltration Air Mass Flow Balance Status,hourly; - + Output:Variable,SPACE5-1 Out Node,System Node Mass Flow Rate,hourly; + + Output:Variable,SPACE5-1 Exhaust Fan Node,System Node Mass Flow Rate,hourly; + + Output:Variable,*,Zone Infiltration Standard Density Volume Flow Rate,hourly; + + Output:Variable,*,Zone Infiltration Air Mass Flow Balance Status,hourly; + !Output:Diagnostics,DisplayExtraWarnings; diff --git a/testfiles/5ZoneAutoDXVAV.idf b/testfiles/5ZoneAutoDXVAV.idf index 4a028d3282c..d3ac25d8963 100644 --- a/testfiles/5ZoneAutoDXVAV.idf +++ b/testfiles/5ZoneAutoDXVAV.idf @@ -1891,14 +1891,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 16., !- Central Cooling Design Supply Air Temperature {C} 18., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.009, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1914,7 +1914,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Schedule:Compact, Htg-SetP-Sch, !- Name diff --git a/testfiles/5ZoneBoilerOutsideAirReset.idf b/testfiles/5ZoneBoilerOutsideAirReset.idf index 16b01b6a6f1..afcb420ccb8 100644 --- a/testfiles/5ZoneBoilerOutsideAirReset.idf +++ b/testfiles/5ZoneBoilerOutsideAirReset.idf @@ -1910,14 +1910,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1933,7 +1933,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneBranchSupplyPumps.idf b/testfiles/5ZoneBranchSupplyPumps.idf index ca5d6578f0d..b3187ba671b 100644 --- a/testfiles/5ZoneBranchSupplyPumps.idf +++ b/testfiles/5ZoneBranchSupplyPumps.idf @@ -1882,14 +1882,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1905,7 +1905,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneCAV_MaxTemp.idf b/testfiles/5ZoneCAV_MaxTemp.idf index c6efe0b2712..fc47d47c7b5 100644 --- a/testfiles/5ZoneCAV_MaxTemp.idf +++ b/testfiles/5ZoneCAV_MaxTemp.idf @@ -2090,14 +2090,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling yes, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2113,7 +2113,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneCAVtoVAVWarmestTempFlow.idf b/testfiles/5ZoneCAVtoVAVWarmestTempFlow.idf index bf084eb4435..188c9565989 100644 --- a/testfiles/5ZoneCAVtoVAVWarmestTempFlow.idf +++ b/testfiles/5ZoneCAVtoVAVWarmestTempFlow.idf @@ -2083,14 +2083,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2106,7 +2106,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneCoolBeam.idf b/testfiles/5ZoneCoolBeam.idf index a1d20119767..4d5f7f9e46f 100644 --- a/testfiles/5ZoneCoolBeam.idf +++ b/testfiles/5ZoneCoolBeam.idf @@ -2033,14 +2033,14 @@ VAV Sys 1, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 21.0, !- Central Cooling Design Supply Air Temperature {C} 21.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2056,7 +2056,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneCostEst.idf b/testfiles/5ZoneCostEst.idf index 15e6e43b4a3..0258eb29e8e 100644 --- a/testfiles/5ZoneCostEst.idf +++ b/testfiles/5ZoneCostEst.idf @@ -3193,14 +3193,14 @@ VAV SYS 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3216,7 +3216,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV SYS 1, !- Name diff --git a/testfiles/5ZoneDDCycOnAny.idf b/testfiles/5ZoneDDCycOnAny.idf index 6063b5d659d..7f51baf30ca 100644 --- a/testfiles/5ZoneDDCycOnAny.idf +++ b/testfiles/5ZoneDDCycOnAny.idf @@ -2119,14 +2119,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.468, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2142,7 +2142,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/5ZoneDDCycOnOne.idf b/testfiles/5ZoneDDCycOnOne.idf index 4779bb6bbdd..24ff8ef7f86 100644 --- a/testfiles/5ZoneDDCycOnOne.idf +++ b/testfiles/5ZoneDDCycOnOne.idf @@ -2119,14 +2119,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.468, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2142,7 +2142,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/5ZoneDesignInputCoolingCoil.idf b/testfiles/5ZoneDesignInputCoolingCoil.idf index 59f7015ae7f..cc95afd5295 100644 --- a/testfiles/5ZoneDesignInputCoolingCoil.idf +++ b/testfiles/5ZoneDesignInputCoolingCoil.idf @@ -1870,14 +1870,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1893,7 +1893,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneDetailedIceStorage.idf b/testfiles/5ZoneDetailedIceStorage.idf index 584ad17e8f0..eef1aae8628 100644 --- a/testfiles/5ZoneDetailedIceStorage.idf +++ b/testfiles/5ZoneDetailedIceStorage.idf @@ -1818,14 +1818,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1841,7 +1841,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneDetailedIceStorage2.idf b/testfiles/5ZoneDetailedIceStorage2.idf index 2e7087336d7..0b4780c7025 100644 --- a/testfiles/5ZoneDetailedIceStorage2.idf +++ b/testfiles/5ZoneDetailedIceStorage2.idf @@ -1818,14 +1818,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1841,7 +1841,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneEconomicsTariffAndLifeCycleCosts.idf b/testfiles/5ZoneEconomicsTariffAndLifeCycleCosts.idf index 748cc3f4e7b..b9728755954 100644 --- a/testfiles/5ZoneEconomicsTariffAndLifeCycleCosts.idf +++ b/testfiles/5ZoneEconomicsTariffAndLifeCycleCosts.idf @@ -1870,14 +1870,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1893,7 +1893,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name @@ -5077,7 +5087,7 @@ LifeCycleCost:UsePriceEscalation, MidWest Commercial-Electricity, !- Name - ElectricityPurchased, + ElectricityPurchased, !- Resource 2012, !- Escalation Start Year January, !- Escalation Start Month 1.0072, !- Year 1 Escalation @@ -5113,7 +5123,7 @@ LifeCycleCost:UsePriceEscalation, MidWest Commercial-Electricity, !- Name - ElectricitySurplusSold, + ElectricitySurplusSold, !- Resource 2012, !- Escalation Start Year January, !- Escalation Start Month 1.0072, !- Year 1 Escalation diff --git a/testfiles/5ZoneElectricBaseboard.idf b/testfiles/5ZoneElectricBaseboard.idf index fc8e700c29b..9ec73a2b093 100644 --- a/testfiles/5ZoneElectricBaseboard.idf +++ b/testfiles/5ZoneElectricBaseboard.idf @@ -2103,14 +2103,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2126,7 +2126,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: SIZING:PLANT =========== diff --git a/testfiles/5ZoneEndUses.idf b/testfiles/5ZoneEndUses.idf index 41a40c0abcb..ec7394a201e 100644 --- a/testfiles/5ZoneEndUses.idf +++ b/testfiles/5ZoneEndUses.idf @@ -2121,14 +2121,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 16., !- Central Cooling Design Supply Air Temperature {C} 18., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.009, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2144,7 +2144,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Schedule:Compact, Htg-SetP-Sch, !- Name diff --git a/testfiles/5ZoneEngChill.idf b/testfiles/5ZoneEngChill.idf index cb043c10a44..eb31a0338f7 100644 --- a/testfiles/5ZoneEngChill.idf +++ b/testfiles/5ZoneEngChill.idf @@ -2041,14 +2041,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2064,7 +2064,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneFPIU.idf b/testfiles/5ZoneFPIU.idf index 544aa632bfc..3945e239996 100644 --- a/testfiles/5ZoneFPIU.idf +++ b/testfiles/5ZoneFPIU.idf @@ -2055,14 +2055,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.4, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2078,7 +2078,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneGeometryTransform.idf b/testfiles/5ZoneGeometryTransform.idf index c32e2600847..32341a93089 100644 --- a/testfiles/5ZoneGeometryTransform.idf +++ b/testfiles/5ZoneGeometryTransform.idf @@ -2119,14 +2119,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 16., !- Central Cooling Design Supply Air Temperature {C} 18., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.009, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2142,7 +2142,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Schedule:Compact, Htg-SetP-Sch, !- Name diff --git a/testfiles/5ZoneIceStorage.idf b/testfiles/5ZoneIceStorage.idf index 39b78ab1a27..2308fe3fcd1 100644 --- a/testfiles/5ZoneIceStorage.idf +++ b/testfiles/5ZoneIceStorage.idf @@ -1899,14 +1899,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1922,7 +1922,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneNightVent1.idf b/testfiles/5ZoneNightVent1.idf index ce4cc022607..c2ae5637f98 100644 --- a/testfiles/5ZoneNightVent1.idf +++ b/testfiles/5ZoneNightVent1.idf @@ -2028,14 +2028,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2051,7 +2051,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneNightVent2.idf b/testfiles/5ZoneNightVent2.idf index 86a05daaecd..af002545229 100644 --- a/testfiles/5ZoneNightVent2.idf +++ b/testfiles/5ZoneNightVent2.idf @@ -2408,14 +2408,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2431,7 +2431,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneNightVent3.idf b/testfiles/5ZoneNightVent3.idf index 109192efcb8..e121ac5e388 100644 --- a/testfiles/5ZoneNightVent3.idf +++ b/testfiles/5ZoneNightVent3.idf @@ -2066,14 +2066,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2089,7 +2089,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneReturnFan.idf b/testfiles/5ZoneReturnFan.idf index f570c137d5c..26cffb38ae0 100644 --- a/testfiles/5ZoneReturnFan.idf +++ b/testfiles/5ZoneReturnFan.idf @@ -2041,14 +2041,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2064,7 +2064,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneSteamBaseboard.idf b/testfiles/5ZoneSteamBaseboard.idf index 262448f660b..47e320b2850 100644 --- a/testfiles/5ZoneSteamBaseboard.idf +++ b/testfiles/5ZoneSteamBaseboard.idf @@ -2144,14 +2144,14 @@ VAV SYS 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2167,7 +2167,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! Single Chiller Supply ! Chiller Parameters for DistrictCooling diff --git a/testfiles/5ZoneSupRetPlenRAB.idf b/testfiles/5ZoneSupRetPlenRAB.idf index 5cd9e18631a..da6b1104913 100644 --- a/testfiles/5ZoneSupRetPlenRAB.idf +++ b/testfiles/5ZoneSupRetPlenRAB.idf @@ -2240,14 +2240,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.0, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2263,7 +2263,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneSupRetPlenVSATU.idf b/testfiles/5ZoneSupRetPlenVSATU.idf index a23e6ce5c8b..6edad1a1105 100644 --- a/testfiles/5ZoneSupRetPlenVSATU.idf +++ b/testfiles/5ZoneSupRetPlenVSATU.idf @@ -2460,14 +2460,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 17.2, !- Central Cooling Design Supply Air Temperature {C} 17.2, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2483,7 +2483,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneSwimmingPool.idf b/testfiles/5ZoneSwimmingPool.idf index eff1cabac8e..04633288910 100644 --- a/testfiles/5ZoneSwimmingPool.idf +++ b/testfiles/5ZoneSwimmingPool.idf @@ -1920,7 +1920,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneTDV.idf b/testfiles/5ZoneTDV.idf index 067b35dbc5a..c94f5176061 100644 --- a/testfiles/5ZoneTDV.idf +++ b/testfiles/5ZoneTDV.idf @@ -1868,14 +1868,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1891,7 +1891,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed.idf b/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed.idf index cf5ac6b1df1..f56b95a9b4b 100644 --- a/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed.idf +++ b/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed.idf @@ -3737,14 +3737,14 @@ VAV WITH REHEAT, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio -10.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3760,7 +3760,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV WITH REHEAT Availability Manager List, !- Name diff --git a/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MaxZd.idf b/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MaxZd.idf index af1ba0115a1..654310c85ae 100644 --- a/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MaxZd.idf +++ b/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MaxZd.idf @@ -1571,8 +1571,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_1,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -2063,8 +2063,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_2,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -2514,8 +2514,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_3,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -2984,8 +2984,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_4,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -3547,8 +3547,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_5,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -3753,14 +3753,14 @@ VAV WITH REHEAT, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio -10.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3777,7 +3777,16 @@ , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} VentilationRateProcedure,!- System Outdoor Air Method - 0.3; !- Zone Maximum Outdoor Air Fraction {dimensionless} + 0.3, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV WITH REHEAT Availability Manager List, !- Name diff --git a/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MultiPath.idf b/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MultiPath.idf index 552b23c880c..42765e75297 100644 --- a/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MultiPath.idf +++ b/testfiles/5ZoneVAV-ChilledWaterStorage-Mixed_DCV_MultiPath.idf @@ -1571,8 +1571,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_1,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -2063,8 +2063,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_2,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -2514,8 +2514,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_3,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -2984,8 +2984,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_4,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -3547,8 +3547,8 @@ DesignSpecification:OutdoorAir, SZ DSOA ZN_1_FLR_1_SEC_5,!- Name - FLOW/ZONE, !- Outdoor Air Method - , !- Outdoor Air Flow per Person {m3/s-person} + Flow/Person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} 0.0; !- Outdoor Air Flow per Zone {m3/s} @@ -3753,14 +3753,14 @@ VAV WITH REHEAT, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio -10.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3777,7 +3777,16 @@ , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} VentilationRateProcedure,!- System Outdoor Air Method - 1.0; !- Zone Maximum Outdoor Air Fraction {dimensionless} + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV WITH REHEAT Availability Manager List, !- Name diff --git a/testfiles/5ZoneVAV-ChilledWaterStorage-Stratified.idf b/testfiles/5ZoneVAV-ChilledWaterStorage-Stratified.idf index 1325f7ba832..dc096272eff 100644 --- a/testfiles/5ZoneVAV-ChilledWaterStorage-Stratified.idf +++ b/testfiles/5ZoneVAV-ChilledWaterStorage-Stratified.idf @@ -3723,14 +3723,14 @@ VAV WITH REHEAT, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio -10.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3746,7 +3746,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV WITH REHEAT Availability Manager List, !- Name diff --git a/testfiles/5ZoneVAV-Pri-SecLoop.idf b/testfiles/5ZoneVAV-Pri-SecLoop.idf index e4f9a0cf5c4..98eecc979ff 100644 --- a/testfiles/5ZoneVAV-Pri-SecLoop.idf +++ b/testfiles/5ZoneVAV-Pri-SecLoop.idf @@ -2416,14 +2416,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 14, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2439,7 +2439,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 1, !- Name diff --git a/testfiles/5ZoneWLHPPlantLoopTower.idf b/testfiles/5ZoneWLHPPlantLoopTower.idf index 7b8ee4f35dd..84684fb46a3 100644 --- a/testfiles/5ZoneWLHPPlantLoopTower.idf +++ b/testfiles/5ZoneWLHPPlantLoopTower.idf @@ -2089,14 +2089,14 @@ AHU 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2112,7 +2112,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 1, !- Name @@ -2337,14 +2347,14 @@ AHU 2, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2360,7 +2370,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 2, !- Name @@ -2582,14 +2602,14 @@ AHU 3, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2605,7 +2625,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 3, !- Name @@ -2827,14 +2857,14 @@ AHU 4, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2850,7 +2880,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 4, !- Name @@ -3072,14 +3112,14 @@ AHU 5, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3095,7 +3135,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 5, !- Name diff --git a/testfiles/5ZoneWarmest.idf b/testfiles/5ZoneWarmest.idf index 91afc240505..b5d48ada528 100644 --- a/testfiles/5ZoneWarmest.idf +++ b/testfiles/5ZoneWarmest.idf @@ -2065,14 +2065,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2088,7 +2088,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneWarmestVFD.idf b/testfiles/5ZoneWarmestVFD.idf index b66eb7b8573..2e21d66aebb 100644 --- a/testfiles/5ZoneWarmestVFD.idf +++ b/testfiles/5ZoneWarmestVFD.idf @@ -2071,14 +2071,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2094,7 +2094,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneWarmestVFD_FCMAuto.idf b/testfiles/5ZoneWarmestVFD_FCMAuto.idf index 5fb187095fb..e1c756399a3 100644 --- a/testfiles/5ZoneWarmestVFD_FCMAuto.idf +++ b/testfiles/5ZoneWarmestVFD_FCMAuto.idf @@ -2052,14 +2052,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2075,7 +2075,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneWaterCooled_Baseboard.idf b/testfiles/5ZoneWaterCooled_Baseboard.idf index 977a308c056..1a175f5484f 100644 --- a/testfiles/5ZoneWaterCooled_Baseboard.idf +++ b/testfiles/5ZoneWaterCooled_Baseboard.idf @@ -2096,14 +2096,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2119,7 +2119,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: SIZING:PLANT =========== diff --git a/testfiles/5ZoneWaterCooled_BaseboardScalableSizing.idf b/testfiles/5ZoneWaterCooled_BaseboardScalableSizing.idf index a4ee2fcca4f..120023a3dcf 100644 --- a/testfiles/5ZoneWaterCooled_BaseboardScalableSizing.idf +++ b/testfiles/5ZoneWaterCooled_BaseboardScalableSizing.idf @@ -9,7 +9,7 @@ ! Basic file description: 1 story building divided into 4 exterior and one interior conditioned zones and return plenum. ! ! Highlights: Demonstrates scalable system sizing. This test file is based on 5ZoneWaterCooled_Baseboard example.idf file -! +! ! ! Simulation Location/Run: CHICAGO_IL_USA TMY2-94846, 2 design days, 2 run periods, ! Run Control executes the run periods using the weather file @@ -2098,14 +2098,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2113,24 +2113,25 @@ FlowPerCoolingCapacity, !- Cooling Design Air Flow Method , !- Cooling Design Air Flow Rate {m3/s} , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate {-} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate 3.9475456E-5, !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} FlowPerHeatingCapacity, !- Heating Design Air Flow Method , !- Heating Design Air Flow Rate {m3/s} , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} - , !- Fraction of Autosized Design Heating Supply Air Flow Rate {-} - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate {-} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate 3.1588213E-5, !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} , !- System Outdoor Air Method - , !- Zone Maximum Outdoor Air Fraction - FractionOfAutosizedCoolingCapacity, !- Cooling Design Capacity Method + , !- Zone Maximum Outdoor Air Fraction {dimensionless} + FractionOfAutosizedCoolingCapacity, !- Cooling Design Capacity Method , !- Cooling Design Capacity {W} , !- Cooling Design Capacity Per Floor Area {W/m2} - 1., !- Fraction of Autosized Cooling Design Capacity {-} - FractionOfAutosizedHeatingCapacity, !- Heating Design Capacity Method + 1., !- Fraction of Autosized Cooling Design Capacity + FractionOfAutosizedHeatingCapacity, !- Heating Design Capacity Method , !- Heating Design Capacity {W} , !- Heating Design Capacity Per Floor Area {W/m2} - 1.0; !- Fraction of Autosized Heating Design Capacity {-} + 1.0, !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: SIZING:PLANT =========== @@ -2213,9 +2214,9 @@ 87.78, !- Rated Average Water Temperature {C} 0.063, !- Rated Water Mass Flow Rate {Kg/s} HeatingDesignCapacity, !- Heating Design Capacity Method - autosize, !- Heating Design Capacity{ W } - , !- Heating Design Capacity Per Floor Area{ W / m2 } - , !- Fraction of Autosized Heating Design Capacity{ -} + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity autosize, !- Maximum Water Flow Rate {m3/s} 0.001, !- Convergence Tolerance 0.3, !- Fraction Radiant @@ -2235,9 +2236,9 @@ 82.22, !- Rated Average Water Temperature {C} 0.063, !- Rated Water Mass Flow Rate {Kg/s} HeatingDesignCapacity, !- Heating Design Capacity Method - autosize, !- Heating Design Capacity{ W } - , !- Heating Design Capacity Per Floor Area{ W / m2 } - , !- Fraction of Autosized Heating Design Capacity{ -} + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity autosize, !- Maximum Water Flow Rate {m3/s} 0.001, !- Convergence Tolerance 0.3, !- Fraction Radiant diff --git a/testfiles/5ZoneWaterCooled_HighRHControl.idf b/testfiles/5ZoneWaterCooled_HighRHControl.idf index b8182639d7e..c5772ae702b 100644 --- a/testfiles/5ZoneWaterCooled_HighRHControl.idf +++ b/testfiles/5ZoneWaterCooled_HighRHControl.idf @@ -1893,14 +1893,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1916,7 +1916,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneWaterCooled_MultizoneAverageRHControl.idf b/testfiles/5ZoneWaterCooled_MultizoneAverageRHControl.idf index 6405009143f..87b35e033a0 100644 --- a/testfiles/5ZoneWaterCooled_MultizoneAverageRHControl.idf +++ b/testfiles/5ZoneWaterCooled_MultizoneAverageRHControl.idf @@ -1909,14 +1909,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1932,7 +1932,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneWaterCooled_MultizoneMinMaxRHControl.idf b/testfiles/5ZoneWaterCooled_MultizoneMinMaxRHControl.idf index 05a414d7987..8cc3c84867f 100644 --- a/testfiles/5ZoneWaterCooled_MultizoneMinMaxRHControl.idf +++ b/testfiles/5ZoneWaterCooled_MultizoneMinMaxRHControl.idf @@ -1909,14 +1909,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1932,7 +1932,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/5ZoneWaterLoopHeatPump.idf b/testfiles/5ZoneWaterLoopHeatPump.idf index ba929b26dcd..5d147584233 100644 --- a/testfiles/5ZoneWaterLoopHeatPump.idf +++ b/testfiles/5ZoneWaterLoopHeatPump.idf @@ -2003,14 +2003,14 @@ AHU 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2026,7 +2026,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 1, !- Name @@ -2251,14 +2261,14 @@ AHU 2, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2274,7 +2284,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 2, !- Name @@ -2496,14 +2516,14 @@ AHU 3, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2519,7 +2539,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 3, !- Name @@ -2741,14 +2771,14 @@ AHU 4, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2764,7 +2794,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 4, !- Name @@ -2986,14 +3026,14 @@ AHU 5, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3009,7 +3049,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 5, !- Name diff --git a/testfiles/5Zone_Transformer.idf b/testfiles/5Zone_Transformer.idf index 52052caa6ba..25091af5542 100644 --- a/testfiles/5Zone_Transformer.idf +++ b/testfiles/5Zone_Transformer.idf @@ -2131,14 +2131,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2154,7 +2154,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: SIZING:PLANT =========== diff --git a/testfiles/5zoneWaterSystems.idf b/testfiles/5zoneWaterSystems.idf index f85931568aa..5d053a5d705 100644 --- a/testfiles/5zoneWaterSystems.idf +++ b/testfiles/5zoneWaterSystems.idf @@ -3924,14 +3924,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3947,7 +3947,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/AdvancedOutput/ExerciseOutput1.idf b/testfiles/AdvancedOutput/ExerciseOutput1.idf index 72d340e462e..592cf6e9206 100644 --- a/testfiles/AdvancedOutput/ExerciseOutput1.idf +++ b/testfiles/AdvancedOutput/ExerciseOutput1.idf @@ -1029,14 +1029,14 @@ AHU 1, !- AirLoop Name Sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1052,7 +1052,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: CURVE:BIQUADRATIC =========== ! DOE-2.1E, COOL-CAP-FT for PTAC w/ SI temps diff --git a/testfiles/AdvancedOutput/ExerciseOutput1A-Solution.idf b/testfiles/AdvancedOutput/ExerciseOutput1A-Solution.idf index 808e06fa3ec..541bb0002cd 100644 --- a/testfiles/AdvancedOutput/ExerciseOutput1A-Solution.idf +++ b/testfiles/AdvancedOutput/ExerciseOutput1A-Solution.idf @@ -1029,14 +1029,14 @@ AHU 1, !- AirLoop Name Sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1052,7 +1052,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: CURVE:BIQUADRATIC =========== ! DOE-2.1E, COOL-CAP-FT for PTAC w/ SI temps diff --git a/testfiles/AirEconomizerFaults_RefBldgLargeOfficeNew2004_Chicago.idf b/testfiles/AirEconomizerFaults_RefBldgLargeOfficeNew2004_Chicago.idf index 21313777ae0..7652c36236f 100644 --- a/testfiles/AirEconomizerFaults_RefBldgLargeOfficeNew2004_Chicago.idf +++ b/testfiles/AirEconomizerFaults_RefBldgLargeOfficeNew2004_Chicago.idf @@ -6039,14 +6039,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6062,20 +6062,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6091,20 +6101,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6120,20 +6140,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6149,7 +6179,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name @@ -7264,6 +7304,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio @@ -7297,6 +7338,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio diff --git a/testfiles/AirEconomizerWithMaxMinOAFractions.idf b/testfiles/AirEconomizerWithMaxMinOAFractions.idf index 21326b722d1..4e166e6ca2a 100644 --- a/testfiles/AirEconomizerWithMaxMinOAFractions.idf +++ b/testfiles/AirEconomizerWithMaxMinOAFractions.idf @@ -2451,14 +2451,14 @@ VAV Sys 1, !- AirLoop Name Sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.2, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2474,7 +2474,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 1, !- Name diff --git a/testfiles/AirflowNetwork3zVent.idf b/testfiles/AirflowNetwork3zVent.idf index 9f3e0ca9f1a..a0cdcc84fa9 100644 --- a/testfiles/AirflowNetwork3zVent.idf +++ b/testfiles/AirflowNetwork3zVent.idf @@ -1052,9 +1052,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, EAST_ZONE, !- Zone Name @@ -1062,9 +1062,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH_ZONE, !- Zone Name @@ -1072,9 +1072,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Surface_1, !- Surface Name @@ -1158,7 +1158,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} @@ -1186,7 +1186,7 @@ DrOpen, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork3zVentAutoWPC.idf b/testfiles/AirflowNetwork3zVentAutoWPC.idf index a1e0b2f91b9..054625177e9 100644 --- a/testfiles/AirflowNetwork3zVentAutoWPC.idf +++ b/testfiles/AirflowNetwork3zVentAutoWPC.idf @@ -1053,9 +1053,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, EAST_ZONE, !- Zone Name @@ -1063,9 +1063,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH_ZONE, !- Zone Name @@ -1073,9 +1073,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Surface_1, !- Surface Name @@ -1159,7 +1159,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} @@ -1187,7 +1187,7 @@ DrOpen, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork_MultiZone_House.idf b/testfiles/AirflowNetwork_MultiZone_House.idf index 96c2269597b..671bf30afe8 100644 --- a/testfiles/AirflowNetwork_MultiZone_House.idf +++ b/testfiles/AirflowNetwork_MultiZone_House.idf @@ -1317,9 +1317,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, GARAGE ZONE, !- Zone Name @@ -1327,9 +1327,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, ATTIC ZONE, !- Zone Name @@ -1337,9 +1337,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Living:West, !- Surface Name diff --git a/testfiles/AirflowNetwork_MultiZone_House_OvercoolDehumid.idf b/testfiles/AirflowNetwork_MultiZone_House_OvercoolDehumid.idf index 3f57035cc7f..d1d6c60ec4f 100644 --- a/testfiles/AirflowNetwork_MultiZone_House_OvercoolDehumid.idf +++ b/testfiles/AirflowNetwork_MultiZone_House_OvercoolDehumid.idf @@ -1602,9 +1602,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.5, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, GARAGE ZONE, !- Zone Name @@ -1612,9 +1612,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, ATTIC ZONE, !- Zone Name @@ -1622,9 +1622,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Living:West, !- Surface Name @@ -2119,14 +2119,14 @@ Residential System, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.0, !- Minimum System Air Flow Ratio + 0.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 16., !- Central Cooling Design Supply Air Temperature {C} 18., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.009, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2142,7 +2142,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC:UnitaryHeatCool, Res Central AC, !- Name diff --git a/testfiles/AirflowNetwork_MultiZone_House_TwoSpeed.idf b/testfiles/AirflowNetwork_MultiZone_House_TwoSpeed.idf index 2517854acec..d0ff844935a 100644 --- a/testfiles/AirflowNetwork_MultiZone_House_TwoSpeed.idf +++ b/testfiles/AirflowNetwork_MultiZone_House_TwoSpeed.idf @@ -1319,9 +1319,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, GARAGE ZONE, !- Zone Name @@ -1329,9 +1329,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, ATTIC ZONE, !- Zone Name @@ -1339,9 +1339,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Living:West, !- Surface Name diff --git a/testfiles/AirflowNetwork_MultiZone_SmallOffice.idf b/testfiles/AirflowNetwork_MultiZone_SmallOffice.idf index 57dcd5e855d..a548340f725 100644 --- a/testfiles/AirflowNetwork_MultiZone_SmallOffice.idf +++ b/testfiles/AirflowNetwork_MultiZone_SmallOffice.idf @@ -1790,9 +1790,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1801,9 +1801,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1811,9 +1811,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1822,9 +1822,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -1944,7 +1944,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork_MultiZone_SmallOffice_CoilHXAssistedDX.idf b/testfiles/AirflowNetwork_MultiZone_SmallOffice_CoilHXAssistedDX.idf index 0833e979572..6effe4bc516 100644 --- a/testfiles/AirflowNetwork_MultiZone_SmallOffice_CoilHXAssistedDX.idf +++ b/testfiles/AirflowNetwork_MultiZone_SmallOffice_CoilHXAssistedDX.idf @@ -1809,9 +1809,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1820,9 +1820,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1830,9 +1830,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1841,9 +1841,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -1963,7 +1963,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork_MultiZone_SmallOffice_GenericContam.idf b/testfiles/AirflowNetwork_MultiZone_SmallOffice_GenericContam.idf index a489b2010f4..50da08554b1 100644 --- a/testfiles/AirflowNetwork_MultiZone_SmallOffice_GenericContam.idf +++ b/testfiles/AirflowNetwork_MultiZone_SmallOffice_GenericContam.idf @@ -1843,9 +1843,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1854,9 +1854,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1864,9 +1864,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1875,9 +1875,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -1997,7 +1997,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork_MultiZone_SmallOffice_HeatRecoveryHXSL.idf b/testfiles/AirflowNetwork_MultiZone_SmallOffice_HeatRecoveryHXSL.idf index 94d0d55504b..1b6ddaa502b 100644 --- a/testfiles/AirflowNetwork_MultiZone_SmallOffice_HeatRecoveryHXSL.idf +++ b/testfiles/AirflowNetwork_MultiZone_SmallOffice_HeatRecoveryHXSL.idf @@ -1828,9 +1828,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1839,9 +1839,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1849,9 +1849,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1860,9 +1860,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -1982,7 +1982,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork_MultiZone_SmallOffice_VAV.idf b/testfiles/AirflowNetwork_MultiZone_SmallOffice_VAV.idf index 539bfbd6de0..b6905f4fffb 100644 --- a/testfiles/AirflowNetwork_MultiZone_SmallOffice_VAV.idf +++ b/testfiles/AirflowNetwork_MultiZone_SmallOffice_VAV.idf @@ -1840,9 +1840,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1851,9 +1851,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1861,9 +1861,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1872,9 +1872,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -1994,7 +1994,7 @@ WiOpen1, !- Name 0.0001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} @@ -3124,14 +3124,14 @@ VAV Sys 1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.2, !- Minimum System Air Flow Ratio + 0.2, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 15.000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 15.000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3147,7 +3147,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! Outdoor air specification should be consistent with Sizing:Zone object inputs. diff --git a/testfiles/AirflowNetwork_Multizone_HorizontalOpening.idf b/testfiles/AirflowNetwork_Multizone_HorizontalOpening.idf index 374bea19314..d2355f61542 100644 --- a/testfiles/AirflowNetwork_Multizone_HorizontalOpening.idf +++ b/testfiles/AirflowNetwork_Multizone_HorizontalOpening.idf @@ -1634,9 +1634,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, EAST_ZONE, !- Zone Name @@ -1644,9 +1644,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH_ZONE, !- Zone Name @@ -1654,9 +1654,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, WEST_ZONE_T, !- Zone Name @@ -1664,9 +1664,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, EAST_ZONE_T, !- Zone Name @@ -1674,9 +1674,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH_ZONE_T, !- Zone Name @@ -1684,9 +1684,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} !- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE =========== @@ -1872,7 +1872,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} @@ -1900,7 +1900,7 @@ DrOpen, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/AirflowNetwork_Simple_House.idf b/testfiles/AirflowNetwork_Simple_House.idf index 1224f5eba15..efe10ae7264 100644 --- a/testfiles/AirflowNetwork_Simple_House.idf +++ b/testfiles/AirflowNetwork_Simple_House.idf @@ -1329,9 +1329,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, GARAGE ZONE, !- Zone Name @@ -1339,9 +1339,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, ATTIC ZONE, !- Zone Name @@ -1349,9 +1349,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Living:South, !- Surface Name diff --git a/testfiles/AirflowNetwork_Simple_SmallOffice.idf b/testfiles/AirflowNetwork_Simple_SmallOffice.idf index a62a9037395..5ddd401c1fa 100644 --- a/testfiles/AirflowNetwork_Simple_SmallOffice.idf +++ b/testfiles/AirflowNetwork_Simple_SmallOffice.idf @@ -1955,9 +1955,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, EAST ZONE, !- Zone Name @@ -1965,9 +1965,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1975,9 +1975,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, ATTIC ZONE, !- Zone Name @@ -1985,9 +1985,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name diff --git a/testfiles/BaseBoardElectric.idf b/testfiles/BaseBoardElectric.idf index ce0d42a1c37..57c54c58064 100644 --- a/testfiles/BaseBoardElectric.idf +++ b/testfiles/BaseBoardElectric.idf @@ -2168,3 +2168,6 @@ Output:DebuggingData,0,0; + Output:SQLite, + Simple; + diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt index 91ee800fad9..64ad6c7f470 100644 --- a/testfiles/CMakeLists.txt +++ b/testfiles/CMakeLists.txt @@ -101,6 +101,7 @@ ADD_SIMULATION_TEST(IDF_FILE CentralChillerHeaterSystem_Cooling_Heating.idf EPW_ ADD_SIMULATION_TEST(IDF_FILE CentralChillerHeaterSystem_Simultaneous_Cooling_Heating.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE ChangeoverBypassVAV.idf EPW_FILE USA_FL_Miami.Intl.AP.722020_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE ChangeoverBypassVAV_MaxTemp.idf EPW_FILE USA_FL_Miami.Intl.AP.722020_TMY3.epw) +ADD_SIMULATION_TEST(IDF_FILE ChillerPartLoadCurve_RefBldgLargeOfficeNew2004_Chicago.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE CmplxGlz_Daylighting_SouthVB45deg.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE CmplxGlz_MeasuredDeflectionAndShading.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE CmplxGlz_SchedSurfGains.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) diff --git a/testfiles/ChangeoverBypassVAV.idf b/testfiles/ChangeoverBypassVAV.idf index 31124bb7af2..9788f22a78d 100644 --- a/testfiles/ChangeoverBypassVAV.idf +++ b/testfiles/ChangeoverBypassVAV.idf @@ -1175,14 +1175,14 @@ Typical Furnace 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 10.0, !- Central Cooling Design Supply Air Temperature {C} 30.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1198,7 +1198,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: ZONECONTROL:THERMOSTAT =========== diff --git a/testfiles/ChangeoverBypassVAV_MaxTemp.idf b/testfiles/ChangeoverBypassVAV_MaxTemp.idf index 62bdce95752..7323d9899a6 100644 --- a/testfiles/ChangeoverBypassVAV_MaxTemp.idf +++ b/testfiles/ChangeoverBypassVAV_MaxTemp.idf @@ -1183,14 +1183,14 @@ Typical Furnace 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 10.0, !- Central Cooling Design Supply Air Temperature {C} 30.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1206,7 +1206,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: ZONECONTROL:THERMOSTAT =========== diff --git a/testfiles/ChillerPartLoadCurve_RefBldgLargeOfficeNew2004_Chicago.idf b/testfiles/ChillerPartLoadCurve_RefBldgLargeOfficeNew2004_Chicago.idf new file mode 100644 index 00000000000..cf761ff0917 --- /dev/null +++ b/testfiles/ChillerPartLoadCurve_RefBldgLargeOfficeNew2004_Chicago.idf @@ -0,0 +1,9601 @@ +!-Generator IDFEditor 1.42 +!-Option OriginalOrderTop UseSpecialFormat +!-NOTE: All comments with '!-' are ignored by the IDFEditor and are generated automatically. +!- Use '!' comments if they need to be retained when using the IDFEditor. +! ChillerPartLoadCurve_RefBldgLargeOfficeNew2004_Chicago.idf +! Added an additional part load curve type for chillers. +! +! This example file is based on Version 1.3_5.0 and was transitioned to Version 6.0 using the transition utility +! +! DOE Commercial Reference Building +! Large office, new construction 90.1-2004 +! Version 1.3_5.0 +! EnergyPlus Version 6.0 +! ASHRAE Standards 90.1-2004 and 62-1999 +! +! Description: 12 story plus basement, office building. +! Form: Area = 46,320 m2 (498,588 ft2); Number of Stories = 12; Shape = rectangle, Aspect ratio = 1.5 +! Envelope: Envelope thermal properties vary with climate according to ASHRAE Standard 90.1-2004. +! Opaque constructions: mass walls; built-up flat roof (insulation above deck); slab-on-grade floor +! Windows: window-to-wall ratio = 38.0%, equal distribution of windows +! Infiltration in perimeter zones only +! = 0.4 cfm/ft2 above grade wall area at 0.3 in wc (75 Pa) adjusted to 0.016 in wc (4 Pa). +! 25% of full value when ventilation system on. +! HVAC: 2 water-cooled chillers, VAV with reheat and plenum zones +! Economizer per 90.1-2004 +! Chiller part load curve corrected from original +! +! Int. gains: lights = 10.76 W/m2 (1.0 W/ft2) (building area method); +! elec. plug loads = 10.76 W/m2 (1.0 W/ft2) +! gas plug load = 0 W/m2 (0 W/ft2) +! people = 2,397 total, 5.38/100 m2 (5.0/1000 ft2); basement 2.69/100 m2 (2.5/1000 ft2) +! elevators = 12 @ 25 HP each, 91% motor efficiency, motor heat exhausted directly +! +! Detached Shading: None +! Daylight: None +! Natural Ventilation: None +! Zonal Equipment: None +! Air Primary Loops: VAV WITH REHEAT +! Plant Loops: SHWSys1, HeatSys1, CoolSys1, TowerWaterSys +! System Equipment Autosize: Yes +! Purchased Cooling: None +! Purchased Heating: None +! Coils: Coil:Cooling:Water; Coil:Heating:Water +! Pumps: Yes +! Boilers: Boiler:HotWater (gas-fired) +! Chillers: Chiller:Electric:ReformulatedEIR (water-cooled) +!***** NOTICE ***** +!***** The Reference Buildings were prepared as an account of work sponsored by an ***** +!***** agency of the United States government. Neither the United States ***** +!***** government nor any agency thereof, nor any of their employees, makes ***** +!***** any warranty, express or implied, or assumes any legal liability or ***** +!***** responsibility for the accuracy, completeness, or usefulness of any ***** +!***** information, apparatus, product, or process disclosed, or represents ***** +!***** that its use would not infringe privately owned rights. Reference ***** +!***** herein to any specific commercial product, process, or service by ***** +!***** trade name, trademark, manufacturer, or otherwise does not necessarily ***** +!***** constitute or imply its endorsement, recommendation, or favoring by ***** +!***** the United States government or any agency thereof. The views and ***** +!***** opinions of authors expressed herein do not necessarily state or ***** +!***** reflect those of the United States government or any agency thereof. ***** +!***** Access to and use of the Reference Buildings imposes the following obligations ***** +!***** on the user. The user agrees to credit DOE, NREL, PNNL, and LBNL in ***** +!***** any publication(s) that that result from the use of Reference Buildings. ***** +!***** However, the names of DOE/NREL/PNNL/LBNL may not be used in any ***** +!***** advertising or publicity that implies endorsement or promotion of any ***** +!***** products, services or commercial entities. ***** +! Reference citation for the Commercial Reference Buildings: +! Deru, M.; Field, K.; Studer, D.; Benne, K.; Griffith, B.; Torcellini, P; +! Halverson, M.; Winiarski, D.; Liu, B.; Rosenberg, M.; Huang, J.; +! Yazdanian, M.; Crawley, D. (2010). +! U.S. Department of Energy Commercial Reference Building Models of the National Building Stock. +! Washington, DC: U.S. Department of Energy, Energy Efficiency and +! Renewable Energy, Office of Building Technologies. +! ***GENERAL SIMULATION PARAMETERS*** +! Number of Zones: 19 + + Version,8.2; + + SimulationControl, + YES, !- Do Zone Sizing Calculation + YES, !- Do System Sizing Calculation + YES, !- Do Plant Sizing Calculation + YES, !- Run Simulation for Sizing Periods + NO; !- Run Simulation for Weather File Run Periods + + Building, + Ref Bldg Large Office New2004_v1.3_5.0, !- Name + 0.0000, !- North Axis {deg} + City, !- Terrain + 0.0400, !- Loads Convergence Tolerance Value + 0.2000, !- Temperature Convergence Tolerance Value {deltaC} + FullInteriorAndExterior, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + + RunPeriod, + , !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + 12, !- End Month + 31, !- End Day of Month + Sunday, !- Day of Week for Start Day + No, !- Use Weather File Holidays and Special Days + No, !- Use Weather File Daylight Saving Period + No, !- Apply Weekend Holiday Rule + Yes, !- Use Weather File Rain Indicators + Yes, !- Use Weather File Snow Indicators + 1.0000; !- Number of Times Runperiod to be Repeated + +! ***HOLIDAYS & DAYLIGHT SAVINGS*** + + RunPeriodControl:DaylightSavingTime, + 2nd Sunday in March, !- Start Date + 1st Sunday in November; !- End Date + + RunPeriodControl:SpecialDays, + New Years Day, !- Name + January 1, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Veterans Day, !- Name + November 11, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Christmas, !- Name + December 25, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Independence Day, !- Name + July 4, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + MLK Day, !- Name + 3rd Monday in January, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Presidents Day, !- Name + 3rd Monday in February, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Memorial Day, !- Name + Last Monday in May, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Labor Day, !- Name + 1st Monday in September, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Columbus Day, !- Name + 2nd Monday in October, !- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + + RunPeriodControl:SpecialDays, + Thanksgiving, !- Name + 4th Thursday in November,!- Start Date + 1, !- Duration {days} + Holiday; !- Special Day Type + +! ***SCHEDULE TYPES*** + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + Humidity, !- Name + 10, !- Lower Limit Value + 90, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Number; !- Name + +! ***ALWAYS ON SCHEDULE*** + + Schedule:Compact, + ALWAYS_ON, !- Name + On/Off, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1; !- Field 3 + +! ***MISC SIMULATION PARAMETERS*** + + SurfaceConvectionAlgorithm:Inside,TARP; + + SurfaceConvectionAlgorithm:Outside,DOE-2; + + HeatBalanceAlgorithm,ConductionTransferFunction,200.0000; + + ZoneAirHeatBalanceAlgorithm, + AnalyticalSolution; !- Algorithm + + Sizing:Parameters, + 1.33, !- Heating Sizing Factor + 1.33, !- Cooling Sizing Factor + 6; !- Timesteps in Averaging Window + + ConvergenceLimits, + 2, !- Minimum System Timestep {minutes} + 25; !- Maximum HVAC Iterations + + ShadowCalculation, + AverageOverDaysInFrequency, !- Calculation Method + 7, !- Calculation Frequency + 15000; !- Maximum Figures in Shadow Overlap Calculations + + Timestep,6; + +! WeatherFileName=USA_IL_Chicago-OHare_TMY2.epw + + Site:Location, + USA IL-CHICAGO-OHARE, !- Name + 41.77, !- Latitude {deg} + -87.75, !- Longitude {deg} + -6.00, !- Time Zone {hr} + 190; !- Elevation {m} + +! CHICAGO_IL_USA Annual Heating 99.6%, MaxDB=-20.6°C + + SizingPeriod:DesignDay, + CHICAGO Ann Htg 99.6% Condns DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -20.6, !- Maximum Dry-Bulb Temperature {C} + 0.0, !- 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.6, !- 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} + 99063., !- Barometric Pressure {Pa} + 4.9, !- Wind Speed {m/s} + 270, !- 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 + +! CHICAGO_IL_USA Annual Cooling (WB=>MDB) .4%, MDB=31.2°C WB=25.5°C + + SizingPeriod:DesignDay, + CHICAGO Ann Clg .4% Condns WB=>MDB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.2, !- Maximum Dry-Bulb Temperature {C} + 10.7, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 25.5, !- 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} + 99063., !- Barometric Pressure {Pa} + 5.3, !- Wind Speed {m/s} + 230, !- 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 + + Site:WaterMainsTemperature, + CORRELATION, !- Calculation Method + , !- Temperature Schedule Name + 9.69, !- Annual Average Outdoor Air Temperature {C} + 28.10; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC} + + Site:GroundTemperature:BuildingSurface,19.527,19.502,19.536,19.598,20.002,21.640,22.225,22.375,21.449,20.121,19.802,19.633; + +! ***OPAQUE CONSTRUCTIONS AND MATERIALS*** +! Exterior Walls + + Construction, + Mass Non-res Ext Wall, !- Name + 1IN Stucco, !- Outside Layer + 8IN Concrete HW, !- Layer 2 + Mass NonRes Wall Insulation, !- Layer 3 + 1/2IN Gypsum; !- Layer 4 + + Material, + Mass NonRes Wall Insulation, !- Name + MediumRough, !- Roughness + 0.0495494599433393, !- Thickness {m} + 0.049, !- Conductivity {W/m-K} + 265.0000, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + +! Roof + + Construction, + IEAD Non-res Roof, !- Name + Roof Membrane, !- Outside Layer + IEAD NonRes Roof Insulation, !- Layer 2 + Metal Decking; !- Layer 3 + + Material, + IEAD NonRes Roof Insulation, !- Name + MediumRough, !- Roughness + 0.127338688569477, !- Thickness {m} + 0.049, !- Conductivity {W/m-K} + 265.0000, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + +! Slab on grade, unheated + + Construction, + ext-slab, !- Name + HW CONCRETE, !- Outside Layer + CP02 CARPET PAD; !- Layer 2 + +! Interior Walls + + Construction, + int-walls, !- Name + 1/2IN Gypsum, !- Outside Layer + 1/2IN Gypsum; !- Layer 2 + +! Interior Floors + + Construction, + INT-FLOOR-TOPSIDE, !- Name + MAT-CC05 4 HW CONCRETE, !- Outside Layer + CP02 CARPET PAD; !- Layer 2 + + Construction, + INT-FLOOR-UNDERSIDE, !- Name + CP02 CARPET PAD, !- Outside Layer + MAT-CC05 4 HW CONCRETE; !- Layer 2 + + Construction, + Underground Wall Non-res,!- Name + 8IN Concrete HW, !- Outside Layer + UGWall NonRes Insulation;!- Layer 2 + + Material, + UGWall NonRes Insulation,!- Name + MediumRough, !- Roughness + 0.0001, !- Thickness {m} + 0.049, !- Conductivity {W/m-K} + 265.0000, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + +! ***WINDOW/DOOR CONSTRUCTIONS AND MATERIALS*** + + Construction, + Window Non-res Fixed, !- Name + NonRes Fixed Assembly Window; !- Outside Layer + + WindowMaterial:SimpleGlazingSystem, + NonRes Fixed Assembly Window, !- Name + 3.23646, !- U-Factor {W/m2-K} + 0.39; !- Solar Heat Gain Coefficient + +! ***COMMON CONSTRUCTIONS AND MATERIALS*** + + Construction, + DropCeiling, !- Name + Std AC02; !- Outside Layer + + Construction, + AIR-WALL, !- Name + MAT-AIR-WALL; !- Outside Layer + + Construction, + InteriorFurnishings, !- Name + Std Wood 6inch; !- Outside Layer + + Material, + Std Wood 6inch, !- Name + MediumSmooth, !- Roughness + 0.15, !- Thickness {m} + 0.12, !- Conductivity {W/m-K} + 540.0000, !- Density {kg/m3} + 1210, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7000000, !- Solar Absorptance + 0.7000000; !- Visible Absorptance + + Material, + Wood Siding, !- Name + MediumSmooth, !- Roughness + 0.0100, !- Thickness {m} + 0.1100, !- Conductivity {W/m-K} + 544.6200, !- Density {kg/m3} + 1210.0000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7800, !- Solar Absorptance + 0.7800; !- Visible Absorptance + + Material, + 1/2IN Gypsum, !- Name + Smooth, !- Roughness + 0.0127, !- Thickness {m} + 0.1600, !- Conductivity {W/m-K} + 784.9000, !- Density {kg/m3} + 830.0000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.9200, !- Solar Absorptance + 0.9200; !- Visible Absorptance + + Material, + 1IN Stucco, !- Name + Smooth, !- Roughness + 0.0253, !- Thickness {m} + 0.6918, !- Conductivity {W/m-K} + 1858.0000, !- Density {kg/m3} + 837.0000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.9200, !- Solar Absorptance + 0.9200; !- Visible Absorptance + + Material, + 8IN CONCRETE HW, !- Name + Rough, !- Roughness + 0.2032, !- Thickness {m} + 1.3110, !- Conductivity {W/m-K} + 2240.0000, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + + Material, + Metal Siding, !- Name + Smooth, !- Roughness + 0.0015, !- Thickness {m} + 44.9600, !- Conductivity {W/m-K} + 7688.8600, !- Density {kg/m3} + 410.0000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.2000, !- Solar Absorptance + 0.2000; !- Visible Absorptance + + Material, + HW CONCRETE, !- Name + Rough, !- Roughness + 0.1016, !- Thickness {m} + 1.3110, !- Conductivity {W/m-K} + 2240.0000, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + + Material:NoMass, + CP02 CARPET PAD, !- Name + VeryRough, !- Roughness + 0.2165, !- Thermal Resistance {m2-K/W} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.8000; !- Visible Absorptance + + Material, + Roof Membrane, !- Name + VeryRough, !- Roughness + 0.0095, !- Thickness {m} + 0.1600, !- Conductivity {W/m-K} + 1121.2900, !- Density {kg/m3} + 1460.0000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + + Material, + Metal Decking, !- Name + MediumSmooth, !- Roughness + 0.0015, !- Thickness {m} + 45.0060, !- Conductivity {W/m-K} + 7680.0000, !- Density {kg/m3} + 418.4000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.3000; !- Visible Absorptance + + Material, + Metal Roofing, !- Name + MediumSmooth, !- Roughness + 0.0015, !- Thickness {m} + 45.0060, !- Conductivity {W/m-K} + 7680.0000, !- Density {kg/m3} + 418.4000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.3000; !- Visible Absorptance + + Material, + MAT-CC05 4 HW CONCRETE, !- Name + Rough, !- Roughness + 0.1016, !- Thickness {m} + 1.3110, !- Conductivity {W/m-K} + 2240.0000, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000, !- Thermal Absorptance + 0.7000, !- Solar Absorptance + 0.7000; !- Visible Absorptance + +! Acoustic tile for drop ceiling + + Material, + Std AC02, !- Name + MediumSmooth, !- Roughness + 1.2700000E-02, !- Thickness {m} + 5.7000000E-02, !- Conductivity {W/m-K} + 288.0000, !- Density {kg/m3} + 1339.000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7000000, !- Solar Absorptance + 0.2000000; !- Visible Absorptance + + Material:NoMass, + MAT-AIR-WALL, !- Name + Rough, !- Roughness + 0.2079491, !- Thermal Resistance {m2-K/W} + 0.9, !- Thermal Absorptance + 0.7; !- Solar Absorptance + +! ZONE LIST: +! Basement +! Core_bottom +! Core_mid (mult=10) +! Core_top +! GroundFloor_Plenum +! MidFloor_Plenum (mult=10) +! Perimeter_bot_ZN_1 +! Perimeter_bot_ZN_2 +! Perimeter_bot_ZN_3 +! Perimeter_bot_ZN_4 +! Perimeter_mid_ZN_1 (mult=10) +! Perimeter_mid_ZN_2 (mult=10) +! Perimeter_mid_ZN_3 (mult=10) +! Perimeter_mid_ZN_4 (mult=10) +! Perimeter_top_ZN_1 +! Perimeter_top_ZN_2 +! Perimeter_top_ZN_3 +! Perimeter_top_ZN_4 +! TopFloor_Plenum +! ***ZONES*** + + Zone, + Basement, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0400, !- Y Origin {m} + 0.2000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Core_bottom, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Core_mid, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 10, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Core_top, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + GroundFloor_Plenum, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + No; !- Part of Total Floor Area + + Zone, + MidFloor_Plenum, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 10, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + No; !- Part of Total Floor Area + + Zone, + Perimeter_bot_ZN_1, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_bot_ZN_2, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_bot_ZN_3, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_bot_ZN_4, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_mid_ZN_1, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 10, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_mid_ZN_2, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 10, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_mid_ZN_3, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 10, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_mid_ZN_4, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 10, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_top_ZN_1, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_top_ZN_2, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_top_ZN_3, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + Perimeter_top_ZN_4, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + Yes; !- Part of Total Floor Area + + Zone, + TopFloor_Plenum, !- Name + 0.0000, !- Direction of Relative North {deg} + 0.0000, !- X Origin {m} + 0.0000, !- Y Origin {m} + 0.0000, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + , !- Ceiling Height {m} + , !- Volume {m3} + autocalculate, !- Floor Area {m2} + , !- Zone Inside Convection Algorithm + , !- Zone Outside Convection Algorithm + No; !- Part of Total Floor Area + +! ***WALLS*** + + BuildingSurface:Detailed, + Basement_Ceiling_1, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + Basement, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_1_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Ceiling_2, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + Basement, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_2_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Ceiling_3, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + Basement, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_3_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Ceiling_4, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + Basement, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_4_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Ceiling_5, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + Basement, !- Zone Name + Surface, !- Outside Boundary Condition + Core_bot_ZN_5_Floor, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Floor, !- Name + Floor, !- Surface Type + ext-slab, !- Construction Name + Basement, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,-2.4390, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,-2.4390, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,-2.4390, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,-2.4390; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Wall_East, !- Name + Wall, !- Surface Type + Underground Wall Non-res,!- Construction Name + Basement, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,-2.4390, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,-2.4390, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Wall_North, !- Name + Wall, !- Surface Type + Underground Wall Non-res,!- Construction Name + Basement, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,-2.4390, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,-2.4390, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Wall_South, !- Name + Wall, !- Surface Type + Underground Wall Non-res,!- Construction Name + Basement, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,-2.4390, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,-2.4390, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Basement_Wall_West, !- Name + Wall, !- Surface Type + Underground Wall Non-res,!- Construction Name + Basement, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,-2.4390, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,-2.4390, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Building_Roof, !- Name + Roof, !- Surface Type + IEAD Non-res Roof, !- Construction Name + TopFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,47.5584, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,47.5584, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,47.5584, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,47.5584; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_bot_ZN_5_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Core_bottom, !- Zone Name + Surface, !- Outside Boundary Condition + GroundFloor_Plenum_Floor_5, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_bot_ZN_5_Floor, !- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Core_bottom, !- Zone Name + Surface, !- Outside Boundary Condition + Basement_Ceiling_5, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_bot_ZN_5_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_bottom, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_2_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_bot_ZN_5_Wall_North,!- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_bottom, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_3_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_bot_ZN_5_Wall_South,!- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_bottom, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_1_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_bot_ZN_5_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_bottom, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_4_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_mid_ZN_5_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Core_mid, !- Zone Name + Surface, !- Outside Boundary Condition + MidFloor_Plenum_Floor_5, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_mid_ZN_5_Floor, !- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Core_mid, !- Zone Name + Surface, !- Outside Boundary Condition + Core_mid_ZN_5_Floor, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,19.8160; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_mid_ZN_5_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_mid, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_2_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_mid_ZN_5_Wall_North,!- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_mid, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_3_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_mid_ZN_5_Wall_South,!- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_mid, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_1_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_mid_ZN_5_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_mid, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_4_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_top_ZN_5_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Core_top, !- Zone Name + Surface, !- Outside Boundary Condition + TopFloor_Plenum_Floor_5, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_top_ZN_5_Floor, !- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Core_top, !- Zone Name + Surface, !- Outside Boundary Condition + Core_top_ZN_5_Floor, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,43.5952; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_top_ZN_5_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_top, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_2_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_top_ZN_5_Wall_North,!- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_top, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_3_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_top_ZN_5_Wall_South,!- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_top, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_1_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Core_top_ZN_5_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Core_top, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_4_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Ceiling, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + GroundFloor_Plenum_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,3.9632, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,3.9632, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,3.9632, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,3.9632; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Floor_1, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_1_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Floor_2, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_2_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Floor_3, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_3_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Floor_4, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_4_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Floor_5, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Core_bot_ZN_5_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Wall_East, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,3.9632, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,3.9632; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Wall_North, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,3.9632, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,3.9632; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_Wall_South, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,3.9632, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,3.9632; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + GroundFloor_Plenum_West, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + GroundFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,3.9632, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,3.9632; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Ceiling, !- Name + Ceiling, !- Surface Type + INT-FLOOR-UNDERSIDE, !- Construction Name + MidFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + MidFloor_Plenum_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,23.7792, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,23.7792, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,23.7792, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,23.7792; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Floor_1, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + MidFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_1_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Floor_2, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + MidFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_2_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Floor_3, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + MidFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_3_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Floor_4, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + MidFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_4_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Floor_5, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + MidFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Core_mid_ZN_5_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Wall_East, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + MidFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,23.7792, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,23.7792; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Wall_North, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + MidFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,23.7792, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,23.7792; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Wall_South, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + MidFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,23.7792, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,23.7792; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + MidFloor_Plenum_Wall_West, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + MidFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,23.7792, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,23.7792; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_1_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + GroundFloor_Plenum_Floor_1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_1_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Basement_Ceiling_1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_1_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_2_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_1_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Core_bot_ZN_5_Wall_South,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_1_Wall_South, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_1_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_4_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_2_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + GroundFloor_Plenum_Floor_2, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_2_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Basement_Ceiling_2, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_2_Wall_East, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_2_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_3_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_2_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_1_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_2_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Core_bot_ZN_5_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_3_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + GroundFloor_Plenum_Floor_3, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_3_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Basement_Ceiling_3, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_3_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_2_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_3_Wall_North, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_3_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Core_bot_ZN_5_Wall_North,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_3_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_4_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_4_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + GroundFloor_Plenum_Floor_4, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_4_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Basement_Ceiling_4, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,0.0000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_4_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Core_bot_ZN_5_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_4_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_3_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_4_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_bot_ZN_1_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_bot_ZN_4_Wall_West, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,2.7440, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,0.0000, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,0.0000, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,2.7440; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_1_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + MidFloor_Plenum_Floor_1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_1_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_1_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,19.8160; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_1_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_2_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_1_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Core_mid_ZN_5_Wall_South,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_1_Wall_South, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_1_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_4_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_2_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + MidFloor_Plenum_Floor_2, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_2_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_2_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,19.8160; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_2_Wall_East, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_2_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_3_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_2_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_1_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_2_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Core_mid_ZN_5_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_3_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + MidFloor_Plenum_Floor_3, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_3_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_3_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,19.8160; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_3_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_2_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_3_Wall_North, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_3_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Core_mid_ZN_5_Wall_North,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_3_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_4_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_4_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + MidFloor_Plenum_Floor_4, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_4_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_4_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,19.8160; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_4_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Core_mid_ZN_5_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_4_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_3_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_4_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_mid_ZN_1_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_mid_ZN_4_Wall_West, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,22.5600, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,19.8160, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,19.8160, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,22.5600; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_1_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + TopFloor_Plenum_Floor_1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_1_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_1_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,43.5952; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_1_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_2_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_1_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Core_top_ZN_5_Wall_South,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_1_Wall_South, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_1_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_4_Wall_South, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_2_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + TopFloor_Plenum_Floor_2, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_2_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_2_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,43.5952; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_2_Wall_East, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_2_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_3_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_2_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_1_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_2_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + Surface, !- Outside Boundary Condition + Core_top_ZN_5_Wall_East, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_3_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + TopFloor_Plenum_Floor_3, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_3_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_3_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,43.5952; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_3_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_2_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_3_Wall_North, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_3_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Core_top_ZN_5_Wall_North,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_3_Wall_West, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_4_Wall_North, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_4_Ceiling, !- Name + Ceiling, !- Surface Type + DropCeiling, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + TopFloor_Plenum_Floor_4, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_4_Floor,!- Name + Floor, !- Surface Type + INT-FLOOR-TOPSIDE, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_4_Floor,!- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,43.5952; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_4_Wall_East, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Core_top_ZN_5_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,4.5732,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_4_Wall_North, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_3_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 4.5732,44.1650,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_4_Wall_South, !- Name + Wall, !- Surface Type + int-walls, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_1_Wall_West, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Perimeter_top_ZN_4_Wall_West, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,43.5952, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,43.5952, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Floor_1, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + TopFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_1_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,4.5732,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 68.5340,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Floor_2, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + TopFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_2_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Floor_3, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + TopFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_3_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,44.1650,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Floor_4, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + TopFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Perimeter_top_ZN_4_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Floor_5, !- Name + Floor, !- Surface Type + DropCeiling, !- Construction Name + TopFloor_Plenum, !- Zone Name + Surface, !- Outside Boundary Condition + Core_top_ZN_5_Ceiling, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 4.5732,44.1650,46.3392, !- X,Y,Z ==> Vertex 1 {m} + 68.5340,44.1650,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 68.5340,4.5732,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 4.5732,4.5732,46.3392; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Wall_East, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + TopFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,0.0000,47.5584, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7381,47.5584; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Wall_North, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + TopFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,0.0000,47.5584, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,0.0000,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,0.0000,47.5584; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Wall_South, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + TopFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 73.1072,48.7381,47.5584, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,48.7381,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,47.5584; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TopFloor_Plenum_Wall_West, !- Name + Wall, !- Surface Type + Mass Non-res Ext Wall, !- Construction Name + TopFloor_Plenum, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + AutoCalculate, !- View Factor to Ground + 4, !- Number of Vertices + 0.0000,48.7381,47.5584, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7381,46.3392, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,46.3392, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,47.5584; !- X,Y,Z ==> Vertex 4 {m} + +! ***WINDOWS*** + + FenestrationSurface:Detailed, + Perimeter_bot_ZN_1_Wall_South_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_bot_ZN_1_Wall_South, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 0.0000,0.0000,2.5000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,0.9146, !- X,Y,Z ==> Vertex 2 {m} + 73.1070,0.0000,0.9146, !- X,Y,Z ==> Vertex 3 {m} + 73.1070,0.0000,2.5000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_bot_ZN_2_Wall_East_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_bot_ZN_2_Wall_East, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 73.1072,0.0000,2.5000, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,0.9146, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7380,0.9146, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7380,2.5000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_bot_ZN_3_Wall_North_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_bot_ZN_3_Wall_North, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 73.1070,48.7381,2.5000, !- X,Y,Z ==> Vertex 1 {m} + 73.1070,48.7381,0.9146, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,0.9146, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,2.5000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_bot_ZN_4_Wall_West_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_bot_ZN_4_Wall_West, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 0.0000,48.7380,2.5000, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7380,0.9146, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,0.9146, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,2.5000; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_mid_ZN_1_Wall_South_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_mid_ZN_1_Wall_South, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 0.0000,0.0000,22.3160, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,20.7306, !- X,Y,Z ==> Vertex 2 {m} + 73.1070,0.0000,20.7306, !- X,Y,Z ==> Vertex 3 {m} + 73.1070,0.0000,22.3160; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_mid_ZN_2_Wall_East_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_mid_ZN_2_Wall_East, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 73.1072,0.0000,22.3160, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,20.7306, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7380,20.7306, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7380,22.3160; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_mid_ZN_3_Wall_North_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_mid_ZN_3_Wall_North, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 73.1070,48.7381,22.3160, !- X,Y,Z ==> Vertex 1 {m} + 73.1070,48.7381,20.7306, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,20.7306, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,22.3160; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_mid_ZN_4_Wall_West_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_mid_ZN_4_Wall_West, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 0.0000,48.7380,22.3160, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7380,20.7306, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,20.7306, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,22.3160; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_top_ZN_1_Wall_South_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_top_ZN_1_Wall_South, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 0.0000,0.0000,46.0952, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,0.0000,44.5098, !- X,Y,Z ==> Vertex 2 {m} + 73.1070,0.0000,44.5098, !- X,Y,Z ==> Vertex 3 {m} + 73.1070,0.0000,46.0952; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_top_ZN_2_Wall_East_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_top_ZN_2_Wall_East, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 73.1072,0.0000,46.0952, !- X,Y,Z ==> Vertex 1 {m} + 73.1072,0.0000,44.5098, !- X,Y,Z ==> Vertex 2 {m} + 73.1072,48.7380,44.5098, !- X,Y,Z ==> Vertex 3 {m} + 73.1072,48.7380,46.0952; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_top_ZN_3_Wall_North_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_top_ZN_3_Wall_North, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 73.1070,48.7381,46.0952, !- X,Y,Z ==> Vertex 1 {m} + 73.1070,48.7381,44.5098, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,48.7381,44.5098, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,48.7381,46.0952; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + Perimeter_top_ZN_4_Wall_West_Window, !- Name + Window, !- Surface Type + Window Non-res Fixed, !- Construction Name + Perimeter_top_ZN_4_Wall_West, !- Building Surface Name + , !- Outside Boundary Condition Object + AutoCalculate, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1.0000, !- Multiplier + 4, !- Number of Vertices + 0.0000,48.7380,46.0952, !- X,Y,Z ==> Vertex 1 {m} + 0.0000,48.7380,44.5098, !- X,Y,Z ==> Vertex 2 {m} + 0.0000,0.0000,44.5098, !- X,Y,Z ==> Vertex 3 {m} + 0.0000,0.0000,46.0952; !- X,Y,Z ==> Vertex 4 {m} + +! ***GEOMETRY RULES*** + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + Counterclockwise, !- Vertex Entry Direction + Relative, !- Coordinate System + Relative; !- Daylighting Reference Point Coordinate System + +! ***PEOPLE*** + + People, + Basement People, !- Name + Basement, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 37.16, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Core_bottom People, !- Name + Core_bottom, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Core_mid People, !- Name + Core_mid, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Core_top People, !- Name + Core_top, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_bot_ZN_1 People, !- Name + Perimeter_bot_ZN_1, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_bot_ZN_2 People, !- Name + Perimeter_bot_ZN_2, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_bot_ZN_3 People, !- Name + Perimeter_bot_ZN_3, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_bot_ZN_4 People, !- Name + Perimeter_bot_ZN_4, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_mid_ZN_1 People, !- Name + Perimeter_mid_ZN_1, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_mid_ZN_2 People, !- Name + Perimeter_mid_ZN_2, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_mid_ZN_3 People, !- Name + Perimeter_mid_ZN_3, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_mid_ZN_4 People, !- Name + Perimeter_mid_ZN_4, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_top_ZN_1 People, !- Name + Perimeter_top_ZN_1, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_top_ZN_2 People, !- Name + Perimeter_top_ZN_2, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_top_ZN_3 People, !- Name + Perimeter_top_ZN_3, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + + People, + Perimeter_top_ZN_4 People, !- Name + Perimeter_top_ZN_4, !- Zone or ZoneList Name + BLDG_OCC_SCH, !- Number of People Schedule Name + Area/Person, !- Number of People Calculation Method + , !- Number of People + , !- People per Zone Floor Area {person/m2} + 18.58, !- Zone Floor Area per Person {m2/person} + 0.3000, !- Fraction Radiant + AUTOCALCULATE, !- Sensible Heat Fraction + ACTIVITY_SCH, !- Activity Level Schedule Name + , !- Carbon Dioxide Generation Rate {m3/s-W} + No, !- Enable ASHRAE 55 Comfort Warnings + ZoneAveraged, !- Mean Radiant Temperature Calculation Type + , !- Surface Name/Angle Factor List Name + WORK_EFF_SCH, !- Work Efficiency Schedule Name + ClothingInsulationSchedule, !- Clothing Insulation Calculation Method + , !- Clothing Insulation Calculation Method Schedule Name + CLOTHING_SCH, !- Clothing Insulation Schedule Name + AIR_VELO_SCH, !- Air Velocity Schedule Name + FANGER; !- Thermal Comfort Model 1 Type + +! ***LIGHTS*** + + Lights, + Basement_Lights, !- Name + Basement, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Core_bottom_Lights, !- Name + Core_bottom, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Core_mid_Lights, !- Name + Core_mid, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Core_top_Lights, !- Name + Core_top, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_bot_ZN_1_Lights, !- Name + Perimeter_bot_ZN_1, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_bot_ZN_2_Lights, !- Name + Perimeter_bot_ZN_2, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_bot_ZN_3_Lights, !- Name + Perimeter_bot_ZN_3, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_bot_ZN_4_Lights, !- Name + Perimeter_bot_ZN_4, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_mid_ZN_1_Lights, !- Name + Perimeter_mid_ZN_1, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_mid_ZN_2_Lights, !- Name + Perimeter_mid_ZN_2, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_mid_ZN_3_Lights, !- Name + Perimeter_mid_ZN_3, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_mid_ZN_4_Lights, !- Name + Perimeter_mid_ZN_4, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_top_ZN_1_Lights, !- Name + Perimeter_top_ZN_1, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_top_ZN_2_Lights, !- Name + Perimeter_top_ZN_2, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_top_ZN_3_Lights, !- Name + Perimeter_top_ZN_3, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + + Lights, + Perimeter_top_ZN_4_Lights, !- Name + Perimeter_top_ZN_4, !- Zone or ZoneList Name + BLDG_LIGHT_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Lighting Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Return Air Fraction + 0.7000, !- Fraction Radiant + 0.2000, !- Fraction Visible + 1.0000, !- Fraction Replaceable + General, !- End-Use Subcategory + No; !- Return Air Fraction Calculated from Plenum Temperature + +! ***EQUIPMENT GAINS*** + + ElectricEquipment, + Basement_PlugMisc_Equip, !- Name + Basement, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Core_bottom_PlugMisc_Equip, !- Name + Core_bottom, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Core_mid_PlugMisc_Equip, !- Name + Core_mid, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Core_top_PlugMisc_Equip, !- Name + Core_top, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_bot_ZN_1_PlugMisc_Equip, !- Name + Perimeter_bot_ZN_1, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_bot_ZN_2_PlugMisc_Equip, !- Name + Perimeter_bot_ZN_2, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_bot_ZN_3_PlugMisc_Equip, !- Name + Perimeter_bot_ZN_3, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_bot_ZN_4_PlugMisc_Equip, !- Name + Perimeter_bot_ZN_4, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_mid_ZN_1_PlugMisc_Equip, !- Name + Perimeter_mid_ZN_1, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_mid_ZN_2_PlugMisc_Equip, !- Name + Perimeter_mid_ZN_2, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_mid_ZN_3_PlugMisc_Equip, !- Name + Perimeter_mid_ZN_3, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_mid_ZN_4_PlugMisc_Equip, !- Name + Perimeter_mid_ZN_4, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_top_ZN_1_PlugMisc_Equip, !- Name + Perimeter_top_ZN_1, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_top_ZN_2_PlugMisc_Equip, !- Name + Perimeter_top_ZN_2, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_top_ZN_3_PlugMisc_Equip, !- Name + Perimeter_top_ZN_3, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + + ElectricEquipment, + Perimeter_top_ZN_4_PlugMisc_Equip, !- Name + Perimeter_top_ZN_4, !- Zone or ZoneList Name + BLDG_EQUIP_SCH, !- Schedule Name + Watts/Area, !- Design Level Calculation Method + , !- Design Level {W} + 10.76, !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.0000, !- Fraction Latent + 0.5000, !- Fraction Radiant + 0.0000, !- Fraction Lost + General; !- End-Use Subcategory + +! ***EXTERIOR LOADS*** + + Exterior:Lights, + Exterior Facade Lighting,!- Name + ALWAYS_ON, !- Schedule Name + 51262, !- Design Level {W} + AstronomicalClock, !- Control Option + Exterior Facade Lighting;!- End-Use Subcategory + + Exterior:FuelEquipment, + Elevators, !- Name + Electricity, !- Fuel Use Type + BLDG_ELEVATORS, !- Schedule Name + 244443.956043956, !- Design Level {W} + Elevators; !- End-Use Subcategory + +! ***INFILTRATION*** + + ZoneInfiltration:DesignFlowRate, + GroundFloor_Plenum_Infiltration, !- Name + GroundFloor_Plenum, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + MidFloor_Plenum_Infiltration, !- Name + MidFloor_Plenum, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_bot_ZN_1_Infiltration, !- Name + Perimeter_bot_ZN_1, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_bot_ZN_2_Infiltration, !- Name + Perimeter_bot_ZN_2, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_bot_ZN_3_Infiltration, !- Name + Perimeter_bot_ZN_3, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_bot_ZN_4_Infiltration, !- Name + Perimeter_bot_ZN_4, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_mid_ZN_1_Infiltration, !- Name + Perimeter_mid_ZN_1, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_mid_ZN_2_Infiltration, !- Name + Perimeter_mid_ZN_2, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_mid_ZN_3_Infiltration, !- Name + Perimeter_mid_ZN_3, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_mid_ZN_4_Infiltration, !- Name + Perimeter_mid_ZN_4, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_top_ZN_1_Infiltration, !- Name + Perimeter_top_ZN_1, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_top_ZN_2_Infiltration, !- Name + Perimeter_top_ZN_2, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_top_ZN_3_Infiltration, !- Name + Perimeter_top_ZN_3, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + Perimeter_top_ZN_4_Infiltration, !- Name + Perimeter_top_ZN_4, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ZoneInfiltration:DesignFlowRate, + TopFloor_Plenum_Infiltration, !- Name + TopFloor_Plenum, !- Zone or ZoneList Name + INFIL_QUARTER_ON_SCH, !- Schedule Name + Flow/ExteriorArea, !- Design Flow Rate Calculation Method + , !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + 0.000302, !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + +! ***INTERNAL MASS*** + + InternalMass, + Basement Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Basement, !- Zone Name + 7126.2120; !- Surface Area {m2} + + InternalMass, + Core_bottom Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Core_bottom, !- Zone Name + 5064.6464; !- Surface Area {m2} + + InternalMass, + Core_mid Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Core_mid, !- Zone Name + 5064.6464; !- Surface Area {m2} + + InternalMass, + Core_top Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Core_top, !- Zone Name + 5064.6464; !- Surface Area {m2} + + InternalMass, + Perimeter_bot_ZN_1 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_bot_ZN_1, !- Zone Name + 626.8394; !- Surface Area {m2} + + InternalMass, + Perimeter_bot_ZN_2 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_bot_ZN_2, !- Zone Name + 403.9503; !- Surface Area {m2} + + InternalMass, + Perimeter_bot_ZN_3 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_bot_ZN_3, !- Zone Name + 626.8257; !- Surface Area {m2} + + InternalMass, + Perimeter_bot_ZN_4 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_bot_ZN_4, !- Zone Name + 403.9503; !- Surface Area {m2} + + InternalMass, + Perimeter_mid_ZN_1 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_mid_ZN_1, !- Zone Name + 626.8394; !- Surface Area {m2} + + InternalMass, + Perimeter_mid_ZN_2 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_mid_ZN_2, !- Zone Name + 403.9503; !- Surface Area {m2} + + InternalMass, + Perimeter_mid_ZN_3 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_mid_ZN_3, !- Zone Name + 626.8257; !- Surface Area {m2} + + InternalMass, + Perimeter_mid_ZN_4 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_mid_ZN_4, !- Zone Name + 403.9503; !- Surface Area {m2} + + InternalMass, + Perimeter_top_ZN_1 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_top_ZN_1, !- Zone Name + 626.8394; !- Surface Area {m2} + + InternalMass, + Perimeter_top_ZN_2 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_top_ZN_2, !- Zone Name + 403.9503; !- Surface Area {m2} + + InternalMass, + Perimeter_top_ZN_3 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_top_ZN_3, !- Zone Name + 626.8257; !- Surface Area {m2} + + InternalMass, + Perimeter_top_ZN_4 Internal Mass, !- Name + InteriorFurnishings, !- Construction Name + Perimeter_top_ZN_4, !- Zone Name + 403.9503; !- Surface Area {m2} + +! ***INTERNAL GAINS SCHEDULES*** + + Schedule:Compact, + BLDG_ELEVATORS, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 04:00,0.05, !- Field 3 + Until: 05:00,0.10, !- Field 5 + Until: 06:00,0.20, !- Field 7 + Until: 07:00,0.40, !- Field 9 + Until: 09:00,0.50, !- Field 11 + Until: 10:00,0.35, !- Field 13 + Until: 16:00,0.15, !- Field 15 + Until: 17:00,0.35, !- Field 17 + Until: 19:00,0.50, !- Field 19 + Until: 21:00,0.40, !- Field 21 + Until: 22:00,0.30, !- Field 23 + Until: 23:00,0.20, !- Field 25 + Until: 24:00,0.10; !- Field 27 + + Schedule:Compact, + INFIL_QUARTER_ON_SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay, !- Field 2 + Until: 06:00,1.0, !- Field 3 + Until: 22:00,0.25, !- Field 5 + Until: 24:00,1.0, !- Field 7 + For: Saturday WinterDesignDay, !- Field 9 + Until: 06:00,1.0, !- Field 10 + Until: 18:00,0.25, !- Field 12 + Until: 24:00,1.0, !- Field 14 + For: Sunday Holidays AllOtherDays, !- Field 16 + Until: 24:00,1.0; !- Field 17 + + Schedule:Compact, + BLDG_OCC_SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: SummerDesignDay, !- Field 2 + Until: 06:00,0.0, !- Field 3 + Until: 22:00,1.0, !- Field 5 + Until: 24:00,0.05, !- Field 7 + For: Weekdays, !- Field 9 + Until: 06:00,0.0, !- Field 10 + Until: 07:00,0.1, !- Field 12 + Until: 08:00,0.2, !- Field 14 + Until: 12:00,0.95, !- Field 16 + Until: 13:00,0.5, !- Field 18 + Until: 17:00,0.95, !- Field 20 + Until: 18:00,0.7, !- Field 22 + Until: 20:00,0.4, !- Field 24 + Until: 22:00,0.1, !- Field 26 + Until: 24:00,0.05, !- Field 28 + For: Saturday, !- Field 30 + Until: 06:00,0.0, !- Field 31 + Until: 08:00,0.1, !- Field 33 + Until: 14:00,0.5, !- Field 35 + Until: 17:00,0.1, !- Field 37 + Until: 24:00,0.0, !- Field 39 + For: AllOtherDays, !- Field 41 + Until: 24:00,0.0; !- Field 42 + + Schedule:Compact, + BLDG_LIGHT_SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays, !- Field 2 + Until: 05:00,0.05, !- Field 3 + Until: 07:00,0.1, !- Field 5 + Until: 08:00,0.3, !- Field 7 + Until: 17:00,0.9, !- Field 9 + Until: 18:00,0.7, !- Field 11 + Until: 20:00,0.5, !- Field 13 + Until: 22:00,0.3, !- Field 15 + Until: 23:00,0.1, !- Field 17 + Until: 24:00,0.05, !- Field 19 + For: Saturday, !- Field 21 + Until: 06:00,0.05, !- Field 22 + Until: 08:00,0.1, !- Field 24 + Until: 14:00,0.5, !- Field 26 + Until: 17:00,0.15, !- Field 28 + Until: 24:00,0.05, !- Field 30 + For: SummerDesignDay, !- Field 32 + Until: 24:00,1.0, !- Field 33 + For: WinterDesignDay, !- Field 35 + Until: 24:00,0.0, !- Field 36 + For: AllOtherDays, !- Field 38 + Until: 24:00,0.05; !- Field 39 + + Schedule:Compact, + BLDG_EQUIP_SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays, !- Field 2 + Until: 08:00,0.40, !- Field 3 + Until: 12:00,0.90, !- Field 5 + Until: 13:00,0.80, !- Field 7 + Until: 17:00,0.90, !- Field 9 + Until: 18:00,0.80, !- Field 11 + Until: 20:00,0.60, !- Field 13 + Until: 22:00,0.50, !- Field 15 + Until: 24:00,0.40, !- Field 17 + For: Saturday, !- Field 19 + Until: 06:00,0.30, !- Field 20 + Until: 08:00,0.4, !- Field 22 + Until: 14:00,0.5, !- Field 24 + Until: 17:00,0.35, !- Field 26 + Until: 24:00,0.30, !- Field 28 + For: SummerDesignDay, !- Field 30 + Until: 24:00,1.0, !- Field 31 + For: WinterDesignDay, !- Field 33 + Until: 24:00,0.0, !- Field 34 + For: AllOtherDays, !- Field 36 + Until: 24:00,0.30; !- Field 37 + + Schedule:Compact, + ACTIVITY_SCH, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,120; !- Field 3 + + Schedule:Compact, + WORK_EFF_SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.0; !- Field 3 + + Schedule:Compact, + AIR_VELO_SCH, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.2; !- Field 3 + + Schedule:Compact, + CLOTHING_SCH, !- Name + Any Number, !- Schedule Type Limits Name + Through: 04/30, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1.0, !- Field 3 + Through: 09/30, !- Field 5 + For: AllDays, !- Field 6 + Until: 24:00,0.5, !- Field 7 + Through: 12/31, !- Field 9 + For: AllDays, !- Field 10 + Until: 24:00,1.0; !- Field 11 + +! ***HVAC EQUIPMENT*** + + Fan:VariableVolume, + VAV_1_Fan, !- Name + HVACOperationSchd, !- Availability Schedule Name + 0.6045, !- Fan Total Efficiency + 1017.592, !- Pressure Rise {Pa} + AUTOSIZE, !- Maximum Flow Rate {m3/s} + FixedFlowRate, !- Fan Power Minimum Flow Rate Input Method + , !- Fan Power Minimum Flow Fraction + 0.0000, !- Fan Power Minimum Air Flow Rate {m3/s} + 0.93, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + 0.0407598940, !- Fan Power Coefficient 1 + 0.08804497, !- Fan Power Coefficient 2 + -0.072926120, !- Fan Power Coefficient 3 + 0.9437398230, !- Fan Power Coefficient 4 + 0, !- Fan Power Coefficient 5 + VAV_1_HeatC-VAV_1_FanNode, !- Air Inlet Node Name + VAV_1 Supply Equipment Outlet Node, !- Air Outlet Node Name + Fan Energy; !- End-Use Subcategory + + Fan:VariableVolume, + VAV_2_Fan, !- Name + HVACOperationSchd, !- Availability Schedule Name + 0.6175, !- Fan Total Efficiency + 1017.592, !- Pressure Rise {Pa} + AUTOSIZE, !- Maximum Flow Rate {m3/s} + FixedFlowRate, !- Fan Power Minimum Flow Rate Input Method + , !- Fan Power Minimum Flow Fraction + 0.0000, !- Fan Power Minimum Air Flow Rate {m3/s} + 0.95, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + 0.0407598940, !- Fan Power Coefficient 1 + 0.08804497, !- Fan Power Coefficient 2 + -0.072926120, !- Fan Power Coefficient 3 + 0.9437398230, !- Fan Power Coefficient 4 + 0, !- Fan Power Coefficient 5 + VAV_2_HeatC-VAV_2_FanNode, !- Air Inlet Node Name + VAV_2 Supply Equipment Outlet Node, !- Air Outlet Node Name + Fan Energy; !- End-Use Subcategory + + Fan:VariableVolume, + VAV_3_Fan, !- Name + HVACOperationSchd, !- Availability Schedule Name + 0.6045, !- Fan Total Efficiency + 1017.592, !- Pressure Rise {Pa} + AUTOSIZE, !- Maximum Flow Rate {m3/s} + FixedFlowRate, !- Fan Power Minimum Flow Rate Input Method + , !- Fan Power Minimum Flow Fraction + 0.0000, !- Fan Power Minimum Air Flow Rate {m3/s} + 0.93, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + 0.0407598940, !- Fan Power Coefficient 1 + 0.08804497, !- Fan Power Coefficient 2 + -0.072926120, !- Fan Power Coefficient 3 + 0.9437398230, !- Fan Power Coefficient 4 + 0, !- Fan Power Coefficient 5 + VAV_3_HeatC-VAV_3_FanNode, !- Air Inlet Node Name + VAV_3 Supply Equipment Outlet Node, !- Air Outlet Node Name + Fan Energy; !- End-Use Subcategory + + Fan:VariableVolume, + VAV_5_Fan, !- Name + HVACOperationSchd, !- Availability Schedule Name + 0.5915, !- Fan Total Efficiency + 1109.648, !- Pressure Rise {Pa} + AUTOSIZE, !- Maximum Flow Rate {m3/s} + FixedFlowRate, !- Fan Power Minimum Flow Rate Input Method + , !- Fan Power Minimum Flow Fraction + 0.0000, !- Fan Power Minimum Air Flow Rate {m3/s} + 0.91, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + 0.0407598940, !- Fan Power Coefficient 1 + 0.08804497, !- Fan Power Coefficient 2 + -0.072926120, !- Fan Power Coefficient 3 + 0.9437398230, !- Fan Power Coefficient 4 + 0, !- Fan Power Coefficient 5 + VAV_5_HeatC-VAV_5_FanNode, !- Air Inlet Node Name + VAV_5 Supply Equipment Outlet Node, !- Air Outlet Node Name + Fan Energy; !- End-Use Subcategory + + Coil:Heating:Water, + Basement VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Basement VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Basement VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Basement VAV Box Damper Node, !- Air Inlet Node Name + Basement VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Core_bottom VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Core_bottom VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Core_bottom VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Core_bottom VAV Box Damper Node, !- Air Inlet Node Name + Core_bottom VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Core_mid VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Core_mid VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Core_mid VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Core_mid VAV Box Damper Node, !- Air Inlet Node Name + Core_mid VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Core_top VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Core_top VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Core_top VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Core_top VAV Box Damper Node, !- Air Inlet Node Name + Core_top VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_bot_ZN_1 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_bot_ZN_1 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_bot_ZN_1 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_bot_ZN_1 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_bot_ZN_1 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_bot_ZN_2 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_bot_ZN_2 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_bot_ZN_2 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_bot_ZN_2 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_bot_ZN_2 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_bot_ZN_3 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_bot_ZN_3 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_bot_ZN_3 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_bot_ZN_3 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_bot_ZN_3 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_bot_ZN_4 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_bot_ZN_4 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_bot_ZN_4 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_bot_ZN_4 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_bot_ZN_4 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_mid_ZN_1 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_mid_ZN_1 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_mid_ZN_1 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_mid_ZN_1 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_mid_ZN_1 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_mid_ZN_2 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_mid_ZN_2 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_mid_ZN_2 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_mid_ZN_2 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_mid_ZN_2 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_mid_ZN_3 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_mid_ZN_3 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_mid_ZN_3 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_mid_ZN_3 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_mid_ZN_3 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_mid_ZN_4 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_mid_ZN_4 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_mid_ZN_4 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_mid_ZN_4 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_mid_ZN_4 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_top_ZN_1 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_top_ZN_1 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_top_ZN_1 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_top_ZN_1 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_top_ZN_1 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_top_ZN_2 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_top_ZN_2 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_top_ZN_2 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_top_ZN_2 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_top_ZN_2 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_top_ZN_3 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_top_ZN_3 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_top_ZN_3 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_top_ZN_3 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_top_ZN_3 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + Perimeter_top_ZN_4 VAV Box Reheat Coil, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + Perimeter_top_ZN_4 VAV Box Reheat CoilDemand Inlet Node, !- Water Inlet Node Name + Perimeter_top_ZN_4 VAV Box Reheat CoilDemand Outlet Node, !- Water Outlet Node Name + Perimeter_top_ZN_4 VAV Box Damper Node, !- Air Inlet Node Name + Perimeter_top_ZN_4 VAV Box Outlet Node Name, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + VAV_1_HeatC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + VAV_1_HeatCDemand Inlet Node, !- Water Inlet Node Name + VAV_1_HeatCDemand Outlet Node, !- Water Outlet Node Name + VAV_1_CoolC-VAV_1_HeatCNode, !- Air Inlet Node Name + VAV_1_HeatC-VAV_1_FanNode, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + VAV_2_HeatC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + VAV_2_HeatCDemand Inlet Node, !- Water Inlet Node Name + VAV_2_HeatCDemand Outlet Node, !- Water Outlet Node Name + VAV_2_CoolC-VAV_2_HeatCNode, !- Air Inlet Node Name + VAV_2_HeatC-VAV_2_FanNode, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + VAV_3_HeatC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + VAV_3_HeatCDemand Inlet Node, !- Water Inlet Node Name + VAV_3_HeatCDemand Outlet Node, !- Water Outlet Node Name + VAV_3_CoolC-VAV_3_HeatCNode, !- Air Inlet Node Name + VAV_3_HeatC-VAV_3_FanNode, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + VAV_5_HeatC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- U-Factor Times Area Value {W/K} + AUTOSIZE, !- Maximum Water Flow Rate {m3/s} + VAV_5_HeatCDemand Inlet Node, !- Water Inlet Node Name + VAV_5_HeatCDemand Outlet Node, !- Water Outlet Node Name + VAV_5_CoolC-VAV_5_HeatCNode, !- Air Inlet Node Name + VAV_5_HeatC-VAV_5_FanNode, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + AUTOSIZE, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Cooling:Water, + VAV_3_CoolC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- Design Water Flow Rate {m3/s} + AUTOSIZE, !- Design Air Flow Rate {m3/s} + AUTOSIZE, !- Design Inlet Water Temperature {C} + AUTOSIZE, !- Design Inlet Air Temperature {C} + AUTOSIZE, !- Design Outlet Air Temperature {C} + AUTOSIZE, !- Design Inlet Air Humidity Ratio {kgWater/kgDryAir} + AUTOSIZE, !- Design Outlet Air Humidity Ratio {kgWater/kgDryAir} + VAV_3_CoolCDemand Inlet Node, !- Water Inlet Node Name + VAV_3_CoolCDemand Outlet Node, !- Water Outlet Node Name + VAV_3_OA-VAV_3_CoolCNode,!- Air Inlet Node Name + VAV_3_CoolC-VAV_3_HeatCNode, !- Air Outlet Node Name + SimpleAnalysis, !- Type of Analysis + CrossFlow; !- Heat Exchanger Configuration + + Coil:Cooling:Water, + VAV_2_CoolC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- Design Water Flow Rate {m3/s} + AUTOSIZE, !- Design Air Flow Rate {m3/s} + AUTOSIZE, !- Design Inlet Water Temperature {C} + AUTOSIZE, !- Design Inlet Air Temperature {C} + AUTOSIZE, !- Design Outlet Air Temperature {C} + AUTOSIZE, !- Design Inlet Air Humidity Ratio {kgWater/kgDryAir} + AUTOSIZE, !- Design Outlet Air Humidity Ratio {kgWater/kgDryAir} + VAV_2_CoolCDemand Inlet Node, !- Water Inlet Node Name + VAV_2_CoolCDemand Outlet Node, !- Water Outlet Node Name + VAV_2_OA-VAV_2_CoolCNode,!- Air Inlet Node Name + VAV_2_CoolC-VAV_2_HeatCNode, !- Air Outlet Node Name + SimpleAnalysis, !- Type of Analysis + CrossFlow; !- Heat Exchanger Configuration + + Coil:Cooling:Water, + VAV_1_CoolC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- Design Water Flow Rate {m3/s} + AUTOSIZE, !- Design Air Flow Rate {m3/s} + AUTOSIZE, !- Design Inlet Water Temperature {C} + AUTOSIZE, !- Design Inlet Air Temperature {C} + AUTOSIZE, !- Design Outlet Air Temperature {C} + AUTOSIZE, !- Design Inlet Air Humidity Ratio {kgWater/kgDryAir} + AUTOSIZE, !- Design Outlet Air Humidity Ratio {kgWater/kgDryAir} + VAV_1_CoolCDemand Inlet Node, !- Water Inlet Node Name + VAV_1_CoolCDemand Outlet Node, !- Water Outlet Node Name + VAV_1_OA-VAV_1_CoolCNode,!- Air Inlet Node Name + VAV_1_CoolC-VAV_1_HeatCNode, !- Air Outlet Node Name + SimpleAnalysis, !- Type of Analysis + CrossFlow; !- Heat Exchanger Configuration + + Coil:Cooling:Water, + VAV_5_CoolC, !- Name + ALWAYS_ON, !- Availability Schedule Name + AUTOSIZE, !- Design Water Flow Rate {m3/s} + AUTOSIZE, !- Design Air Flow Rate {m3/s} + AUTOSIZE, !- Design Inlet Water Temperature {C} + AUTOSIZE, !- Design Inlet Air Temperature {C} + AUTOSIZE, !- Design Outlet Air Temperature {C} + AUTOSIZE, !- Design Inlet Air Humidity Ratio {kgWater/kgDryAir} + AUTOSIZE, !- Design Outlet Air Humidity Ratio {kgWater/kgDryAir} + VAV_5_CoolCDemand Inlet Node, !- Water Inlet Node Name + VAV_5_CoolCDemand Outlet Node, !- Water Outlet Node Name + VAV_5_OA-VAV_5_CoolCNode,!- Air Inlet Node Name + VAV_5_CoolC-VAV_5_HeatCNode, !- Air Outlet Node Name + SimpleAnalysis, !- Type of Analysis + CrossFlow; !- Heat Exchanger Configuration + + AirTerminal:SingleDuct:VAV:Reheat, + Basement VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Basement VAV Box Damper Node, !- Damper Air Outlet Node Name + Basement VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Basement VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Basement VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Core_bottom VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Core_bottom VAV Box Damper Node, !- Damper Air Outlet Node Name + Core_bottom VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Core_bottom VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Core_bottom VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Core_mid VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Core_mid VAV Box Damper Node, !- Damper Air Outlet Node Name + Core_mid VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Core_mid VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Core_mid VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Core_top VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Core_top VAV Box Damper Node, !- Damper Air Outlet Node Name + Core_top VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Core_top VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Core_top VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_bot_ZN_1 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_bot_ZN_1 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_bot_ZN_1 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_bot_ZN_1 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_bot_ZN_1 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_bot_ZN_2 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_bot_ZN_2 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_bot_ZN_2 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_bot_ZN_2 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_bot_ZN_2 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_bot_ZN_3 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_bot_ZN_3 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_bot_ZN_3 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_bot_ZN_3 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_bot_ZN_3 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_bot_ZN_4 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_bot_ZN_4 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_bot_ZN_4 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_bot_ZN_4 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_bot_ZN_4 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_mid_ZN_1 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_mid_ZN_1 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_mid_ZN_1 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_mid_ZN_1 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_mid_ZN_1 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_mid_ZN_2 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_mid_ZN_2 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_mid_ZN_2 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_mid_ZN_2 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_mid_ZN_2 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_mid_ZN_3 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_mid_ZN_3 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_mid_ZN_3 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_mid_ZN_3 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_mid_ZN_3 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_mid_ZN_4 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_mid_ZN_4 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_mid_ZN_4 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_mid_ZN_4 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_mid_ZN_4 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_top_ZN_1 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_top_ZN_1 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_top_ZN_1 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_top_ZN_1 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_top_ZN_1 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_top_ZN_2 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_top_ZN_2 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_top_ZN_2 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_top_ZN_2 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_top_ZN_2 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_top_ZN_3 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_top_ZN_3 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_top_ZN_3 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_top_ZN_3 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_top_ZN_3 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + Perimeter_top_ZN_4 VAV Box Component, !- Name + ALWAYS_ON, !- Availability Schedule Name + Perimeter_top_ZN_4 VAV Box Damper Node, !- Damper Air Outlet Node Name + Perimeter_top_ZN_4 VAV Box Inlet Node Name, !- Air Inlet Node Name + AUTOSIZE, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + Perimeter_top_ZN_4 VAV Box Reheat Coil, !- Reheat Coil Name + AUTOSIZE, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + Perimeter_top_ZN_4 VAV Box Outlet Node Name, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + NORMAL, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + ZoneHVAC:EquipmentList, + Basement Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Basement VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Core_bottom Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Core_bottom VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Core_mid Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Core_mid VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Core_top Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Core_top VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_bot_ZN_1 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_bot_ZN_1 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_bot_ZN_2 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_bot_ZN_2 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_bot_ZN_3 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_bot_ZN_3 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_bot_ZN_4 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_bot_ZN_4 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_mid_ZN_1 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_mid_ZN_1 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_mid_ZN_2 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_mid_ZN_2 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_mid_ZN_3 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_mid_ZN_3 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_mid_ZN_4 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_mid_ZN_4 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_top_ZN_1 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_top_ZN_1 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_top_ZN_2 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_top_ZN_2 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_top_ZN_3 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_top_ZN_3 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + Perimeter_top_ZN_4 Equipment, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Perimeter_top_ZN_4 VAV Box, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + +! ***SIZING & CONTROLS*** + + Sizing:Zone, + Basement, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Basement, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Basement, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Core_bottom, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Core_bottom, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Core_bottom, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Core_mid, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Core_mid, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Core_mid, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Core_top, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Core_top, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Core_top, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_bot_ZN_1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_bot_ZN_1, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_bot_ZN_1, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_bot_ZN_2, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_bot_ZN_2, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_bot_ZN_2, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_bot_ZN_3, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_bot_ZN_3, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_bot_ZN_3, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_bot_ZN_4, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_bot_ZN_4, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_bot_ZN_4, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_mid_ZN_1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_mid_ZN_1, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_mid_ZN_1, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_mid_ZN_2, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_mid_ZN_2, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_mid_ZN_2, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_mid_ZN_3, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_mid_ZN_3, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_mid_ZN_3, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_mid_ZN_4, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_mid_ZN_4, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_mid_ZN_4, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_top_ZN_1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_top_ZN_1, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_top_ZN_1, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_top_ZN_2, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_top_ZN_2, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_top_ZN_2, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_top_ZN_3, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_top_ZN_3, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_top_ZN_3, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + Sizing:Zone, + Perimeter_top_ZN_4, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 12.8000, !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50.0000, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA Perimeter_top_ZN_4, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA Perimeter_top_ZN_4, !- Name + Flow/Person, !- Outdoor Air Method + 0.0125; !- Outdoor Air Flow per Person {m3/s-person} + + ZoneControl:Thermostat, + Basement Thermostat, !- Name + Basement, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Basement DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Core_bottom Thermostat, !- Name + Core_bottom, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Core_bottom DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Core_mid Thermostat, !- Name + Core_mid, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Core_mid DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Core_top Thermostat, !- Name + Core_top, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Core_top DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_bot_ZN_1 Thermostat, !- Name + Perimeter_bot_ZN_1, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_bot_ZN_1 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_bot_ZN_2 Thermostat, !- Name + Perimeter_bot_ZN_2, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_bot_ZN_2 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_bot_ZN_3 Thermostat, !- Name + Perimeter_bot_ZN_3, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_bot_ZN_3 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_bot_ZN_4 Thermostat, !- Name + Perimeter_bot_ZN_4, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_bot_ZN_4 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_mid_ZN_1 Thermostat, !- Name + Perimeter_mid_ZN_1, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_mid_ZN_1 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_mid_ZN_2 Thermostat, !- Name + Perimeter_mid_ZN_2, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_mid_ZN_2 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_mid_ZN_3 Thermostat, !- Name + Perimeter_mid_ZN_3, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_mid_ZN_3 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_mid_ZN_4 Thermostat, !- Name + Perimeter_mid_ZN_4, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_mid_ZN_4 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_top_ZN_1 Thermostat, !- Name + Perimeter_top_ZN_1, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_top_ZN_1 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_top_ZN_2 Thermostat, !- Name + Perimeter_top_ZN_2, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_top_ZN_2 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_top_ZN_3 Thermostat, !- Name + Perimeter_top_ZN_3, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_top_ZN_3 DualSPSched; !- Control 1 Name + + ZoneControl:Thermostat, + Perimeter_top_ZN_4 Thermostat, !- Name + Perimeter_top_ZN_4, !- Zone or ZoneList Name + Dual Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + Perimeter_top_ZN_4 DualSPSched; !- Control 1 Name + + ThermostatSetpoint:DualSetpoint, + Basement DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Core_bottom DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Core_mid DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Core_top DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_bot_ZN_1 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_bot_ZN_2 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_bot_ZN_3 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_bot_ZN_4 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_mid_ZN_1 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_mid_ZN_2 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_mid_ZN_3 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_mid_ZN_4 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_top_ZN_1 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_top_ZN_2 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_top_ZN_3 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + Perimeter_top_ZN_4 DualSPSched, !- Name + HTGSETP_SCH, !- Heating Setpoint Temperature Schedule Name + CLGSETP_SCH; !- Cooling Setpoint Temperature Schedule Name + + Sizing:System, + VAV_1, !- AirLoop Name + Sensible, !- Type of Load to Size On + AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} + 0.3, !- Minimum System Air Flow Ratio + 7.0, !- Preheat Design Temperature {C} + 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Precool Design Temperature {C} + 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Central Cooling Design Supply Air Temperature {C} + 16.7000, !- Central Heating Design Supply Air Temperature {C} + NonCoincident, !- Sizing Option + No, !- 100% Outdoor Air in Cooling + No, !- 100% Outdoor Air in Heating + 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + ; !- System Outdoor Air Method + + Sizing:System, + VAV_2, !- AirLoop Name + Sensible, !- Type of Load to Size On + AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} + 0.3, !- Minimum System Air Flow Ratio + 7.0, !- Preheat Design Temperature {C} + 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Precool Design Temperature {C} + 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Central Cooling Design Supply Air Temperature {C} + 16.7000, !- Central Heating Design Supply Air Temperature {C} + NonCoincident, !- Sizing Option + No, !- 100% Outdoor Air in Cooling + No, !- 100% Outdoor Air in Heating + 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + ; !- System Outdoor Air Method + + Sizing:System, + VAV_3, !- AirLoop Name + Sensible, !- Type of Load to Size On + AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} + 0.3, !- Minimum System Air Flow Ratio + 7.0, !- Preheat Design Temperature {C} + 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Precool Design Temperature {C} + 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Central Cooling Design Supply Air Temperature {C} + 16.7000, !- Central Heating Design Supply Air Temperature {C} + NonCoincident, !- Sizing Option + No, !- 100% Outdoor Air in Cooling + No, !- 100% Outdoor Air in Heating + 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + ; !- System Outdoor Air Method + + Sizing:System, + VAV_5, !- AirLoop Name + Sensible, !- Type of Load to Size On + AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} + 0.3, !- Minimum System Air Flow Ratio + 7.0, !- Preheat Design Temperature {C} + 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Precool Design Temperature {C} + 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} + 12.8000, !- Central Cooling Design Supply Air Temperature {C} + 16.7000, !- Central Heating Design Supply Air Temperature {C} + NonCoincident, !- Sizing Option + No, !- 100% Outdoor Air in Cooling + No, !- 100% Outdoor Air in Heating + 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.0080, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + DesignDay, !- Cooling Design Air Flow Method + , !- Cooling Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} + DesignDay, !- Heating Design Air Flow Method + , !- Heating Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + ; !- System Outdoor Air Method + + Controller:OutdoorAir, + VAV_1_OA_Controller, !- Name + VAV_1_OARelief Node, !- Relief Air Outlet Node Name + VAV_1 Supply Equipment Inlet Node, !- Return Air Node Name + VAV_1_OA-VAV_1_CoolCNode,!- Mixed Air Node Name + VAV_1_OAInlet Node, !- Actuator Node Name + AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s} + AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s} + DifferentialDryBulb, !- Economizer Control Type + ModulateFlow, !- Economizer Control Action Type + 28.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C} + 64000.0, !- Economizer Maximum Limit Enthalpy {J/kg} + , !- Economizer Maximum Limit Dewpoint Temperature {C} + , !- Electronic Enthalpy Limit Curve Name + -100.0, !- Economizer Minimum Limit Dry-Bulb Temperature {C} + NoLockout, !- Lockout Type + FixedMinimum, !- Minimum Limit Type + MinOA_MotorizedDamper_Sched; !- Minimum Outdoor Air Schedule Name + + Controller:OutdoorAir, + VAV_2_OA_Controller, !- Name + VAV_2_OARelief Node, !- Relief Air Outlet Node Name + VAV_2 Supply Equipment Inlet Node, !- Return Air Node Name + VAV_2_OA-VAV_2_CoolCNode,!- Mixed Air Node Name + VAV_2_OAInlet Node, !- Actuator Node Name + AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s} + AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s} + DifferentialDryBulb, !- Economizer Control Type + ModulateFlow, !- Economizer Control Action Type + 28.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C} + 64000.0, !- Economizer Maximum Limit Enthalpy {J/kg} + , !- Economizer Maximum Limit Dewpoint Temperature {C} + , !- Electronic Enthalpy Limit Curve Name + -100.0, !- Economizer Minimum Limit Dry-Bulb Temperature {C} + NoLockout, !- Lockout Type + FixedMinimum, !- Minimum Limit Type + MinOA_MotorizedDamper_Sched; !- Minimum Outdoor Air Schedule Name + + Controller:OutdoorAir, + VAV_3_OA_Controller, !- Name + VAV_3_OARelief Node, !- Relief Air Outlet Node Name + VAV_3 Supply Equipment Inlet Node, !- Return Air Node Name + VAV_3_OA-VAV_3_CoolCNode,!- Mixed Air Node Name + VAV_3_OAInlet Node, !- Actuator Node Name + AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s} + AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s} + DifferentialDryBulb, !- Economizer Control Type + ModulateFlow, !- Economizer Control Action Type + 28.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C} + 64000.0, !- Economizer Maximum Limit Enthalpy {J/kg} + , !- Economizer Maximum Limit Dewpoint Temperature {C} + , !- Electronic Enthalpy Limit Curve Name + -100.0, !- Economizer Minimum Limit Dry-Bulb Temperature {C} + NoLockout, !- Lockout Type + FixedMinimum, !- Minimum Limit Type + MinOA_MotorizedDamper_Sched; !- Minimum Outdoor Air Schedule Name + + Controller:OutdoorAir, + VAV_5_OA_Controller, !- Name + VAV_5_OARelief Node, !- Relief Air Outlet Node Name + VAV_5 Supply Equipment Inlet Node, !- Return Air Node Name + VAV_5_OA-VAV_5_CoolCNode,!- Mixed Air Node Name + VAV_5_OAInlet Node, !- Actuator Node Name + AUTOSIZE, !- Minimum Outdoor Air Flow Rate {m3/s} + AUTOSIZE, !- Maximum Outdoor Air Flow Rate {m3/s} + DifferentialDryBulb, !- Economizer Control Type + ModulateFlow, !- Economizer Control Action Type + 28.0, !- Economizer Maximum Limit Dry-Bulb Temperature {C} + 64000.0, !- Economizer Maximum Limit Enthalpy {J/kg} + , !- Economizer Maximum Limit Dewpoint Temperature {C} + , !- Electronic Enthalpy Limit Curve Name + -100.0, !- Economizer Minimum Limit Dry-Bulb Temperature {C} + NoLockout, !- Lockout Type + FixedMinimum, !- Minimum Limit Type + MinOA_MotorizedDamper_Sched; !- Minimum Outdoor Air Schedule Name + + SetpointManager:Scheduled, + VAV_1 SAT setpoint, !- Name + Temperature, !- Control Variable + Seasonal-Reset-Supply-Air-Temp-Sch, !- Schedule Name + VAV_1 Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name + + SetpointManager:Scheduled, + VAV_2 SAT setpoint, !- Name + Temperature, !- Control Variable + Seasonal-Reset-Supply-Air-Temp-Sch, !- Schedule Name + VAV_2 Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name + + SetpointManager:Scheduled, + VAV_3 SAT setpoint, !- Name + Temperature, !- Control Variable + Seasonal-Reset-Supply-Air-Temp-Sch, !- Schedule Name + VAV_3 Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name + + SetpointManager:Scheduled, + VAV_5 SAT setpoint, !- Name + Temperature, !- Control Variable + Seasonal-Reset-Supply-Air-Temp-Sch, !- Schedule Name + VAV_5 Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name + +! ***AIR LOOPS*** + + AirLoopHVAC, + VAV_1, !- Name + VAV_1_Controllers, !- Controller List Name + VAV_1 Availability Manager List, !- Availability Manager List Name + AUTOSIZE, !- Design Supply Air Flow Rate {m3/s} + VAV_1 Air Loop Branches, !- Branch List Name + , !- Connector List Name + VAV_1 Supply Equipment Inlet Node, !- Supply Side Inlet Node Name + VAV_1 Zone Equipment Outlet Node, !- Demand Side Outlet Node Name + VAV_1 Zone Equipment Inlet Node, !- Demand Side Inlet Node Names + VAV_1 Supply Equipment Outlet Node; !- Supply Side Outlet Node Names + + AirLoopHVAC, + VAV_2, !- Name + VAV_2_Controllers, !- Controller List Name + VAV_2 Availability Manager List, !- Availability Manager List Name + AUTOSIZE, !- Design Supply Air Flow Rate {m3/s} + VAV_2 Air Loop Branches, !- Branch List Name + , !- Connector List Name + VAV_2 Supply Equipment Inlet Node, !- Supply Side Inlet Node Name + VAV_2 Zone Equipment Outlet Node, !- Demand Side Outlet Node Name + VAV_2 Zone Equipment Inlet Node, !- Demand Side Inlet Node Names + VAV_2 Supply Equipment Outlet Node; !- Supply Side Outlet Node Names + + AirLoopHVAC, + VAV_3, !- Name + VAV_3_Controllers, !- Controller List Name + VAV_3 Availability Manager List, !- Availability Manager List Name + AUTOSIZE, !- Design Supply Air Flow Rate {m3/s} + VAV_3 Air Loop Branches, !- Branch List Name + , !- Connector List Name + VAV_3 Supply Equipment Inlet Node, !- Supply Side Inlet Node Name + VAV_3 Zone Equipment Outlet Node, !- Demand Side Outlet Node Name + VAV_3 Zone Equipment Inlet Node, !- Demand Side Inlet Node Names + VAV_3 Supply Equipment Outlet Node; !- Supply Side Outlet Node Names + + AirLoopHVAC, + VAV_5, !- Name + VAV_5_Controllers, !- Controller List Name + VAV_5 Availability Manager List, !- Availability Manager List Name + AUTOSIZE, !- Design Supply Air Flow Rate {m3/s} + VAV_5 Air Loop Branches, !- Branch List Name + , !- Connector List Name + VAV_5 Supply Equipment Inlet Node, !- Supply Side Inlet Node Name + VAV_5 Zone Equipment Outlet Node, !- Demand Side Outlet Node Name + VAV_5 Zone Equipment Inlet Node, !- Demand Side Inlet Node Names + VAV_5 Supply Equipment Outlet Node; !- Supply Side Outlet Node Names + +! ***CONNECTIONS*** + + ZoneHVAC:EquipmentConnections, + Basement, !- Zone Name + Basement Equipment, !- Zone Conditioning Equipment List Name + Basement Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Basement Air Node, !- Zone Air Node Name + Basement Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Core_bottom, !- Zone Name + Core_bottom Equipment, !- Zone Conditioning Equipment List Name + Core_bottom Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Core_bottom Air Node, !- Zone Air Node Name + Core_bottom Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Core_mid, !- Zone Name + Core_mid Equipment, !- Zone Conditioning Equipment List Name + Core_mid Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Core_mid Air Node, !- Zone Air Node Name + Core_mid Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Core_top, !- Zone Name + Core_top Equipment, !- Zone Conditioning Equipment List Name + Core_top Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Core_top Air Node, !- Zone Air Node Name + Core_top Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_bot_ZN_1, !- Zone Name + Perimeter_bot_ZN_1 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_bot_ZN_1 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_bot_ZN_1 Air Node, !- Zone Air Node Name + Perimeter_bot_ZN_1 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_bot_ZN_2, !- Zone Name + Perimeter_bot_ZN_2 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_bot_ZN_2 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_bot_ZN_2 Air Node, !- Zone Air Node Name + Perimeter_bot_ZN_2 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_bot_ZN_3, !- Zone Name + Perimeter_bot_ZN_3 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_bot_ZN_3 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_bot_ZN_3 Air Node, !- Zone Air Node Name + Perimeter_bot_ZN_3 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_bot_ZN_4, !- Zone Name + Perimeter_bot_ZN_4 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_bot_ZN_4 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_bot_ZN_4 Air Node, !- Zone Air Node Name + Perimeter_bot_ZN_4 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_mid_ZN_1, !- Zone Name + Perimeter_mid_ZN_1 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_mid_ZN_1 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_mid_ZN_1 Air Node, !- Zone Air Node Name + Perimeter_mid_ZN_1 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_mid_ZN_2, !- Zone Name + Perimeter_mid_ZN_2 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_mid_ZN_2 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_mid_ZN_2 Air Node, !- Zone Air Node Name + Perimeter_mid_ZN_2 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_mid_ZN_3, !- Zone Name + Perimeter_mid_ZN_3 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_mid_ZN_3 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_mid_ZN_3 Air Node, !- Zone Air Node Name + Perimeter_mid_ZN_3 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_mid_ZN_4, !- Zone Name + Perimeter_mid_ZN_4 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_mid_ZN_4 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_mid_ZN_4 Air Node, !- Zone Air Node Name + Perimeter_mid_ZN_4 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_top_ZN_1, !- Zone Name + Perimeter_top_ZN_1 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_top_ZN_1 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_top_ZN_1 Air Node, !- Zone Air Node Name + Perimeter_top_ZN_1 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_top_ZN_2, !- Zone Name + Perimeter_top_ZN_2 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_top_ZN_2 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_top_ZN_2 Air Node, !- Zone Air Node Name + Perimeter_top_ZN_2 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_top_ZN_3, !- Zone Name + Perimeter_top_ZN_3 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_top_ZN_3 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_top_ZN_3 Air Node, !- Zone Air Node Name + Perimeter_top_ZN_3 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + Perimeter_top_ZN_4, !- Zone Name + Perimeter_top_ZN_4 Equipment, !- Zone Conditioning Equipment List Name + Perimeter_top_ZN_4 Inlet Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Perimeter_top_ZN_4 Air Node, !- Zone Air Node Name + Perimeter_top_ZN_4 Return Air Node Name; !- Zone Return Air Node Name + + ZoneHVAC:AirDistributionUnit, + Basement VAV Box, !- Name + Basement VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Basement VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Core_bottom VAV Box, !- Name + Core_bottom VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Core_bottom VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Core_mid VAV Box, !- Name + Core_mid VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Core_mid VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Core_top VAV Box, !- Name + Core_top VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Core_top VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_bot_ZN_1 VAV Box, !- Name + Perimeter_bot_ZN_1 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_bot_ZN_1 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_bot_ZN_2 VAV Box, !- Name + Perimeter_bot_ZN_2 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_bot_ZN_2 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_bot_ZN_3 VAV Box, !- Name + Perimeter_bot_ZN_3 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_bot_ZN_3 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_bot_ZN_4 VAV Box, !- Name + Perimeter_bot_ZN_4 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_bot_ZN_4 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_mid_ZN_1 VAV Box, !- Name + Perimeter_mid_ZN_1 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_mid_ZN_1 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_mid_ZN_2 VAV Box, !- Name + Perimeter_mid_ZN_2 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_mid_ZN_2 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_mid_ZN_3 VAV Box, !- Name + Perimeter_mid_ZN_3 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_mid_ZN_3 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_mid_ZN_4 VAV Box, !- Name + Perimeter_mid_ZN_4 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_mid_ZN_4 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_top_ZN_1 VAV Box, !- Name + Perimeter_top_ZN_1 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_top_ZN_1 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_top_ZN_2 VAV Box, !- Name + Perimeter_top_ZN_2 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_top_ZN_2 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_top_ZN_3 VAV Box, !- Name + Perimeter_top_ZN_3 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_top_ZN_3 VAV Box Component; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + Perimeter_top_ZN_4 VAV Box, !- Name + Perimeter_top_ZN_4 VAV Box Outlet Node Name, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + Perimeter_top_ZN_4 VAV Box Component; !- Air Terminal Name + + NodeList, + Basement Inlet Nodes, !- Name + Basement VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Core_bottom Inlet Nodes, !- Name + Core_bottom VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Core_mid Inlet Nodes, !- Name + Core_mid VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Core_top Inlet Nodes, !- Name + Core_top VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_bot_ZN_1 Inlet Nodes, !- Name + Perimeter_bot_ZN_1 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_bot_ZN_2 Inlet Nodes, !- Name + Perimeter_bot_ZN_2 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_bot_ZN_3 Inlet Nodes, !- Name + Perimeter_bot_ZN_3 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_bot_ZN_4 Inlet Nodes, !- Name + Perimeter_bot_ZN_4 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_mid_ZN_1 Inlet Nodes, !- Name + Perimeter_mid_ZN_1 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_mid_ZN_2 Inlet Nodes, !- Name + Perimeter_mid_ZN_2 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_mid_ZN_3 Inlet Nodes, !- Name + Perimeter_mid_ZN_3 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_mid_ZN_4 Inlet Nodes, !- Name + Perimeter_mid_ZN_4 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_top_ZN_1 Inlet Nodes, !- Name + Perimeter_top_ZN_1 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_top_ZN_2 Inlet Nodes, !- Name + Perimeter_top_ZN_2 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_top_ZN_3 Inlet Nodes, !- Name + Perimeter_top_ZN_3 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + Perimeter_top_ZN_4 Inlet Nodes, !- Name + Perimeter_top_ZN_4 VAV Box Outlet Node Name; !- Node 1 Name + + NodeList, + VAV_1_OANode List, !- Name + VAV_1_OAInlet Node; !- Node 1 Name + + NodeList, + VAV_2_OANode List, !- Name + VAV_2_OAInlet Node; !- Node 1 Name + + NodeList, + VAV_3_OANode List, !- Name + VAV_3_OAInlet Node; !- Node 1 Name + + NodeList, + VAV_5_OANode List, !- Name + VAV_5_OAInlet Node; !- Node 1 Name + + AvailabilityManagerAssignmentList, + VAV_1 Availability Manager List, !- Name + AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type + VAV_1 Availability Manager; !- Availability Manager 1 Name + + AvailabilityManagerAssignmentList, + VAV_2 Availability Manager List, !- Name + AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type + VAV_2 Availability Manager; !- Availability Manager 1 Name + + AvailabilityManagerAssignmentList, + VAV_3 Availability Manager List, !- Name + AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type + VAV_3 Availability Manager; !- Availability Manager 1 Name + + AvailabilityManagerAssignmentList, + VAV_5 Availability Manager List, !- Name + AvailabilityManager:NightCycle, !- Availability Manager 1 Object Type + VAV_5 Availability Manager; !- Availability Manager 1 Name + + AvailabilityManager:NightCycle, + VAV_1 Availability Manager, !- Name + ALWAYS_ON, !- Applicability Schedule Name + HVACOperationSchd, !- Fan Schedule Name + CycleOnAny, !- Control Type + 1.0, !- Thermostat Tolerance {deltaC} + 1800; !- Cycling Run Time {s} + + AvailabilityManager:NightCycle, + VAV_2 Availability Manager, !- Name + ALWAYS_ON, !- Applicability Schedule Name + HVACOperationSchd, !- Fan Schedule Name + CycleOnAny, !- Control Type + 1.0, !- Thermostat Tolerance {deltaC} + 1800; !- Cycling Run Time {s} + + AvailabilityManager:NightCycle, + VAV_3 Availability Manager, !- Name + ALWAYS_ON, !- Applicability Schedule Name + HVACOperationSchd, !- Fan Schedule Name + CycleOnAny, !- Control Type + 1.0, !- Thermostat Tolerance {deltaC} + 1800; !- Cycling Run Time {s} + + AvailabilityManager:NightCycle, + VAV_5 Availability Manager, !- Name + ALWAYS_ON, !- Applicability Schedule Name + HVACOperationSchd, !- Fan Schedule Name + CycleOnAny, !- Control Type + 1.0, !- Thermostat Tolerance {deltaC} + 1800; !- Cycling Run Time {s} + + BranchList, + VAV_1 Air Loop Branches, !- Name + VAV_1 Air Loop Main Branch; !- Branch 1 Name + + BranchList, + VAV_2 Air Loop Branches, !- Name + VAV_2 Air Loop Main Branch; !- Branch 1 Name + + BranchList, + VAV_3 Air Loop Branches, !- Name + VAV_3 Air Loop Main Branch; !- Branch 1 Name + + BranchList, + VAV_5 Air Loop Branches, !- Name + VAV_5 Air Loop Main Branch; !- Branch 1 Name + + Branch, + VAV_1 Air Loop Main Branch, !- Name + AUTOSIZE, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type + VAV_1_OA, !- Component 1 Name + VAV_1 Supply Equipment Inlet Node, !- Component 1 Inlet Node Name + VAV_1_OA-VAV_1_CoolCNode,!- Component 1 Outlet Node Name + Passive, !- Component 1 Branch Control Type + Coil:Cooling:Water, !- Component 2 Object Type + VAV_1_CoolC, !- Component 2 Name + VAV_1_OA-VAV_1_CoolCNode,!- Component 2 Inlet Node Name + VAV_1_CoolC-VAV_1_HeatCNode, !- Component 2 Outlet Node Name + Passive, !- Component 2 Branch Control Type + Coil:Heating:Water, !- Component 3 Object Type + VAV_1_HeatC, !- Component 3 Name + VAV_1_CoolC-VAV_1_HeatCNode, !- Component 3 Inlet Node Name + VAV_1_HeatC-VAV_1_FanNode, !- Component 3 Outlet Node Name + Passive, !- Component 3 Branch Control Type + Fan:VariableVolume, !- Component 4 Object Type + VAV_1_Fan, !- Component 4 Name + VAV_1_HeatC-VAV_1_FanNode, !- Component 4 Inlet Node Name + VAV_1 Supply Equipment Outlet Node, !- Component 4 Outlet Node Name + Active; !- Component 4 Branch Control Type + + Branch, + VAV_2 Air Loop Main Branch, !- Name + AUTOSIZE, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type + VAV_2_OA, !- Component 1 Name + VAV_2 Supply Equipment Inlet Node, !- Component 1 Inlet Node Name + VAV_2_OA-VAV_2_CoolCNode,!- Component 1 Outlet Node Name + Passive, !- Component 1 Branch Control Type + Coil:Cooling:Water, !- Component 2 Object Type + VAV_2_CoolC, !- Component 2 Name + VAV_2_OA-VAV_2_CoolCNode,!- Component 2 Inlet Node Name + VAV_2_CoolC-VAV_2_HeatCNode, !- Component 2 Outlet Node Name + Passive, !- Component 2 Branch Control Type + Coil:Heating:Water, !- Component 3 Object Type + VAV_2_HeatC, !- Component 3 Name + VAV_2_CoolC-VAV_2_HeatCNode, !- Component 3 Inlet Node Name + VAV_2_HeatC-VAV_2_FanNode, !- Component 3 Outlet Node Name + Passive, !- Component 3 Branch Control Type + Fan:VariableVolume, !- Component 4 Object Type + VAV_2_Fan, !- Component 4 Name + VAV_2_HeatC-VAV_2_FanNode, !- Component 4 Inlet Node Name + VAV_2 Supply Equipment Outlet Node, !- Component 4 Outlet Node Name + Active; !- Component 4 Branch Control Type + + Branch, + VAV_3 Air Loop Main Branch, !- Name + AUTOSIZE, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type + VAV_3_OA, !- Component 1 Name + VAV_3 Supply Equipment Inlet Node, !- Component 1 Inlet Node Name + VAV_3_OA-VAV_3_CoolCNode,!- Component 1 Outlet Node Name + Passive, !- Component 1 Branch Control Type + Coil:Cooling:Water, !- Component 2 Object Type + VAV_3_CoolC, !- Component 2 Name + VAV_3_OA-VAV_3_CoolCNode,!- Component 2 Inlet Node Name + VAV_3_CoolC-VAV_3_HeatCNode, !- Component 2 Outlet Node Name + Passive, !- Component 2 Branch Control Type + Coil:Heating:Water, !- Component 3 Object Type + VAV_3_HeatC, !- Component 3 Name + VAV_3_CoolC-VAV_3_HeatCNode, !- Component 3 Inlet Node Name + VAV_3_HeatC-VAV_3_FanNode, !- Component 3 Outlet Node Name + Passive, !- Component 3 Branch Control Type + Fan:VariableVolume, !- Component 4 Object Type + VAV_3_Fan, !- Component 4 Name + VAV_3_HeatC-VAV_3_FanNode, !- Component 4 Inlet Node Name + VAV_3 Supply Equipment Outlet Node, !- Component 4 Outlet Node Name + Active; !- Component 4 Branch Control Type + + Branch, + VAV_5 Air Loop Main Branch, !- Name + AUTOSIZE, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type + VAV_5_OA, !- Component 1 Name + VAV_5 Supply Equipment Inlet Node, !- Component 1 Inlet Node Name + VAV_5_OA-VAV_5_CoolCNode,!- Component 1 Outlet Node Name + Passive, !- Component 1 Branch Control Type + Coil:Cooling:Water, !- Component 2 Object Type + VAV_5_CoolC, !- Component 2 Name + VAV_5_OA-VAV_5_CoolCNode,!- Component 2 Inlet Node Name + VAV_5_CoolC-VAV_5_HeatCNode, !- Component 2 Outlet Node Name + Passive, !- Component 2 Branch Control Type + Coil:Heating:Water, !- Component 3 Object Type + VAV_5_HeatC, !- Component 3 Name + VAV_5_CoolC-VAV_5_HeatCNode, !- Component 3 Inlet Node Name + VAV_5_HeatC-VAV_5_FanNode, !- Component 3 Outlet Node Name + Passive, !- Component 3 Branch Control Type + Fan:VariableVolume, !- Component 4 Object Type + VAV_5_Fan, !- Component 4 Name + VAV_5_HeatC-VAV_5_FanNode, !- Component 4 Inlet Node Name + VAV_5 Supply Equipment Outlet Node, !- Component 4 Outlet Node Name + Active; !- Component 4 Branch Control Type + + AirLoopHVAC:ControllerList, + VAV_1_Controllers, !- Name + Controller:WaterCoil, !- Controller 1 Object Type + VAV_1_CoolC_Controller, !- Controller 1 Name + Controller:WaterCoil, !- Controller 2 Object Type + VAV_1_HeatC_Controller; !- Controller 2 Name + + AirLoopHVAC:ControllerList, + VAV_1_OA_Controllers, !- Name + Controller:OutdoorAir, !- Controller 1 Object Type + VAV_1_OA_Controller; !- Controller 1 Name + + AirLoopHVAC:ControllerList, + VAV_2_Controllers, !- Name + Controller:WaterCoil, !- Controller 1 Object Type + VAV_2_CoolC_Controller, !- Controller 1 Name + Controller:WaterCoil, !- Controller 2 Object Type + VAV_2_HeatC_Controller; !- Controller 2 Name + + AirLoopHVAC:ControllerList, + VAV_2_OA_Controllers, !- Name + Controller:OutdoorAir, !- Controller 1 Object Type + VAV_2_OA_Controller; !- Controller 1 Name + + AirLoopHVAC:ControllerList, + VAV_3_Controllers, !- Name + Controller:WaterCoil, !- Controller 1 Object Type + VAV_3_CoolC_Controller, !- Controller 1 Name + Controller:WaterCoil, !- Controller 2 Object Type + VAV_3_HeatC_Controller; !- Controller 2 Name + + AirLoopHVAC:ControllerList, + VAV_3_OA_Controllers, !- Name + Controller:OutdoorAir, !- Controller 1 Object Type + VAV_3_OA_Controller; !- Controller 1 Name + + AirLoopHVAC:ControllerList, + VAV_5_Controllers, !- Name + Controller:WaterCoil, !- Controller 1 Object Type + VAV_5_CoolC_Controller, !- Controller 1 Name + Controller:WaterCoil, !- Controller 2 Object Type + VAV_5_HeatC_Controller; !- Controller 2 Name + + AirLoopHVAC:ControllerList, + VAV_5_OA_Controllers, !- Name + Controller:OutdoorAir, !- Controller 1 Object Type + VAV_5_OA_Controller; !- Controller 1 Name + + AirLoopHVAC:OutdoorAirSystem:EquipmentList, + VAV_1_OA_Equipment, !- Name + OutdoorAir:Mixer, !- Component 1 Object Type + VAV_1_OAMixing Box; !- Component 1 Name + + AirLoopHVAC:OutdoorAirSystem:EquipmentList, + VAV_2_OA_Equipment, !- Name + OutdoorAir:Mixer, !- Component 1 Object Type + VAV_2_OAMixing Box; !- Component 1 Name + + AirLoopHVAC:OutdoorAirSystem:EquipmentList, + VAV_3_OA_Equipment, !- Name + OutdoorAir:Mixer, !- Component 1 Object Type + VAV_3_OAMixing Box; !- Component 1 Name + + AirLoopHVAC:OutdoorAirSystem:EquipmentList, + VAV_5_OA_Equipment, !- Name + OutdoorAir:Mixer, !- Component 1 Object Type + VAV_5_OAMixing Box; !- Component 1 Name + + AirLoopHVAC:OutdoorAirSystem, + VAV_1_OA, !- Name + VAV_1_OA_Controllers, !- Controller List Name + VAV_1_OA_Equipment, !- Outdoor Air Equipment List Name + VAV_1 Availability Manager List; !- Availability Manager List Name + + AirLoopHVAC:OutdoorAirSystem, + VAV_2_OA, !- Name + VAV_2_OA_Controllers, !- Controller List Name + VAV_2_OA_Equipment, !- Outdoor Air Equipment List Name + VAV_2 Availability Manager List; !- Availability Manager List Name + + AirLoopHVAC:OutdoorAirSystem, + VAV_3_OA, !- Name + VAV_3_OA_Controllers, !- Controller List Name + VAV_3_OA_Equipment, !- Outdoor Air Equipment List Name + VAV_3 Availability Manager List; !- Availability Manager List Name + + AirLoopHVAC:OutdoorAirSystem, + VAV_5_OA, !- Name + VAV_5_OA_Controllers, !- Controller List Name + VAV_5_OA_Equipment, !- Outdoor Air Equipment List Name + VAV_5 Availability Manager List; !- Availability Manager List Name + + OutdoorAir:NodeList, + VAV_1_OANode List; !- Node or NodeList Name 1 + + OutdoorAir:NodeList, + VAV_2_OANode List; !- Node or NodeList Name 1 + + OutdoorAir:NodeList, + VAV_3_OANode List; !- Node or NodeList Name 1 + + OutdoorAir:NodeList, + VAV_5_OANode List; !- Node or NodeList Name 1 + + OutdoorAir:Mixer, + VAV_1_OAMixing Box, !- Name + VAV_1_OA-VAV_1_CoolCNode,!- Mixed Air Node Name + VAV_1_OAInlet Node, !- Outdoor Air Stream Node Name + VAV_1_OARelief Node, !- Relief Air Stream Node Name + VAV_1 Supply Equipment Inlet Node; !- Return Air Stream Node Name + + OutdoorAir:Mixer, + VAV_2_OAMixing Box, !- Name + VAV_2_OA-VAV_2_CoolCNode,!- Mixed Air Node Name + VAV_2_OAInlet Node, !- Outdoor Air Stream Node Name + VAV_2_OARelief Node, !- Relief Air Stream Node Name + VAV_2 Supply Equipment Inlet Node; !- Return Air Stream Node Name + + OutdoorAir:Mixer, + VAV_3_OAMixing Box, !- Name + VAV_3_OA-VAV_3_CoolCNode,!- Mixed Air Node Name + VAV_3_OAInlet Node, !- Outdoor Air Stream Node Name + VAV_3_OARelief Node, !- Relief Air Stream Node Name + VAV_3 Supply Equipment Inlet Node; !- Return Air Stream Node Name + + OutdoorAir:Mixer, + VAV_5_OAMixing Box, !- Name + VAV_5_OA-VAV_5_CoolCNode,!- Mixed Air Node Name + VAV_5_OAInlet Node, !- Outdoor Air Stream Node Name + VAV_5_OARelief Node, !- Relief Air Stream Node Name + VAV_5 Supply Equipment Inlet Node; !- Return Air Stream Node Name + + SetpointManager:MixedAir, + VAV_1_CoolC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_1 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_1_HeatC-VAV_1_FanNode, !- Fan Inlet Node Name + VAV_1 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_1_CoolC-VAV_1_HeatCNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_1_HeatC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_1 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_1_HeatC-VAV_1_FanNode, !- Fan Inlet Node Name + VAV_1 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_1_HeatC-VAV_1_FanNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_1_OAMixed Air Temp Manager, !- Name + Temperature, !- Control Variable + VAV_1 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_1_HeatC-VAV_1_FanNode, !- Fan Inlet Node Name + VAV_1 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_1_OA-VAV_1_CoolCNode;!- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_2_CoolC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_2 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_2_HeatC-VAV_2_FanNode, !- Fan Inlet Node Name + VAV_2 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_2_CoolC-VAV_2_HeatCNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_2_HeatC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_2 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_2_HeatC-VAV_2_FanNode, !- Fan Inlet Node Name + VAV_2 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_2_HeatC-VAV_2_FanNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_2_OAMixed Air Temp Manager, !- Name + Temperature, !- Control Variable + VAV_2 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_2_HeatC-VAV_2_FanNode, !- Fan Inlet Node Name + VAV_2 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_2_OA-VAV_2_CoolCNode;!- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_3_CoolC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_3 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_3_HeatC-VAV_3_FanNode, !- Fan Inlet Node Name + VAV_3 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_3_CoolC-VAV_3_HeatCNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_3_HeatC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_3 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_3_HeatC-VAV_3_FanNode, !- Fan Inlet Node Name + VAV_3 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_3_HeatC-VAV_3_FanNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_3_OAMixed Air Temp Manager, !- Name + Temperature, !- Control Variable + VAV_3 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_3_HeatC-VAV_3_FanNode, !- Fan Inlet Node Name + VAV_3 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_3_OA-VAV_3_CoolCNode;!- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_5_CoolC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_5 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_5_HeatC-VAV_5_FanNode, !- Fan Inlet Node Name + VAV_5 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_5_CoolC-VAV_5_HeatCNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_5_HeatC SAT Manager, !- Name + Temperature, !- Control Variable + VAV_5 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_5_HeatC-VAV_5_FanNode, !- Fan Inlet Node Name + VAV_5 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_5_HeatC-VAV_5_FanNode; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + VAV_5_OAMixed Air Temp Manager, !- Name + Temperature, !- Control Variable + VAV_5 Supply Equipment Outlet Node, !- Reference Setpoint Node Name + VAV_5_HeatC-VAV_5_FanNode, !- Fan Inlet Node Name + VAV_5 Supply Equipment Outlet Node, !- Fan Outlet Node Name + VAV_5_OA-VAV_5_CoolCNode;!- Setpoint Node or NodeList Name + + AirLoopHVAC:SupplyPath, + VAV_1, !- Name + VAV_1 Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name + AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type + VAV_1 Supply Air Splitter; !- Component 1 Name + + AirLoopHVAC:SupplyPath, + VAV_2, !- Name + VAV_2 Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name + AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type + VAV_2 Supply Air Splitter; !- Component 1 Name + + AirLoopHVAC:SupplyPath, + VAV_3, !- Name + VAV_3 Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name + AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type + VAV_3 Supply Air Splitter; !- Component 1 Name + + AirLoopHVAC:SupplyPath, + VAV_5, !- Name + VAV_5 Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name + AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type + VAV_5 Supply Air Splitter; !- Component 1 Name + + AirLoopHVAC:ZoneSplitter, + VAV_1 Supply Air Splitter, !- Name + VAV_1 Zone Equipment Inlet Node, !- Inlet Node Name + Core_bottom VAV Box Inlet Node Name, !- Outlet 1 Node Name + Perimeter_bot_ZN_3 VAV Box Inlet Node Name, !- Outlet 2 Node Name + Perimeter_bot_ZN_2 VAV Box Inlet Node Name, !- Outlet 3 Node Name + Perimeter_bot_ZN_1 VAV Box Inlet Node Name, !- Outlet 4 Node Name + Perimeter_bot_ZN_4 VAV Box Inlet Node Name; !- Outlet 5 Node Name + + AirLoopHVAC:ZoneSplitter, + VAV_2 Supply Air Splitter, !- Name + VAV_2 Zone Equipment Inlet Node, !- Inlet Node Name + Core_mid VAV Box Inlet Node Name, !- Outlet 1 Node Name + Perimeter_mid_ZN_3 VAV Box Inlet Node Name, !- Outlet 2 Node Name + Perimeter_mid_ZN_2 VAV Box Inlet Node Name, !- Outlet 3 Node Name + Perimeter_mid_ZN_1 VAV Box Inlet Node Name, !- Outlet 4 Node Name + Perimeter_mid_ZN_4 VAV Box Inlet Node Name; !- Outlet 5 Node Name + + AirLoopHVAC:ZoneSplitter, + VAV_3 Supply Air Splitter, !- Name + VAV_3 Zone Equipment Inlet Node, !- Inlet Node Name + Core_top VAV Box Inlet Node Name, !- Outlet 1 Node Name + Perimeter_top_ZN_3 VAV Box Inlet Node Name, !- Outlet 2 Node Name + Perimeter_top_ZN_2 VAV Box Inlet Node Name, !- Outlet 3 Node Name + Perimeter_top_ZN_1 VAV Box Inlet Node Name, !- Outlet 4 Node Name + Perimeter_top_ZN_4 VAV Box Inlet Node Name; !- Outlet 5 Node Name + + AirLoopHVAC:ZoneSplitter, + VAV_5 Supply Air Splitter, !- Name + VAV_5 Zone Equipment Inlet Node, !- Inlet Node Name + Basement VAV Box Inlet Node Name; !- Outlet 1 Node Name + + AirLoopHVAC:ReturnPath, + VAV_1 Return Air Path, !- Name + VAV_1 Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name + AirLoopHVAC:ReturnPlenum,!- Component 1 Object Type + VAV_1 Return Plenum, !- Component 1 Name + AirLoopHVAC:ZoneMixer, !- Component 2 Object Type + VAV_1 Return Air Mixer; !- Component 2 Name + + AirLoopHVAC:ReturnPath, + VAV_2 Return Air Path, !- Name + VAV_2 Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name + AirLoopHVAC:ReturnPlenum,!- Component 1 Object Type + VAV_2 Return Plenum, !- Component 1 Name + AirLoopHVAC:ZoneMixer, !- Component 2 Object Type + VAV_2 Return Air Mixer; !- Component 2 Name + + AirLoopHVAC:ReturnPath, + VAV_3 Return Air Path, !- Name + VAV_3 Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name + AirLoopHVAC:ReturnPlenum,!- Component 1 Object Type + VAV_3 Return Plenum, !- Component 1 Name + AirLoopHVAC:ZoneMixer, !- Component 2 Object Type + VAV_3 Return Air Mixer; !- Component 2 Name + + AirLoopHVAC:ReturnPath, + VAV_5 Return Air Path, !- Name + VAV_5 Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name + AirLoopHVAC:ZoneMixer, !- Component 1 Object Type + VAV_5 Return Air Mixer; !- Component 1 Name + + AirLoopHVAC:ReturnPlenum, + VAV_2 Return Plenum, !- Name + MidFloor_Plenum, !- Zone Name + MIDFLOOR_PLENUMPlenumNode, !- Zone Node Name + MIDFLOOR_PLENUMPlenumOutletNode, !- Outlet Node Name + , !- Induced Air Outlet Node or NodeList Name + Core_mid Return Air Node Name, !- Inlet 1 Node Name + Perimeter_mid_ZN_3 Return Air Node Name, !- Inlet 2 Node Name + Perimeter_mid_ZN_2 Return Air Node Name, !- Inlet 3 Node Name + Perimeter_mid_ZN_1 Return Air Node Name, !- Inlet 4 Node Name + Perimeter_mid_ZN_4 Return Air Node Name; !- Inlet 5 Node Name + + AirLoopHVAC:ReturnPlenum, + VAV_1 Return Plenum, !- Name + GroundFloor_Plenum, !- Zone Name + GROUNDFLOOR_PLENUMPlenumNode, !- Zone Node Name + GROUNDFLOOR_PLENUMPlenumOutletNode, !- Outlet Node Name + , !- Induced Air Outlet Node or NodeList Name + Core_bottom Return Air Node Name, !- Inlet 1 Node Name + Perimeter_bot_ZN_3 Return Air Node Name, !- Inlet 2 Node Name + Perimeter_bot_ZN_2 Return Air Node Name, !- Inlet 3 Node Name + Perimeter_bot_ZN_1 Return Air Node Name, !- Inlet 4 Node Name + Perimeter_bot_ZN_4 Return Air Node Name; !- Inlet 5 Node Name + + AirLoopHVAC:ReturnPlenum, + VAV_3 Return Plenum, !- Name + TopFloor_Plenum, !- Zone Name + TOPFLOOR_PLENUMPlenumNode, !- Zone Node Name + TOPFLOOR_PLENUMPlenumOutletNode, !- Outlet Node Name + , !- Induced Air Outlet Node or NodeList Name + Core_top Return Air Node Name, !- Inlet 1 Node Name + Perimeter_top_ZN_3 Return Air Node Name, !- Inlet 2 Node Name + Perimeter_top_ZN_2 Return Air Node Name, !- Inlet 3 Node Name + Perimeter_top_ZN_1 Return Air Node Name, !- Inlet 4 Node Name + Perimeter_top_ZN_4 Return Air Node Name; !- Inlet 5 Node Name + + AirLoopHVAC:ZoneMixer, + VAV_1 Return Air Mixer, !- Name + VAV_1 Zone Equipment Outlet Node, !- Outlet Node Name + GROUNDFLOOR_PLENUMPlenumOutletNode; !- Inlet 1 Node Name + + AirLoopHVAC:ZoneMixer, + VAV_2 Return Air Mixer, !- Name + VAV_2 Zone Equipment Outlet Node, !- Outlet Node Name + MIDFLOOR_PLENUMPlenumOutletNode; !- Inlet 1 Node Name + + AirLoopHVAC:ZoneMixer, + VAV_3 Return Air Mixer, !- Name + VAV_3 Zone Equipment Outlet Node, !- Outlet Node Name + TOPFLOOR_PLENUMPlenumOutletNode; !- Inlet 1 Node Name + + AirLoopHVAC:ZoneMixer, + VAV_5 Return Air Mixer, !- Name + VAV_5 Zone Equipment Outlet Node, !- Outlet Node Name + Basement Return Air Node Name; !- Inlet 1 Node Name + +! ***SCHEDULES*** + + Schedule:Compact, + CLGSETP_SCH, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay, !- Field 2 + Until: 06:00,26.7, !- Field 3 + Until: 22:00,24.0, !- Field 5 + Until: 24:00,26.7, !- Field 7 + For: Saturday, !- Field 9 + Until: 06:00,26.7, !- Field 10 + Until: 18:00,24.0, !- Field 12 + Until: 24:00,26.7, !- Field 14 + For WinterDesignDay, !- Field 16 + Until: 24:00,26.7, !- Field 17 + For: AllOtherDays, !- Field 19 + Until: 24:00,26.7; !- Field 20 + + Schedule:Compact, + HTGSETP_SCH, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays, !- Field 2 + Until: 06:00,15.6, !- Field 3 + Until: 22:00,21.0, !- Field 5 + Until: 24:00,15.6, !- Field 7 + For SummerDesignDay, !- Field 9 + Until: 24:00,15.6, !- Field 10 + For: Saturday, !- Field 12 + Until: 06:00,15.6, !- Field 13 + Until: 18:00,21.0, !- Field 15 + Until: 24:00,15.6, !- Field 17 + For: WinterDesignDay, !- Field 19 + Until: 24:00,21.0, !- Field 20 + For: AllOtherDays, !- Field 22 + Until: 24:00,15.6; !- Field 23 + + Schedule:Compact, + Seasonal-Reset-Supply-Air-Temp-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,12.8; !- Field 3 + + Schedule:Compact, + MinOA_MotorizedDamper_Sched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay, !- Field 2 + Until: 07:00,0.0, !- Field 3 + Until: 22:00,1.0, !- Field 5 + Until: 24:00,0.0, !- Field 7 + For: Saturday WinterDesignDay, !- Field 9 + Until: 07:00,0.0, !- Field 10 + Until: 18:00,1.0, !- Field 12 + Until: 24:00,0.0, !- Field 14 + For: AllOtherDays, !- Field 16 + Until: 24:00,0.0; !- Field 17 + + Schedule:Compact, + Dual Zone Control Type Sched, !- Name + Control Type, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,4; !- Field 3 + + Schedule:Compact, + HVACOperationSchd, !- Name + On/Off, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay, !- Field 2 + Until: 06:00,0.0, !- Field 3 + Until: 22:00,1.0, !- Field 5 + Until: 24:00,0.0, !- Field 7 + For: Saturday WinterDesignDay, !- Field 9 + Until: 06:00,0.0, !- Field 10 + Until: 18:00,1.0, !- Field 12 + Until: 24:00,0.0, !- Field 14 + For: AllOtherDays, !- Field 16 + Until: 24:00,0.0; !- Field 17 + +! ***EQUIPMENT*** + + Boiler:HotWater, + HeatSys1 Boiler, !- Name + NATURALGAS, !- Fuel Type + AUTOSIZE, !- Nominal Capacity {W} + 0.78, !- Nominal Thermal Efficiency + LeavingBoiler, !- Efficiency Curve Temperature Evaluation Variable + , !- Normalized Boiler Efficiency Curve Name + 82.2000, !- Design Water Outlet Temperature {C} + AUTOSIZE, !- Design Water Flow Rate {m3/s} + 0.0, !- Minimum Part Load Ratio + 1.2, !- Maximum Part Load Ratio + 1.0, !- Optimum Part Load Ratio + HeatSys1 Pump-HeatSys1 BoilerNode, !- Boiler Water Inlet Node Name + HeatSys1 Supply Equipment Outlet Node, !- Boiler Water Outlet Node Name + 95.0, !- Water Outlet Upper Temperature Limit {C} + LeavingSetpointModulated,!- Boiler Flow Mode + 0.0000, !- Parasitic Electric Load {W} + 1.0000; !- Sizing Factor + + SetpointManager:Scheduled, + HeatSys1 Boiler Setpoint Manager, !- Name + Temperature, !- Control Variable + HW-Loop-Temp-Schedule, !- Schedule Name + HeatSys1 Supply Equipment Outlet Node; !- Setpoint Node or NodeList Name + + Chiller:Electric:ReformulatedEIR, + CoolSys1 Chiller 1, !- Name + AUTOSIZE, !- Reference Capacity {W} + 5.5, !- Reference COP {W/W} + 6.67, !- Reference Leaving Chilled Water Temperature {C} + 35, !- Reference Leaving Condenser Water Temperature {C} + AutoSize, !- Reference Chilled Water Flow Rate {m3/s} + AutoSize, !- Reference Condenser Water Flow Rate {m3/s} + WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name + WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + Lift, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type + EIRFPLR Custom Curve, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name + 0.1, !- Minimum Part Load Ratio + 1, !- Maximum Part Load Ratio + 1, !- Optimum Part Load Ratio + 0.2, !- Minimum Unloading Ratio + CoolSys1 Pump-CoolSys1 ChillerNode 1, !- Chilled Water Inlet Node Name + CoolSys1 Supply Equipment Outlet Node 1, !- Chilled Water Outlet Node Name + CoolSys1 Chiller Water Inlet Node 1, !- Condenser Inlet Node Name + CoolSys1 Chiller Water Outlet Node 1, !- Condenser Outlet Node Name + 1, !- Fraction of Compressor Electric Consumption Rejected by Condenser + 2, !- Leaving Chilled Water Lower Temperature Limit {C} + LeavingSetpointModulated,!- Chiller Flow Mode Type + , !- Design Heat Recovery Water Flow Rate {m3/s} + , !- Heat Recovery Inlet Node Name + , !- Heat Recovery Outlet Node Name + 0.5; !- Sizing Factor + + SetpointManager:Scheduled, + CoolSys1 Chiller 1 Setpoint Manager, !- Name + Temperature, !- Control Variable + CW-Loop-Temp-Schedule, !- Schedule Name + CoolSys1 Supply Equipment Outlet Node 1; !- Setpoint Node or NodeList Name + + Chiller:Electric:ReformulatedEIR, + CoolSys1 Chiller 2, !- Name + AUTOSIZE, !- Reference Capacity {W} + 5.5, !- Reference COP {W/W} + 6.67, !- Reference Leaving Chilled Water Temperature {C} + 35, !- Reference Leaving Condenser Water Temperature {C} + AutoSize, !- Reference Chilled Water Flow Rate {m3/s} + AutoSize, !- Reference Condenser Water Flow Rate {m3/s} + WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name + WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type + ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name + 0.1, !- Minimum Part Load Ratio + 1, !- Maximum Part Load Ratio + 1, !- Optimum Part Load Ratio + 0.2, !- Minimum Unloading Ratio + CoolSys1 Pump-CoolSys1 ChillerNode 2, !- Chilled Water Inlet Node Name + CoolSys1 Supply Equipment Outlet Node 2, !- Chilled Water Outlet Node Name + CoolSys1 Chiller Water Inlet Node 2, !- Condenser Inlet Node Name + CoolSys1 Chiller Water Outlet Node 2, !- Condenser Outlet Node Name + 1, !- Fraction of Compressor Electric Consumption Rejected by Condenser + 2, !- Leaving Chilled Water Lower Temperature Limit {C} + LeavingSetpointModulated,!- Chiller Flow Mode Type + , !- Design Heat Recovery Water Flow Rate {m3/s} + , !- Heat Recovery Inlet Node Name + , !- Heat Recovery Outlet Node Name + 0.5; !- Sizing Factor + + SetpointManager:Scheduled, + CoolSys1 Chiller 2 Setpoint Manager, !- Name + Temperature, !- Control Variable + CW-Loop-Temp-Schedule, !- Schedule Name + CoolSys1 Supply Equipment Outlet Node 2; !- Setpoint Node or NodeList Name + + CoolingTower:SingleSpeed, + TowerWaterSys CoolTower, !- Name + TowerWaterSys Pump-TowerWaterSys CoolTowerNode, !- Water Inlet Node Name + TowerWaterSys Supply Equipment Outlet Node, !- Water Outlet Node Name + AUTOSIZE, !- Design Water Flow Rate {m3/s} + AUTOSIZE, !- Design Air Flow Rate {m3/s} + AUTOSIZE, !- Design Fan Power {W} + AUTOSIZE, !- Design U-Factor Times Area Value {W/K} + autocalculate, !- Free Convection Air Flow Rate {m3/s} + , !- Free Convection Air Flow Rate Sizing Factor + autocalculate, !- Free Convection U-Factor Times Area Value {W/K} + , !- Free Convection U-Factor Times Area Value Sizing Factor + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + , !- Heat Rejection Capacity and Nominal Capacity Sizing Ratio + , !- Nominal Capacity {W} + , !- Free Convection Capacity {W} + , !- Free Convection Nominal Capacity Sizing Factor + , !- Basin Heater Capacity {W/K} + , !- Basin Heater Setpoint Temperature {C} + , !- Basin Heater Operating Schedule Name + SaturatedExit, !- Evaporation Loss Mode + , !- Evaporation Loss Factor {percent/K} + 0.0080, !- Drift Loss Percent {percent} + ConcentrationRatio, !- Blowdown Calculation Mode + 3.0000, !- Blowdown Concentration Ratio + , !- Blowdown Makeup Water Usage Schedule Name + , !- Supply Water Storage Tank Name + TowerWaterSys CoolTower OA ref Node, !- Outdoor Air Inlet Node Name + FanCycling, !- Capacity Control + , !- Number of Cells + , !- Cell Control + , !- Cell Minimum Water Flow Rate Fraction + , !- Cell Maximum Water Flow Rate Fraction + 1.0000; !- Sizing Factor + + Pump:VariableSpeed, + CoolSys1 Pump, !- Name + CoolSys1 Supply Inlet Node, !- Inlet Node Name + CoolSys1 Pump-CoolSys1 ChillerNodeviaConnector, !- Outlet Node Name + AUTOSIZE, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + AUTOSIZE, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0.0, !- Minimum Flow Rate {m3/s} + Intermittent; !- Pump Control Type + + Pump:VariableSpeed, + HeatSys1 Pump, !- Name + HeatSys1 Supply Inlet Node, !- Inlet Node Name + HeatSys1 Pump-HeatSys1 BoilerNodeviaConnector, !- Outlet Node Name + AUTOSIZE, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + AUTOSIZE, !- Rated Power Consumption {W} + 0.875, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0.0, !- Minimum Flow Rate {m3/s} + Intermittent; !- Pump Control Type + + Pump:ConstantSpeed, + TowerWaterSys Pump, !- Name + TowerWaterSys Supply Inlet Node, !- Inlet Node Name + TowerWaterSys Pump-TowerWaterSys CoolTowerNodeviaConnector, !- Outlet Node Name + AUTOSIZE, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + AUTOSIZE, !- Rated Power Consumption {W} + 0.87, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + Intermittent; !- Pump Control Type + + PlantEquipmentList, + CoolSys1 Equipment List, !- Name + Chiller:Electric:ReformulatedEIR, !- Equipment 1 Object Type + CoolSys1 Chiller 1, !- Equipment 1 Name + Chiller:Electric:ReformulatedEIR, !- Equipment 2 Object Type + CoolSys1 Chiller 2; !- Equipment 2 Name + + PlantEquipmentList, + HeatSys1 Equipment List, !- Name + Boiler:HotWater, !- Equipment 1 Object Type + HeatSys1 Boiler; !- Equipment 1 Name + + CondenserEquipmentList, + TowerWaterSys Equipment List, !- Name + CoolingTower:SingleSpeed,!- Equipment 1 Object Type + TowerWaterSys CoolTower; !- Equipment 1 Name + +! ***SIZING & CONTROLS*** + + Sizing:Plant, + CoolSys1, !- Plant or Condenser Loop Name + Cooling, !- Loop Type + 6.67, !- Design Loop Exit Temperature {C} + 6.67; !- Loop Design Temperature Difference {deltaC} + + Sizing:Plant, + HeatSys1, !- Plant or Condenser Loop Name + Heating, !- Loop Type + 82.2, !- Design Loop Exit Temperature {C} + 11.1; !- Loop Design Temperature Difference {deltaC} + + Sizing:Plant, + TowerWaterSys, !- Plant or Condenser Loop Name + CONDENSER, !- Loop Type + 29.4, !- Design Loop Exit Temperature {C} + 5.6; !- Loop Design Temperature Difference {deltaC} + + Controller:WaterCoil, + VAV_1_CoolC_Controller, !- Name + Temperature, !- Control Variable + Reverse, !- Action + Flow, !- Actuator Variable + VAV_1_CoolC-VAV_1_HeatCNode, !- Sensor Node Name + VAV_1_CoolCDemand Inlet Node, !- Actuator Node Name + , !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_1_HeatC_Controller, !- Name + Temperature, !- Control Variable + Normal, !- Action + Flow, !- Actuator Variable + VAV_1_HeatC-VAV_1_FanNode, !- Sensor Node Name + VAV_1_HeatCDemand Inlet Node, !- Actuator Node Name + 0.0001, !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_2_CoolC_Controller, !- Name + Temperature, !- Control Variable + Reverse, !- Action + Flow, !- Actuator Variable + VAV_2_CoolC-VAV_2_HeatCNode, !- Sensor Node Name + VAV_2_CoolCDemand Inlet Node, !- Actuator Node Name + , !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_2_HeatC_Controller, !- Name + Temperature, !- Control Variable + Normal, !- Action + Flow, !- Actuator Variable + VAV_2_HeatC-VAV_2_FanNode, !- Sensor Node Name + VAV_2_HeatCDemand Inlet Node, !- Actuator Node Name + 0.0001, !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_3_CoolC_Controller, !- Name + Temperature, !- Control Variable + Reverse, !- Action + Flow, !- Actuator Variable + VAV_3_CoolC-VAV_3_HeatCNode, !- Sensor Node Name + VAV_3_CoolCDemand Inlet Node, !- Actuator Node Name + , !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_3_HeatC_Controller, !- Name + Temperature, !- Control Variable + Normal, !- Action + Flow, !- Actuator Variable + VAV_3_HeatC-VAV_3_FanNode, !- Sensor Node Name + VAV_3_HeatCDemand Inlet Node, !- Actuator Node Name + 0.0001, !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_5_CoolC_Controller, !- Name + Temperature, !- Control Variable + Reverse, !- Action + Flow, !- Actuator Variable + VAV_5_CoolC-VAV_5_HeatCNode, !- Sensor Node Name + VAV_5_CoolCDemand Inlet Node, !- Actuator Node Name + , !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + Controller:WaterCoil, + VAV_5_HeatC_Controller, !- Name + Temperature, !- Control Variable + Normal, !- Action + Flow, !- Actuator Variable + VAV_5_HeatC-VAV_5_FanNode, !- Sensor Node Name + VAV_5_HeatCDemand Inlet Node, !- Actuator Node Name + 0.0001, !- Controller Convergence Tolerance {deltaC} + AUTOSIZE, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + +! Curve adapted by R. Lord for ANSI/ASHRAE/IESNA 90.1-2004 performance +! for a water-cooled, screw/scroll chiller + + Curve:Biquadratic, + WC Screw Default 90.1-2004 Cap_fT, !- Name + 0.9061150, !- Coefficient1 Constant + 0.0292277, !- Coefficient2 x + -0.0003647, !- Coefficient3 x**2 + -0.0009709, !- Coefficient4 y + -0.0000905, !- Coefficient5 y**2 + 0.0002527, !- Coefficient6 x*y + 0.0, !- Minimum Value of x + 20.0, !- Maximum Value of x + 0.0, !- Minimum Value of y + 50.0; !- Maximum Value of y + +! Curve adapted by R. Lord for ANSI/ASHRAE/IESNA 90.1-2004 performance +! for a water-cooled, screw/scroll chiller + + Curve:Biquadratic, + WC Screw Default 90.1-2004 EIR_fT, !- Name + 0.3617105, !- Coefficient1 Constant + -0.0229833, !- Coefficient2 x + -0.0009519, !- Coefficient3 x**2 + 0.0131889, !- Coefficient4 y + 0.0003752, !- Coefficient5 y**2 + -0.0007059, !- Coefficient6 x*y + 0.0, !- Minimum Value of x + 20.0, !- Maximum Value of x + 0.0, !- Minimum Value of y + 50.0; !- Maximum Value of y + +!Curve from EnergyPlus Chiller dataset +! Energy Input to Cooling Output Ratio Function of Part Load Ratio Curve +! x = Leaving Condenser Water Temperature and y = Part Load Ratio (load/capacity) + + Curve:Bicubic, + ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Name + 4.602131E-02, !- Coefficient1 Constant + 2.433945E-02, !- Coefficient2 x + 6.394526E-05, !- Coefficient3 x**2 + -3.648563E-01, !- Coefficient4 y + 1.854759E+00, !- Coefficient5 y**2 + -2.809346E-02, !- Coefficient6 x*y + 0.000000E+00, !- Coefficient7 x**3 + -4.821515E-01, !- Coefficient8 y**3 + 0.000000E+00, !- Coefficient9 x**2*y + 0.000000E+00, !- Coefficient10 x*y**2 + 14.56, !- Minimum Value of x + 34.97, !- Maximum Value of x + 0.18, !- Minimum Value of y + 1.03, !- Maximum Value of y + , !- Minimum Curve Output + , !- Maximum Curve Output + Temperature, !- Input Unit Type for X + Dimensionless, !- Input Unit Type for Y + Dimensionless; !- Output Unit Type + + Curve:ChillerPartLoadWithLift, + EIRFPLR Custom Curve, !- Name + 0.093291598, !- Coefficient1 Constant + -0.234322952, !- Coefficient2 x + 0.426950368, !- Coefficient3 x**2 + 0.188624721, !- Coefficient4 y + -0.608010978, !- Coefficient5 y**2 + 0.992031248, !- Coefficient6 x*y + 0.000000E+00, !- Coefficient7 x**3 + 0.502338322, !- Coefficient8 y**3 + 0.000000E+00, !- Coefficient9 x**2*y + 0.000000E+00, !- Coefficinet 10 x*y**2 + -0.360902326, !- Coefficient 11 x**2*y**2 + -0.097978985, !- Coefficient 12 z*y**3 + 0.2562, !- Minimum Value of x + 1.0365, !- Maximum Value of x + 0.1, !- Minimum Value of y + 1, !- Maximum Value of y + -0.035, !- Minimum Value of z + 0.3144, !- Maximum Value of z + , !- Minimum Curve Output + , !- Maximum Curve Output + Dimensionless, !- Input Unit Type for x + Dimensionless, !- Input Unit Type for y + Dimensionless, !- Input Unit Type for z + Dimensionless; !- Output Unit Type + + SetpointManager:Scheduled, + CoolSys1 Loop Setpoint Manager, !- Name + Temperature, !- Control Variable + CW-Loop-Temp-Schedule, !- Schedule Name + CoolSys1 Supply Outlet Node; !- Setpoint Node or NodeList Name + + SetpointManager:Scheduled, + HeatSys1 Loop Setpoint Manager, !- Name + Temperature, !- Control Variable + HW-Loop-Temp-Schedule, !- Schedule Name + HeatSys1 Supply Outlet Node; !- Setpoint Node or NodeList Name + + PlantEquipmentOperationSchemes, + CoolSys1 Loop Operation Scheme List, !- Name + PlantEquipmentOperation:CoolingLoad, !- Control Scheme 1 Object Type + CoolSys1 Operation Scheme, !- Control Scheme 1 Name + ALWAYS_ON; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperationSchemes, + HeatSys1 Loop Operation Scheme List, !- Name + PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type + HeatSys1 Operation Scheme, !- Control Scheme 1 Name + ALWAYS_ON; !- Control Scheme 1 Schedule Name + + CondenserEquipmentOperationSchemes, + TowerWaterSys Loop Operation Scheme List, !- Name + PlantEquipmentOperation:CoolingLoad, !- Control Scheme 1 Object Type + TowerWaterSys Operation Scheme, !- Control Scheme 1 Name + ALWAYS_ON; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperation:HeatingLoad, + HeatSys1 Operation Scheme, !- Name + 0.0, !- Load Range 1 Lower Limit {W} + 1000000000000000, !- Load Range 1 Upper Limit {W} + HeatSys1 Equipment List; !- Range 1 Equipment List Name + + PlantEquipmentOperation:CoolingLoad, + CoolSys1 Operation Scheme, !- Name + 0.0, !- Load Range 1 Lower Limit {W} + 100000000000000, !- Load Range 1 Upper Limit {W} + CoolSys1 Equipment List; !- Range 1 Equipment List Name + + PlantEquipmentOperation:CoolingLoad, + TowerWaterSys Operation Scheme, !- Name + 0.0, !- Load Range 1 Lower Limit {W} + 1000000000000, !- Load Range 1 Upper Limit {W} + TowerWaterSys Equipment List; !- Range 1 Equipment List Name + +! ***LOOPS*** + + PlantLoop, + CoolSys1, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + CoolSys1 Loop Operation Scheme List, !- Plant Equipment Operation Scheme Name + CoolSys1 Supply Outlet Node, !- Loop Temperature Setpoint Node Name + 98.0, !- Maximum Loop Temperature {C} + 1.0, !- Minimum Loop Temperature {C} + AUTOSIZE, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + AUTOSIZE, !- Plant Loop Volume {m3} + CoolSys1 Supply Inlet Node, !- Plant Side Inlet Node Name + CoolSys1 Supply Outlet Node, !- Plant Side Outlet Node Name + CoolSys1 Supply Branches,!- Plant Side Branch List Name + CoolSys1 Supply Connectors, !- Plant Side Connector List Name + CoolSys1 Demand Inlet Node, !- Demand Side Inlet Node Name + CoolSys1 Demand Outlet Node, !- Demand Side Outlet Node Name + CoolSys1 Demand Branches,!- Demand Side Branch List Name + CoolSys1 Demand Connectors, !- Demand Side Connector List Name + UniformLoad; !- Load Distribution Scheme + + PlantLoop, + HeatSys1, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + HeatSys1 Loop Operation Scheme List, !- Plant Equipment Operation Scheme Name + HeatSys1 Supply Outlet Node, !- Loop Temperature Setpoint Node Name + 100.0, !- Maximum Loop Temperature {C} + 10.0, !- Minimum Loop Temperature {C} + AUTOSIZE, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + AUTOSIZE, !- Plant Loop Volume {m3} + HeatSys1 Supply Inlet Node, !- Plant Side Inlet Node Name + HeatSys1 Supply Outlet Node, !- Plant Side Outlet Node Name + HeatSys1 Supply Branches,!- Plant Side Branch List Name + HeatSys1 Supply Connectors, !- Plant Side Connector List Name + HeatSys1 Demand Inlet Node, !- Demand Side Inlet Node Name + HeatSys1 Demand Outlet Node, !- Demand Side Outlet Node Name + HeatSys1 Demand Branches,!- Demand Side Branch List Name + HeatSys1 Demand Connectors, !- Demand Side Connector List Name + Optimal; !- Load Distribution Scheme + + CondenserLoop, + TowerWaterSys, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + TowerWaterSys Loop Operation Scheme List, !- Condenser Equipment Operation Scheme Name + TowerWaterSys Supply Outlet Node, !- Condenser Loop Temperature Setpoint Node Name + 80.0, !- Maximum Loop Temperature {C} + 5.0, !- Minimum Loop Temperature {C} + AUTOSIZE, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + AUTOSIZE, !- Condenser Loop Volume {m3} + TowerWaterSys Supply Inlet Node, !- Condenser Side Inlet Node Name + TowerWaterSys Supply Outlet Node, !- Condenser Side Outlet Node Name + TowerWaterSys Supply Branches, !- Condenser Side Branch List Name + TowerWaterSys Supply Connectors, !- Condenser Side Connector List Name + TowerWaterSys Demand Inlet Node, !- Demand Side Inlet Node Name + TowerWaterSys Demand Outlet Node, !- Demand Side Outlet Node Name + TowerWaterSys Demand Branches, !- Condenser Demand Side Branch List Name + TowerWaterSys Demand Connectors, !- Condenser Demand Side Connector List Name + SequentialLoad; !- Load Distribution Scheme + + SetpointManager:FollowOutdoorAirTemperature, + MyCondenserControl, !- Name + Temperature, !- Control Variable + OutdoorAirWetBulb, !- Reference Temperature Type + 0, !- Offset Temperature Difference {deltaC} + 80, !- Maximum Setpoint Temperature {C} + 5, !- Minimum Setpoint Temperature {C} + TowerWaterSys Supply Outlet Node; !- Setpoint Node or NodeList Name + +! ***CONNECTIONS*** + + BranchList, + CoolSys1 Demand Branches,!- Name + CoolSys1 Demand Inlet Branch, !- Branch 1 Name + CoolSys1 Demand Load Branch 1, !- Branch 2 Name + CoolSys1 Demand Load Branch 2, !- Branch 3 Name + CoolSys1 Demand Load Branch 3, !- Branch 4 Name + CoolSys1 Demand Load Branch 4, !- Branch 5 Name + CoolSys1 Demand Bypass Branch, !- Branch 6 Name + CoolSys1 Demand Outlet Branch; !- Branch 7 Name + + BranchList, + CoolSys1 Supply Branches,!- Name + CoolSys1 Supply Inlet Branch, !- Branch 1 Name + CoolSys1 Supply Equipment Branch 1, !- Branch 2 Name + CoolSys1 Supply Equipment Branch 2, !- Branch 3 Name + CoolSys1 Supply Equipment Bypass Branch, !- Branch 4 Name + CoolSys1 Supply Outlet Branch; !- Branch 5 Name + + BranchList, + HeatSys1 Demand Branches,!- Name + HeatSys1 Demand Inlet Branch, !- Branch 1 Name + HeatSys1 Demand Load Branch 1, !- Branch 2 Name + HeatSys1 Demand Load Branch 2, !- Branch 3 Name + HeatSys1 Demand Load Branch 3, !- Branch 4 Name + HeatSys1 Demand Load Branch 4, !- Branch 5 Name + HeatSys1 Demand Load Branch 5, !- Branch 6 Name + HeatSys1 Demand Load Branch 6, !- Branch 7 Name + HeatSys1 Demand Load Branch 7, !- Branch 8 Name + HeatSys1 Demand Load Branch 8, !- Branch 9 Name + HeatSys1 Demand Load Branch 9, !- Branch 10 Name + HeatSys1 Demand Load Branch 10, !- Branch 11 Name + HeatSys1 Demand Load Branch 11, !- Branch 12 Name + HeatSys1 Demand Load Branch 12, !- Branch 13 Name + HeatSys1 Demand Load Branch 13, !- Branch 14 Name + HeatSys1 Demand Load Branch 14, !- Branch 15 Name + HeatSys1 Demand Load Branch 15, !- Branch 16 Name + HeatSys1 Demand Load Branch 16, !- Branch 17 Name + HeatSys1 Demand Load Branch 17, !- Branch 18 Name + HeatSys1 Demand Load Branch 18, !- Branch 19 Name + HeatSys1 Demand Load Branch 19, !- Branch 20 Name + HeatSys1 Demand Load Branch 20, !- Branch 21 Name + HeatSys1 Demand Bypass Branch, !- Branch 22 Name + HeatSys1 Demand Outlet Branch; !- Branch 23 Name + + BranchList, + HeatSys1 Supply Branches,!- Name + HeatSys1 Supply Inlet Branch, !- Branch 1 Name + HeatSys1 Supply Equipment Branch, !- Branch 2 Name + HeatSys1 Supply Equipment Bypass Branch, !- Branch 3 Name + HeatSys1 Supply Outlet Branch; !- Branch 4 Name + + BranchList, + TowerWaterSys Demand Branches, !- Name + TowerWaterSys Demand Inlet Branch, !- Branch 1 Name + TowerWaterSys Demand Load Branch 1, !- Branch 2 Name + TowerWaterSys Demand Load Branch 2, !- Branch 3 Name + TowerWaterSys Demand Bypass Branch, !- Branch 4 Name + TowerWaterSys Demand Outlet Branch; !- Branch 5 Name + + BranchList, + TowerWaterSys Supply Branches, !- Name + TowerWaterSys Supply Inlet Branch, !- Branch 1 Name + TowerWaterSys Supply Equipment Branch, !- Branch 2 Name + TowerWaterSys Supply Equipment Bypass Branch, !- Branch 3 Name + TowerWaterSys Supply Outlet Branch; !- Branch 4 Name + + Branch, + CoolSys1 Demand Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + CoolSys1 Demand Bypass Pipe, !- Component 1 Name + CoolSys1 Demand Bypass Pipe Inlet Node, !- Component 1 Inlet Node Name + CoolSys1 Demand Bypass Pipe Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Demand Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + CoolSys1 Demand Inlet Pipe, !- Component 1 Name + CoolSys1 Demand Inlet Node, !- Component 1 Inlet Node Name + CoolSys1 Demand Inlet Pipe-CoolSys1 Demand Mixer, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Demand Load Branch 1, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Cooling:Water, !- Component 1 Object Type + VAV_5_CoolC, !- Component 1 Name + VAV_5_CoolCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_5_CoolCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Demand Load Branch 2, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Cooling:Water, !- Component 1 Object Type + VAV_1_CoolC, !- Component 1 Name + VAV_1_CoolCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_1_CoolCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Demand Load Branch 3, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Cooling:Water, !- Component 1 Object Type + VAV_2_CoolC, !- Component 1 Name + VAV_2_CoolCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_2_CoolCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Demand Load Branch 4, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Cooling:Water, !- Component 1 Object Type + VAV_3_CoolC, !- Component 1 Name + VAV_3_CoolCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_3_CoolCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Demand Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + CoolSys1 Demand Outlet Pipe, !- Component 1 Name + CoolSys1 Demand Mixer-CoolSys1 Demand Outlet Pipe, !- Component 1 Inlet Node Name + CoolSys1 Demand Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Supply Equipment Branch 1, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Chiller:Electric:ReformulatedEIR, !- Component 1 Object Type + CoolSys1 Chiller 1, !- Component 1 Name + CoolSys1 Pump-CoolSys1 ChillerNode 1, !- Component 1 Inlet Node Name + CoolSys1 Supply Equipment Outlet Node 1, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Supply Equipment Branch 2, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Chiller:Electric:ReformulatedEIR, !- Component 1 Object Type + CoolSys1 Chiller 2, !- Component 1 Name + CoolSys1 Pump-CoolSys1 ChillerNode 2, !- Component 1 Inlet Node Name + CoolSys1 Supply Equipment Outlet Node 2, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Supply Equipment Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + CoolSys1 Supply Equipment Bypass Pipe, !- Component 1 Name + CoolSys1 Supply Equip Bypass Inlet Node, !- Component 1 Inlet Node Name + CoolSys1 Supply Equip Bypass Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Supply Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + CoolSys1 Pump, !- Component 1 Name + CoolSys1 Supply Inlet Node, !- Component 1 Inlet Node Name + CoolSys1 Pump-CoolSys1 ChillerNodeviaConnector, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + CoolSys1 Supply Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + CoolSys1 Supply Outlet Pipe, !- Component 1 Name + CoolSys1 Supply Mixer-CoolSys1 Supply Outlet Pipe, !- Component 1 Inlet Node Name + CoolSys1 Supply Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + HeatSys1 Demand Bypass Pipe, !- Component 1 Name + HeatSys1 Demand Bypass Pipe Inlet Node, !- Component 1 Inlet Node Name + HeatSys1 Demand Bypass Pipe Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + HeatSys1 Demand Inlet Pipe, !- Component 1 Name + HeatSys1 Demand Inlet Node, !- Component 1 Inlet Node Name + HeatSys1 Demand Inlet Pipe-HeatSys1 Demand Mixer, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 1, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Basement VAV Box Reheat Coil, !- Component 1 Name + Basement VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Basement VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 10, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_mid_ZN_2 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_mid_ZN_2 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_mid_ZN_2 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 11, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_mid_ZN_1 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_mid_ZN_1 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_mid_ZN_1 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 12, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_mid_ZN_4 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_mid_ZN_4 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_mid_ZN_4 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 13, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_top_ZN_3 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_top_ZN_3 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_top_ZN_3 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 14, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_top_ZN_2 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_top_ZN_2 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_top_ZN_2 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 15, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_top_ZN_1 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_top_ZN_1 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_top_ZN_1 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 16, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_top_ZN_4 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_top_ZN_4 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_top_ZN_4 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 17, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + VAV_5_HeatC, !- Component 1 Name + VAV_5_HeatCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_5_HeatCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 18, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + VAV_1_HeatC, !- Component 1 Name + VAV_1_HeatCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_1_HeatCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 19, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + VAV_2_HeatC, !- Component 1 Name + VAV_2_HeatCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_2_HeatCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 2, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Core_bottom VAV Box Reheat Coil, !- Component 1 Name + Core_bottom VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Core_bottom VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 20, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + VAV_3_HeatC, !- Component 1 Name + VAV_3_HeatCDemand Inlet Node, !- Component 1 Inlet Node Name + VAV_3_HeatCDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 3, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Core_mid VAV Box Reheat Coil, !- Component 1 Name + Core_mid VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Core_mid VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 4, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Core_top VAV Box Reheat Coil, !- Component 1 Name + Core_top VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Core_top VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 5, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_bot_ZN_3 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_bot_ZN_3 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_bot_ZN_3 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 6, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_bot_ZN_2 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_bot_ZN_2 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_bot_ZN_2 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 7, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_bot_ZN_1 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_bot_ZN_1 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_bot_ZN_1 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 8, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_bot_ZN_4 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_bot_ZN_4 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_bot_ZN_4 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Load Branch 9, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Perimeter_mid_ZN_3 VAV Box Reheat Coil, !- Component 1 Name + Perimeter_mid_ZN_3 VAV Box Reheat CoilDemand Inlet Node, !- Component 1 Inlet Node Name + Perimeter_mid_ZN_3 VAV Box Reheat CoilDemand Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Demand Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + HeatSys1 Demand Outlet Pipe, !- Component 1 Name + HeatSys1 Demand Mixer-HeatSys1 Demand Outlet Pipe, !- Component 1 Inlet Node Name + HeatSys1 Demand Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Supply Equipment Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Boiler:HotWater, !- Component 1 Object Type + HeatSys1 Boiler, !- Component 1 Name + HeatSys1 Pump-HeatSys1 BoilerNode, !- Component 1 Inlet Node Name + HeatSys1 Supply Equipment Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Supply Equipment Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + HeatSys1 Supply Equipment Bypass Pipe, !- Component 1 Name + HeatSys1 Supply Equip Bypass Inlet Node, !- Component 1 Inlet Node Name + HeatSys1 Supply Equip Bypass Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Supply Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + HeatSys1 Pump, !- Component 1 Name + HeatSys1 Supply Inlet Node, !- Component 1 Inlet Node Name + HeatSys1 Pump-HeatSys1 BoilerNodeviaConnector, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + HeatSys1 Supply Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + HeatSys1 Supply Outlet Pipe, !- Component 1 Name + HeatSys1 Supply Mixer-HeatSys1 Supply Outlet Pipe, !- Component 1 Inlet Node Name + HeatSys1 Supply Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Demand Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + TowerWaterSys Demand Bypass Pipe, !- Component 1 Name + TowerWaterSys Demand Bypass Pipe Inlet Node, !- Component 1 Inlet Node Name + TowerWaterSys Demand Bypass Pipe Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Demand Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + TowerWaterSys Demand Inlet Pipe, !- Component 1 Name + TowerWaterSys Demand Inlet Node, !- Component 1 Inlet Node Name + TowerWaterSys Demand Inlet Pipe-TowerWaterSys Demand Mixer, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Demand Load Branch 1, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Chiller:Electric:ReformulatedEIR, !- Component 1 Object Type + CoolSys1 Chiller 1, !- Component 1 Name + CoolSys1 Chiller Water Inlet Node 1, !- Component 1 Inlet Node Name + CoolSys1 Chiller Water Outlet Node 1, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Demand Load Branch 2, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Chiller:Electric:ReformulatedEIR, !- Component 1 Object Type + CoolSys1 Chiller 2, !- Component 1 Name + CoolSys1 Chiller Water Inlet Node 2, !- Component 1 Inlet Node Name + CoolSys1 Chiller Water Outlet Node 2, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Demand Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + TowerWaterSys Demand Outlet Pipe, !- Component 1 Name + TowerWaterSys Demand Mixer-TowerWaterSys Demand Outlet Pipe, !- Component 1 Inlet Node Name + TowerWaterSys Demand Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Supply Equipment Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + CoolingTower:SingleSpeed,!- Component 1 Object Type + TowerWaterSys CoolTower, !- Component 1 Name + TowerWaterSys Pump-TowerWaterSys CoolTowerNode, !- Component 1 Inlet Node Name + TowerWaterSys Supply Equipment Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Supply Equipment Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + TowerWaterSys Supply Equipment Bypass Pipe, !- Component 1 Name + TowerWaterSys Supply Equip Bypass Inlet Node, !- Component 1 Inlet Node Name + TowerWaterSys Supply Equip Bypass Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Supply Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:ConstantSpeed, !- Component 1 Object Type + TowerWaterSys Pump, !- Component 1 Name + TowerWaterSys Supply Inlet Node, !- Component 1 Inlet Node Name + TowerWaterSys Pump-TowerWaterSys CoolTowerNodeviaConnector, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + TowerWaterSys Supply Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + TowerWaterSys Supply Outlet Pipe, !- Component 1 Name + TowerWaterSys Supply Mixer-TowerWaterSys Supply Outlet Pipe, !- Component 1 Inlet Node Name + TowerWaterSys Supply Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + OutdoorAir:Node, + TowerWaterSys CoolTower OA ref Node; !- Name + + ConnectorList, + CoolSys1 Demand Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + CoolSys1 Demand Splitter,!- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + CoolSys1 Demand Mixer; !- Connector 2 Name + + ConnectorList, + CoolSys1 Supply Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + CoolSys1 Supply Splitter,!- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + CoolSys1 Supply Mixer; !- Connector 2 Name + + ConnectorList, + HeatSys1 Demand Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + HeatSys1 Demand Splitter,!- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + HeatSys1 Demand Mixer; !- Connector 2 Name + + ConnectorList, + HeatSys1 Supply Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + HeatSys1 Supply Splitter,!- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + HeatSys1 Supply Mixer; !- Connector 2 Name + + ConnectorList, + TowerWaterSys Demand Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + TowerWaterSys Demand Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + TowerWaterSys Demand Mixer; !- Connector 2 Name + + ConnectorList, + TowerWaterSys Supply Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + TowerWaterSys Supply Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + TowerWaterSys Supply Mixer; !- Connector 2 Name + + Connector:Splitter, + CoolSys1 Demand Splitter,!- Name + CoolSys1 Demand Inlet Branch, !- Inlet Branch Name + CoolSys1 Demand Load Branch 1, !- Outlet Branch 1 Name + CoolSys1 Demand Load Branch 2, !- Outlet Branch 2 Name + CoolSys1 Demand Load Branch 3, !- Outlet Branch 3 Name + CoolSys1 Demand Load Branch 4, !- Outlet Branch 4 Name + CoolSys1 Demand Bypass Branch; !- Outlet Branch 5 Name + + Connector:Splitter, + CoolSys1 Supply Splitter,!- Name + CoolSys1 Supply Inlet Branch, !- Inlet Branch Name + CoolSys1 Supply Equipment Branch 1, !- Outlet Branch 1 Name + CoolSys1 Supply Equipment Branch 2, !- Outlet Branch 2 Name + CoolSys1 Supply Equipment Bypass Branch; !- Outlet Branch 3 Name + + Connector:Splitter, + HeatSys1 Demand Splitter,!- Name + HeatSys1 Demand Inlet Branch, !- Inlet Branch Name + HeatSys1 Demand Load Branch 1, !- Outlet Branch 1 Name + HeatSys1 Demand Load Branch 2, !- Outlet Branch 2 Name + HeatSys1 Demand Load Branch 3, !- Outlet Branch 3 Name + HeatSys1 Demand Load Branch 4, !- Outlet Branch 4 Name + HeatSys1 Demand Load Branch 5, !- Outlet Branch 5 Name + HeatSys1 Demand Load Branch 6, !- Outlet Branch 6 Name + HeatSys1 Demand Load Branch 7, !- Outlet Branch 7 Name + HeatSys1 Demand Load Branch 8, !- Outlet Branch 8 Name + HeatSys1 Demand Load Branch 9, !- Outlet Branch 9 Name + HeatSys1 Demand Load Branch 10, !- Outlet Branch 10 Name + HeatSys1 Demand Load Branch 11, !- Outlet Branch 11 Name + HeatSys1 Demand Load Branch 12, !- Outlet Branch 12 Name + HeatSys1 Demand Load Branch 13, !- Outlet Branch 13 Name + HeatSys1 Demand Load Branch 14, !- Outlet Branch 14 Name + HeatSys1 Demand Load Branch 15, !- Outlet Branch 15 Name + HeatSys1 Demand Load Branch 16, !- Outlet Branch 16 Name + HeatSys1 Demand Load Branch 17, !- Outlet Branch 17 Name + HeatSys1 Demand Load Branch 18, !- Outlet Branch 18 Name + HeatSys1 Demand Load Branch 19, !- Outlet Branch 19 Name + HeatSys1 Demand Load Branch 20, !- Outlet Branch 20 Name + HeatSys1 Demand Bypass Branch; !- Outlet Branch 21 Name + + Connector:Splitter, + HeatSys1 Supply Splitter,!- Name + HeatSys1 Supply Inlet Branch, !- Inlet Branch Name + HeatSys1 Supply Equipment Branch, !- Outlet Branch 1 Name + HeatSys1 Supply Equipment Bypass Branch; !- Outlet Branch 2 Name + + Connector:Splitter, + TowerWaterSys Demand Splitter, !- Name + TowerWaterSys Demand Inlet Branch, !- Inlet Branch Name + TowerWaterSys Demand Load Branch 1, !- Outlet Branch 1 Name + TowerWaterSys Demand Load Branch 2, !- Outlet Branch 2 Name + TowerWaterSys Demand Bypass Branch; !- Outlet Branch 3 Name + + Connector:Splitter, + TowerWaterSys Supply Splitter, !- Name + TowerWaterSys Supply Inlet Branch, !- Inlet Branch Name + TowerWaterSys Supply Equipment Branch, !- Outlet Branch 1 Name + TowerWaterSys Supply Equipment Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + CoolSys1 Demand Mixer, !- Name + CoolSys1 Demand Outlet Branch, !- Outlet Branch Name + CoolSys1 Demand Load Branch 1, !- Inlet Branch 1 Name + CoolSys1 Demand Load Branch 2, !- Inlet Branch 2 Name + CoolSys1 Demand Load Branch 3, !- Inlet Branch 3 Name + CoolSys1 Demand Load Branch 4, !- Inlet Branch 4 Name + CoolSys1 Demand Bypass Branch; !- Inlet Branch 5 Name + + Connector:Mixer, + CoolSys1 Supply Mixer, !- Name + CoolSys1 Supply Outlet Branch, !- Outlet Branch Name + CoolSys1 Supply Equipment Branch 1, !- Inlet Branch 1 Name + CoolSys1 Supply Equipment Branch 2, !- Inlet Branch 2 Name + CoolSys1 Supply Equipment Bypass Branch; !- Inlet Branch 3 Name + + Connector:Mixer, + HeatSys1 Demand Mixer, !- Name + HeatSys1 Demand Outlet Branch, !- Outlet Branch Name + HeatSys1 Demand Load Branch 1, !- Inlet Branch 1 Name + HeatSys1 Demand Load Branch 2, !- Inlet Branch 2 Name + HeatSys1 Demand Load Branch 3, !- Inlet Branch 3 Name + HeatSys1 Demand Load Branch 4, !- Inlet Branch 4 Name + HeatSys1 Demand Load Branch 5, !- Inlet Branch 5 Name + HeatSys1 Demand Load Branch 6, !- Inlet Branch 6 Name + HeatSys1 Demand Load Branch 7, !- Inlet Branch 7 Name + HeatSys1 Demand Load Branch 8, !- Inlet Branch 8 Name + HeatSys1 Demand Load Branch 9, !- Inlet Branch 9 Name + HeatSys1 Demand Load Branch 10, !- Inlet Branch 10 Name + HeatSys1 Demand Load Branch 11, !- Inlet Branch 11 Name + HeatSys1 Demand Load Branch 12, !- Inlet Branch 12 Name + HeatSys1 Demand Load Branch 13, !- Inlet Branch 13 Name + HeatSys1 Demand Load Branch 14, !- Inlet Branch 14 Name + HeatSys1 Demand Load Branch 15, !- Inlet Branch 15 Name + HeatSys1 Demand Load Branch 16, !- Inlet Branch 16 Name + HeatSys1 Demand Load Branch 17, !- Inlet Branch 17 Name + HeatSys1 Demand Load Branch 18, !- Inlet Branch 18 Name + HeatSys1 Demand Load Branch 19, !- Inlet Branch 19 Name + HeatSys1 Demand Load Branch 20, !- Inlet Branch 20 Name + HeatSys1 Demand Bypass Branch; !- Inlet Branch 21 Name + + Connector:Mixer, + HeatSys1 Supply Mixer, !- Name + HeatSys1 Supply Outlet Branch, !- Outlet Branch Name + HeatSys1 Supply Equipment Branch, !- Inlet Branch 1 Name + HeatSys1 Supply Equipment Bypass Branch; !- Inlet Branch 2 Name + + Connector:Mixer, + TowerWaterSys Demand Mixer, !- Name + TowerWaterSys Demand Outlet Branch, !- Outlet Branch Name + TowerWaterSys Demand Load Branch 1, !- Inlet Branch 1 Name + TowerWaterSys Demand Load Branch 2, !- Inlet Branch 2 Name + TowerWaterSys Demand Bypass Branch; !- Inlet Branch 3 Name + + Connector:Mixer, + TowerWaterSys Supply Mixer, !- Name + TowerWaterSys Supply Outlet Branch, !- Outlet Branch Name + TowerWaterSys Supply Equipment Branch, !- Inlet Branch 1 Name + TowerWaterSys Supply Equipment Bypass Branch; !- Inlet Branch 2 Name + + Pipe:Adiabatic, + CoolSys1 Demand Bypass Pipe, !- Name + CoolSys1 Demand Bypass Pipe Inlet Node, !- Inlet Node Name + CoolSys1 Demand Bypass Pipe Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + CoolSys1 Demand Inlet Pipe, !- Name + CoolSys1 Demand Inlet Node, !- Inlet Node Name + CoolSys1 Demand Inlet Pipe-CoolSys1 Demand Mixer; !- Outlet Node Name + + Pipe:Adiabatic, + CoolSys1 Demand Outlet Pipe, !- Name + CoolSys1 Demand Mixer-CoolSys1 Demand Outlet Pipe, !- Inlet Node Name + CoolSys1 Demand Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + CoolSys1 Supply Equipment Bypass Pipe, !- Name + CoolSys1 Supply Equip Bypass Inlet Node, !- Inlet Node Name + CoolSys1 Supply Equip Bypass Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + CoolSys1 Supply Outlet Pipe, !- Name + CoolSys1 Supply Mixer-CoolSys1 Supply Outlet Pipe, !- Inlet Node Name + CoolSys1 Supply Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + HeatSys1 Demand Bypass Pipe, !- Name + HeatSys1 Demand Bypass Pipe Inlet Node, !- Inlet Node Name + HeatSys1 Demand Bypass Pipe Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + HeatSys1 Demand Inlet Pipe, !- Name + HeatSys1 Demand Inlet Node, !- Inlet Node Name + HeatSys1 Demand Inlet Pipe-HeatSys1 Demand Mixer; !- Outlet Node Name + + Pipe:Adiabatic, + HeatSys1 Demand Outlet Pipe, !- Name + HeatSys1 Demand Mixer-HeatSys1 Demand Outlet Pipe, !- Inlet Node Name + HeatSys1 Demand Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + HeatSys1 Supply Equipment Bypass Pipe, !- Name + HeatSys1 Supply Equip Bypass Inlet Node, !- Inlet Node Name + HeatSys1 Supply Equip Bypass Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + HeatSys1 Supply Outlet Pipe, !- Name + HeatSys1 Supply Mixer-HeatSys1 Supply Outlet Pipe, !- Inlet Node Name + HeatSys1 Supply Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + TowerWaterSys Demand Bypass Pipe, !- Name + TowerWaterSys Demand Bypass Pipe Inlet Node, !- Inlet Node Name + TowerWaterSys Demand Bypass Pipe Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + TowerWaterSys Demand Inlet Pipe, !- Name + TowerWaterSys Demand Inlet Node, !- Inlet Node Name + TowerWaterSys Demand Inlet Pipe-TowerWaterSys Demand Mixer; !- Outlet Node Name + + Pipe:Adiabatic, + TowerWaterSys Demand Outlet Pipe, !- Name + TowerWaterSys Demand Mixer-TowerWaterSys Demand Outlet Pipe, !- Inlet Node Name + TowerWaterSys Demand Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + TowerWaterSys Supply Equipment Bypass Pipe, !- Name + TowerWaterSys Supply Equip Bypass Inlet Node, !- Inlet Node Name + TowerWaterSys Supply Equip Bypass Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + TowerWaterSys Supply Outlet Pipe, !- Name + TowerWaterSys Supply Mixer-TowerWaterSys Supply Outlet Pipe, !- Inlet Node Name + TowerWaterSys Supply Outlet Node; !- Outlet Node Name + +! ***SCHEDULES*** + + Schedule:Compact, + CW-Loop-Temp-Schedule, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,6.7; !- Field 3 + + Schedule:Compact, + HW-Loop-Temp-Schedule, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,82.2; !- Field 3 + +! ***SWH EQUIPMENT*** + + WaterHeater:Mixed, + SWHSys1 Water Heater, !- Name + 0.7571, !- Tank Volume {m3} + SWHSys1 Water Heater Setpoint Temperature Schedule Name, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + Cycle, !- Heater Control Type + 845000, !- Heater Maximum Capacity {W} + , !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + NATURALGAS, !- Heater Fuel Type + 0.8, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 20, !- Off Cycle Parasitic Fuel Consumption Rate {W} + NATURALGAS, !- Off Cycle Parasitic Fuel Type + 0.8, !- Off Cycle Parasitic Heat Fraction to Tank + , !- On Cycle Parasitic Fuel Consumption Rate {W} + NATURALGAS, !- On Cycle Parasitic Fuel Type + , !- On Cycle Parasitic Heat Fraction to Tank + SCHEDULE, !- Ambient Temperature Indicator + SWHSys1 Water Heater Ambient Temperature Schedule Name, !- Ambient Temperature Schedule Name + , !- Ambient Temperature Zone Name + , !- Ambient Temperature Outdoor Air Node Name + 6.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + , !- Off Cycle Loss Fraction to Zone + 6.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + , !- On Cycle Loss Fraction to Zone + , !- Peak Use Flow Rate {m3/s} + , !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + SWHSys1 Pump-SWHSys1 Water HeaterNode, !- Use Side Inlet Node Name + SWHSys1 Supply Equipment Outlet Node, !- Use Side Outlet Node Name + 1.0, !- Use Side Effectiveness + , !- Source Side Inlet Node Name + , !- Source Side Outlet Node Name + 1.0, !- Source Side Effectiveness + AUTOSIZE, !- Use Side Design Flow Rate {m3/s} + AUTOSIZE, !- Source Side Design Flow Rate {m3/s} + 1.5; !- Indirect Water Heating Recovery Time {hr} + + WaterUse:Equipment, + Core_bottom Water Equipment, !- Name + , !- End-Use Subcategory + 2.24e-005, !- Peak Flow Rate {m3/s} + BLDG_SWH_SCH, !- Flow Rate Fraction Schedule Name + Water Equipment Temp Sched, !- Target Temperature Schedule Name + Water Equipment Hot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + Core_bottom, !- Zone Name + Water Equipment Sensible fract sched, !- Sensible Fraction Schedule Name + Water Equipment Latent fract sched; !- Latent Fraction Schedule Name + + WaterUse:Equipment, + Core_mid Water Equipment,!- Name + , !- End-Use Subcategory + 2.24e-005, !- Peak Flow Rate {m3/s} + BLDG_SWH_SCH, !- Flow Rate Fraction Schedule Name + Water Equipment Temp Sched, !- Target Temperature Schedule Name + Water Equipment Hot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + Core_mid, !- Zone Name + Water Equipment Sensible fract sched, !- Sensible Fraction Schedule Name + Water Equipment Latent fract sched; !- Latent Fraction Schedule Name + + WaterUse:Equipment, + Core_top Water Equipment,!- Name + , !- End-Use Subcategory + 2.24e-005, !- Peak Flow Rate {m3/s} + BLDG_SWH_SCH, !- Flow Rate Fraction Schedule Name + Water Equipment Temp Sched, !- Target Temperature Schedule Name + Water Equipment Hot Supply Temp Sched, !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + Core_top, !- Zone Name + Water Equipment Sensible fract sched, !- Sensible Fraction Schedule Name + Water Equipment Latent fract sched; !- Latent Fraction Schedule Name + + PlantEquipmentList, + SWHSys1 Equipment List, !- Name + WaterHeater:Mixed, !- Equipment 1 Object Type + SWHSys1 Water Heater; !- Equipment 1 Name + + Pump:VariableSpeed, + SWHSys1 Pump, !- Name + SWHSys1 Supply Inlet Node, !- Inlet Node Name + SWHSys1 Pump-SWHSys1 Water HeaterNodeviaConnector, !- Outlet Node Name + AUTOSIZE, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + AUTOSIZE, !- Rated Power Consumption {W} + 0.85, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0.0, !- Minimum Flow Rate {m3/s} + Intermittent; !- Pump Control Type + +! ***SWH SIZING & CONTROLS*** + + Sizing:Plant, + SWHSys1, !- Plant or Condenser Loop Name + Heating, !- Loop Type + 60, !- Design Loop Exit Temperature {C} + 5.0; !- Loop Design Temperature Difference {deltaC} + + SetpointManager:Scheduled, + SWHSys1 Loop Setpoint Manager, !- Name + Temperature, !- Control Variable + SWHSys1-Loop-Temp-Schedule, !- Schedule Name + SWHSys1 Supply Outlet Node; !- Setpoint Node or NodeList Name + + PlantEquipmentOperationSchemes, + SWHSys1 Loop Operation Scheme List, !- Name + PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type + SWHSys1 Operation Scheme,!- Control Scheme 1 Name + ALWAYS_ON; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperation:HeatingLoad, + SWHSys1 Operation Scheme,!- Name + 0.0, !- Load Range 1 Lower Limit {W} + 1000000000000000, !- Load Range 1 Upper Limit {W} + SWHSys1 Equipment List; !- Range 1 Equipment List Name + +! ***SWH LOOP*** + + PlantLoop, + SWHSys1, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + SWHSys1 Loop Operation Scheme List, !- Plant Equipment Operation Scheme Name + SWHSys1 Supply Outlet Node, !- Loop Temperature Setpoint Node Name + 60.0, !- Maximum Loop Temperature {C} + 10.0, !- Minimum Loop Temperature {C} + AUTOSIZE, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + AUTOSIZE, !- Plant Loop Volume {m3} + SWHSys1 Supply Inlet Node, !- Plant Side Inlet Node Name + SWHSys1 Supply Outlet Node, !- Plant Side Outlet Node Name + SWHSys1 Supply Branches, !- Plant Side Branch List Name + SWHSys1 Supply Connectors, !- Plant Side Connector List Name + SWHSys1 Demand Inlet Node, !- Demand Side Inlet Node Name + SWHSys1 Demand Outlet Node, !- Demand Side Outlet Node Name + SWHSys1 Demand Branches, !- Demand Side Branch List Name + SWHSys1 Demand Connectors, !- Demand Side Connector List Name + Optimal; !- Load Distribution Scheme + +! ***SWH CONNECTIONS*** + + BranchList, + SWHSys1 Demand Branches, !- Name + SWHSys1 Demand Inlet Branch, !- Branch 1 Name + SWHSys1 Demand Load Branch 1, !- Branch 2 Name + SWHSys1 Demand Load Branch 2, !- Branch 3 Name + SWHSys1 Demand Load Branch 3, !- Branch 4 Name + SWHSys1 Demand Bypass Branch, !- Branch 5 Name + SWHSys1 Demand Outlet Branch; !- Branch 6 Name + + BranchList, + SWHSys1 Supply Branches, !- Name + SWHSys1 Supply Inlet Branch, !- Branch 1 Name + SWHSys1 Supply Equipment Branch, !- Branch 2 Name + SWHSys1 Supply Equipment Bypass Branch, !- Branch 3 Name + SWHSys1 Supply Outlet Branch; !- Branch 4 Name + + Branch, + SWHSys1 Demand Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + SWHSys1 Demand Bypass Pipe, !- Component 1 Name + SWHSys1 Demand Bypass Pipe Inlet Node, !- Component 1 Inlet Node Name + SWHSys1 Demand Bypass Pipe Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Demand Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + SWHSys1 Demand Inlet Pipe, !- Component 1 Name + SWHSys1 Demand Inlet Node, !- Component 1 Inlet Node Name + SWHSys1 Demand Inlet Pipe-SWHSys1 Demand Mixer, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Demand Load Branch 1, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterUse:Connections, !- Component 1 Object Type + Core_bottom Water Equipment, !- Component 1 Name + Core_bottom Water Equipment Water Inlet Node, !- Component 1 Inlet Node Name + Core_bottom Water Equipment Water Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Demand Load Branch 2, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterUse:Connections, !- Component 1 Object Type + Core_mid Water Equipment,!- Component 1 Name + Core_mid Water Equipment Water Inlet Node, !- Component 1 Inlet Node Name + Core_mid Water Equipment Water Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Demand Load Branch 3, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterUse:Connections, !- Component 1 Object Type + Core_top Water Equipment,!- Component 1 Name + Core_top Water Equipment Water Inlet Node, !- Component 1 Inlet Node Name + Core_top Water Equipment Water Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Demand Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + SWHSys1 Demand Outlet Pipe, !- Component 1 Name + SWHSys1 Demand Mixer-SWHSys1 Demand Outlet Pipe, !- Component 1 Inlet Node Name + SWHSys1 Demand Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Supply Equipment Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterHeater:Mixed, !- Component 1 Object Type + SWHSys1 Water Heater, !- Component 1 Name + SWHSys1 Pump-SWHSys1 Water HeaterNode, !- Component 1 Inlet Node Name + SWHSys1 Supply Equipment Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Supply Equipment Bypass Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + SWHSys1 Supply Equipment Bypass Pipe, !- Component 1 Name + SWHSys1 Supply Equip Bypass Inlet Node, !- Component 1 Inlet Node Name + SWHSys1 Supply Equip Bypass Outlet Node, !- Component 1 Outlet Node Name + Bypass; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Supply Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + SWHSys1 Pump, !- Component 1 Name + SWHSys1 Supply Inlet Node, !- Component 1 Inlet Node Name + SWHSys1 Pump-SWHSys1 Water HeaterNodeviaConnector, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + SWHSys1 Supply Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + SWHSys1 Supply Outlet Pipe, !- Component 1 Name + SWHSys1 Supply Mixer-SWHSys1 Supply Outlet Pipe, !- Component 1 Inlet Node Name + SWHSys1 Supply Outlet Node, !- Component 1 Outlet Node Name + Passive; !- Component 1 Branch Control Type + + ConnectorList, + SWHSys1 Demand Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + SWHSys1 Demand Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + SWHSys1 Demand Mixer; !- Connector 2 Name + + ConnectorList, + SWHSys1 Supply Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + SWHSys1 Supply Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + SWHSys1 Supply Mixer; !- Connector 2 Name + + WaterUse:Connections, + Core_bottom Water Equipment, !- Name + Core_bottom Water Equipment Water Inlet Node, !- Inlet Node Name + Core_bottom Water Equipment Water Outlet Node, !- Outlet Node Name + , !- Supply Water Storage Tank Name + , !- Reclamation Water Storage Tank Name + , !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Drain Water Heat Exchanger Type + , !- Drain Water Heat Exchanger Destination + , !- Drain Water Heat Exchanger U-Factor Times Area {W/K} + Core_bottom Water Equipment; !- Water Use Equipment 1 Name + + WaterUse:Connections, + Core_mid Water Equipment,!- Name + Core_mid Water Equipment Water Inlet Node, !- Inlet Node Name + Core_mid Water Equipment Water Outlet Node, !- Outlet Node Name + , !- Supply Water Storage Tank Name + , !- Reclamation Water Storage Tank Name + , !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Drain Water Heat Exchanger Type + , !- Drain Water Heat Exchanger Destination + , !- Drain Water Heat Exchanger U-Factor Times Area {W/K} + Core_mid Water Equipment;!- Water Use Equipment 1 Name + + WaterUse:Connections, + Core_top Water Equipment,!- Name + Core_top Water Equipment Water Inlet Node, !- Inlet Node Name + Core_top Water Equipment Water Outlet Node, !- Outlet Node Name + , !- Supply Water Storage Tank Name + , !- Reclamation Water Storage Tank Name + , !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Drain Water Heat Exchanger Type + , !- Drain Water Heat Exchanger Destination + , !- Drain Water Heat Exchanger U-Factor Times Area {W/K} + Core_top Water Equipment;!- Water Use Equipment 1 Name + + Connector:Splitter, + SWHSys1 Demand Splitter, !- Name + SWHSys1 Demand Inlet Branch, !- Inlet Branch Name + SWHSys1 Demand Load Branch 1, !- Outlet Branch 1 Name + SWHSys1 Demand Load Branch 2, !- Outlet Branch 2 Name + SWHSys1 Demand Load Branch 3, !- Outlet Branch 3 Name + SWHSys1 Demand Bypass Branch; !- Outlet Branch 4 Name + + Connector:Splitter, + SWHSys1 Supply Splitter, !- Name + SWHSys1 Supply Inlet Branch, !- Inlet Branch Name + SWHSys1 Supply Equipment Branch, !- Outlet Branch 1 Name + SWHSys1 Supply Equipment Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + SWHSys1 Demand Mixer, !- Name + SWHSys1 Demand Outlet Branch, !- Outlet Branch Name + SWHSys1 Demand Load Branch 1, !- Inlet Branch 1 Name + SWHSys1 Demand Load Branch 2, !- Inlet Branch 2 Name + SWHSys1 Demand Load Branch 3, !- Inlet Branch 3 Name + SWHSys1 Demand Bypass Branch; !- Inlet Branch 4 Name + + Connector:Mixer, + SWHSys1 Supply Mixer, !- Name + SWHSys1 Supply Outlet Branch, !- Outlet Branch Name + SWHSys1 Supply Equipment Branch, !- Inlet Branch 1 Name + SWHSys1 Supply Equipment Bypass Branch; !- Inlet Branch 2 Name + + Pipe:Adiabatic, + SWHSys1 Demand Bypass Pipe, !- Name + SWHSys1 Demand Bypass Pipe Inlet Node, !- Inlet Node Name + SWHSys1 Demand Bypass Pipe Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + SWHSys1 Demand Inlet Pipe, !- Name + SWHSys1 Demand Inlet Node, !- Inlet Node Name + SWHSys1 Demand Inlet Pipe-SWHSys1 Demand Mixer; !- Outlet Node Name + + Pipe:Adiabatic, + SWHSys1 Demand Outlet Pipe, !- Name + SWHSys1 Demand Mixer-SWHSys1 Demand Outlet Pipe, !- Inlet Node Name + SWHSys1 Demand Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + SWHSys1 Supply Equipment Bypass Pipe, !- Name + SWHSys1 Supply Equip Bypass Inlet Node, !- Inlet Node Name + SWHSys1 Supply Equip Bypass Outlet Node; !- Outlet Node Name + + Pipe:Adiabatic, + SWHSys1 Supply Outlet Pipe, !- Name + SWHSys1 Supply Mixer-SWHSys1 Supply Outlet Pipe, !- Inlet Node Name + SWHSys1 Supply Outlet Node; !- Outlet Node Name + +! ***SWH SCHEDULES*** + + Schedule:Compact, + BLDG_SWH_SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay, !- Field 2 + Until: 05:00,0.05, !- Field 3 + Until: 06:00,0.08, !- Field 5 + Until: 07:00,0.07, !- Field 7 + Until: 08:00,0.19, !- Field 9 + Until: 09:00,0.35, !- Field 11 + Until: 10:00,0.38, !- Field 13 + Until: 11:00,0.39, !- Field 15 + Until: 12:00,0.47, !- Field 17 + Until: 13:00,0.57, !- Field 19 + Until: 14:00,0.54, !- Field 21 + Until: 15:00,0.34, !- Field 23 + Until: 16:00,0.33, !- Field 25 + Until: 17:00,0.44, !- Field 27 + Until: 18:00,0.26, !- Field 29 + Until: 19:00,0.21, !- Field 31 + Until: 20:00,0.15, !- Field 33 + Until: 21:00,0.17, !- Field 35 + Until: 22:00,0.08, !- Field 37 + Until: 24:00,0.05, !- Field 39 + For: Saturday WinterDesignDay, !- Field 41 + Until: 05:00,0.05, !- Field 42 + Until: 06:00,0.08, !- Field 44 + Until: 07:00,0.07, !- Field 46 + Until: 08:00,0.11, !- Field 48 + Until: 09:00,0.15, !- Field 50 + Until: 10:00,0.21, !- Field 52 + Until: 11:00,0.19, !- Field 54 + Until: 12:00,0.23, !- Field 56 + Until: 13:00,0.20, !- Field 58 + Until: 14:00,0.19, !- Field 60 + Until: 15:00,0.15, !- Field 62 + Until: 16:00,0.13, !- Field 64 + Until: 17:00,0.14, !- Field 66 + Until: 21:00,0.07, !- Field 68 + Until: 22:00,0.09, !- Field 70 + Until: 24:00,0.05, !- Field 72 + For: AllOtherDays, !- Field 74 + Until: 05:00,0.04, !- Field 75 + Until: 06:00,0.07, !- Field 77 + Until: 11:00,0.04, !- Field 79 + Until: 13:00,0.06, !- Field 81 + Until: 14:00,0.09, !- Field 83 + Until: 15:00,0.06, !- Field 85 + Until: 21:00,0.04, !- Field 87 + Until: 22:00,0.07, !- Field 89 + Until: 24:00,0.04; !- Field 91 + + Schedule:Compact, + Water Equipment Latent fract sched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.05; !- Field 3 + + Schedule:Compact, + Water Equipment Sensible fract sched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.2; !- Field 3 + + Schedule:Compact, + SWHSys1 Water Heater Ambient Temperature Schedule Name, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,22.0; !- Field 3 + + Schedule:Compact, + Water Equipment Temp Sched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,43.3; !- Field 3 + + Schedule:Compact, + Water Equipment Hot Supply Temp Sched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,43.3; !- Field 3 + + Schedule:Compact, + SWHSys1 Water Heater Setpoint Temperature Schedule Name, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,60.0; !- Field 3 + + Schedule:Compact, + SWHSys1-Loop-Temp-Schedule, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,60.0; !- Field 3 + +! ***ECONOMICS*** +! IN_EIAMonthlyRateGas, Source EIA historical Nov2003 thru Oct2004 +! Indiana 1999 state average electricity emissions factors based on eGRID, 1065, AirData +! PSI_CS_CommercialElectricService, source http://www.cinergypsi.com/pdfs/RateCS.pdf, effective 2004-05-24 +! PSI_LLF_LowLoadFactorService,source http://www.cinergypsi.com/pdfs/RATELLF.pdf, effective 2004-05-24 + + UtilityCost:Tariff, + PSI_LLF_LowLoadFactorService, !- Name + Electricity:Facility, !- Output Meter Name + kWh, !- Conversion Factor Choice + , !- Energy Conversion Factor + , !- Demand Conversion Factor + , !- Time of Use Period Schedule Name + , !- Season Schedule Name + , !- Month Schedule Name + HalfHour, !- Demand Window Length + 15.00, !- Monthly Charge or Variable Name + , !- Minimum Monthly Charge or Variable Name + , !- Real Time Pricing Charge Schedule Name + , !- Customer Baseline Load Schedule Name + Comm Elect; !- Group Name + + UtilityCost:Charge:Block, + AnnualEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + , !- Remaining Into Variable + , !- Block Size Multiplier Value or Variable Name + 300, !- Block Size 1 Value or Variable Name + 0.108222, !- Block 1 Cost per Unit Value or Variable Name + 700, !- Block Size 2 Value or Variable Name + 0.087021, !- Block 2 Cost per Unit Value or Variable Name + 1500, !- Block Size 3 Value or Variable Name + 0.078420, !- Block 3 Cost per Unit Value or Variable Name + remaining, !- Block Size 4 Value or Variable Name + 0.058320; !- Block 4 Cost per Unit Value or Variable Name + + UtilityCost:Charge:Block, + AnnualDemandBaseCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + , !- Remaining Into Variable + TotalDemand, !- Block Size Multiplier Value or Variable Name + 190, !- Block Size 1 Value or Variable Name + 0.0, !- Block 1 Cost per Unit Value or Variable Name + 110, !- Block Size 2 Value or Variable Name + 0.051773, !- Block 2 Cost per Unit Value or Variable Name + remaining, !- Block Size 3 Value or Variable Name + 0.046965; !- Block 3 Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + FuelCostAdjustEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.002028; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + QualPollutionControlAdjustEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.000536; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + SoxNoxRiderAdjustEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.001127; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + DSMRiderAdjustEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + -0.000370; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + PurchPowerTrackerAdjustEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + -0.000031; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + MidwestISOAdjustEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + -0.000216; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + CleanCoalRiderEnergyCharge, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.000833; !- Cost per Unit Value or Variable Name + + UtilityCost:Qualify, + MinDemand75kw, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + TotalDemand, !- Variable Name + Minimum, !- Qualify Type + 75, !- Threshold Value or Variable Name + Annual, !- Season + Count, !- Threshold Test + 12; !- Number of Months + + UtilityCost:Charge:Simple, + TaxofeightPercent, !- Name + PSI_LLF_LowLoadFactorService, !- Tariff Name + SubTotal, !- Source Variable + Annual, !- Season + Taxes, !- Category Variable Name + 0.08; !- Cost per Unit Value or Variable Name + +!end PSI_LLF_LowLoadFactorService + + UtilityCost:Tariff, + PSI_CS_CommercialElectricService, !- Name + Electricity:Facility, !- Output Meter Name + kWh, !- Conversion Factor Choice + , !- Energy Conversion Factor + , !- Demand Conversion Factor + , !- Time of Use Period Schedule Name + , !- Season Schedule Name + , !- Month Schedule Name + , !- Demand Window Length + 9.40, !- Monthly Charge or Variable Name + , !- Minimum Monthly Charge or Variable Name + , !- Real Time Pricing Charge Schedule Name + , !- Customer Baseline Load Schedule Name + Comm Elect; !- Group Name + + UtilityCost:Charge:Block, + AnnualEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + , !- Remaining Into Variable + , !- Block Size Multiplier Value or Variable Name + 300, !- Block Size 1 Value or Variable Name + 0.082409, !- Block 1 Cost per Unit Value or Variable Name + 700, !- Block Size 2 Value or Variable Name + 0.072873, !- Block 2 Cost per Unit Value or Variable Name + 1500, !- Block Size 3 Value or Variable Name + 0.061696, !- Block 3 Cost per Unit Value or Variable Name + remaining, !- Block Size 4 Value or Variable Name + 0.041179; !- Block 4 Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + FuelCostAdjustEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.002028; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + QualPollutionControlAdjustEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.000536; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + SoxNoxRiderAdjustEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.001127; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + DSMRiderAdjustEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.000021; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + PurchPowerTrackerAdjustEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.000034; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + MidwestISOAdjustEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + -0.000203; !- Cost per Unit Value or Variable Name + + UtilityCost:Charge:Simple, + CleanCoalRiderEnergyCharge, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + 0.000807; !- Cost per Unit Value or Variable Name + + UtilityCost:Qualify, + MaxDemand75kw, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + TotalDemand, !- Variable Name + Maximum, !- Qualify Type + 75, !- Threshold Value or Variable Name + Annual, !- Season + Count, !- Threshold Test + 1; !- Number of Months + + UtilityCost:Charge:Simple, + TaxofeightPercent, !- Name + PSI_CS_CommercialElectricService, !- Tariff Name + SubTotal, !- Source Variable + Annual, !- Season + Taxes, !- Category Variable Name + 0.08; !- Cost per Unit Value or Variable Name + + UtilityCost:Tariff, + IN_EIAMonthlyRateGas, !- Name + Gas:Facility, !- Output Meter Name + MCF, !- Conversion Factor Choice + , !- Energy Conversion Factor + , !- Demand Conversion Factor + , !- Time of Use Period Schedule Name + , !- Season Schedule Name + , !- Month Schedule Name + , !- Demand Window Length + 0.0, !- Monthly Charge or Variable Name + , !- Minimum Monthly Charge or Variable Name + , !- Real Time Pricing Charge Schedule Name + , !- Customer Baseline Load Schedule Name + Comm Gas; !- Group Name + + UtilityCost:Charge:Simple, + MonthlyRateGasCharge, !- Name + IN_EIAMonthlyRateGas, !- Tariff Name + totalEnergy, !- Source Variable + Annual, !- Season + EnergyCharges, !- Category Variable Name + IN_MonthlyGasRates; !- Cost per Unit Value or Variable Name + + UtilityCost:Variable, + IN_MonthlyGasRates, !- Name + IN_EIAMonthlyRateGas, !- Tariff Name + Currency, !- Variable Type + 8.22, !- January Value + 7.51, !- February Value + 8.97, !- March Value + 9.01, !- April Value + 9.16, !- May Value + 10.44, !- June Value + 10.32, !- July Value + 10.13, !- August Value + 9.20, !- September Value + 8.18, !- October Value + 7.83, !- November Value + 7.63; !- December Value + + UtilityCost:Charge:Simple, + TaxofEightPercent, !- Name + IN_EIAMonthlyRateGas, !- Tariff Name + SubTotal, !- Source Variable + Annual, !- Season + Taxes, !- Category Variable Name + 0.08; !- Cost per Unit Value or Variable Name + +! ***GENERAL REPORTING*** + + OutputControl:ReportingTolerances, + 0.556, !- Tolerance for Time Heating Setpoint Not Met {deltaC} + 0.556; !- Tolerance for Time Cooling Setpoint Not Met {deltaC} + + Output:SQLite, + Simple; !- Option Type + + Output:VariableDictionary,IDF,Unsorted; + + Output:Surfaces:List,Details; + + Output:Surfaces:Drawing,DXF; + + Output:Constructions,Constructions; + +! ***REPORT METERS/VARIABLES*** + + Output:Meter,Electricity:Facility,HOURLY; + + Output:Meter,Fans:Electricity,HOURLY; + + Output:Meter,Cooling:Electricity,HOURLY; + + Output:Meter,Heating:Electricity,HOURLY; + + Output:Meter,InteriorLights:Electricity,HOURLY; + + Output:Meter,InteriorEquipment:Electricity,HOURLY; + + Output:Meter,Gas:Facility,HOURLY; + + Output:Meter,Heating:Gas,HOURLY; + + Output:Meter,InteriorEquipment:Gas,HOURLY; + + Output:Meter,Water Heater:WaterSystems:Gas,HOURLY; + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,HOURLY; + + Output:Variable,*,Site Outdoor Air Humidity Ratio,HOURLY; + + Output:Variable,*,Site Outdoor Air Relative Humidity,HOURLY; + + Output:Variable,*,Boiler Gas Energy,HOURLY; + + Output:Variable,*,Boiler Inlet Temperature,HOURLY; + + Output:Variable,*,Boiler Outlet Temperature,HOURLY; + + Output:Variable,*,Boiler Part Load Ratio,HOURLY; + + Output:Variable,*,Chiller Part Load Ratio,HOURLY; + + Output:Variable,*,Chiller Electric Energy,HOURLY; + + Output:Variable,*,Chiller COP,HOURLY; + + Output:Variable,*,Plant System Cycle On Off Status,HOURLY; + + Output:Variable,*,Plant Supply Side Cooling Demand Rate,HOURLY; + + Output:Variable,*,Plant Supply Side Heating Demand Rate,HOURLY; + + Output:Variable,*,Plant Supply Side Inlet Mass Flow Rate,HOURLY; + + Output:Variable,*,Plant Supply Side Inlet Temperature,HOURLY; + + Output:Variable,*,Plant Supply Side Outlet Temperature,HOURLY; + + Output:Variable,*,Plant Supply Side Unmet Demand Rate,HOURLY; + + Output:Variable,*,Air System Heating Coil Hot Water Energy,HOURLY; + + Output:Variable,*,Air System Outdoor Air Flow Fraction,HOURLY; + + Output:Variable,*,Air System Simulation Cycle On Off Status,HOURLY; + + Output:Variable,*,Air System Outdoor Air Economizer Status,HOURLY; + + Output:Variable,*,Air System Total Heating Energy,HOURLY; + + Output:Variable,*,Air System Total Cooling Energy,HOURLY; + + Output:Variable,*,Air System Fan Electric Energy,HOURLY; + + Output:Variable,*,Zone Mean Air Temperature,hourly; + +! ***REPORT TABLES*** + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AnnualBuildingUtilityPerformanceSummary, !- Report 1 Name + InputVerificationandResultsSummary, !- Report 2 Name + ClimaticDataSummary, !- Report 3 Name + EnvelopeSummary, !- Report 4 Name + EquipmentSummary, !- Report 5 Name + ComponentSizingSummary, !- Report 6 Name + HVACSizingSummary, !- Report 7 Name + SystemSummary; !- Report 8 Name + + Output:Table:Monthly, + Emissions Data Summary, !- Name + 4, !- Digits After Decimal + CO2:Facility, !- Variable or Meter 1 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 1 + NOx:Facility, !- Variable or Meter 2 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 2 + SO2:Facility, !- Variable or Meter 3 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 3 + PM:Facility, !- Variable or Meter 4 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 4 + Hg:Facility, !- Variable or Meter 5 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 5 + WaterEnvironmentalFactors:Facility, !- Variable or Meter 6 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 6 + Carbon Equivalent:Facility, !- Variable or Meter 7 Name + SumOrAverage; !- Aggregation Type for Variable or Meter 7 + + Output:Table:Monthly, + Components of Peak Electrical Demand, !- Name + 3, !- Digits After Decimal + Electricity:Facility, !- Variable or Meter 1 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 1 + Electricity:Facility, !- Variable or Meter 2 Name + Maximum, !- Aggregation Type for Variable or Meter 2 + InteriorLights:Electricity, !- Variable or Meter 3 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 3 + InteriorEquipment:Electricity, !- Variable or Meter 4 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 4 + Fans:Electricity, !- Variable or Meter 5 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 5 + Heating:Electricity, !- Variable or Meter 6 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 6 + Cooling:Electricity, !- Variable or Meter 7 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 7 + ExteriorLights:Electricity, !- Variable or Meter 8 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 8 + Pumps:Electricity, !- Variable or Meter 9 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 9 + HeatRejection:Electricity, !- Variable or Meter 10 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 10 + ExteriorEquipment:Electricity, !- Variable or Meter 11 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 11 + Humidification:Electricity, !- Variable or Meter 12 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 12 + HeatRecovery:Electricity,!- Variable or Meter 13 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 13 + WaterSystems:Electricity,!- Variable or Meter 14 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 14 + Refrigeration:Electricity, !- Variable or Meter 15 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 15 + Generators:Electricity, !- Variable or Meter 16 Name + ValueWhenMaximumOrMinimum, !- Aggregation Type for Variable or Meter 16 + ElectricityProduced:Facility, !- Variable or Meter 17 Name + ValueWhenMaximumOrMinimum; !- Aggregation Type for Variable or Meter 17 + + Output:Table:Monthly, + Boiler Part Load Performance, !- Name + 2, !- Digits After Decimal + Boiler Part Load Ratio, !- Variable or Meter 1 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 1 + Boiler Part Load Ratio, !- Variable or Meter 2 Name + Maximum; !- Aggregation Type for Variable or Meter 2 + + Output:Table:Monthly, + Chiller Part Load Performance, !- Name + 2, !- Digits After Decimal + Chiller Part Load Ratio, !- Variable or Meter 1 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 1 + Chiller Part Load Ratio, !- Variable or Meter 2 Name + Maximum; !- Aggregation Type for Variable or Meter 2 + + Output:Table:Monthly, + Fan Part Load Performance, !- Name + 0, !- Digits After Decimal + Fan Electric Power, !- Variable or Meter 1 Name + SumOrAverage, !- Aggregation Type for Variable or Meter 1 + Fan Electric Power, !- Variable or Meter 2 Name + Maximum; !- Aggregation Type for Variable or Meter 2 + + Output:Table:TimeBins, + *, !- Key Value + Zone Air Relative Humidity, !- Variable Name + 60, !- Interval Start + 10, !- Interval Size + 4; !- Interval Count + + Output:Table:TimeBins, + *, !- Key Value + Air System Outdoor Air Flow Fraction, !- Variable Name + 0.00, !- Interval Start + 0.20, !- Interval Size + 5; !- Interval Count + + Output:Table:TimeBins, + *, !- Key Value + Availability Manager Night Cycle Control Status, !- Variable Name + 0, !- Interval Start + 1, !- Interval Size + 4; !- Interval Count + +! ***ENVIRONMENTAL FACTORS REPORTING*** + + Output:EnvironmentalImpactFactors, + Monthly; !- Reporting Frequency + + EnvironmentalImpactFactors, + 0.663, !- District Heating Efficiency + 4.18, !- District Cooling COP {W/W} + 0.585, !- Steam Conversion Efficiency + 80.7272, !- Total Carbon Equivalent Emission Factor From N2O {kg/kg} + 6.2727, !- Total Carbon Equivalent Emission Factor From CH4 {kg/kg} + 0.2727; !- Total Carbon Equivalent Emission Factor From CO2 {kg/kg} + +! Indiana electricity source and emission factors based on Deru and Torcellini 2007 + + FuelFactors, + Electricity, !- Existing Fuel Resource Name + kg, !- Units of Measure + , !- Energy per Unit Factor + 3.546, !- Source Energy Factor {J/J} + , !- Source Energy Schedule Name + 3.417E+02, !- CO2 Emission Factor {g/MJ} + , !- CO2 Emission Factor Schedule Name + 1.186E-01, !- CO Emission Factor {g/MJ} + , !- CO Emission Factor Schedule Name + 7.472E-01, !- CH4 Emission Factor {g/MJ} + , !- CH4 Emission Factor Schedule Name + 6.222E-01, !- NOx Emission Factor {g/MJ} + , !- NOx Emission Factor Schedule Name + 8.028E-03, !- N2O Emission Factor {g/MJ} + , !- N2O Emission Factor Schedule Name + 1.872E+00, !- SO2 Emission Factor {g/MJ} + , !- SO2 Emission Factor Schedule Name + 0.0, !- PM Emission Factor {g/MJ} + , !- PM Emission Factor Schedule Name + 1.739E-02, !- PM10 Emission Factor {g/MJ} + , !- PM10 Emission Factor Schedule Name + 0.0, !- PM2.5 Emission Factor {g/MJ} + , !- PM2.5 Emission Factor Schedule Name + 0.0, !- NH3 Emission Factor {g/MJ} + , !- NH3 Emission Factor Schedule Name + 1.019E-02, !- NMVOC Emission Factor {g/MJ} + , !- NMVOC Emission Factor Schedule Name + 5.639E-06, !- Hg Emission Factor {g/MJ} + , !- Hg Emission Factor Schedule Name + 2.778E-05, !- Pb Emission Factor {g/MJ} + , !- Pb Emission Factor Schedule Name + 0.4309556, !- Water Emission Factor {L/MJ} + , !- Water Emission Factor Schedule Name + 0, !- Nuclear High Level Emission Factor {g/MJ} + , !- Nuclear High Level Emission Factor Schedule Name + 0; !- Nuclear Low Level Emission Factor {m3/MJ} + +! Deru and Torcellini 2007 +! Source Energy and Emission Factors for Energy Use in Buildings +! NREL/TP-550-38617 +! source factor and Higher Heating Values from Table 5 +! post-combustion emission factors for boiler from Table 9 (with factor of 1000 correction for natural gas) + + FuelFactors, + NaturalGas, !- Existing Fuel Resource Name + m3, !- Units of Measure + 37631000, !- Energy per Unit Factor + 1.092, !- Source Energy Factor {J/J} + , !- Source Energy Schedule Name + 5.21E+01, !- CO2 Emission Factor {g/MJ} + , !- CO2 Emission Factor Schedule Name + 3.99E-02, !- CO Emission Factor {g/MJ} + , !- CO Emission Factor Schedule Name + 1.06E-03, !- CH4 Emission Factor {g/MJ} + , !- CH4 Emission Factor Schedule Name + 4.73E-02, !- NOx Emission Factor {g/MJ} + , !- NOx Emission Factor Schedule Name + 1.06E-03, !- N2O Emission Factor {g/MJ} + , !- N2O Emission Factor Schedule Name + 2.68E-04, !- SO2 Emission Factor {g/MJ} + , !- SO2 Emission Factor Schedule Name + 0.0, !- PM Emission Factor {g/MJ} + , !- PM Emission Factor Schedule Name + 3.59E-03, !- PM10 Emission Factor {g/MJ} + , !- PM10 Emission Factor Schedule Name + 0.0, !- PM2.5 Emission Factor {g/MJ} + , !- PM2.5 Emission Factor Schedule Name + 0, !- NH3 Emission Factor {g/MJ} + , !- NH3 Emission Factor Schedule Name + 2.61E-03, !- NMVOC Emission Factor {g/MJ} + , !- NMVOC Emission Factor Schedule Name + 1.11E-07, !- Hg Emission Factor {g/MJ} + , !- Hg Emission Factor Schedule Name + 2.13E-07, !- Pb Emission Factor {g/MJ} + , !- Pb Emission Factor Schedule Name + 0, !- Water Emission Factor {L/MJ} + , !- Water Emission Factor Schedule Name + 0, !- Nuclear High Level Emission Factor {g/MJ} + , !- Nuclear High Level Emission Factor Schedule Name + 0; !- Nuclear Low Level Emission Factor {m3/MJ} + diff --git a/testfiles/CmplxGlz_Daylighting_SouthVB45deg.idf b/testfiles/CmplxGlz_Daylighting_SouthVB45deg.idf index 41989558174..f4d132d9b50 100644 --- a/testfiles/CmplxGlz_Daylighting_SouthVB45deg.idf +++ b/testfiles/CmplxGlz_Daylighting_SouthVB45deg.idf @@ -86200,14 +86200,14 @@ SYS-1, !- AirLoop Name Sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -86223,7 +86223,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, SYS-1, !- Name diff --git a/testfiles/CommonPipe_Pri-Sec.idf b/testfiles/CommonPipe_Pri-Sec.idf index 329efede698..7f657c40229 100644 --- a/testfiles/CommonPipe_Pri-Sec.idf +++ b/testfiles/CommonPipe_Pri-Sec.idf @@ -1869,14 +1869,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1892,7 +1892,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/ConvectionAdaptiveSmallOffice.idf b/testfiles/ConvectionAdaptiveSmallOffice.idf index b499c2ec00e..0717b1a1637 100644 --- a/testfiles/ConvectionAdaptiveSmallOffice.idf +++ b/testfiles/ConvectionAdaptiveSmallOffice.idf @@ -295,18 +295,18 @@ SurfaceConvectionAlgorithm:Inside:AdaptiveModelSelections, Default Algorithm, !- Name - FohannoPolidoriVerticalWall, !- Simple Bouyancy Vertical Wall Equation Source - , !- Simple Bouyancy Vertical Wall User Curve Name - AlamdariHammondStableHorizontal, !- Simple Bouyancy Stable Horizontal Equation Source - , !- Simple Bouyancy Stable Horizontal Equation User Curve Name - AlamdariHammondUnstableHorizontal, !- Simple Bouyancy Unstable Horizontal Equation Source - , !- Simple Bouyancy Unstable Horizontal Equation User Curve Name - WaltonStableHorizontalOrTilt, !- Simple Bouyancy Stable Tilted Equation Source - , !- Simple Bouyancy Stable Tilted Equation User Curve Name - WaltonUnstableHorizontalOrTilt, !- Simple Bouyancy Unstable Tilted Equation Source - , !- Simple Bouyancy Unstable Tilted Equation User Curve Name - ISO15099Windows, !- Simple Bouyancy Windows Equation Source - , !- Simple Bouyancy Windows Equation User Curve Name + FohannoPolidoriVerticalWall, !- Simple Buoyancy Vertical Wall Equation Source + , !- Simple Buoyancy Vertical Wall User Curve Name + AlamdariHammondStableHorizontal, !- Simple Buoyancy Stable Horizontal Equation Source + , !- Simple Buoyancy Stable Horizontal Equation User Curve Name + AlamdariHammondUnstableHorizontal, !- Simple Buoyancy Unstable Horizontal Equation Source + , !- Simple Buoyancy Unstable Horizontal Equation User Curve Name + WaltonStableHorizontalOrTilt, !- Simple Buoyancy Stable Tilted Equation Source + , !- Simple Buoyancy Stable Tilted Equation User Curve Name + WaltonUnstableHorizontalOrTilt, !- Simple Buoyancy Unstable Tilted Equation Source + , !- Simple Buoyancy Unstable Tilted Equation User Curve Name + ISO15099Windows, !- Simple Buoyancy Windows Equation Source + , !- Simple Buoyancy Windows Equation User Curve Name KhalifaEq3WallAwayFromHeat, !- Floor Heat Ceiling Cool Vertical Wall Equation Source , !- Floor Heat Ceiling Cool Vertical Wall Equation User Curve Name AlamdariHammondStableHorizontal, !- Floor Heat Ceiling Cool Stable Horizontal Equation Source @@ -371,10 +371,10 @@ , !- Mechanical Zone Fan Circulation Unstable Tilted Equation User Curve Name ISO15099Windows, !- Mechanical Zone Fan Circulation Window Equation Source , !- Mechanical Zone Fan Circulation Window Equation User Curve Name - BeausoleilMorrisonMixedAssistedWall, !- Mixed Regime Bouyancy Assisting Flow on Walls Equation Source - , !- Mixed Regime Bouyancy Assisting Flow on Walls Equation User Curve Name - BeausoleilMorrisonMixedOpposingWall, !- Mixed Regime Bouyancy Oppossing Flow on Walls Equation Source - , !- Mixed Regime Bouyancy Oppossing Flow on Walls Equation User Curve Name + BeausoleilMorrisonMixedAssistedWall, !- Mixed Regime Buoyancy Assisting Flow on Walls Equation Source + , !- Mixed Regime Buoyancy Assisting Flow on Walls Equation User Curve Name + BeausoleilMorrisonMixedOpposingWall, !- Mixed Regime Buoyancy Opposing Flow on Walls Equation Source + , !- Mixed Regime Buoyancy Opposing Flow on Walls Equation User Curve Name BeausoleilMorrisonMixedStableFloor, !- Mixed Regime Stable Floor Equation Source , !- Mixed Regime Stable Floor Equation User Curve Name BeausoleilMorrisonMixedUnstableFloor, !- Mixed Regime Unstable Floor Equation Source @@ -2823,14 +2823,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2846,20 +2846,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2875,20 +2885,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2904,20 +2924,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2933,20 +2963,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2962,7 +3002,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC:1_OA_Controller, !- Name diff --git a/testfiles/CoolingTowerDryBulbRangeOp.idf b/testfiles/CoolingTowerDryBulbRangeOp.idf index 60a22bdccc7..13e19c6a430 100644 --- a/testfiles/CoolingTowerDryBulbRangeOp.idf +++ b/testfiles/CoolingTowerDryBulbRangeOp.idf @@ -1881,14 +1881,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1904,7 +1904,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTowerRHRangeOp.idf b/testfiles/CoolingTowerRHRangeOp.idf index 4f86c634916..a2995e028c6 100644 --- a/testfiles/CoolingTowerRHRangeOp.idf +++ b/testfiles/CoolingTowerRHRangeOp.idf @@ -1881,14 +1881,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1904,7 +1904,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTowerWetBulbRangeOp.idf b/testfiles/CoolingTowerWetBulbRangeOp.idf index 6c15960610b..4584694e7c4 100644 --- a/testfiles/CoolingTowerWetBulbRangeOp.idf +++ b/testfiles/CoolingTowerWetBulbRangeOp.idf @@ -1881,14 +1881,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1904,7 +1904,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTowerWithDBDeltaTempOp.idf b/testfiles/CoolingTowerWithDBDeltaTempOp.idf index b536bc17c57..83a6d7d7fb0 100644 --- a/testfiles/CoolingTowerWithDBDeltaTempOp.idf +++ b/testfiles/CoolingTowerWithDBDeltaTempOp.idf @@ -1881,14 +1881,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1904,7 +1904,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTower_FluidBypass.idf b/testfiles/CoolingTower_FluidBypass.idf index 7a1a4b07c12..b37cc5a8b71 100644 --- a/testfiles/CoolingTower_FluidBypass.idf +++ b/testfiles/CoolingTower_FluidBypass.idf @@ -8074,14 +8074,14 @@ VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8097,7 +8097,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_5 Availability Manager List, !- Name @@ -8346,14 +8356,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8369,7 +8379,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_1 Availability Manager List, !- Name @@ -8636,14 +8656,14 @@ VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8659,7 +8679,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_2 Availability Manager List, !- Name @@ -8926,14 +8956,14 @@ VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8949,7 +8979,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_3 Availability Manager List, !- Name diff --git a/testfiles/CoolingTower_MerkelVariableSpeed.idf b/testfiles/CoolingTower_MerkelVariableSpeed.idf index 61ea9a0093d..5d4e7458366 100644 --- a/testfiles/CoolingTower_MerkelVariableSpeed.idf +++ b/testfiles/CoolingTower_MerkelVariableSpeed.idf @@ -5998,14 +5998,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6021,20 +6021,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6050,20 +6060,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6079,20 +6099,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6108,7 +6138,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name @@ -7223,6 +7263,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio @@ -7256,6 +7297,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio diff --git a/testfiles/CoolingTower_SingleSpeed_MultiCell.idf b/testfiles/CoolingTower_SingleSpeed_MultiCell.idf index 275748caee1..7f168344f6f 100644 --- a/testfiles/CoolingTower_SingleSpeed_MultiCell.idf +++ b/testfiles/CoolingTower_SingleSpeed_MultiCell.idf @@ -8074,14 +8074,14 @@ VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8097,7 +8097,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_5 Availability Manager List, !- Name @@ -8346,14 +8356,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8369,7 +8379,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_1 Availability Manager List, !- Name @@ -8636,14 +8656,14 @@ VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8659,7 +8679,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_2 Availability Manager List, !- Name @@ -8926,14 +8956,14 @@ VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8949,7 +8979,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_3 Availability Manager List, !- Name diff --git a/testfiles/CoolingTower_TwoSpeed.idf b/testfiles/CoolingTower_TwoSpeed.idf index 66dd3fb3f6b..2e7d5f1eedf 100644 --- a/testfiles/CoolingTower_TwoSpeed.idf +++ b/testfiles/CoolingTower_TwoSpeed.idf @@ -2397,3 +2397,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/CoolingTower_TwoSpeed_MultiCell.idf b/testfiles/CoolingTower_TwoSpeed_MultiCell.idf index 0806ad0e108..444ff88b5af 100644 --- a/testfiles/CoolingTower_TwoSpeed_MultiCell.idf +++ b/testfiles/CoolingTower_TwoSpeed_MultiCell.idf @@ -8074,14 +8074,14 @@ VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8097,7 +8097,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_5 Availability Manager List, !- Name @@ -8346,14 +8356,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8369,7 +8379,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_1 Availability Manager List, !- Name @@ -8636,14 +8656,14 @@ VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8659,7 +8679,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_2 Availability Manager List, !- Name @@ -8926,14 +8956,14 @@ VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8949,7 +8979,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_3 Availability Manager List, !- Name diff --git a/testfiles/CoolingTower_VariableSpeed.idf b/testfiles/CoolingTower_VariableSpeed.idf index 1bfed600a64..63f84d3b21b 100644 --- a/testfiles/CoolingTower_VariableSpeed.idf +++ b/testfiles/CoolingTower_VariableSpeed.idf @@ -1916,14 +1916,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1939,7 +1939,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTower_VariableSpeed_CondEntTempReset.idf b/testfiles/CoolingTower_VariableSpeed_CondEntTempReset.idf index f95138e62e9..d644ebd2848 100644 --- a/testfiles/CoolingTower_VariableSpeed_CondEntTempReset.idf +++ b/testfiles/CoolingTower_VariableSpeed_CondEntTempReset.idf @@ -1918,14 +1918,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1941,7 +1941,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf b/testfiles/CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf index 54f0230ea4d..0306f9a49bb 100644 --- a/testfiles/CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf +++ b/testfiles/CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf @@ -1923,14 +1923,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1946,7 +1946,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/CoolingTower_VariableSpeed_MultiCell.idf b/testfiles/CoolingTower_VariableSpeed_MultiCell.idf index 773f582eb1b..f1314e067c4 100644 --- a/testfiles/CoolingTower_VariableSpeed_MultiCell.idf +++ b/testfiles/CoolingTower_VariableSpeed_MultiCell.idf @@ -8074,14 +8074,14 @@ VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8097,7 +8097,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_5 Availability Manager List, !- Name @@ -8346,14 +8356,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8369,7 +8379,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_1 Availability Manager List, !- Name @@ -8636,14 +8656,14 @@ VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8659,7 +8679,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_2 Availability Manager List, !- Name @@ -8926,14 +8956,14 @@ VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8949,7 +8979,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV_3 Availability Manager List, !- Name diff --git a/testfiles/CooltowerSimpleTestwithVentilation.idf b/testfiles/CooltowerSimpleTestwithVentilation.idf index 6d88fdd1a20..e283f4cf466 100644 --- a/testfiles/CooltowerSimpleTestwithVentilation.idf +++ b/testfiles/CooltowerSimpleTestwithVentilation.idf @@ -2294,3 +2294,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/CrossVent_1Zone_AirflowNetwork.idf b/testfiles/CrossVent_1Zone_AirflowNetwork.idf index 0c171f326f1..feb22f866ce 100644 --- a/testfiles/CrossVent_1Zone_AirflowNetwork.idf +++ b/testfiles/CrossVent_1Zone_AirflowNetwork.idf @@ -954,9 +954,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} ON; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Surface, @@ -975,7 +975,7 @@ DCD, !- Name 1, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/CrossVent_1Zone_AirflowNetwork_with2CrossflowJets.idf b/testfiles/CrossVent_1Zone_AirflowNetwork_with2CrossflowJets.idf index 18e7fe85475..58288794a12 100644 --- a/testfiles/CrossVent_1Zone_AirflowNetwork_with2CrossflowJets.idf +++ b/testfiles/CrossVent_1Zone_AirflowNetwork_with2CrossflowJets.idf @@ -1009,9 +1009,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} Stepped; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Surface, @@ -1046,7 +1046,7 @@ DCD, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/CustomSolarVisibleSpectrum_RefBldgSmallOfficeNew2004_Chicago.idf b/testfiles/CustomSolarVisibleSpectrum_RefBldgSmallOfficeNew2004_Chicago.idf index 89d2f296b74..2222cc50153 100644 --- a/testfiles/CustomSolarVisibleSpectrum_RefBldgSmallOfficeNew2004_Chicago.idf +++ b/testfiles/CustomSolarVisibleSpectrum_RefBldgSmallOfficeNew2004_Chicago.idf @@ -2822,14 +2822,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2845,20 +2845,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2874,20 +2884,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2903,20 +2923,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2932,20 +2962,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2961,7 +3001,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC:1_OA_Controller, !- Name diff --git a/testfiles/DDAutoSize.idf b/testfiles/DDAutoSize.idf index 29c9de2f237..8ce41b65db7 100644 --- a/testfiles/DDAutoSize.idf +++ b/testfiles/DDAutoSize.idf @@ -1235,14 +1235,14 @@ Main Dual Duct Air Loop, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 60., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1258,7 +1258,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/DOASDXCOIL_wADPBFMethod.idf b/testfiles/DOASDXCOIL_wADPBFMethod.idf index 55e7a7c295f..c687c7c2b29 100644 --- a/testfiles/DOASDXCOIL_wADPBFMethod.idf +++ b/testfiles/DOASDXCOIL_wADPBFMethod.idf @@ -2199,14 +2199,14 @@ DOAS, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 2, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 12.2, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.00924, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2222,7 +2222,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, DOAS, !- Name diff --git a/testfiles/DOASDualDuctSchool.idf b/testfiles/DOASDualDuctSchool.idf index 63adb108142..39a4387d671 100644 --- a/testfiles/DOASDualDuctSchool.idf +++ b/testfiles/DOASDualDuctSchool.idf @@ -7602,14 +7602,14 @@ DOAS_POD_1, !- AirLoop Name VENTILATIONREQUIREMENT, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -7625,7 +7625,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method BranchList, DOAS_POD_1 Air Loop Branches, !- Name @@ -7929,14 +7939,14 @@ DUALDUCT_OTHER, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -7952,7 +7962,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method BranchList, DUALDUCT_OTHER Air Loop Branches, !- Name diff --git a/testfiles/DOAToFanCoilInlet.idf b/testfiles/DOAToFanCoilInlet.idf index 7a0da0b123d..dea2484c87c 100644 --- a/testfiles/DOAToFanCoilInlet.idf +++ b/testfiles/DOAToFanCoilInlet.idf @@ -2018,14 +2018,14 @@ DOAS, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 2, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 12.2, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.00924, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2041,7 +2041,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: SIZING:PLANT =========== diff --git a/testfiles/DOAToFanCoilSupply.idf b/testfiles/DOAToFanCoilSupply.idf index f345fa404c0..e6a6e3078a0 100644 --- a/testfiles/DOAToFanCoilSupply.idf +++ b/testfiles/DOAToFanCoilSupply.idf @@ -2018,14 +2018,14 @@ DOAS, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 2, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 12.2, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.00924, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2041,7 +2041,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !- =========== ALL OBJECTS IN CLASS: SIZING:PLANT =========== diff --git a/testfiles/DXCoilSystemAuto.idf b/testfiles/DXCoilSystemAuto.idf index 6d63e153586..fe800c148c0 100644 --- a/testfiles/DXCoilSystemAuto.idf +++ b/testfiles/DXCoilSystemAuto.idf @@ -1163,14 +1163,14 @@ Heat Pump Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1186,7 +1186,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Curve:Biquadratic, HPACCoolCapFT, !- Name diff --git a/testfiles/DaylightingDeviceTubular.idf b/testfiles/DaylightingDeviceTubular.idf index ba45b2bb5c3..0ecaea0fe7d 100644 --- a/testfiles/DaylightingDeviceTubular.idf +++ b/testfiles/DaylightingDeviceTubular.idf @@ -1163,3 +1163,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + SimpleAndTabular; !- Option Type + diff --git a/testfiles/DirectIndirectEvapCoolers.idf b/testfiles/DirectIndirectEvapCoolers.idf index 5a98bbea6a6..8654e6b79f1 100644 --- a/testfiles/DirectIndirectEvapCoolers.idf +++ b/testfiles/DirectIndirectEvapCoolers.idf @@ -3903,14 +3903,14 @@ FURNACE_PACU_CAV:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3926,7 +3926,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:1 Availability Manager List, !- Name @@ -4216,14 +4226,14 @@ FURNACE_PACU_CAV:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4239,7 +4249,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:2 Availability Manager List, !- Name @@ -4507,14 +4527,14 @@ FURNACE_PACU_CAV:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4530,7 +4550,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:3 Availability Manager List, !- Name @@ -4816,14 +4846,14 @@ FURNACE_PACU_CAV:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4839,7 +4869,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:4 Availability Manager List, !- Name diff --git a/testfiles/DirectIndirectEvapCoolersVSAS.idf b/testfiles/DirectIndirectEvapCoolersVSAS.idf index c809cd2e4f2..d654c085249 100644 --- a/testfiles/DirectIndirectEvapCoolersVSAS.idf +++ b/testfiles/DirectIndirectEvapCoolersVSAS.idf @@ -4468,14 +4468,14 @@ FURNACE_PACU_CAV:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4491,7 +4491,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:1 Availability Manager List, !- Name @@ -4745,14 +4755,14 @@ FURNACE_PACU_CAV:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4768,7 +4778,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:2 Availability Manager List, !- Name @@ -5000,14 +5020,14 @@ FURNACE_PACU_CAV:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5023,7 +5043,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:3 Availability Manager List, !- Name @@ -5273,14 +5303,14 @@ FURNACE_PACU_CAV:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5296,7 +5326,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, FURNACE_PACU_CAV:4 Availability Manager List, !- Name diff --git a/testfiles/DisplacementVent_1ZoneOffice.idf b/testfiles/DisplacementVent_1ZoneOffice.idf index a9be629a694..d657cc7b4f2 100644 --- a/testfiles/DisplacementVent_1ZoneOffice.idf +++ b/testfiles/DisplacementVent_1ZoneOffice.idf @@ -1267,14 +1267,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 19, !- Central Cooling Design Supply Air Temperature {C} 20, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1290,7 +1290,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/DisplacementVent_Nat_AirflowNetwork.idf b/testfiles/DisplacementVent_Nat_AirflowNetwork.idf index ebc974dae3a..01c61b2b3fb 100644 --- a/testfiles/DisplacementVent_Nat_AirflowNetwork.idf +++ b/testfiles/DisplacementVent_Nat_AirflowNetwork.idf @@ -566,9 +566,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, win11, !- Surface Name @@ -592,7 +592,7 @@ VW, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} @@ -620,7 +620,7 @@ VWO, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} @@ -648,7 +648,7 @@ VWC, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/DisplacementVent_Nat_AirflowNetwork_AdaptiveComfort.idf b/testfiles/DisplacementVent_Nat_AirflowNetwork_AdaptiveComfort.idf index ce82a64f259..2f24b3803ce 100644 --- a/testfiles/DisplacementVent_Nat_AirflowNetwork_AdaptiveComfort.idf +++ b/testfiles/DisplacementVent_Nat_AirflowNetwork_AdaptiveComfort.idf @@ -607,9 +607,9 @@ ALWAYSON, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, win11, !- Surface Name @@ -636,7 +636,7 @@ VW, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} @@ -664,7 +664,7 @@ VWO, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} @@ -692,7 +692,7 @@ VWC, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 1, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/DisplacementVent_VAV.idf b/testfiles/DisplacementVent_VAV.idf index e31b81c137b..92c318668fb 100644 --- a/testfiles/DisplacementVent_VAV.idf +++ b/testfiles/DisplacementVent_VAV.idf @@ -682,14 +682,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 19, !- Central Cooling Design Supply Air Temperature {C} 19, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.015, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -705,7 +705,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Curve:Biquadratic, WindACCoolCapFT, !- Name diff --git a/testfiles/EMPD5ZoneWaterCooled_HighRHControl.idf b/testfiles/EMPD5ZoneWaterCooled_HighRHControl.idf index 27c96f78b0b..57a23202b8d 100644 --- a/testfiles/EMPD5ZoneWaterCooled_HighRHControl.idf +++ b/testfiles/EMPD5ZoneWaterCooled_HighRHControl.idf @@ -1934,14 +1934,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1957,7 +1957,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/EMSAirflowNetworkOpeningControlByHumidity.idf b/testfiles/EMSAirflowNetworkOpeningControlByHumidity.idf index d16c7494d83..72ef7f0bdc6 100644 --- a/testfiles/EMSAirflowNetworkOpeningControlByHumidity.idf +++ b/testfiles/EMSAirflowNetworkOpeningControlByHumidity.idf @@ -1873,9 +1873,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1884,9 +1884,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1894,9 +1894,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1905,9 +1905,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -2039,7 +2039,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/EMSCustomOutputVariable.idf b/testfiles/EMSCustomOutputVariable.idf index 3c27a198ad2..806330d411d 100644 --- a/testfiles/EMSCustomOutputVariable.idf +++ b/testfiles/EMSCustomOutputVariable.idf @@ -3781,14 +3781,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3804,7 +3804,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:1 Availability Manager List, !- Name @@ -4072,14 +4082,14 @@ PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4095,7 +4105,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:2 Availability Manager List, !- Name @@ -4363,14 +4383,14 @@ PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4386,7 +4406,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:3 Availability Manager List, !- Name @@ -4654,14 +4684,14 @@ PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4677,7 +4707,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:4 Availability Manager List, !- Name @@ -4945,14 +4985,14 @@ PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4968,7 +5008,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:5 Availability Manager List, !- Name diff --git a/testfiles/EMSCustomSchedule.idf b/testfiles/EMSCustomSchedule.idf index 751018a1f0f..f30e0f32b2f 100644 --- a/testfiles/EMSCustomSchedule.idf +++ b/testfiles/EMSCustomSchedule.idf @@ -3865,14 +3865,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3888,7 +3888,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:1 Availability Manager List, !- Name @@ -4156,14 +4166,14 @@ PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4179,7 +4189,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:2 Availability Manager List, !- Name @@ -4447,14 +4467,14 @@ PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4470,7 +4490,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:3 Availability Manager List, !- Name @@ -4738,14 +4768,14 @@ PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4761,7 +4791,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:4 Availability Manager List, !- Name @@ -5029,14 +5069,14 @@ PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5052,7 +5092,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:5 Availability Manager List, !- Name diff --git a/testfiles/EMSDemandManager_LargeOffice.idf b/testfiles/EMSDemandManager_LargeOffice.idf index f7571edfadc..f9b4c85f838 100644 --- a/testfiles/EMSDemandManager_LargeOffice.idf +++ b/testfiles/EMSDemandManager_LargeOffice.idf @@ -8139,14 +8139,14 @@ VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8162,7 +8162,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_5 Availability Manager List, !- Name @@ -8501,14 +8511,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8524,7 +8534,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_1 Availability Manager List, !- Name @@ -8886,14 +8906,14 @@ VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8909,7 +8929,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_2 Availability Manager List, !- Name @@ -9271,14 +9301,14 @@ VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9294,7 +9324,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_3 Availability Manager List, !- Name diff --git a/testfiles/EMSDiscreteAirSystemSizes.idf b/testfiles/EMSDiscreteAirSystemSizes.idf index b760da0cb1f..d82f5b9c49a 100644 --- a/testfiles/EMSDiscreteAirSystemSizes.idf +++ b/testfiles/EMSDiscreteAirSystemSizes.idf @@ -5448,14 +5448,14 @@ PSZ-AC_1:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5471,7 +5471,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_1:1 Availability Manager List, !- Name @@ -5724,14 +5734,14 @@ PSZ-AC_2:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5747,7 +5757,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_2:2 Availability Manager List, !- Name @@ -6000,14 +6020,14 @@ PSZ-AC_3:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6023,7 +6043,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_3:3 Availability Manager List, !- Name @@ -6276,14 +6306,14 @@ PSZ-AC_4:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6299,7 +6329,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_4:4 Availability Manager List, !- Name @@ -6552,14 +6592,14 @@ PSZ-AC_5:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6575,7 +6615,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_5:5 Availability Manager List, !- Name @@ -6828,14 +6878,14 @@ PSZ-AC_6:6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6851,7 +6901,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_6:6 Availability Manager List, !- Name @@ -7104,14 +7164,14 @@ PSZ-AC_7:7, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -7127,7 +7187,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_7:7 Availability Manager List, !- Name @@ -7380,14 +7450,14 @@ PSZ-AC_8:8, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -7403,7 +7473,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_8:8 Availability Manager List, !- Name @@ -7656,14 +7736,14 @@ PSZ-AC_9:9, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -7679,7 +7759,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_9:9 Availability Manager List, !- Name @@ -7932,14 +8022,14 @@ PSZ-AC_10:10, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -7955,7 +8045,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC_10:10 Availability Manager List, !- Name diff --git a/testfiles/EMSPlantLoopOverrideControl.idf b/testfiles/EMSPlantLoopOverrideControl.idf index feebc2ab7e1..6ec14c682a4 100644 --- a/testfiles/EMSPlantLoopOverrideControl.idf +++ b/testfiles/EMSPlantLoopOverrideControl.idf @@ -4957,14 +4957,14 @@ VAV SYS 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4980,7 +4980,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Chiller Plant, !- Plant or Condenser Loop Name diff --git a/testfiles/EMSPlantOperation_largeOff.idf b/testfiles/EMSPlantOperation_largeOff.idf index 4f01625171e..cb20e2dd44e 100644 --- a/testfiles/EMSPlantOperation_largeOff.idf +++ b/testfiles/EMSPlantOperation_largeOff.idf @@ -5998,14 +5998,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6021,20 +6021,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6050,20 +6060,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6079,20 +6099,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6108,7 +6138,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name @@ -7223,6 +7263,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio @@ -7256,6 +7297,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio diff --git a/testfiles/EMSReplaceTraditionalManagers_LargeOffice.idf b/testfiles/EMSReplaceTraditionalManagers_LargeOffice.idf index 263fa113899..8efcc6b6f0f 100644 --- a/testfiles/EMSReplaceTraditionalManagers_LargeOffice.idf +++ b/testfiles/EMSReplaceTraditionalManagers_LargeOffice.idf @@ -8129,14 +8129,14 @@ VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8152,7 +8152,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_5 Availability Manager List, !- Name @@ -8491,14 +8501,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8514,7 +8524,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_1 Availability Manager List, !- Name @@ -8876,14 +8896,14 @@ VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8899,7 +8919,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_2 Availability Manager List, !- Name @@ -9261,14 +9291,14 @@ VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9284,7 +9314,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method !AvailabilityManagerAssignmentList, ! VAV_3 Availability Manager List, !- Name diff --git a/testfiles/EMSTestMathAndKill.idf b/testfiles/EMSTestMathAndKill.idf index 38664e16872..15ad61646ff 100644 --- a/testfiles/EMSTestMathAndKill.idf +++ b/testfiles/EMSTestMathAndKill.idf @@ -3962,14 +3962,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3985,7 +3985,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:1 Availability Manager List, !- Name @@ -4253,14 +4263,14 @@ PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4276,7 +4286,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:2 Availability Manager List, !- Name @@ -4544,14 +4564,14 @@ PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4567,7 +4587,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:3 Availability Manager List, !- Name @@ -4835,14 +4865,14 @@ PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4858,7 +4888,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:4 Availability Manager List, !- Name @@ -5126,14 +5166,14 @@ PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5149,7 +5189,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:5 Availability Manager List, !- Name diff --git a/testfiles/EMSThermochromicWindow.idf b/testfiles/EMSThermochromicWindow.idf index 0a29bb6c2e3..6bb35b9a255 100644 --- a/testfiles/EMSThermochromicWindow.idf +++ b/testfiles/EMSThermochromicWindow.idf @@ -3612,14 +3612,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3635,7 +3635,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:1 Availability Manager List, !- Name @@ -3901,14 +3911,14 @@ PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3924,7 +3934,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:2 Availability Manager List, !- Name @@ -4190,14 +4210,14 @@ PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4213,7 +4233,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:3 Availability Manager List, !- Name @@ -4479,14 +4509,14 @@ PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4502,7 +4532,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:4 Availability Manager List, !- Name @@ -4768,14 +4808,14 @@ PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4791,7 +4831,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:5 Availability Manager List, !- Name diff --git a/testfiles/EMSUserDefined5ZoneAirCooled.idf b/testfiles/EMSUserDefined5ZoneAirCooled.idf index 2d3ea0dfe41..827a3781491 100644 --- a/testfiles/EMSUserDefined5ZoneAirCooled.idf +++ b/testfiles/EMSUserDefined5ZoneAirCooled.idf @@ -1881,14 +1881,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1904,7 +1904,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/EcoroofOrlando.idf b/testfiles/EcoroofOrlando.idf index 485ce7cf91d..6f4fcae388d 100644 --- a/testfiles/EcoroofOrlando.idf +++ b/testfiles/EcoroofOrlando.idf @@ -4955,14 +4955,14 @@ VAV SYS 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4978,7 +4978,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Chiller Plant, !- Plant or Condenser Loop Name diff --git a/testfiles/ElectricChiller.idf b/testfiles/ElectricChiller.idf index 3de7ad711d9..2df1ff6f2f6 100644 --- a/testfiles/ElectricChiller.idf +++ b/testfiles/ElectricChiller.idf @@ -2076,14 +2076,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2099,7 +2099,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/FanCoilAutoSizeScalableSizing.idf b/testfiles/FanCoilAutoSizeScalableSizing.idf index 2a88e6364c0..cb96d0614da 100644 --- a/testfiles/FanCoilAutoSizeScalableSizing.idf +++ b/testfiles/FanCoilAutoSizeScalableSizing.idf @@ -1814,33 +1814,33 @@ 0.0, !- Minimum Hot Water Flow Rate {m3/s} 0.001, !- Heating Convergence Tolerance , !- Availability Manager List Name - FanCoilDesignSpec1; !- Design Specification ZoneHVAC Sizing Object Name + FanCoilDesignSpec1; !- Design Specification ZoneHVAC Sizing Object Name DesignSpecification:ZoneHVAC:Sizing, FanCoilDesignSpec1, !- Name SupplyAirFlowRate, !- Cooling Design Air Flow Method - autosize, !- Cooling Design Supply Air Flow Rate - , !- Cooling Design Supply Air Flow Rate Per Floor Area + autosize, !- Cooling Design Supply Air Flow Rate {m3/s} + , !- Cooling Design Supply Air Flow Rate Per Floor Area {m3/s-m2} , !- Fraction of Autosized Cooling Design Supply Air Flow Rate - , !- Cooling Design Supply Air Flow Rate Per Unit of Capacity {m3/s-W} + , !- Cooling Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} SupplyAirFlowRate, !- Supply Air Flow Rate Method When No Cooling or Heating is Required - 0.0, !- Supply Air Flow Rate When No Cooling or Heating is Required - , !- Supply Air Flow Rate Per Floor Area When No Clg or Htg is Required - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate When No Clg or Htg - , !- Fraction of Autosized Design Heating Supply Air Flow Rate When No Clg or Htg + 0.0, !- Supply Air Flow Rate When No Cooling or Heating is Required {m3/s} + , !- Supply Air Flow Rate Per Floor Area When No Clg or Htg is Required {m3/s-m2} + , !- Fraction of Design Cooling Supply Air Flow Rate When No Clg or Htg Required + , !- Fraction of Design Heating Supply Air Flow Rate When No Clg or Htg Required SupplyAirFlowRate, !- Heating Design Air Flow Method - autosize, !- Heating Design Supply Air Flow Rate - , !- Heating Design Supply Air Flow Rate Per Floor Area - , !- Fraction of Autosized Heating Design Supply Air Flow Rate - , !- Heating Design Supply Air Flow Rate Per Unit of Heating Capacity + autosize, !- Heating Design Supply Air Flow Rate {m3/s} + , !- Heating Design Supply Air Flow Rate Per Floor Area {m3/s-m2} + , !- Fraction of Heating Design Supply Air Flow Rate + , !- Heating Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} CoolingDesignCapacity, !- Cooling Design Capacity Method autosize, !- Cooling Design Capacity {W} , !- Cooling Design Capacity Per Floor Area {W/m2} - , !- Fraction of Autosized Cooling Design Capacity {-} + , !- Fraction of Autosized Cooling Design Capacity CapacityPerFloorArea, !- Heating Design Capacity Method , !- Heating Design Capacity {W} 156.89549, !- Heating Design Capacity Per Floor Area {W/m2} - ; !- Fraction of Autosized Cooling Design Capacity {-} + ; !- Fraction of Autosized Heating Design Capacity OutdoorAir:Mixer, Zone1FanCoilOAMixer, !- Name @@ -1852,7 +1852,7 @@ Fan:ConstantVolume, Zone1FanCoilFan, !- Name FanAndCoilAvailSched, !- Availability Schedule Name - 0.5, !- Fan Efficiency + 0.5, !- Fan Total Efficiency 75.0, !- Pressure Rise {Pa} autosize, !- Maximum Flow Rate {m3/s} 0.9, !- Motor Efficiency @@ -1948,28 +1948,28 @@ DesignSpecification:ZoneHVAC:Sizing, FanCoilDesignSpec2, !- Name FlowPerFloorArea, !- Cooling Design Air Flow Method - , !- Cooling Design Supply Air Flow Rate - 9.9676501E-3, !- Cooling Design Supply Air Flow Rate Per Floor Area + , !- Cooling Design Supply Air Flow Rate {m3/s} + 9.9676501E-3, !- Cooling Design Supply Air Flow Rate Per Floor Area {m3/s-m2} , !- Fraction of Autosized Cooling Design Supply Air Flow Rate - , !- Cooling Design Supply Air Flow Rate Per Unit of Capacity {m3/s-W} + , !- Cooling Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} FlowPerFloorArea, !- Supply Air Flow Rate Method When No Cooling or Heating is Required - , !- Supply Air Flow Rate When No Cooling or Heating is Required - 0.0, !- Supply Air Flow Rate Per Floor Area When No Clg or Htg is Required - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate When No Clg or Htg - , !- Fraction of Autosized Design Heating Supply Air Flow Rate When No Clg or Htg + , !- Supply Air Flow Rate When No Cooling or Heating is Required {m3/s} + 0.0, !- Supply Air Flow Rate Per Floor Area When No Clg or Htg is Required {m3/s-m2} + , !- Fraction of Design Cooling Supply Air Flow Rate When No Clg or Htg Required + , !- Fraction of Design Heating Supply Air Flow Rate When No Clg or Htg Required FlowPerFloorArea, !- Heating Design Air Flow Method - , !- Heating Design Supply Air Flow Rate - 9.9676501E-3, !- Heating Design Supply Air Flow Rate Per Floor Area - , !- Fraction of Autosized Heating Design Supply Air Flow Rate - , !- Heating Design Supply Air Flow Rate Per Unit of Heating Capacity - FractionOfAutosizedCoolingCapacity, !- Cooling Design Capacity Method + , !- Heating Design Supply Air Flow Rate {m3/s} + 9.9676501E-3, !- Heating Design Supply Air Flow Rate Per Floor Area {m3/s-m2} + , !- Fraction of Heating Design Supply Air Flow Rate + , !- Heating Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + FractionOfAutosizedCoolingCapacity, !- Cooling Design Capacity Method , !- Cooling Design Capacity {W} , !- Cooling Design Capacity Per Floor Area {W/m2} - 1., !- Fraction of Autosized Cooling Design Capacity {-} - FractionOfAutosizedHeatingCapacity, !- Heating Design Capacity Method + 1., !- Fraction of Autosized Cooling Design Capacity + FractionOfAutosizedHeatingCapacity, !- Heating Design Capacity Method , !- Heating Design Capacity {W} , !- Heating Design Capacity Per Floor Area {W/m2} - 1.; !- Fraction of Autosized Cooling Design Capacity {-} + 1.; !- Fraction of Autosized Heating Design Capacity OutdoorAir:Mixer, Zone2FanCoilOAMixer, !- Name @@ -1981,7 +1981,7 @@ Fan:ConstantVolume, Zone2FanCoilFan, !- Name FanAndCoilAvailSched, !- Availability Schedule Name - 0.5, !- Fan Efficiency + 0.5, !- Fan Total Efficiency 75.0, !- Pressure Rise {Pa} autosize, !- Maximum Flow Rate {m3/s} 0.9, !- Motor Efficiency @@ -2074,33 +2074,31 @@ , !- Availability Manager List Name FanCoilDesignSpec3; !- Design Specification ZoneHVAC Sizing Object Name - DesignSpecification:ZoneHVAC:Sizing, FanCoilDesignSpec3, !- Name FractionOfAutosizedCoolingAirflow, !- Cooling Design Air Flow Method - , !- Cooling Design Supply Air Flow Rate - , !- Cooling Design Supply Air Flow Rate Per Floor Area + , !- Cooling Design Supply Air Flow Rate {m3/s} + , !- Cooling Design Supply Air Flow Rate Per Floor Area {m3/s-m2} 1.0, !- Fraction of Autosized Cooling Design Supply Air Flow Rate - , !- Cooling Design Supply Air Flow Rate Per Unit of Capacity {m3/s-W} + , !- Cooling Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} SupplyAirFlowRate, !- Supply Air Flow Rate Method When No Cooling or Heating is Required - autosize, !- Supply Air Flow Rate When No Cooling or Heating is Required - , !- Supply Air Flow Rate Per Floor Area When No Clg or Htg is Required - , !- Fraction of Autosized Design Cooling Supply Air Flow Rate When No Clg or Htg - , !- Fraction of Autosized Design Heating Supply Air Flow Rate When No Clg or Htg + autosize, !- Supply Air Flow Rate When No Cooling or Heating is Required {m3/s} + , !- Supply Air Flow Rate Per Floor Area When No Clg or Htg is Required {m3/s-m2} + , !- Fraction of Design Cooling Supply Air Flow Rate When No Clg or Htg Required + , !- Fraction of Design Heating Supply Air Flow Rate When No Clg or Htg Required FractionOfAutosizedHeatingAirflow, !- Heating Design Air Flow Method - , !- Heating Design Supply Air Flow Rate - , !- Heating Design Supply Air Flow Rate Per Floor Area - 1.0, !- Fraction of Autosized Heating Design Supply Air Flow Rate - , !- Heating Design Supply Air Flow Rate Per Unit of Heating Capacity + , !- Heating Design Supply Air Flow Rate {m3/s} + , !- Heating Design Supply Air Flow Rate Per Floor Area {m3/s-m2} + 1.0, !- Fraction of Heating Design Supply Air Flow Rate + , !- Heating Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} CapacityPerFloorArea, !- Cooling Design Capacity Method , !- Cooling Design Capacity {W} 234.74985, !- Cooling Design Capacity Per Floor Area {W/m2} - , !- Fraction of Autosized Cooling Design Capacity {-} + , !- Fraction of Autosized Cooling Design Capacity CapacityPerFloorArea, !- Heating Design Capacity Method , !- Heating Design Capacity {W} 156.89549, !- Heating Design Capacity Per Floor Area {W/m2} - ; !- Fraction of Autosized Cooling Design Capacity {-} - + ; !- Fraction of Autosized Heating Design Capacity OutdoorAir:Mixer, Zone3FanCoilOAMixer, !- Name @@ -2112,7 +2110,7 @@ Fan:ConstantVolume, Zone3FanCoilFan, !- Name FanAndCoilAvailSched, !- Availability Schedule Name - 0.5, !- Fan Efficiency + 0.5, !- Fan Total Efficiency 75.0, !- Pressure Rise {Pa} autosize, !- Maximum Flow Rate {m3/s} 0.9, !- Motor Efficiency diff --git a/testfiles/GSHP-GLHE.idf b/testfiles/GSHP-GLHE.idf index c5ffee367da..509c1f34c0a 100644 --- a/testfiles/GSHP-GLHE.idf +++ b/testfiles/GSHP-GLHE.idf @@ -2075,14 +2075,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2098,7 +2098,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name @@ -6136,3 +6146,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/GeneratorswithPV.idf b/testfiles/GeneratorswithPV.idf index fc030c926ba..953a2eea73e 100644 --- a/testfiles/GeneratorswithPV.idf +++ b/testfiles/GeneratorswithPV.idf @@ -1026,8 +1026,8 @@ 0.007, !- Sandia Database Parameter c5 {dimensionless} 4.7, !- Sandia Database Parameter Ix0 3.22, !- Sandia Database Parameter Ixx0 - 1.105, !- Sandia Database Parameter c6 - -0.105; !- Sandia Database Parameter c7 + 1.105, !- Sandia Database Parameter c6 {dimensionless} + -0.105; !- Sandia Database Parameter c7 {dimensionless} Output:Surfaces:Drawing,DXF; diff --git a/testfiles/HP_wICSSolarCollector.idf b/testfiles/HP_wICSSolarCollector.idf index 465d280f4bc..105bf6b3789 100644 --- a/testfiles/HP_wICSSolarCollector.idf +++ b/testfiles/HP_wICSSolarCollector.idf @@ -2777,7 +2777,7 @@ 0.88, !- Emissivity of Outer Cover {dimensionless} 1.37, !- Refractive Index of Inner Cover {dimensionless} 0.0, !- Extinction Coefficient Times Thickness of the inner Cover {dimensionless} - 0.88, !- Emmissivity of Inner Cover {dimensionless} + 0.88, !- Emissivity of Inner Cover {dimensionless} 0.96, !- Absorptance of Absorber Plate {dimensionless} 0.30; !- Emissivity of Absorber Plate {dimensionless} diff --git a/testfiles/HeaderedPumpsConSpeed.idf b/testfiles/HeaderedPumpsConSpeed.idf index 0f02b9581bc..f0b087e9425 100644 --- a/testfiles/HeaderedPumpsConSpeed.idf +++ b/testfiles/HeaderedPumpsConSpeed.idf @@ -2048,14 +2048,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2071,7 +2071,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/HeaderedPumpsVarSpeed.idf b/testfiles/HeaderedPumpsVarSpeed.idf index e6dc35d5c73..b7375d4b724 100644 --- a/testfiles/HeaderedPumpsVarSpeed.idf +++ b/testfiles/HeaderedPumpsVarSpeed.idf @@ -1860,14 +1860,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1883,7 +1883,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/HeatPumpAuto.idf b/testfiles/HeatPumpAuto.idf index ad26d08cbb0..cfc065183df 100644 --- a/testfiles/HeatPumpAuto.idf +++ b/testfiles/HeatPumpAuto.idf @@ -1165,14 +1165,14 @@ Heat Pump Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.0, !- Minimum System Air Flow Ratio + 0.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1188,7 +1188,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Curve:Biquadratic, HPACCoolCapFT, !- Name diff --git a/testfiles/HeatPumpWaterHeater.idf b/testfiles/HeatPumpWaterHeater.idf index 3816aa4deba..4d008ea57bc 100644 --- a/testfiles/HeatPumpWaterHeater.idf +++ b/testfiles/HeatPumpWaterHeater.idf @@ -1942,7 +1942,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/HospitalBaseline.idf b/testfiles/HospitalBaseline.idf index 45c44eac028..c09d49c05cb 100644 --- a/testfiles/HospitalBaseline.idf +++ b/testfiles/HospitalBaseline.idf @@ -57617,14 +57617,14 @@ AHU2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -57640,7 +57640,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU2 Availability Manager List, !- Name @@ -58181,14 +58191,14 @@ AHU1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -58204,7 +58214,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU1 Availability Manager List, !- Name @@ -58747,14 +58767,14 @@ AHU3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Central Cooling Design Supply Air Temperature {C} 7.2000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -58770,7 +58790,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU3 Availability Manager List, !- Name @@ -59245,14 +59275,14 @@ AHU5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -59268,7 +59298,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU5 Availability Manager List, !- Name @@ -59775,14 +59815,14 @@ AHU4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -59798,7 +59838,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU4 Availability Manager List, !- Name @@ -60298,14 +60348,14 @@ AHU6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -60321,7 +60371,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU6 Availability Manager List, !- Name @@ -64977,6 +65037,7 @@ AUTOSIZE, !- Reference Condenser Water Flow Rate {m3/s} CoolSys1 Chiller ClgCapFuncTempCurve, !- Cooling Capacity Function of Temperature Curve Name CoolSys1 Chiller EirFuncTempCurve, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type CoolSys1 Chiller EirFuncPlrCurve, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.15, !- Minimum Part Load Ratio 1.0, !- Maximum Part Load Ratio diff --git a/testfiles/HospitalBaselineReheatReportEMS.idf b/testfiles/HospitalBaselineReheatReportEMS.idf index 607a133f62e..b94929e087c 100644 --- a/testfiles/HospitalBaselineReheatReportEMS.idf +++ b/testfiles/HospitalBaselineReheatReportEMS.idf @@ -57617,14 +57617,14 @@ AHU2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -57640,7 +57640,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU2 Availability Manager List, !- Name @@ -58181,14 +58191,14 @@ AHU1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -58204,7 +58214,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU1 Availability Manager List, !- Name @@ -58747,14 +58767,14 @@ AHU3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Central Cooling Design Supply Air Temperature {C} 7.2000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -58770,7 +58790,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU3 Availability Manager List, !- Name @@ -59245,14 +59275,14 @@ AHU5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -59268,7 +59298,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU5 Availability Manager List, !- Name @@ -59775,14 +59815,14 @@ AHU4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 11.1000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -59798,7 +59838,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU4 Availability Manager List, !- Name @@ -60298,14 +60348,14 @@ AHU6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -60321,7 +60371,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU6 Availability Manager List, !- Name @@ -64977,6 +65037,7 @@ AUTOSIZE, !- Reference Condenser Water Flow Rate {m3/s} CoolSys1 Chiller ClgCapFuncTempCurve, !- Cooling Capacity Function of Temperature Curve Name CoolSys1 Chiller EirFuncTempCurve, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type CoolSys1 Chiller EirFuncPlrCurve, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.15, !- Minimum Part Load Ratio 1.0, !- Maximum Part Load Ratio diff --git a/testfiles/HospitalLowEnergy.idf b/testfiles/HospitalLowEnergy.idf index 93fbdc665be..35ba46c4bf5 100644 --- a/testfiles/HospitalLowEnergy.idf +++ b/testfiles/HospitalLowEnergy.idf @@ -72356,14 +72356,14 @@ DOAS2, !- AirLoop Name VENTILATIONREQUIREMENT, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -72379,7 +72379,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, DOAS2 Availability Manager List, !- Name @@ -72928,14 +72938,14 @@ DOAS1, !- AirLoop Name VENTILATIONREQUIREMENT, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -72951,7 +72961,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, DOAS1 Availability Manager List, !- Name @@ -73502,14 +73522,14 @@ AHU3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Central Cooling Design Supply Air Temperature {C} 7.2000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -73525,7 +73545,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, AHU3 Availability Manager List, !- Name @@ -74008,14 +74038,14 @@ DOAS5, !- AirLoop Name VENTILATIONREQUIREMENT, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -74031,7 +74061,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, DOAS5 Availability Manager List, !- Name @@ -74546,14 +74586,14 @@ DOAS4, !- AirLoop Name VENTILATIONREQUIREMENT, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -74569,7 +74609,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, DOAS4 Availability Manager List, !- Name @@ -75077,14 +75127,14 @@ DOAS6, !- AirLoop Name VENTILATIONREQUIREMENT, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 12.8000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -75100,7 +75150,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, DOAS6 Availability Manager List, !- Name @@ -78095,6 +78155,7 @@ AUTOSIZE, !- Reference Condenser Water Flow Rate {m3/s} CoolSys1 Chiller ClgCapFuncTempCurve, !- Cooling Capacity Function of Temperature Curve Name CoolSys1 Chiller EirFuncTempCurve, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type CoolSys1 Chiller EirFuncPlrCurve, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.15, !- Minimum Part Load Ratio 1.0, !- Maximum Part Load Ratio @@ -78932,12 +78993,13 @@ CondenserLoop Chiller, !- Name AUTOSIZE, !- Reference Capacity {W} 7.0000, !- Reference COP {W/W} - 30.0000, !- Reference Leaving Chilled Water Temperature {C} + 6.6700, !- Reference Leaving Chilled Water Temperature {C} 29.4, !- Reference Leaving Condenser Water Temperature {C} AUTOSIZE, !- Reference Chilled Water Flow Rate {m3/s} AUTOSIZE, !- Reference Condenser Water Flow Rate {m3/s} CondenserLoop Chiller ClgCapFuncTempCurve, !- Cooling Capacity Function of Temperature Curve Name CondenserLoop Chiller EirFuncTempCurve, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type CondenserLoop Chiller EirFuncPlrCurve, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.15, !- Minimum Part Load Ratio 1.0, !- Maximum Part Load Ratio diff --git a/testfiles/HybridVentilationControl.idf b/testfiles/HybridVentilationControl.idf index c6c8afba540..c017b496129 100644 --- a/testfiles/HybridVentilationControl.idf +++ b/testfiles/HybridVentilationControl.idf @@ -1889,9 +1889,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1900,9 +1900,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1910,9 +1910,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1921,9 +1921,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -2055,7 +2055,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} @@ -3162,3 +3162,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/IceStorage-Parallel.idf b/testfiles/IceStorage-Parallel.idf index 30da7cca520..fd5ff6432eb 100644 --- a/testfiles/IceStorage-Parallel.idf +++ b/testfiles/IceStorage-Parallel.idf @@ -2425,14 +2425,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 14, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2448,7 +2448,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 1, !- Name diff --git a/testfiles/IceStorage-Series-ChillerDownstream.idf b/testfiles/IceStorage-Series-ChillerDownstream.idf index f944c88ca84..c0e2116edfb 100644 --- a/testfiles/IceStorage-Series-ChillerDownstream.idf +++ b/testfiles/IceStorage-Series-ChillerDownstream.idf @@ -2425,14 +2425,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 14, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2448,7 +2448,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 1, !- Name diff --git a/testfiles/IceStorage-Series-ChillerUpstream.idf b/testfiles/IceStorage-Series-ChillerUpstream.idf index 4261d69ea0b..c8d8f076250 100644 --- a/testfiles/IceStorage-Series-ChillerUpstream.idf +++ b/testfiles/IceStorage-Series-ChillerUpstream.idf @@ -2425,14 +2425,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 14, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2448,7 +2448,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 1, !- Name diff --git a/testfiles/IndEvapCoolerRTUoffice.idf b/testfiles/IndEvapCoolerRTUoffice.idf index 5f57d0aa691..49d1bf86087 100644 --- a/testfiles/IndEvapCoolerRTUoffice.idf +++ b/testfiles/IndEvapCoolerRTUoffice.idf @@ -3780,14 +3780,14 @@ Direct DX air Loop ZN1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3803,7 +3803,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN1 Inlets, !- Name @@ -4094,14 +4104,14 @@ Direct DX air Loop ZN3, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4117,7 +4127,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN3 Inlets, !- Name @@ -4408,14 +4428,14 @@ Direct DX air Loop ZN5, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4431,7 +4451,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN5 Inlets, !- Name @@ -4722,14 +4752,14 @@ Direct DX air Loop ZN7, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4745,7 +4775,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN7 Inlets, !- Name @@ -5036,14 +5076,14 @@ Direct DX air Loop ZN9, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5059,7 +5099,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN9 Inlets, !- Name @@ -5350,14 +5400,14 @@ Direct DX air Loop ZN11, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5373,7 +5423,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN11 Inlets, !- Name @@ -5664,14 +5724,14 @@ Direct DX air Loop ZN13, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5687,7 +5747,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN13 Inlets, !- Name @@ -5978,14 +6048,14 @@ Direct DX air Loop ZN15, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6001,7 +6071,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN15 Inlets, !- Name @@ -6292,14 +6372,14 @@ Direct DX air Loop ZN17, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6315,7 +6395,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN17 Inlets, !- Name @@ -6606,14 +6696,14 @@ Direct DX air Loop ZN19, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6629,7 +6719,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN19 Inlets, !- Name diff --git a/testfiles/LgOffVAV.idf b/testfiles/LgOffVAV.idf index 9d8f302e17c..027e9dee0b6 100644 --- a/testfiles/LgOffVAV.idf +++ b/testfiles/LgOffVAV.idf @@ -3587,14 +3587,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 16., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3610,7 +3610,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/LgOffVAVusingBasement.idf b/testfiles/LgOffVAVusingBasement.idf index 65a91a60e0c..1d7a98aa1cb 100644 --- a/testfiles/LgOffVAVusingBasement.idf +++ b/testfiles/LgOffVAVusingBasement.idf @@ -3664,14 +3664,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 16., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3687,7 +3687,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/MicroCogeneration.idf b/testfiles/MicroCogeneration.idf index 1aed5f023cf..8e053dcd9c6 100644 --- a/testfiles/MicroCogeneration.idf +++ b/testfiles/MicroCogeneration.idf @@ -5047,8 +5047,8 @@ 0.0, !- Shut Down Time {s} 0.2, !- Shut Down Fuel {kmol} , !- Shut Down Electricity Consumption {J} - 0.0, !- Ancilliary Electricity Constant Term - 0.0, !- Ancilliary Electricity Linear Term + 0.0, !- Ancillary Electricity Constant Term + 0.0, !- Ancillary Electricity Linear Term ConstantRate, !- Skin Loss Calculation Mode ZN_1_FLR_1_SEC_5, !- Zone Name 0.6392, !- Skin Loss Radiative Fraction @@ -5180,8 +5180,8 @@ Generator:FuelCell:AuxiliaryHeater, FCT SOFC Auxiliary Heater, !- Name 0.0, !- Excess Air Ratio - 0.0, !- Ancilliary Power Constant Term - 0.0, !- Ancilliary Power Linear Term + 0.0, !- Ancillary Power Constant Term + 0.0, !- Ancillary Power Linear Term 0.5, !- Skin Loss U-Factor Times Area Value {W/K} SurroundingZone, !- Skin Loss Destination ZN_1_FLR_1_SEC_5, !- Zone Name to Receive Skin Losses diff --git a/testfiles/MultiStory.idf b/testfiles/MultiStory.idf index a8d7691e21b..b04eccda24b 100644 --- a/testfiles/MultiStory.idf +++ b/testfiles/MultiStory.idf @@ -104,16 +104,6 @@ 460, !- Wind Speed Profile Boundary Layer Thickness {m} 0.0065; !- Air Temperature Gradient Coefficient {K/m} - SizingPeriod:WeatherFileDays, - Weather File Sizing Period, !- Name - 7, !- Begin Month - 18, !- Begin Day of Month - 7, !- End Month - 25, !- End Day of Month - SummerDesignDay, !- Day of Week for Start Day - No, !- Use Weather File Daylight Saving Period - No; !- Use Weather File Rain and Snow Indicators - Timestep,6; ShadowCalculation, @@ -3329,3 +3319,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/Mundt_System_Always_On.idf b/testfiles/Mundt_System_Always_On.idf index 80f92cb1b8e..388d3a778fa 100644 --- a/testfiles/Mundt_System_Always_On.idf +++ b/testfiles/Mundt_System_Always_On.idf @@ -1849,14 +1849,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1872,7 +1872,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/Mundt_System_On_During_the_Day.idf b/testfiles/Mundt_System_On_During_the_Day.idf index 71beaa30db2..07a0f0c3b09 100644 --- a/testfiles/Mundt_System_On_During_the_Day.idf +++ b/testfiles/Mundt_System_On_During_the_Day.idf @@ -1867,14 +1867,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1890,7 +1890,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/OptimalStart_RefBldgLargeOfficeNew2004_Chicago.idf b/testfiles/OptimalStart_RefBldgLargeOfficeNew2004_Chicago.idf index 37efc2a2adc..a41e114913f 100644 --- a/testfiles/OptimalStart_RefBldgLargeOfficeNew2004_Chicago.idf +++ b/testfiles/OptimalStart_RefBldgLargeOfficeNew2004_Chicago.idf @@ -6059,14 +6059,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6082,20 +6082,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6111,20 +6121,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6140,20 +6160,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6169,7 +6199,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name @@ -7303,6 +7343,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio @@ -7336,6 +7377,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio diff --git a/testfiles/OutdoorAirUnitwithAirloopHVAC.idf b/testfiles/OutdoorAirUnitwithAirloopHVAC.idf index 2947553ad01..75eab5efc2b 100644 --- a/testfiles/OutdoorAirUnitwithAirloopHVAC.idf +++ b/testfiles/OutdoorAirUnitwithAirloopHVAC.idf @@ -3644,14 +3644,14 @@ VAV Sys 4-1, !- AirLoop Name Sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.2, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 10, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3667,7 +3667,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 4-1, !- Name diff --git a/testfiles/PIUAuto.idf b/testfiles/PIUAuto.idf index 6e7b30a84a1..89f80b4e03c 100644 --- a/testfiles/PIUAuto.idf +++ b/testfiles/PIUAuto.idf @@ -1203,14 +1203,14 @@ Typical Terminal Reheat 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 0.0, !- Minimum System Air Flow Ratio + 0.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 16., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1226,7 +1226,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/ParametricInsulation-5ZoneAirCooled.idf b/testfiles/ParametricInsulation-5ZoneAirCooled.idf index 05c52107d30..24594cd4d79 100644 --- a/testfiles/ParametricInsulation-5ZoneAirCooled.idf +++ b/testfiles/ParametricInsulation-5ZoneAirCooled.idf @@ -1892,14 +1892,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1915,7 +1915,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/PassiveTrombeWall.idf b/testfiles/PassiveTrombeWall.idf index 701fdf3f2a8..92c3df9bc13 100644 --- a/testfiles/PassiveTrombeWall.idf +++ b/testfiles/PassiveTrombeWall.idf @@ -779,3 +779,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/PipeHeatTransfer_Outair.idf b/testfiles/PipeHeatTransfer_Outair.idf index 806130378b0..efbb4f2e741 100644 --- a/testfiles/PipeHeatTransfer_Outair.idf +++ b/testfiles/PipeHeatTransfer_Outair.idf @@ -2116,14 +2116,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2139,7 +2139,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/PipeHeatTransfer_Schedule.idf b/testfiles/PipeHeatTransfer_Schedule.idf index 1303aa30990..2f01fe9e2c0 100644 --- a/testfiles/PipeHeatTransfer_Schedule.idf +++ b/testfiles/PipeHeatTransfer_Schedule.idf @@ -2116,14 +2116,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2139,7 +2139,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/PipeHeatTransfer_Underground.idf b/testfiles/PipeHeatTransfer_Underground.idf index 7f6269fc748..7a42e13212e 100644 --- a/testfiles/PipeHeatTransfer_Underground.idf +++ b/testfiles/PipeHeatTransfer_Underground.idf @@ -2116,14 +2116,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2139,7 +2139,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/PipeHeatTransfer_Zone.idf b/testfiles/PipeHeatTransfer_Zone.idf index ec1f505788c..395db0c197c 100644 --- a/testfiles/PipeHeatTransfer_Zone.idf +++ b/testfiles/PipeHeatTransfer_Zone.idf @@ -2116,14 +2116,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2139,7 +2139,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/PlantApplicationsGuide_Example2.idf b/testfiles/PlantApplicationsGuide_Example2.idf index 1b1282d4412..d99c5ef5622 100644 --- a/testfiles/PlantApplicationsGuide_Example2.idf +++ b/testfiles/PlantApplicationsGuide_Example2.idf @@ -4880,14 +4880,14 @@ VAV WITH REHEAT, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio -10.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4903,7 +4903,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, VAV WITH REHEAT Availability Manager List, !- Name diff --git a/testfiles/PlantLoadProfile.idf b/testfiles/PlantLoadProfile.idf index afab3a557c3..e8223003c7e 100644 --- a/testfiles/PlantLoadProfile.idf +++ b/testfiles/PlantLoadProfile.idf @@ -392,3 +392,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/PlantPressure_VFD_Scheduled.idf b/testfiles/PlantPressure_VFD_Scheduled.idf index a20726d6bb1..0cdb6ee3993 100644 --- a/testfiles/PlantPressure_VFD_Scheduled.idf +++ b/testfiles/PlantPressure_VFD_Scheduled.idf @@ -477,3 +477,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/PondGroundHeatExchanger.idf b/testfiles/PondGroundHeatExchanger.idf index 1f14ea87396..100cf1b97f6 100644 --- a/testfiles/PondGroundHeatExchanger.idf +++ b/testfiles/PondGroundHeatExchanger.idf @@ -2086,14 +2086,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2109,7 +2109,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/RadLoHydrHeatCoolAuto.idf b/testfiles/RadLoHydrHeatCoolAuto.idf index 5f04a331a2c..80d4e9ba155 100644 --- a/testfiles/RadLoHydrHeatCoolAuto.idf +++ b/testfiles/RadLoHydrHeatCoolAuto.idf @@ -2038,3 +2038,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/RefBldgFullServiceRestaurantNew2004_Chicago.idf b/testfiles/RefBldgFullServiceRestaurantNew2004_Chicago.idf index 402fe6e588a..36f73ec24c8 100644 --- a/testfiles/RefBldgFullServiceRestaurantNew2004_Chicago.idf +++ b/testfiles/RefBldgFullServiceRestaurantNew2004_Chicago.idf @@ -1611,14 +1611,14 @@ PSZ-AC_1:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1634,20 +1634,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_2:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1663,7 +1673,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC_1:1_OA_Controller,!- Name diff --git a/testfiles/RefBldgHospitalNew2004_Chicago.idf b/testfiles/RefBldgHospitalNew2004_Chicago.idf index 3abd9af6ada..feab98e52c1 100644 --- a/testfiles/RefBldgHospitalNew2004_Chicago.idf +++ b/testfiles/RefBldgHospitalNew2004_Chicago.idf @@ -17972,14 +17972,14 @@ CAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2, !- Central Cooling Design Supply Air Temperature {C} 16.0000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.007, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17995,20 +17995,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, CAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2, !- Central Cooling Design Supply Air Temperature {C} 16.0000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.007, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -18024,20 +18034,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2, !- Central Cooling Design Supply Air Temperature {C} 16.0000, !- Central Heating Design Supply Air Temperature {C} - Coincident, !- Sizing Option + Coincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.007, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -18053,20 +18073,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 7.2, !- Central Cooling Design Supply Air Temperature {C} 16.0000, !- Central Heating Design Supply Air Temperature {C} - Coincident, !- Sizing Option + Coincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.007, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -18082,7 +18112,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, CAV_1_OA_Controller, !- Name @@ -20190,6 +20230,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Centrifugal Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Centrifugal Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio diff --git a/testfiles/RefBldgLargeHotelNew2004_Chicago.idf b/testfiles/RefBldgLargeHotelNew2004_Chicago.idf index 61aaff0fe4e..8cb8f80cb53 100644 --- a/testfiles/RefBldgLargeHotelNew2004_Chicago.idf +++ b/testfiles/RefBldgLargeHotelNew2004_Chicago.idf @@ -8866,14 +8866,14 @@ FLR_3_DOAS, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On 2.37888, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8200, !- Central Cooling Design Supply Air Temperature {C} 18.0000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0084902, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8889,20 +8889,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, FLR_6_DOAS, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On 0.15576, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8200, !- Central Cooling Design Supply Air Temperature {C} 18.0000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0084902, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8918,20 +8928,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV WITH REHEAT, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -8947,7 +8967,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, FLR_3_DOAS_OA_Controller,!- Name diff --git a/testfiles/RefBldgLargeOfficeNew2004_Chicago.idf b/testfiles/RefBldgLargeOfficeNew2004_Chicago.idf index 551e12abce6..9b5e5302a34 100644 --- a/testfiles/RefBldgLargeOfficeNew2004_Chicago.idf +++ b/testfiles/RefBldgLargeOfficeNew2004_Chicago.idf @@ -6037,14 +6037,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6060,20 +6060,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6089,20 +6099,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6118,20 +6138,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6147,7 +6177,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name @@ -7262,6 +7302,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio @@ -7295,6 +7336,7 @@ AutoSize, !- Reference Condenser Water Flow Rate {m3/s} WC Screw Default 90.1-2004 Cap_fT, !- Cooling Capacity Function of Temperature Curve Name WC Screw Default 90.1-2004 EIR_fT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Carrier 19XR 1259kW/6.26COP/Vanes EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.1, !- Minimum Part Load Ratio 1, !- Maximum Part Load Ratio diff --git a/testfiles/RefBldgMediumOfficeNew2004_Chicago.idf b/testfiles/RefBldgMediumOfficeNew2004_Chicago.idf index 561d90b3ac0..871722b5c1d 100644 --- a/testfiles/RefBldgMediumOfficeNew2004_Chicago.idf +++ b/testfiles/RefBldgMediumOfficeNew2004_Chicago.idf @@ -5718,14 +5718,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5741,20 +5741,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5770,20 +5780,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5799,7 +5819,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name @@ -7585,7 +7615,7 @@ 0.556; !- Tolerance for Time Cooling Setpoint Not Met {deltaC} Output:SQLite, - Simple; !- Option Type + SimpleAndTabular; !- Option Type Output:VariableDictionary,IDF,Unsorted; diff --git a/testfiles/RefBldgMidriseApartmentNew2004_Chicago.idf b/testfiles/RefBldgMidriseApartmentNew2004_Chicago.idf index 6118f5329cd..9b99720dd37 100644 --- a/testfiles/RefBldgMidriseApartmentNew2004_Chicago.idf +++ b/testfiles/RefBldgMidriseApartmentNew2004_Chicago.idf @@ -9284,14 +9284,14 @@ SPLITSYSTEMAC:01, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9307,20 +9307,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:02, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9336,20 +9346,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:03, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9365,20 +9385,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:04, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9394,20 +9424,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:05, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9423,20 +9463,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:06, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9452,20 +9502,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:07, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9481,20 +9541,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:08, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9510,20 +9580,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:09, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9539,20 +9619,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:10, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9568,20 +9658,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:11, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9597,20 +9697,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:12, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9626,20 +9736,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:13, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9655,20 +9775,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:14, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9684,20 +9814,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:15, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9713,20 +9853,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:16, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9742,20 +9892,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:17, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9771,20 +9931,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:18, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9800,20 +9970,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:19, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9829,20 +10009,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:20, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9858,20 +10048,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:21, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9887,20 +10087,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:22, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9916,20 +10126,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:23, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9945,20 +10165,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, SPLITSYSTEMAC:24, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9974,7 +10204,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, SPLITSYSTEMAC:01_OA_Controller, !- Name diff --git a/testfiles/RefBldgOutPatientNew2004_Chicago.idf b/testfiles/RefBldgOutPatientNew2004_Chicago.idf index 07b4df94f3f..7e245d8cf03 100644 --- a/testfiles/RefBldgOutPatientNew2004_Chicago.idf +++ b/testfiles/RefBldgOutPatientNew2004_Chicago.idf @@ -30001,14 +30001,14 @@ AHU-1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0000, !- Minimum System Air Flow Ratio + 1.0000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 7.2000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1, !- Central Cooling Design Supply Air Temperature {C} 16.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.007, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -30024,20 +30024,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, AHU-2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.1000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 11.1, !- Central Cooling Design Supply Air Temperature {C} 16.0, !- Central Heating Design Supply Air Temperature {C} - Coincident, !- Sizing Option + Coincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0078, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -30053,7 +30063,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, AHU-1_OA_Controller, !- Name diff --git a/testfiles/RefBldgPrimarySchoolNew2004_Chicago.idf b/testfiles/RefBldgPrimarySchoolNew2004_Chicago.idf index c5d9449250d..3d31e5358d7 100644 --- a/testfiles/RefBldgPrimarySchoolNew2004_Chicago.idf +++ b/testfiles/RefBldgPrimarySchoolNew2004_Chicago.idf @@ -8987,14 +8987,14 @@ PSZ-AC_1:6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9010,20 +9010,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_2:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9039,20 +9049,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_2:7, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9068,20 +9088,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_OTHER, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9097,20 +9127,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_POD_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9126,20 +9166,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_POD_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9155,20 +9205,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_POD_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9184,7 +9244,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC_1:6_OA_Controller,!- Name diff --git a/testfiles/RefBldgQuickServiceRestaurantNew2004_Chicago.idf b/testfiles/RefBldgQuickServiceRestaurantNew2004_Chicago.idf index 7829d2dfa7f..4eb0d6eb750 100644 --- a/testfiles/RefBldgQuickServiceRestaurantNew2004_Chicago.idf +++ b/testfiles/RefBldgQuickServiceRestaurantNew2004_Chicago.idf @@ -1579,14 +1579,14 @@ PSZ-AC_1:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1602,20 +1602,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_2:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1631,7 +1641,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC_1:1_OA_Controller,!- Name diff --git a/testfiles/RefBldgSecondarySchoolNew2004_Chicago.idf b/testfiles/RefBldgSecondarySchoolNew2004_Chicago.idf index 6d0176d66c3..96453cc12eb 100644 --- a/testfiles/RefBldgSecondarySchoolNew2004_Chicago.idf +++ b/testfiles/RefBldgSecondarySchoolNew2004_Chicago.idf @@ -16933,14 +16933,14 @@ PSZ-AC_1:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -16956,20 +16956,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_2:6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -16985,20 +16995,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_3:7, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17014,20 +17034,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_4:8, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17043,20 +17073,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_5:9, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17072,20 +17112,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_OTHER, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17101,20 +17151,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_POD_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17130,20 +17190,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_POD_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17159,20 +17229,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_POD_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -17188,7 +17268,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC_1:5_OA_Controller,!- Name diff --git a/testfiles/RefBldgSmallHotelNew2004_Chicago.idf b/testfiles/RefBldgSmallHotelNew2004_Chicago.idf index f528a85ad13..6dc5863882f 100644 --- a/testfiles/RefBldgSmallHotelNew2004_Chicago.idf +++ b/testfiles/RefBldgSmallHotelNew2004_Chicago.idf @@ -21949,14 +21949,14 @@ PSZ-HEATCOOL:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -21972,20 +21972,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:10, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22001,20 +22011,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:11, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22030,20 +22050,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:12, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22059,20 +22089,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22088,20 +22128,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22117,20 +22167,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22146,20 +22206,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22175,20 +22245,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22204,20 +22284,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:7, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22233,20 +22323,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:8, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22262,20 +22362,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-HEATCOOL:9, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -22291,7 +22401,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-HEATCOOL:10_OA_Controller, !- Name diff --git a/testfiles/RefBldgSmallOfficeNew2004_Chicago.idf b/testfiles/RefBldgSmallOfficeNew2004_Chicago.idf index 59408f28f48..db4abd78f50 100644 --- a/testfiles/RefBldgSmallOfficeNew2004_Chicago.idf +++ b/testfiles/RefBldgSmallOfficeNew2004_Chicago.idf @@ -2689,14 +2689,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2712,20 +2712,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2741,20 +2751,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2770,20 +2790,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2799,20 +2829,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2828,7 +2868,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC:1_OA_Controller, !- Name diff --git a/testfiles/RefBldgStand-aloneRetailNew2004_Chicago.idf b/testfiles/RefBldgStand-aloneRetailNew2004_Chicago.idf index bcb3d394f1e..fef3ccb97f8 100644 --- a/testfiles/RefBldgStand-aloneRetailNew2004_Chicago.idf +++ b/testfiles/RefBldgStand-aloneRetailNew2004_Chicago.idf @@ -2298,14 +2298,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2321,20 +2321,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2350,20 +2360,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2379,20 +2399,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2408,7 +2438,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC:1_OA_Controller, !- Name diff --git a/testfiles/RefBldgStripMallNew2004_Chicago.idf b/testfiles/RefBldgStripMallNew2004_Chicago.idf index 0ba93988a2c..363e64e7cea 100644 --- a/testfiles/RefBldgStripMallNew2004_Chicago.idf +++ b/testfiles/RefBldgStripMallNew2004_Chicago.idf @@ -4331,14 +4331,14 @@ PSZ-AC_10:10, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4354,20 +4354,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_1:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4383,20 +4393,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_2:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4412,20 +4432,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_3:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4441,20 +4471,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_4:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4470,20 +4510,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_5:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4499,20 +4549,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_6:6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4528,20 +4588,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_7:7, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4557,20 +4627,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_8:8, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4586,20 +4666,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC_9:9, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4615,7 +4705,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC_10:10_OA_Controller, !- Name diff --git a/testfiles/RefBldgSuperMarketNew2004_Chicago.idf b/testfiles/RefBldgSuperMarketNew2004_Chicago.idf index ceaa5fc9e6e..3be601e9c24 100644 --- a/testfiles/RefBldgSuperMarketNew2004_Chicago.idf +++ b/testfiles/RefBldgSuperMarketNew2004_Chicago.idf @@ -2628,14 +2628,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2651,20 +2651,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2680,20 +2690,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use YES, !- 100% Outdoor Air in Cooling YES, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2709,20 +2729,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2738,20 +2768,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2767,20 +2807,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:6, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2796,7 +2846,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC:1_OA_Controller, !- Name diff --git a/testfiles/RefBldgWarehouseNew2004_Chicago.idf b/testfiles/RefBldgWarehouseNew2004_Chicago.idf index f4569dcba97..78dcab88dcb 100644 --- a/testfiles/RefBldgWarehouseNew2004_Chicago.idf +++ b/testfiles/RefBldgWarehouseNew2004_Chicago.idf @@ -1841,14 +1841,14 @@ FURNACE_PACU_CAV_1:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1864,20 +1864,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, FURNACE_PACU_CAV_2:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1893,7 +1903,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, FURNACE_PACU_CAV_1:1_OA_Controller, !- Name diff --git a/testfiles/RefrigeratedWarehouse.idf b/testfiles/RefrigeratedWarehouse.idf index 510ca7c8f7d..e5976761a34 100644 --- a/testfiles/RefrigeratedWarehouse.idf +++ b/testfiles/RefrigeratedWarehouse.idf @@ -14401,3 +14401,6 @@ Output:Diagnostics, DisplayAdvancedReportVariables; !- Key 1 + Output:SQLite, + Simple; + diff --git a/testfiles/ReliefIndEvapCoolerRTUoffice.idf b/testfiles/ReliefIndEvapCoolerRTUoffice.idf index 9fec7654734..0d7a595e739 100644 --- a/testfiles/ReliefIndEvapCoolerRTUoffice.idf +++ b/testfiles/ReliefIndEvapCoolerRTUoffice.idf @@ -3784,14 +3784,14 @@ Direct DX air Loop ZN1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3807,7 +3807,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN1 Inlets, !- Name @@ -4098,14 +4108,14 @@ Direct DX air Loop ZN3, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4121,7 +4131,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN3 Inlets, !- Name @@ -4412,14 +4432,14 @@ Direct DX air Loop ZN5, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4435,7 +4455,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN5 Inlets, !- Name @@ -4726,14 +4756,14 @@ Direct DX air Loop ZN7, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4749,7 +4779,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN7 Inlets, !- Name @@ -5040,14 +5080,14 @@ Direct DX air Loop ZN9, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5063,7 +5103,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN9 Inlets, !- Name @@ -5354,14 +5404,14 @@ Direct DX air Loop ZN11, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5377,7 +5427,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN11 Inlets, !- Name @@ -5668,14 +5728,14 @@ Direct DX air Loop ZN13, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -5691,7 +5751,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN13 Inlets, !- Name @@ -5982,14 +6052,14 @@ Direct DX air Loop ZN15, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6005,7 +6075,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN15 Inlets, !- Name @@ -6296,14 +6376,14 @@ Direct DX air Loop ZN17, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6319,7 +6399,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN17 Inlets, !- Name @@ -6610,14 +6700,14 @@ Direct DX air Loop ZN19, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6633,7 +6723,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, Zone ZN19 Inlets, !- Name diff --git a/testfiles/ReportDaylightFactors.idf b/testfiles/ReportDaylightFactors.idf index 86a6245af41..bad1df342a9 100644 --- a/testfiles/ReportDaylightFactors.idf +++ b/testfiles/ReportDaylightFactors.idf @@ -6081,14 +6081,14 @@ VAV_1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6104,20 +6104,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6133,20 +6143,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, VAV_3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 16.7000, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -6162,7 +6182,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, VAV_1_OA_Controller, !- Name diff --git a/testfiles/RetailPackagedTESCoil.idf b/testfiles/RetailPackagedTESCoil.idf index 3b2763dec67..7475546ddb5 100644 --- a/testfiles/RetailPackagedTESCoil.idf +++ b/testfiles/RetailPackagedTESCoil.idf @@ -223,7 +223,7 @@ -6.00, !- Time Zone {hr} 190; !- Elevation {m} -! CHICAGO_IL_USA Annual Heating 99.6%, MaxDB=-20.6°C +! CHICAGO_IL_USA Annual Heating 99.6%, MaxDB=-20.6°C SizingPeriod:DesignDay, CHICAGO Ann Htg 99.6% Condns DB, !- Name @@ -253,7 +253,7 @@ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} 0.00; !- Sky Clearness -! CHICAGO_IL_USA Annual Cooling (WB=>MDB) .4%, MDB=31.2°C WB=25.5°C +! CHICAGO_IL_USA Annual Cooling (WB=>MDB) .4%, MDB=31.2°C WB=25.5°C SizingPeriod:DesignDay, CHICAGO Ann Clg .4% Condns WB=>MDB, !- Name @@ -2148,14 +2148,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2171,20 +2171,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2200,20 +2210,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2229,20 +2249,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2258,7 +2288,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Controller:OutdoorAir, PSZ-AC:1_OA_Controller, !- Name @@ -5598,18 +5638,18 @@ Curve:Biquadratic, Discharge-SHR-fT, !- Name - -3.129846005, !- Coefficient1 Constant - 0.108185126, !- Coefficient2 x - 0, !- Coefficient3 x**2 - 0.235966025, !- Coefficient4 y - 0, !- Coefficient5 y**2 - -0.008227635, !- Coefficient6 x*y - 16.1, !- Minimum Value of x - 23.9, !- Maximum Value of x - 23.9, !- Minimum Value of y - 29.4, !- Maximum Value of y + -76.3312028672366, !- Coefficient1 Constant + 3.69083877577677, !- Coefficient2 x + 0.00402614182268047, !- Coefficient3 x**2 + 3.120670734078, !- Coefficient4 y + -0.00297662635327143, !- Coefficient5 y**2 + -0.148603418986272, !- Coefficient6 x*y + 24.44, !- Minimum Value of x + 26.67, !- Maximum Value of x + 29.44, !- Minimum Value of y + 46.1, !- Maximum Value of y 0.2, !- Minimum Curve Output - 2.0, !- Maximum Curve Output + 1.0, !- Maximum Curve Output Temperature, !- Input Unit Type for X Temperature, !- Input Unit Type for Y Dimensionless; !- Output Unit Type @@ -5674,8 +5714,8 @@ , !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Temperature Curve Name , !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Flow Fraction Curve Name , !- Cooling And Discharge Mode Evaporator Part Load Fraction Correlation Curve Name - , !- Cooling And Discharge Mode Storage Disharge Capacity Function of Temperature Curve Name - , !- Cooling And Discharge Mode Storage Disharge Capacity Function of Flow Fraction Curve Name + , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Temperature Curve Name + , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Flow Fraction Curve Name , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Total Evaporator PLR Curve Name , !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Temperature Curve Name , !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Flow Fraction Curve Name @@ -7011,8 +7051,8 @@ , !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Temperature Curve Name , !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Flow Fraction Curve Name , !- Cooling And Discharge Mode Evaporator Part Load Fraction Correlation Curve Name - , !- Cooling And Discharge Mode Storage Disharge Capacity Function of Temperature Curve Name - , !- Cooling And Discharge Mode Storage Disharge Capacity Function of Flow Fraction Curve Name + , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Temperature Curve Name + , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Flow Fraction Curve Name , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Total Evaporator PLR Curve Name , !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Temperature Curve Name , !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Flow Fraction Curve Name @@ -7171,8 +7211,8 @@ , !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Temperature Curve Name , !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Flow Fraction Curve Name , !- Cooling And Discharge Mode Evaporator Part Load Fraction Correlation Curve Name - , !- Cooling And Discharge Mode Storage Disharge Capacity Function of Temperature Curve Name - , !- Cooling And Discharge Mode Storage Disharge Capacity Function of Flow Fraction Curve Name + , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Temperature Curve Name + , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Flow Fraction Curve Name , !- Cooling And Discharge Mode Storage Discharge Capacity Function of Total Evaporator PLR Curve Name , !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Temperature Curve Name , !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Flow Fraction Curve Name @@ -7317,8 +7357,8 @@ EIRTempModFac_CoolandDischarge_SCU, !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Temperature Curve Name EIRFlowModFac_coolAndDischarge_SCU, !- Cooling And Discharge Mode Evaporator Energy Input Ratio Function of Flow Fraction Curve Name EvapPartLoadFac_coolAndDischarge_SCU, !- Cooling And Discharge Mode Evaporator Part Load Fraction Correlation Curve Name - TESCapTempModFac_CoolAndDischarge_SCU, !- Cooling And Discharge Mode Storage Disharge Capacity Function of Temperature Curve Name - TESCapFlowModFac_coolAndDischarge_SCU, !- Cooling And Discharge Mode Storage Disharge Capacity Function of Flow Fraction Curve Name + TESCapTempModFac_CoolAndDischarge_SCU, !- Cooling And Discharge Mode Storage Discharge Capacity Function of Temperature Curve Name + TESCapFlowModFac_coolAndDischarge_SCU, !- Cooling And Discharge Mode Storage Discharge Capacity Function of Flow Fraction Curve Name TESPartLoadFac_coolAndDischarge_SCU, !- Cooling And Discharge Mode Storage Discharge Capacity Function of Total Evaporator PLR Curve Name NullTriquadratic, !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Temperature Curve Name constantCubic, !- Cooling And Discharge Mode Storage Energy Input Ratio Function of Flow Fraction Curve Name diff --git a/testfiles/SeriesActiveBranch.idf b/testfiles/SeriesActiveBranch.idf index aa643a0693d..f16aef1a0cb 100644 --- a/testfiles/SeriesActiveBranch.idf +++ b/testfiles/SeriesActiveBranch.idf @@ -1898,14 +1898,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1921,7 +1921,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/ShopWithPVandBattery.idf b/testfiles/ShopWithPVandBattery.idf index bb42cb1878f..8424a1653b7 100644 --- a/testfiles/ShopWithPVandBattery.idf +++ b/testfiles/ShopWithPVandBattery.idf @@ -2998,14 +2998,14 @@ ZN_1_FLR_1_SEC_1:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3021,7 +3021,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_1:Sys Availability Manager List, !- Name @@ -3270,14 +3280,14 @@ ZN_1_FLR_1_SEC_2:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3293,7 +3303,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_2:Sys Availability Manager List, !- Name @@ -3542,14 +3562,14 @@ ZN_1_FLR_1_SEC_3:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3565,7 +3585,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_3:Sys Availability Manager List, !- Name @@ -3814,14 +3844,14 @@ ZN_1_FLR_1_SEC_4:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3837,7 +3867,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_4:Sys Availability Manager List, !- Name @@ -4086,14 +4126,14 @@ ZN_1_FLR_1_SEC_5:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4109,7 +4149,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_5:Sys Availability Manager List, !- Name @@ -5362,6 +5412,9 @@ Output:Variable,*,Cooling Coil Electric Power,timestep; + Output:SQLite, + Simple; + !***** Portions of this file originally Generated by EPXMLPreproc2 ***** !***** Created on 06/07/2007 02:53:27 ***** !***** Input File produced by the EnergyPlus Model Example File Generator ***** diff --git a/testfiles/ShopWithPVandStorage.idf b/testfiles/ShopWithPVandStorage.idf index 564b347ff78..78b95d3bc68 100644 --- a/testfiles/ShopWithPVandStorage.idf +++ b/testfiles/ShopWithPVandStorage.idf @@ -2997,14 +2997,14 @@ ZN_1_FLR_1_SEC_1:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3020,7 +3020,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_1:Sys Availability Manager List, !- Name @@ -3269,14 +3279,14 @@ ZN_1_FLR_1_SEC_2:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3292,7 +3302,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_2:Sys Availability Manager List, !- Name @@ -3541,14 +3561,14 @@ ZN_1_FLR_1_SEC_3:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3564,7 +3584,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_3:Sys Availability Manager List, !- Name @@ -3813,14 +3843,14 @@ ZN_1_FLR_1_SEC_4:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3836,7 +3866,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_4:Sys Availability Manager List, !- Name @@ -4085,14 +4125,14 @@ ZN_1_FLR_1_SEC_5:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4108,7 +4148,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_5:Sys Availability Manager List, !- Name diff --git a/testfiles/ShopWithSimplePVT.idf b/testfiles/ShopWithSimplePVT.idf index 8669b9cec28..0645bde3f82 100644 --- a/testfiles/ShopWithSimplePVT.idf +++ b/testfiles/ShopWithSimplePVT.idf @@ -2875,14 +2875,14 @@ ZN_1_FLR_1_SEC_1:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2898,7 +2898,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_1:Sys Availability Manager List, !- Name @@ -3134,14 +3144,14 @@ ZN_1_FLR_1_SEC_2:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3157,7 +3167,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_2:Sys Availability Manager List, !- Name @@ -3348,14 +3368,14 @@ ZN_1_FLR_1_SEC_3:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3371,7 +3391,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_3:Sys Availability Manager List, !- Name @@ -3562,14 +3592,14 @@ ZN_1_FLR_1_SEC_4:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3585,7 +3615,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_4:Sys Availability Manager List, !- Name @@ -3776,14 +3816,14 @@ ZN_1_FLR_1_SEC_5:Sys, !- AirLoop Name SENSIBLE, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NONCOINCIDENT, !- Sizing Option + NONCOINCIDENT, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3799,7 +3839,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, ZN_1_FLR_1_SEC_5:Sys Availability Manager List, !- Name diff --git a/testfiles/SteamSystemAutoSize.idf b/testfiles/SteamSystemAutoSize.idf index e61a778eb2b..d5d19f7d45e 100644 --- a/testfiles/SteamSystemAutoSize.idf +++ b/testfiles/SteamSystemAutoSize.idf @@ -2143,14 +2143,14 @@ VAV SYS 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2166,7 +2166,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! Single Chiller Supply ! Chiller Parameters for DistrictCooling @@ -3408,3 +3418,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/Supermarket.idf b/testfiles/Supermarket.idf index 201d966afab..c03c92f4390 100644 --- a/testfiles/Supermarket.idf +++ b/testfiles/Supermarket.idf @@ -2439,3 +2439,6 @@ output:diagnostics, displayallwarnings; !- Key 1 + Output:SQLite, + Simple; + diff --git a/testfiles/SupermarketTranscriticalCO2.idf b/testfiles/SupermarketTranscriticalCO2.idf index 8b54491487c..d4203a76245 100644 --- a/testfiles/SupermarketTranscriticalCO2.idf +++ b/testfiles/SupermarketTranscriticalCO2.idf @@ -7416,3 +7416,6 @@ output:diagnostics, displayallwarnings; !- Key 1 + Output:SQLite, + Simple; + diff --git a/testfiles/Supermarket_Detailed.idf b/testfiles/Supermarket_Detailed.idf index ee97eb088c6..78ddf2d9f7c 100644 --- a/testfiles/Supermarket_Detailed.idf +++ b/testfiles/Supermarket_Detailed.idf @@ -5214,3 +5214,6 @@ output:diagnostics, displayallwarnings; !- Key 1 + Output:SQLite, + Simple; + diff --git a/testfiles/SurfaceGroundHeatExchanger.idf b/testfiles/SurfaceGroundHeatExchanger.idf index 3235598fd55..7ffefe00b5d 100644 --- a/testfiles/SurfaceGroundHeatExchanger.idf +++ b/testfiles/SurfaceGroundHeatExchanger.idf @@ -2096,14 +2096,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2119,7 +2119,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method NodeList, OutsideAirInletNodes, !- Name diff --git a/testfiles/ThermochromicWindow.idf b/testfiles/ThermochromicWindow.idf index f4ca8d8cdf5..b24adc22a86 100644 --- a/testfiles/ThermochromicWindow.idf +++ b/testfiles/ThermochromicWindow.idf @@ -3616,14 +3616,14 @@ PSZ-AC:1, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3639,7 +3639,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:1 Availability Manager List, !- Name @@ -3905,14 +3915,14 @@ PSZ-AC:2, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3928,7 +3938,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:2 Availability Manager List, !- Name @@ -4194,14 +4214,14 @@ PSZ-AC:3, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4217,7 +4237,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:3 Availability Manager List, !- Name @@ -4483,14 +4513,14 @@ PSZ-AC:4, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4506,7 +4536,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:4 Availability Manager List, !- Name @@ -4772,14 +4812,14 @@ PSZ-AC:5, !- AirLoop Name Sensible, !- Type of Load to Size On AUTOSIZE, !- Design Outdoor Air Flow Rate {m3/s} - 0.3000, !- Minimum System Air Flow Ratio + 0.3000, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8000, !- Central Cooling Design Supply Air Temperature {C} 40.0, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use No, !- 100% Outdoor Air in Cooling No, !- 100% Outdoor Air in Heating 0.0085, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4795,7 +4835,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AvailabilityManagerAssignmentList, PSZ-AC:5 Availability Manager List, !- Name diff --git a/testfiles/TranspiredCollectors.idf b/testfiles/TranspiredCollectors.idf index 6e5b4925e58..b9b942be845 100644 --- a/testfiles/TranspiredCollectors.idf +++ b/testfiles/TranspiredCollectors.idf @@ -3208,14 +3208,14 @@ Direct DX air Loop ZN1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3231,7 +3231,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! @@ -3491,14 +3501,14 @@ Direct DX air Loop ZN2, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3514,7 +3524,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! @@ -3774,14 +3794,14 @@ Direct DX air Loop ZN3, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3797,7 +3817,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! @@ -4057,14 +4087,14 @@ Direct DX air Loop ZN4, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4080,7 +4110,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! @@ -4340,14 +4380,14 @@ Direct DX air Loop ZN5, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 4.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13.0, !- Central Cooling Design Supply Air Temperature {C} 50.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use NO, !- 100% Outdoor Air in Cooling NO, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -4363,7 +4403,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method ! diff --git a/testfiles/TwoWayCommonPipe_Pri-Sec.idf b/testfiles/TwoWayCommonPipe_Pri-Sec.idf index ef7c7526615..dd3f944e81a 100644 --- a/testfiles/TwoWayCommonPipe_Pri-Sec.idf +++ b/testfiles/TwoWayCommonPipe_Pri-Sec.idf @@ -2408,14 +2408,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 14, !- Central Cooling Design Supply Air Temperature {C} 10.0, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2431,7 +2431,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV Sys 1, !- Name diff --git a/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf b/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf index ab0e77535de..a0f95e437af 100644 --- a/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf +++ b/testfiles/UnitarySystem_5ZoneWaterLoopHeatPump.idf @@ -1918,14 +1918,14 @@ AHU 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1941,7 +1941,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 1, !- Name @@ -2186,14 +2196,14 @@ AHU 2, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2209,7 +2219,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 2, !- Name @@ -2451,14 +2471,14 @@ AHU 3, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2474,7 +2494,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 3, !- Name @@ -2716,14 +2746,14 @@ AHU 4, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2739,7 +2769,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 4, !- Name @@ -2981,14 +3021,14 @@ AHU 5, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -3004,7 +3044,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, AHU 5, !- Name diff --git a/testfiles/UnitarySystem_DXCoilSystemAuto.idf b/testfiles/UnitarySystem_DXCoilSystemAuto.idf index 3a86228568f..4feef1a825b 100644 --- a/testfiles/UnitarySystem_DXCoilSystemAuto.idf +++ b/testfiles/UnitarySystem_DXCoilSystemAuto.idf @@ -1163,14 +1163,14 @@ Heat Pump Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1186,7 +1186,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Curve:Biquadratic, HPACCoolCapFT, !- Name diff --git a/testfiles/UnitarySystem_HeatPumpAuto.idf b/testfiles/UnitarySystem_HeatPumpAuto.idf index d9551a5577d..3f41d81eec4 100644 --- a/testfiles/UnitarySystem_HeatPumpAuto.idf +++ b/testfiles/UnitarySystem_HeatPumpAuto.idf @@ -1165,14 +1165,14 @@ Heat Pump Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.0, !- Minimum System Air Flow Ratio + 0.0, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1188,7 +1188,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Curve:Biquadratic, HPACCoolCapFT, !- Name diff --git a/testfiles/UserDefinedRoomAirPatterns.idf b/testfiles/UserDefinedRoomAirPatterns.idf index 2c9148711d2..9d3a821efa9 100644 --- a/testfiles/UserDefinedRoomAirPatterns.idf +++ b/testfiles/UserDefinedRoomAirPatterns.idf @@ -9911,14 +9911,14 @@ VAV SYS 1, !- AirLoop Name sensible, !- Type of Load to Size On 0.0, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -9934,7 +9934,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, VAV SYS 1, !- Name diff --git a/testfiles/VSDXCoilSystemAuto.idf b/testfiles/VSDXCoilSystemAuto.idf index cb30f0108dd..cb04c4e214d 100644 --- a/testfiles/VSDXCoilSystemAuto.idf +++ b/testfiles/VSDXCoilSystemAuto.idf @@ -1748,14 +1748,14 @@ Heat Pump Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 13., !- Central Cooling Design Supply Air Temperature {C} 50., !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1771,7 +1771,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Curve:Biquadratic, HPACCoolCapFT, !- Name diff --git a/testfiles/VentilatedSlab_SeriesSlabs.idf b/testfiles/VentilatedSlab_SeriesSlabs.idf index 2561b808ea3..7e89bcf70df 100644 --- a/testfiles/VentilatedSlab_SeriesSlabs.idf +++ b/testfiles/VentilatedSlab_SeriesSlabs.idf @@ -2844,3 +2844,6 @@ Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + Output:SQLite, + Simple; + diff --git a/testfiles/VentilationSimpleTest.idf b/testfiles/VentilationSimpleTest.idf index a6eeabae232..a773f80767c 100644 --- a/testfiles/VentilationSimpleTest.idf +++ b/testfiles/VentilationSimpleTest.idf @@ -2218,3 +2218,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/WaterHeaterDHWPlantLoop.idf b/testfiles/WaterHeaterDHWPlantLoop.idf index 0565036de01..bdec3d6ea4d 100644 --- a/testfiles/WaterHeaterDHWPlantLoop.idf +++ b/testfiles/WaterHeaterDHWPlantLoop.idf @@ -545,3 +545,6 @@ Output:Variable,*,Water Heater On Cycle Parasitic Electric Power,TIMESTEP; + Output:SQLite, + Simple; + diff --git a/testfiles/WaterSideEconomizer_Integrated.idf b/testfiles/WaterSideEconomizer_Integrated.idf index 69a4e66ebdf..0632591d533 100644 --- a/testfiles/WaterSideEconomizer_Integrated.idf +++ b/testfiles/WaterSideEconomizer_Integrated.idf @@ -1874,14 +1874,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1897,7 +1897,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name @@ -3707,3 +3717,6 @@ Output:Table:SummaryReports, AllSummary; !- Report 1 Name + Output:SQLite, + Simple; + diff --git a/testfiles/WaterSideEconomizer_NonIntegrated.idf b/testfiles/WaterSideEconomizer_NonIntegrated.idf index 6a5c1c4861a..1dcaaeb1a00 100644 --- a/testfiles/WaterSideEconomizer_NonIntegrated.idf +++ b/testfiles/WaterSideEconomizer_NonIntegrated.idf @@ -2037,14 +2037,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2060,7 +2060,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/WeatherTimeBins.idf b/testfiles/WeatherTimeBins.idf index 1dc24f0e583..492dd54018b 100644 --- a/testfiles/WeatherTimeBins.idf +++ b/testfiles/WeatherTimeBins.idf @@ -110,6 +110,7 @@ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} 0.0; !- Sky Clearness + RunPeriod, , !- Name 1, !- Begin Month diff --git a/testfiles/_5ZoneEvapCooled.idf b/testfiles/_5ZoneEvapCooled.idf index 72d11250426..50e113fa44a 100644 --- a/testfiles/_5ZoneEvapCooled.idf +++ b/testfiles/_5ZoneEvapCooled.idf @@ -1890,14 +1890,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 4.5, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1913,7 +1913,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/_CTFTestsPart1.idf b/testfiles/_CTFTestsPart1.idf index f9d6c811dcf..6aad9fb5b33 100644 --- a/testfiles/_CTFTestsPart1.idf +++ b/testfiles/_CTFTestsPart1.idf @@ -1467,6 +1467,8 @@ Output:VariableDictionary,regular; + Output:VariableDictionary,regular; + Output:VariableDictionary; Output:Surfaces:Drawing,dxf; diff --git a/testfiles/_CoolingTowerDewPointRangeOp.idf b/testfiles/_CoolingTowerDewPointRangeOp.idf index 558980a2891..97440e306fc 100644 --- a/testfiles/_CoolingTowerDewPointRangeOp.idf +++ b/testfiles/_CoolingTowerDewPointRangeOp.idf @@ -1876,14 +1876,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1899,7 +1899,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/_CoolingTowerWithDPDeltaTempOp.idf b/testfiles/_CoolingTowerWithDPDeltaTempOp.idf index 5f2248faca4..52a7e3f9df1 100644 --- a/testfiles/_CoolingTowerWithDPDeltaTempOp.idf +++ b/testfiles/_CoolingTowerWithDPDeltaTempOp.idf @@ -1881,14 +1881,14 @@ VAV Sys 1, !- AirLoop Name sensible, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7.0, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 16.7, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -1904,7 +1904,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Hot Water Loop, !- Plant or Condenser Loop Name diff --git a/testfiles/_DOASDXCOIL_wUserSHRMethod.idf b/testfiles/_DOASDXCOIL_wUserSHRMethod.idf index 5960cba79e8..900b21d5a3d 100644 --- a/testfiles/_DOASDXCOIL_wUserSHRMethod.idf +++ b/testfiles/_DOASDXCOIL_wUserSHRMethod.idf @@ -2199,14 +2199,14 @@ DOAS, !- AirLoop Name VentilationRequirement, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 1.0, !- Minimum System Air Flow Ratio + 1.0, !- Central Heating Maximum System Air Flow Ratio 2, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 12.2, !- Central Heating Design Supply Air Temperature {C} - NonCoincident, !- Sizing Option + NonCoincident, !- Type of Zone Sum to Use Yes, !- 100% Outdoor Air in Cooling Yes, !- 100% Outdoor Air in Heating 0.00924, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2222,7 +2222,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ZoneSum; !- System Outdoor Air Method + ZoneSum, !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method AirLoopHVAC, DOAS, !- Name diff --git a/testfiles/_ElectricREformulatedEIRChiller.idf b/testfiles/_ElectricREformulatedEIRChiller.idf index da26bca548a..c96ef5fc7b4 100644 --- a/testfiles/_ElectricREformulatedEIRChiller.idf +++ b/testfiles/_ElectricREformulatedEIRChiller.idf @@ -1451,6 +1451,7 @@ 0.001345, !- Reference Condenser Water Flow Rate {m3/s} ReformEIRChiller Trane CGWD 207kW/None CAPFT, !- Cooling Capacity Function of Temperature Curve Name ReformEIRChiller Trane CGWD 207kW/None EIRFT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + , !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Type ReformEIRChiller Trane CGWD 207kW/None EIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name 0.25, !- Minimum Part Load Ratio 1.01, !- Maximum Part Load Ratio diff --git a/testfiles/_ExternalInterface-functionalmockupunit-to-schedule.idf b/testfiles/_ExternalInterface-functionalmockupunit-to-schedule.idf index fb8d7779edc..b22b5a4ce9a 100644 --- a/testfiles/_ExternalInterface-functionalmockupunit-to-schedule.idf +++ b/testfiles/_ExternalInterface-functionalmockupunit-to-schedule.idf @@ -50,7 +50,7 @@ yes, !- Use Weather File Rain Indicators yes; !- Use Weather File Snow Indicators -! CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, MaxDB= -17.3°C +! CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, MaxDB= -17.3�C SizingPeriod:DesignDay, CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name @@ -80,7 +80,7 @@ , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} 0.0; !- Sky Clearness -! CHICAGO_IL_USA Annual Cooling 1% Design Conditions, MaxDB= 31.5°C MCWB= 23.0°C +! CHICAGO_IL_USA Annual Cooling 1% Design Conditions, MaxDB= 31.5�C MCWB= 23.0�C SizingPeriod:DesignDay, CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name diff --git a/testfiles/_FanCoilHybridVentAFN.idf b/testfiles/_FanCoilHybridVentAFN.idf index 8c23ebade4e..6b47a9e5a5e 100644 --- a/testfiles/_FanCoilHybridVentAFN.idf +++ b/testfiles/_FanCoilHybridVentAFN.idf @@ -1982,9 +1982,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1993,9 +1993,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -2003,9 +2003,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -2014,9 +2014,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -2148,7 +2148,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/_FuelCellTest200.idf b/testfiles/_FuelCellTest200.idf index d278a2ca2ff..7cf1b2e5d1f 100644 --- a/testfiles/_FuelCellTest200.idf +++ b/testfiles/_FuelCellTest200.idf @@ -410,8 +410,8 @@ 0.0, !- Shut Down Time {s} 0.2, !- Shut Down Fuel {kmol} 6.0E+06, !- Shut Down Electricity Consumption {J} - 0.0, !- Ancilliary Electricity Constant Term - 0.0, !- Ancilliary Electricity Linear Term + 0.0, !- Ancillary Electricity Constant Term + 0.0, !- Ancillary Electricity Linear Term ConstantRate, !- Skin Loss Calculation Mode GARAGE ZONE, !- Zone Name 0.2, !- Skin Loss Radiative Fraction @@ -532,8 +532,8 @@ Generator:FuelCell:AuxiliaryHeater, Fictitious SOFC Auxiliary Heater, !- Name 0.3, !- Excess Air Ratio - 10.0, !- Ancilliary Power Constant Term - 1.0E+07, !- Ancilliary Power Linear Term + 10.0, !- Ancillary Power Constant Term + 1.0E+07, !- Ancillary Power Linear Term 0.5, !- Skin Loss U-Factor Times Area Value {W/K} SurroundingZone, !- Skin Loss Destination GARAGE ZONE, !- Zone Name to Receive Skin Losses diff --git a/testfiles/_HybridVentilationControlGlobalAN.idf b/testfiles/_HybridVentilationControlGlobalAN.idf index 3256a9c685e..08422dc5549 100644 --- a/testfiles/_HybridVentilationControlGlobalAN.idf +++ b/testfiles/_HybridVentilationControlGlobalAN.idf @@ -1891,9 +1891,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 0.3, !- Minimum Venting Open Factor {dimensionless} 5.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 10.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1902,9 +1902,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Zone, NORTH ZONE, !- Zone Name @@ -1912,9 +1912,9 @@ WindowVentSched, !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} VentingSched; !- Venting Availability Schedule Name AirflowNetwork:MultiZone:Zone, @@ -1923,9 +1923,9 @@ , !- Ventilation Control Zone Temperature Setpoint Schedule Name 1.0, !- Minimum Venting Open Factor {dimensionless} 0.0, !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} - 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor {deltaC} + 100.0, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} 0.0, !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} - 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor {deltaJ/kg} + 300000.0; !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} AirflowNetwork:MultiZone:Surface, Zn001:Wall001, !- Surface Name @@ -2057,7 +2057,7 @@ WiOpen1, !- Name 0.001, !- Air Mass Flow Coefficient When Opening is Closed {kg/s-m} 0.667, !- Air Mass Flow Exponent When Opening is Closed {dimensionless} - NonPivoted, !- Type of Rectanguler Large Vertical Opening (LVO) + NonPivoted, !- Type of Rectangular Large Vertical Opening (LVO) 0.0, !- Extra Crack Length or Height of Pivoting Axis {m} 2, !- Number of Sets of Opening Factor Data 0.0, !- Opening Factor 1 {dimensionless} diff --git a/testfiles/_SmallOffice_Dulles.idf b/testfiles/_SmallOffice_Dulles.idf index 9aaf0d66e47..ffbdc1773fd 100644 --- a/testfiles/_SmallOffice_Dulles.idf +++ b/testfiles/_SmallOffice_Dulles.idf @@ -2230,14 +2230,14 @@ AirLoop_SouthZone_1stFloor, !- AirLoop Name total, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 50, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2253,20 +2253,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, AirLoop_NorthZone_1stFloor, !- AirLoop Name total, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 50, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2282,20 +2292,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, AirLoop_SouthZone_2ndFloor, !- AirLoop Name total, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 50, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2311,20 +2331,30 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:System, AirLoop_NorthZone_2ndFloor, !- AirLoop Name total, !- Type of Load to Size On autosize, !- Design Outdoor Air Flow Rate {m3/s} - 0.3, !- Minimum System Air Flow Ratio + 0.3, !- Central Heating Maximum System Air Flow Ratio 7, !- Preheat Design Temperature {C} 0.008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} 11.0, !- Precool Design Temperature {C} 0.008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} 12.8, !- Central Cooling Design Supply Air Temperature {C} 50, !- Central Heating Design Supply Air Temperature {C} - noncoincident, !- Sizing Option + noncoincident, !- Type of Zone Sum to Use no, !- 100% Outdoor Air in Cooling no, !- 100% Outdoor Air in Heating 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} @@ -2340,7 +2370,17 @@ , !- Fraction of Autosized Design Heating Supply Air Flow Rate , !- Fraction of Autosized Design Cooling Supply Air Flow Rate , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} - ; !- System Outdoor Air Method + , !- System Outdoor Air Method + 1.0, !- Zone Maximum Outdoor Air Fraction {dimensionless} + CoolingDesignCapacity, !- Cooling Design Capacity Method + autosize, !- Cooling Design Capacity {W} + , !- Cooling Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Cooling Design Capacity + HeatingDesignCapacity, !- Heating Design Capacity Method + autosize, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + VAV; !- Central Cooling Capacity Control Method Sizing:Plant, Water Heater Dummy Loop, !- Plant or Condenser Loop Name diff --git a/third_party/ObjexxFCL/CMakeLists.txt b/third_party/ObjexxFCL/CMakeLists.txt index 3718eb3926c..4814d32e49b 100644 --- a/third_party/ObjexxFCL/CMakeLists.txt +++ b/third_party/ObjexxFCL/CMakeLists.txt @@ -1,9 +1,5 @@ set( target_name objexx ) -if(MSVC) - ADD_DEFINITIONS("-Za") # Disables MS language extensions -endif() - if (UNIX) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") endif() diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/CArray.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/CArray.io.hh index ad17a75121b..c3e13ae3c31 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/CArray.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/CArray.io.hh @@ -39,12 +39,12 @@ operator <<( std::ostream & stream, CArray< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream size_type const e( a.size() - 1 ); - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( size_type i = 0; i < e; ++i ) { stream << setw( w ) << a[ i ] << ' '; } stream << setw( w ) << a[ e ]; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/CArrayP.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/CArrayP.io.hh index 1dc2cf6850f..0eee798c20e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/CArrayP.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/CArrayP.io.hh @@ -39,12 +39,12 @@ operator <<( std::ostream & stream, CArrayP< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream size_type const e( a.size() - 1 ); - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( size_type i = 0; i < e; ++i ) { stream << setw( w ) << a[ i ] << ' '; } stream << setw( w ) << a[ e ]; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/ChunkVector.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/ChunkVector.io.hh index 5d5fe18e1b7..2153efec282 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/ChunkVector.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/ChunkVector.io.hh @@ -39,12 +39,12 @@ operator <<( std::ostream & stream, ChunkVector< T > const & v ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream size_type const e( v.size() - 1 ); - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( size_type i = 0; i < e; ++i ) { stream << setw( w ) << v[ i ] << ' '; } stream << setw( w ) << v[ e ]; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.fwd.hh b/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.fwd.hh index 3e8a6f1985c..8aeb7413a4f 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.fwd.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.fwd.hh @@ -18,9 +18,6 @@ namespace ObjexxFCL { // Forward class DimensionSlice; -// Types -typedef DimensionSlice DSlice; - } // ObjexxFCL #endif // ObjexxFCL_DimensionSlice_fwd_hh_INCLUDED diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.hh b/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.hh index b645d23777a..9a2acacc0a9 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/DimensionSlice.hh @@ -258,9 +258,6 @@ private: // Data }; // DimensionSlice -// Types -typedef DimensionSlice DSlice; - } // ObjexxFCL #endif // ObjexxFCL_DimensionSlice_hh_INCLUDED diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.fwd.hh b/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.fwd.hh index 124e004d8e0..ba73062242f 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.fwd.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.fwd.hh @@ -18,9 +18,6 @@ namespace ObjexxFCL { // Forward class DynamicIndexRange; -// Types -typedef DynamicIndexRange DRange; - } // ObjexxFCL #endif // ObjexxFCL_DynamicIndexRange_fwd_hh_INCLUDED diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.hh b/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.hh index 4aa6a1099f2..54f7545e221 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/DynamicIndexRange.hh @@ -1126,9 +1126,6 @@ private: // Data }; // DynamicIndexRange -// Types -typedef DynamicIndexRange DRange; - // Functions // Swap diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray.functions.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray.functions.hh index eca1817a557..212755b2342 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray.functions.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray.functions.hh @@ -233,27 +233,27 @@ count( FArray2< bool > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< size_type > res( static_cast< int >( as2 ) ); - for ( size_type i2 = 0, l = 0; i2 < as2; ++i2 ) { - size_type c( 0u ); - for ( size_type i1 = 0; i1 < as1; ++i1, ++l ) { - if ( a[ l ] ) ++c; - } - res[ i2 ] = c; + FArray1D< size_type > res( static_cast< int >( as2 ) ); + for ( size_type i2 = 0, l = 0; i2 < as2; ++i2 ) { + size_type c( 0u ); + for ( size_type i1 = 0; i1 < as1; ++i1, ++l ) { + if ( a[ l ] ) ++c; } - return res; + res[ i2 ] = c; + } + return res; } case 2: { - FArray1D< size_type > res( static_cast< int >( as1 ) ); - for ( size_type i1 = 0; i1 < as1; ++i1 ) { - size_type c( 0u ); - for ( size_type i2 = 0, l = i1; i2 < as2; ++i2, l += as1 ) { - if ( a[ l ] ) ++c; - } - res[ i1 ] = c; + FArray1D< size_type > res( static_cast< int >( as1 ) ); + for ( size_type i1 = 0; i1 < as1; ++i1 ) { + size_type c( 0u ); + for ( size_type i2 = 0, l = i1; i2 < as2; ++i2, l += as1 ) { + if ( a[ l ] ) ++c; } - return res; + res[ i1 ] = c; + } + return res; } default: assert( false ); @@ -261,14 +261,14 @@ count( FArray2< bool > const & a, int const dim ) } } -// is_contiguous ///// +// contiguous ///// template< typename T > inline bool -is_contiguous( FArray< T > const & a ) +contiguous( FArray< T > const & a ) { - return a.is_contiguous(); + return a.contiguous(); } // lbound ///// @@ -1498,27 +1498,27 @@ sum( FArray2< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< T > res( static_cast< int >( as2 ), T( 0 ) ); - for ( size_type i2 = 0, l = 0; i2 < as2; ++i2 ) { - T s( 0 ); - for ( size_type i1 = 0; i1 < as1; ++i1, ++l ) { - s += a[ l ]; - } - res[ i2 ] = s; + FArray1D< T > res( static_cast< int >( as2 ) ); + for ( size_type i2 = 0, l = 0; i2 < as2; ++i2 ) { + T s( 0 ); + for ( size_type i1 = 0; i1 < as1; ++i1, ++l ) { + s += a[ l ]; } - return res; + res[ i2 ] = s; + } + return res; } case 2: { - FArray1D< T > res( static_cast< int >( as1 ), T( 0 ) ); - for ( size_type i1 = 0; i1 < as1; ++i1 ) { - T s( 0 ); - for ( size_type i2 = 0, l = i1; i2 < as2; ++i2, l += as1 ) { - s += a[ l ]; - } - res[ i1 ] = s; + FArray1D< T > res( static_cast< int >( as1 ) ); + for ( size_type i1 = 0; i1 < as1; ++i1 ) { + T s( 0 ); + for ( size_type i2 = 0, l = i1; i2 < as2; ++i2, l += as1 ) { + s += a[ l ]; } - return res; + res[ i1 ] = s; + } + return res; } default: assert( false ); @@ -1590,27 +1590,27 @@ product( FArray2< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< T > res( static_cast< int >( as2 ), T( 1 ) ); - for ( size_type i2 = 0, l = 0; i2 < as2; ++i2 ) { - T p( 1 ); - for ( size_type i1 = 0; i1 < as1; ++i1, ++l ) { - p *= a[ l ]; - } - res[ i2 ] = p; + FArray1D< T > res( static_cast< int >( as2 ) ); + for ( size_type i2 = 0, l = 0; i2 < as2; ++i2 ) { + T p( 1 ); + for ( size_type i1 = 0; i1 < as1; ++i1, ++l ) { + p *= a[ l ]; } - return res; + res[ i2 ] = p; + } + return res; } case 2: { - FArray1D< T > res( static_cast< int >( as1 ), T( 1 ) ); - for ( size_type i1 = 0; i1 < as1; ++i1 ) { - T p( 1 ); - for ( size_type i2 = 0, l = i1; i2 < as2; ++i2, l += as1 ) { - p *= a[ l ]; - } - res[ i1 ] = p; + FArray1D< T > res( static_cast< int >( as1 ) ); + for ( size_type i1 = 0; i1 < as1; ++i1 ) { + T p( 1 ); + for ( size_type i2 = 0, l = i1; i2 < as2; ++i2, l += as1 ) { + p *= a[ l ]; } - return res; + res[ i1 ] = p; + } + return res; } default: assert( false ); @@ -2179,32 +2179,32 @@ minloc( FArray2< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< int > loc( as2, as2 > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i2 = 1; i2 <= as2; ++i2 ) { - T r( std::numeric_limits< T >::max() ); - for ( int i1 = 1; i1 <= as1; ++i1, ++l ) { - if ( a[ l ] < r ) { - r = a[ l ]; - loc( i2 ) = i1; - } + FArray1D< int > loc( as2, as2 > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i2 = 1; i2 <= as2; ++i2 ) { + T r( std::numeric_limits< T >::max() ); + for ( int i1 = 1; i1 <= as1; ++i1, ++l ) { + if ( a[ l ] < r ) { + r = a[ l ]; + loc( i2 ) = i1; } } - return loc; + } + return loc; } case 2: { - FArray1D< int > loc( as1, as1 > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i1 = 1; i1 <= as1; ++i1 ) { - T r( std::numeric_limits< T >::max() ); - l = i1 - 1; - for ( int i2 = 1; i2 <= as2; ++i2, l += as1 ) { - if ( a[ l ] < r ) { - r = a[ l ]; - loc( i1 ) = i2; - } + FArray1D< int > loc( as1, as1 > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i1 = 1; i1 <= as1; ++i1 ) { + T r( std::numeric_limits< T >::max() ); + l = i1 - 1; + for ( int i2 = 1; i2 <= as2; ++i2, l += as1 ) { + if ( a[ l ] < r ) { + r = a[ l ]; + loc( i1 ) = i2; } } - return loc; + } + return loc; } default: assert( false ); @@ -2578,32 +2578,32 @@ maxloc( FArray2< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< int > loc( as2, as2 > 0 ? 1 : 0 ); - for ( int i2 = 1; i2 <= as2; ++i2 ) { - T r( std::numeric_limits< T >::lowest() ); - for ( int i1 = 1; i1 <= as1; ++i1, ++l ) { - if ( a[ l ] > r ) { - r = a[ l ]; - loc( i2 ) = i1; - } + FArray1D< int > loc( as2, as2 > 0 ? 1 : 0 ); + for ( int i2 = 1; i2 <= as2; ++i2 ) { + T r( std::numeric_limits< T >::lowest() ); + for ( int i1 = 1; i1 <= as1; ++i1, ++l ) { + if ( a[ l ] > r ) { + r = a[ l ]; + loc( i2 ) = i1; } } - return loc; + } + return loc; } case 2: { - FArray1D< int > loc( as1, as1 > 0 ? 1 : 0 ); - for ( int i1 = 1; i1 <= as1; ++i1 ) { - T r( std::numeric_limits< T >::lowest() ); - l = i1 - 1; - for ( int i2 = 1; i2 <= as2; ++i2, l += as1 ) { - if ( a[ l ] > r ) { - r = a[ l ]; - loc( i1 ) = i2; - } + FArray1D< int > loc( as1, as1 > 0 ? 1 : 0 ); + for ( int i1 = 1; i1 <= as1; ++i1 ) { + T r( std::numeric_limits< T >::lowest() ); + l = i1 - 1; + for ( int i2 = 1; i2 <= as2; ++i2, l += as1 ) { + if ( a[ l ] > r ) { + r = a[ l ]; + loc( i1 ) = i2; } } - return loc; + } + return loc; } default: assert( false ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray.hh index 946cf3ba209..1d0ff0fa972 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray.hh @@ -48,6 +48,10 @@ #include #endif // OBJEXXFCL_FARRAY_SIZE_REPORT +#ifndef OBJEXXFCL_ARRAY_ALIGN +#define OBJEXXFCL_ARRAY_ALIGN 128u +#endif + namespace ObjexxFCL { // FArray: Fortran-Compatible Array Abstract Base Class @@ -125,7 +129,11 @@ protected: // Creation FArray( FArray const & a ) : BArray( a ), data_size_( size_of( a.size_ ) ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( a.data_ ? new T[ data_size_ ] : nullptr ), +#else + data_( a.data_ ? new_array< T >() : nullptr ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -135,7 +143,7 @@ protected: // Creation sdata_( data_ - shift_ ) { for ( size_type i = 0; i < size_; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); @@ -148,7 +156,11 @@ protected: // Creation explicit FArray( FArray< U > const & a ) : data_size_( size_of( a.size() ) ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( a.data_ ? new T[ data_size_ ] : nullptr ), +#else + data_( a.data_ ? new_array< T >() : nullptr ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -158,7 +170,7 @@ protected: // Creation sdata_( data_ - shift_ ) { for ( size_type i = 0; i < size_; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); @@ -171,7 +183,11 @@ protected: // Creation explicit FArray( FArrayS< U > const & a ) : data_size_( size_of( a.size() ) ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -191,7 +207,11 @@ protected: // Creation explicit FArray( MArray< A, M > const & a ) : data_size_( size_of( a.size() ) ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -210,7 +230,11 @@ protected: // Creation explicit FArray( size_type const size ) : data_size_( size_of( size ) ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -231,7 +255,11 @@ protected: // Creation inline FArray( size_type const size, InitializerSentinel const & ) : data_size_( size_of( size ) ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -250,7 +278,11 @@ protected: // Creation inline FArray( std::initializer_list< U > const l ) : data_size_( l.size() ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -261,7 +293,7 @@ protected: // Creation { auto r( l.begin() ); for ( size_type i = 0; i < size_; ++i, ++r ) { - reassign( i, *r ); + initialize( i, *r ); } #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); @@ -273,7 +305,11 @@ protected: // Creation inline FArray( std::array< U, s > const & a ) : data_size_( s ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -284,7 +320,7 @@ protected: // Creation { auto ia( a.begin() ); for ( size_type i = 0; i < size_; ++i, ++ia ) { - reassign( i, *ia ); + initialize( i, *ia ); } #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); @@ -296,7 +332,11 @@ protected: // Creation inline FArray( std::vector< U > const & v ) : data_size_( v.size() ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -307,7 +347,7 @@ protected: // Creation { auto iv( v.begin() ); for ( size_type i = 0; i < size_; ++i, ++iv ) { - reassign( i, *iv ); + initialize( i, *iv ); } #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); @@ -319,7 +359,11 @@ protected: // Creation inline FArray( Vector2< U > const & v ) : data_size_( 2 ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -340,7 +384,11 @@ protected: // Creation inline FArray( Vector3< U > const & v ) : data_size_( 3 ), +#ifdef OBJEXXFCL_ARRAY_NOALIGN data_( new T[ data_size_ ] ), +#else + data_( new_array< T >() ), +#endif size_( data_size_ ), owner_( true ), #ifdef OBJEXXFCL_PROXY_CONST_CHECKS @@ -460,7 +508,11 @@ public: // Creation virtual ~FArray() { +#ifdef OBJEXXFCL_ARRAY_NOALIGN if ( owner_ ) delete[] data_; +#else + if ( owner_ ) del_array(); +#endif } protected: // Assignment: Array @@ -1355,7 +1407,7 @@ public: // Predicate // Contiguous? inline bool - is_contiguous() const + contiguous() const { return true; } @@ -1604,8 +1656,13 @@ public: // Modifier FArray & clear() { +#ifdef OBJEXXFCL_ARRAY_NOALIGN + if ( owner_ ) delete[] data_; +#else + if ( owner_ ) del_array(); +#endif + data_ = nullptr; data_size_ = 0; - if ( owner_ ) delete[] data_; data_ = nullptr; size_ = 0u; #ifdef OBJEXXFCL_PROXY_CONST_CHECKS const_proxy_ = false; @@ -1667,6 +1724,21 @@ public: // Modifier if ( data_ ) std::memcpy( data_, source, std::min( size, size_ ) ); } + // Swap Data of Same Size Arrays + inline + void + data_swap( FArray & v ) + { + using std::swap; + assert( owner_ ); + assert( v.owner_ ); + assert( size_ == v.size_ ); + swap( data_size_, v.data_size_ ); + swap( data_, v.data_ ); + swap( shift_, v.shift_ ); + swap( sdata_, v.sdata_ ); + } + public: // Comparison: Predicate // FArray == Value @@ -2740,9 +2812,15 @@ protected: // Methods assert( owner_ ); assert( size != npos ); if ( ( data_size_ != size ) || ( ! data_ ) ) { - data_size_ = size; - delete[] data_; data_ = new T[ data_size_ ]; // Allocate even if size==0 for consistency with Fortran - size_ = size; +#ifdef OBJEXXFCL_ARRAY_NOALIGN + delete[] data_; + size_ = data_size_ = size; + data_ = new T[ data_size_ ]; // Allocate even if size==0 for consistency with Fortran +#else + del_array(); + size_ = data_size_ = size; + data_ = new_array< T >(); // Allocate even if size==0 for consistency with Fortran +#endif #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); #endif // OBJEXXFCL_FARRAY_SIZE_REPORT @@ -2786,9 +2864,10 @@ protected: // Methods } // Attach Proxy/Argument Array to Const Array + template< int shift > inline void - attach( FArray const & a, int const shift ) + attach( FArray const & a ) { assert( ! owner_ ); data_size_ = a.data_size_; @@ -2802,9 +2881,10 @@ protected: // Methods } // Attach Proxy/Argument Array to Array + template< int shift > inline void - attach( FArray & a, int const shift ) + attach( FArray & a ) { assert( ! owner_ ); data_size_ = a.data_size_; @@ -2818,9 +2898,10 @@ protected: // Methods } // Attach Proxy/Argument Array to Const Tail + template< int shift > inline void - attach( Tail const & s, int const shift ) + attach( Tail const & s ) { assert( ! owner_ ); data_size_ = s.size(); @@ -2834,9 +2915,10 @@ protected: // Methods } // Attach Proxy/Argument Array to Tail + template< int shift > inline void - attach( Tail & s, int const shift ) + attach( Tail & s ) { assert( ! owner_ ); data_size_ = s.size(); @@ -2850,9 +2932,10 @@ protected: // Methods } // Attach Proxy/Argument Array to Const Value + template< int shift > inline void - attach( T const & t, int const shift ) + attach( T const & t ) { assert( ! owner_ ); data_size_ = npos; // Unknown @@ -2866,9 +2949,10 @@ protected: // Methods } // Attach Proxy/Argument Array to Value + template< int shift > inline void - attach( T & t, int const shift ) + attach( T & t ) { assert( ! owner_ ); data_size_ = npos; // Unknown @@ -2946,13 +3030,13 @@ protected: // Methods template< typename V > static int test( ... ); public: enum { value = sizeof( test< T >( 0 ) ) == sizeof( char ) }; - }; // Has_reassign + }; - // Uniform Reassignment + // Initialize template< typename U, class = typename std::enable_if< Has_reassign< U >::value >::type > inline void - reassign( U const & u ) + initialize( U const & u ) { proxy_const_assert( not_const_proxy() ); assert( size_bounded() ); @@ -2961,29 +3045,29 @@ protected: // Methods } } - // Uniform Reassignment + // Initialize template< typename U, class = typename std::enable_if< ! Has_reassign< U >::value >::type, typename = void > inline void - reassign( U const & u ) + initialize( U const & u ) { operator =( u ); } - // Element Reassignment + // Initialize an Element template< typename U, class = typename std::enable_if< Has_reassign< U >::value >::type > inline void - reassign( size_type const i, U const & u ) + initialize( size_type const i, U const & u ) { operator []( i ).reassign( u ); } - // Element Reassignment + // Initialize an Element template< typename U, class = typename std::enable_if< ! Has_reassign< U >::value >::type, typename = void > inline void - reassign( size_type const i, U const & u ) + initialize( size_type const i, U const & u ) { operator []( i ) = u; } @@ -2992,12 +3076,18 @@ protected: // Methods void reconstruct_by_size( size_type const size ) { + assert( owner_ ); +#ifdef OBJEXXFCL_ARRAY_NOALIGN delete[] data_; - data_size_ = size; - size_ = data_size_; + size_ = data_size_ = size; data_ = new T[ data_size_ ]; +#else + del_array(); + size_ = data_size_ = size; + data_ = new_array< T >(); +#endif #if defined(OBJEXXFCL_FARRAY_INIT) || defined(OBJEXXFCL_FARRAY_INIT_DEBUG) - reassign( Traits::initial_array_value() ); + initialize( Traits::initial_array_value() ); #endif // OBJEXXFCL_FARRAY_INIT || OBJEXXFCL_FARRAY_INIT_DEBUG #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT size_report(); @@ -3186,7 +3276,7 @@ protected: // Static Methods return i * multiplier; } -private: // Properties +private: // Methods #ifdef OBJEXXFCL_FARRAY_SIZE_REPORT @@ -3204,6 +3294,82 @@ private: // Properties #endif // OBJEXXFCL_FARRAY_SIZE_REPORT + // Array Heap Allocator for POD Types + template< typename U, class = typename std::enable_if< std::is_fundamental< U >::value >::type > + inline + T * + new_array() + { +#ifdef OBJEXXFCL_ARRAY_NOALIGN + return new T[ data_size_ ]; +#else +#if defined(_WIN32) + return static_cast< T * >( _aligned_malloc( data_size_ * sizeof( T ), OBJEXXFCL_ARRAY_ALIGN ) ); +#elif defined(__linux__) + void * p; + return ( posix_memalign( &p, OBJEXXFCL_ARRAY_ALIGN, data_size_ * sizeof( T ) ) == 0 ? static_cast< T * >( p ) : nullptr ); +#else + return new T[ data_size_ ]; +#endif +#endif + } + + // Array Heap Allocator for Class Types + template< typename U, class = typename std::enable_if< ! std::is_fundamental< U >::value >::type, typename = void > + inline + T * + new_array() + { +#ifdef OBJEXXFCL_ARRAY_NOALIGN + return new T[ data_size_ ]; +#else +#if defined(_WIN32) + T * pT( static_cast< T * >( _aligned_malloc( data_size_ * sizeof( T ), OBJEXXFCL_ARRAY_ALIGN ) ) ); + for ( size_t i = 0; i < data_size_; ++i ) { + pT[ i ] = *( new( pT + i ) T() ); + } + return pT; +#elif defined(__linux__) + void * p; + int const status( posix_memalign( &p, OBJEXXFCL_ARRAY_ALIGN, data_size_ * sizeof( T ) ) ); + if ( status == 0 ) { // Success + T * pT( static_cast< T * >( p ) ); + for ( size_t i = 0; i < data_size_; ++i ) { + pT[ i ] = *( new( pT + i ) T() ); + } + return pT; + } else { + return nullptr; + } +#else + return new T[ data_size_ ]; +#endif +#endif + } + + // Array Heap Destructor + inline + void + del_array() + { + assert( owner_ ); +#ifdef OBJEXXFCL_ARRAY_NOALIGN + delete[] data_; +#else +#if defined(_WIN32) + size_type i( data_size_ ); + while ( i ) data_[ --i ].~T(); + _aligned_free( data_ ); +#elif defined(__linux__) + size_type i( data_size_ ); + while ( i ) data_[ --i ].~T(); + free( data_ ); +#else + delete[] data_; +#endif +#endif + } + public: // Data static size_type const npos = static_cast< size_type >( -1 ); // Unbounded "size" diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray.io.hh index 3df635deaec..245e180e76a 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray.io.hh @@ -75,7 +75,7 @@ LD( FArray< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( std::size_t i = 0; i < n; ++i ) { s.append( fmt::LD( a[ i ] ) ); } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.Project.MArray.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.Project.MArray.hh index 0a8778f7c77..7ac63e192dc 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.Project.MArray.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.Project.MArray.hh @@ -369,17 +369,16 @@ inline MA1c_double CoolCap5() const { return ma( &T::CoolCap5 ); } inline MA1c_double CoolCycleTime() const { return ma( &T::CoolCycleTime ); } inline MA1c_double CoolingDemand() const { return ma( &T::CoolingDemand ); } - inline MA1c_double CoolMixHumRat() const { return ma( &T::CoolMixHumRat ); } - inline MA1c_double CoolMixTemp() const { return ma( &T::CoolMixTemp ); } - inline MA1c_double CoolOutHumRat() const { return ma( &T::CoolOutHumRat ); } - inline MA1c_double CoolOutTemp() const { return ma( &T::CoolOutTemp ); } + inline MA1c_double MixHumRatAtCoolPeak() const { return ma( &T::MixHumRatAtCoolPeak ); } + inline MA1c_double MixTempAtCoolPeak() const { return ma( &T::MixTempAtCoolPeak ); } + inline MA1c_double MassFlowAtCoolPeak() const { return ma( &T::MassFlowAtCoolPeak ); } inline MA1c_double CoolPower1() const { return ma( &T::CoolPower1 ); } inline MA1c_double CoolPower2() const { return ma( &T::CoolPower2 ); } inline MA1c_double CoolPower3() const { return ma( &T::CoolPower3 ); } inline MA1c_double CoolPower4() const { return ma( &T::CoolPower4 ); } inline MA1c_double CoolPower5() const { return ma( &T::CoolPower5 ); } - inline MA1c_double CoolRetHumRat() const { return ma( &T::CoolRetHumRat ); } - inline MA1c_double CoolRetTemp() const { return ma( &T::CoolRetTemp ); } + inline MA1c_double RetHumRatAtCoolPeak() const { return ma( &T::RetHumRatAtCoolPeak ); } + inline MA1c_double RetTempAtCoolPeak() const { return ma( &T::RetTempAtCoolPeak ); } inline MA1c_double CurrentMaxAvail() const { return ma( &T::CurrentMaxAvail ); } inline MA1c_double CurrentMinAvail() const { return ma( &T::CurrentMinAvail ); } inline MA1c_double DCElectProdRate() const { return ma( &T::DCElectProdRate ); } @@ -734,6 +733,7 @@ inline MA1c_double SenCreditToZoneEnergy() const { return ma( &T::SenCreditToZoneEnergy ); } inline MA1c_double SenCreditToZoneRate() const { return ma( &T::SenCreditToZoneRate ); } inline MA1c_double SensCoolCap() const { return ma( &T::SensCoolCap ); } + inline MA1c_double TotCoolCap( ) const { return ma( &T::TotCoolCap ); } inline MA1c_double SensCoolEnergyRate() const { return ma( &T::SensCoolEnergyRate ); } inline MA1c_double SensCoolingEnergy() const { return ma( &T::SensCoolingEnergy ); } inline MA1c_double SensCoolingEnergyRate() const { return ma( &T::SensCoolingEnergyRate ); } @@ -960,17 +960,16 @@ inline MA1_double CoolCap5() { return ma( &T::CoolCap5 ); } inline MA1_double CoolCycleTime() { return ma( &T::CoolCycleTime ); } inline MA1_double CoolingDemand() { return ma( &T::CoolingDemand ); } - inline MA1_double CoolMixHumRat() { return ma( &T::CoolMixHumRat ); } - inline MA1_double CoolMixTemp() { return ma( &T::CoolMixTemp ); } - inline MA1_double CoolOutHumRat() { return ma( &T::CoolOutHumRat ); } - inline MA1_double CoolOutTemp() { return ma( &T::CoolOutTemp ); } + inline MA1_double MixHumRatAtCoolPeak() { return ma( &T::MixHumRatAtCoolPeak ); } + inline MA1_double MixTempAtCoolPeak() { return ma( &T::MixTempAtCoolPeak ); } + inline MA1_double MassFlowAtCoolPeak() { return ma( &T::MassFlowAtCoolPeak ); } inline MA1_double CoolPower1() { return ma( &T::CoolPower1 ); } inline MA1_double CoolPower2() { return ma( &T::CoolPower2 ); } inline MA1_double CoolPower3() { return ma( &T::CoolPower3 ); } inline MA1_double CoolPower4() { return ma( &T::CoolPower4 ); } inline MA1_double CoolPower5() { return ma( &T::CoolPower5 ); } - inline MA1_double CoolRetHumRat() { return ma( &T::CoolRetHumRat ); } - inline MA1_double CoolRetTemp() { return ma( &T::CoolRetTemp ); } + inline MA1_double RetHumRatAtCoolPeak() { return ma( &T::RetHumRatAtCoolPeak ); } + inline MA1_double RetTempAtCoolPeak() { return ma( &T::RetTempAtCoolPeak ); } inline MA1_double CurrentMaxAvail() { return ma( &T::CurrentMaxAvail ); } inline MA1_double CurrentMinAvail() { return ma( &T::CurrentMinAvail ); } inline MA1_double DCElectProdRate() { return ma( &T::DCElectProdRate ); } @@ -1325,6 +1324,7 @@ inline MA1_double SenCreditToZoneEnergy() { return ma( &T::SenCreditToZoneEnergy ); } inline MA1_double SenCreditToZoneRate() { return ma( &T::SenCreditToZoneRate ); } inline MA1_double SensCoolCap() { return ma( &T::SensCoolCap ); } + inline MA1_double TotCoolCap( ) { return ma( &T::TotCoolCap ); } inline MA1_double SensCoolEnergyRate() { return ma( &T::SensCoolEnergyRate ); } inline MA1_double SensCoolingEnergy() { return ma( &T::SensCoolingEnergy ); } inline MA1_double SensCoolingEnergyRate() { return ma( &T::SensCoolingEnergyRate ); } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.hh index e4347835ceb..07aea817035 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.hh @@ -37,9 +37,6 @@ class FArray1 : public FArray< T > private: // Types typedef FArray< T > Super; - typedef FArray1D< T > real_FArray; - typedef FArray1P< T > proxy_FArray; - typedef FArray1A< T > arg_FArray; private: // Friend @@ -90,6 +87,7 @@ public: // Types using Super::data_size_; using Super::sdata_; using Super::shift_; + using Super::size_; #ifdef OBJEXXFCL_PROXY_CONST_CHECKS using Super::not_const_proxy; #endif // OBJEXXFCL_PROXY_CONST_CHECKS @@ -499,7 +497,7 @@ public: // Assignment: Array if ( overlap( a ) ) { // Overlap-safe CArray< T > c( a.size() ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - assert( T( a( i ) ) != T( 0 ) ); + assert( a( i ) != T( 0 ) ); c[ l ] = a( i ); } for ( size_type i = 0; i < c.size(); ++i ) { @@ -565,7 +563,7 @@ public: // Assignment: Array assert( conformable( a ) ); size_type l( 0 ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - assert( T( a( i ) ) != T( 0 ) ); + assert( a( i ) != T( 0 ) ); data_[ l ] /= a( i ); } return *this; @@ -629,7 +627,7 @@ public: // Assignment: Array if ( a.dimensions_initialized() ) { size_type l( 0 ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - assert( T( a( i ) ) != T( 0 ) ); + assert( a( i ) != T( 0 ) ); data_[ l ] /= a( i ); } } @@ -1134,6 +1132,15 @@ public: // Subscript return sdata_[ i ]; } + // Linear Index + inline + size_type + index( int const i ) const + { + assert( dimensions_initialized() ); + return i - shift_; + } + // Const Tail Starting at array( i ) inline Tail const @@ -1153,15 +1160,6 @@ public: // Subscript return Tail( sdata_ + i, ( data_size_ != npos ? data_size_ - ( i - shift_ ) : npos ) ); } - // Linear Index - inline - size_type - index( int const i ) const - { - assert( dimensions_initialized() ); - return i - shift_; - } - public: // Slice Proxy Generators // array( s ) const @@ -1246,7 +1244,7 @@ public: // Predicate bool conformable( FArray1< U > const & a ) const { - return ( size() == a.size() ); + return ( size_ == a.size() ); } // Conformable? @@ -1255,7 +1253,7 @@ public: // Predicate bool conformable( FArray1S< U > const & a ) const { - return ( size() == a.size() ); + return ( size_ == a.size() ); } // Conformable? @@ -1264,7 +1262,7 @@ public: // Predicate bool conformable( MArray1< A, M > const & a ) const { - return ( size() == a.size() ); + return ( size_ == a.size() ); } // Equal Dimensions? @@ -2908,7 +2906,7 @@ protected: // Functions // Swap inline void - swap1DB( FArray1 & v ) + swap1( FArray1 & v ) { swapB( v ); } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.io.hh index 5126fc4cfbd..9a495f63699 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1.io.hh @@ -46,11 +46,11 @@ operator <<( std::ostream & stream, FArray1< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i = a.l(), e = a.u(); i < e; ++i ) { stream << setw( w ) << a( i ) << ' '; if ( ! stream ) break; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1A.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1A.hh index 9e5e72cbc2f..cbfbe5813ef 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1A.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1A.hh @@ -27,9 +27,6 @@ class FArray1A : public FArray1< T > private: // Types typedef FArray1< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::ProxySentinel ProxySentinel; public: // Types @@ -89,7 +86,7 @@ public: // Creation // Real Constructor inline - FArray1A( real_FArray const & a ) : + FArray1A( FArray1D< T > const & a ) : Super( a, ProxySentinel() ), I_( a.I_ ) { @@ -98,7 +95,7 @@ public: // Creation // Proxy Constructor inline - FArray1A( proxy_FArray const & a ) : + FArray1A( FArray1P< T > const & a ) : Super( a, ProxySentinel() ), I_( a.I_ ) { @@ -152,7 +149,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray1A( real_FArray const & a, IR const & I ) : + FArray1A( FArray1D< T > const & a, IR const & I ) : Super( a, ProxySentinel() ), I_( I ) { @@ -161,7 +158,7 @@ public: // Creation // Proxy + IndexRange Constructor inline - FArray1A( proxy_FArray const & a, IR const & I ) : + FArray1A( FArray1P< T > const & a, IR const & I ) : Super( a, ProxySentinel() ), I_( I ) { @@ -217,7 +214,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray1A( real_FArray & a ) : + FArray1A( FArray1D< T > & a ) : Super( a, ProxySentinel() ), I_( a.I_ ) { @@ -226,7 +223,7 @@ public: // Creation // Non-Const Proxy Constructor inline - FArray1A( proxy_FArray & a ) : + FArray1A( FArray1P< T > & a ) : Super( a, ProxySentinel() ), I_( a.I_ ) { @@ -280,7 +277,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray1A( real_FArray & a, IR const & I ) : + FArray1A( FArray1D< T > & a, IR const & I ) : Super( a, ProxySentinel() ), I_( I ) { @@ -289,7 +286,7 @@ public: // Creation // Non-Const Proxy + IndexRange Constructor inline - FArray1A( proxy_FArray & a, IR const & I ) : + FArray1A( FArray1P< T > & a, IR const & I ) : Super( a, ProxySentinel() ), I_( I ) { @@ -978,6 +975,14 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i ) const + { + return ( i - shift_ ); + } + // Const Tail Starting at array( i ) inline Tail const @@ -997,14 +1002,6 @@ public: // Subscript return Tail( sdata_ + i, ( data_size_ != npos ? data_size_ - ( i - shift_ ) : npos ) ); } - // Linear Index - inline - size_type - index( int const i ) const - { - return ( i - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1172,7 +1169,7 @@ public: // Modifier // Attach to Real Array inline FArray1A & - attach( real_FArray const & a ) + attach( FArray1D< T > const & a ) { Base::attach( a ); I_.assign_value_of( a.I_ ); @@ -1182,7 +1179,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray1A & - attach( real_FArray & a ) + attach( FArray1D< T > & a ) { Base::attach( a ); I_.assign_value_of( a.I_ ); @@ -1192,7 +1189,7 @@ public: // Modifier // Attach to Proxy Array inline FArray1A & - attach( proxy_FArray const & a ) + attach( FArray1P< T > const & a ) { Base::attach( a ); I_.assign_value_of( a.I_ ); @@ -1202,7 +1199,7 @@ public: // Modifier // Attach to Non-Const Proxy Array inline FArray1A & - attach( proxy_FArray & a ) + attach( FArray1P< T > & a ) { Base::attach( a ); I_.assign_value_of( a.I_ ); @@ -1234,7 +1231,7 @@ public: // Modifier FArray1A & attach( Base const & a ) { - Base::attach( a, 1 ); + Base::attach< 1 >( a ); I_ = a.size(); return *this; } @@ -1244,7 +1241,7 @@ public: // Modifier FArray1A & attach( Base & a ) { - Base::attach( a, 1 ); + Base::attach< 1 >( a ); I_ = a.size(); return *this; } @@ -1254,7 +1251,7 @@ public: // Modifier FArray1A & attach( Tail const & s ) { - Base::attach( s, 1 ); + Base::attach< 1 >( s ); I_ = s.size(); return *this; } @@ -1264,7 +1261,7 @@ public: // Modifier FArray1A & attach( Tail & s ) { - Base::attach( s, 1 ); + Base::attach< 1 >( s ); I_ = s.size(); return *this; } @@ -1274,7 +1271,7 @@ public: // Modifier FArray1A & attach( T const & t ) { - Base::attach( t, 1 ); + Base::attach< 1 >( t ); I_ = star; // Unbounded return *this; } @@ -1284,7 +1281,7 @@ public: // Modifier FArray1A & attach( T & t ) { - Base::attach( t, 1 ); + Base::attach< 1 >( t ); I_ = star; // Unbounded return *this; } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1D.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1D.hh index 67d11d7dcf2..7b5dbe63f7a 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1D.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1D.hh @@ -30,9 +30,6 @@ class FArray1D : public FArray1< T >, public ObserverMulti private: // Types typedef FArray1< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::InitializerSentinel InitializerSentinel; private: // Friend @@ -70,15 +67,15 @@ public: // Types typedef typename Initializer::Function InitializerFunction; using Super::conformable; + using Super::initialize; using Super::isize1; using Super::l; using Super::operator (); - using Super::reassign; using Super::resize; using Super::shift_set; using Super::size1; using Super::size_of; - using Super::swap1DB; + using Super::swap1; using Super::u; using Super::data_; using Super::data_size_; @@ -139,7 +136,7 @@ public: // Creation if ( dimensions_initialized() ) { size_type l( 0 ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - reassign( l, a( i ) ); + initialize( l, a( i ) ); } } insert_as_observer(); @@ -158,7 +155,7 @@ public: // Creation if ( a.dimensions_initialized() ) { size_type l( 0 ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - reassign( l, a( i ) ); + initialize( l, a( i ) ); } } } @@ -271,7 +268,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -291,7 +288,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -441,7 +438,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -481,7 +478,7 @@ public: // Creation assert( conformable( a ) ); size_type l( 0 ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - reassign( l, a( i ) ); + initialize( l, a( i ) ); } } insert_as_observer(); @@ -500,7 +497,7 @@ public: // Creation assert( conformable( a ) ); size_type l( 0 ); for ( int i = 1, e = a.u(); i <= e; ++i, ++l ) { - reassign( l, a( i ) ); + initialize( l, a( i ) ); } } } @@ -519,7 +516,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -538,7 +535,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -557,7 +554,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -1328,30 +1325,12 @@ public: // Assignment: Value public: // Subscript - // Const Tail Starting at array( i ) - inline - Tail const - a( int const i ) const - { - assert( I_.contains( i ) ); - return Tail( static_cast< T const * >( sdata_ + i ), data_size_ - ( i - shift_ ) ); - } - - // Tail Starting at array( i ) - inline - Tail - a( int const i ) - { - assert( I_.contains( i ) ); - return Tail( sdata_ + i, data_size_ - ( i - shift_ ) ); - } - // Linear Index inline size_type index( int const i ) const { - assert( I_.initialized() ); + assert( dimensions_initialized() ); return ( i - shift_ ); } @@ -1373,6 +1352,24 @@ public: // Subscript return data_[ i ]; } + // Const Tail Starting at array( i ) + inline + Tail const + a( int const i ) const + { + assert( contains( i ) ); + return Tail( static_cast< T const * >( sdata_ + i ), data_size_ - ( i - shift_ ) ); + } + + // Tail Starting at array( i ) + inline + Tail + a( int const i ) + { + assert( contains( i ) ); + return Tail( sdata_ + i, data_size_ - ( i - shift_ ) ); + } + public: // Predicate // Dimensions Initialized? @@ -1621,32 +1618,30 @@ public: // Modifier FArray1D & redimension( IR const & I, T const & t ) { - if ( dimensions_initialized() ) { - if ( I.initialized() ) { - FArray1D o( I ); - auto const l_( l() ); - auto const I_l_( I.l() ); - auto const l_max_( std::max( l_, I_l_ ) ); - auto const u_( u() ); - auto const I_u_( I.u() ); - auto const u_min_( std::min( u_, I_u_ ) ); - if ( I_l_ < l_ ) { - for ( int i = I_l_, e = std::min( l_ - 1, I_u_ ); i <= e; ++i ) { // Fill new lower elements - o( i ) = t; - } + if ( dimensions_initialized() && I.initialized() ) { + FArray1D o( I ); + auto const l_( l() ); + auto const I_l_( I.l() ); + auto const l_max_( std::max( l_, I_l_ ) ); + auto const u_( u() ); + auto const I_u_( I.u() ); + auto const u_min_( std::min( u_, I_u_ ) ); + if ( I_l_ < l_ ) { + for ( int i = I_l_, e = std::min( l_ - 1, I_u_ ); i <= e; ++i ) { // Fill new lower elements + o( i ) = t; } - if ( l_max_ <= u_min_ ) { // Ranges overlap - for ( int i = l_max_; i <= u_min_; ++i ) { // Copy array data in overlap - o( i ) = operator ()( i ); - } + } + if ( l_max_ <= u_min_ ) { // Ranges overlap + for ( int i = l_max_; i <= u_min_; ++i ) { // Copy array data in overlap + o( i ) = operator ()( i ); } - if ( u_ < I_u_ ) { - for ( int i = std::max( u_ + 1, I_l_ ); i <= I_u_; ++i ) { // Fill new upper elements - o( i ) = t; - } + } + if ( u_ < I_u_ ) { + for ( int i = std::max( u_ + 1, I_l_ ); i <= I_u_; ++i ) { // Fill new upper elements + o( i ) = t; } - return swap( o ); } + return swap( o ); } FArray1D o( I, t ); return swap( o ); @@ -1742,7 +1737,7 @@ public: // Modifier { if ( ( initializer_.is_active() ) && ( dimensions_initialized() ) ) { if ( initializer_.is_value() ) { - reassign( initializer_.value() ); + initialize( initializer_.value() ); } else if ( initializer_.is_function() ) { initializer_.function()( *this ); } @@ -1756,7 +1751,7 @@ public: // Modifier swap( FArray1D & v ) { using std::swap; - swap1DB( v ); + swap1( v ); I_.swap_no_notify( v.I_ ); swap( initializer_, v.initializer_ ); notify(); // So proxy FArrays can reattach @@ -1797,7 +1792,7 @@ protected: // Functions private: // Functions - // Setup for IndexRange Constructor + // Set Up for IndexRange Constructor inline void setup_real() @@ -2162,7 +2157,7 @@ operator ==( FArray1S< T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) == b[ l ] ); } @@ -2177,7 +2172,7 @@ operator !=( FArray1S< T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) != b[ l ] ); } @@ -2192,7 +2187,7 @@ operator <( FArray1S< T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) < b[ l ] ); } @@ -2207,7 +2202,7 @@ operator <=( FArray1S< T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) <= b[ l ] ); } @@ -2222,7 +2217,7 @@ operator >( FArray1S< T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) > b[ l ] ); } @@ -2237,7 +2232,7 @@ operator >=( FArray1S< T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) >= b[ l ] ); } @@ -2524,7 +2519,7 @@ operator ==( MArray1< A, T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) == b[ l ] ); } @@ -2539,7 +2534,7 @@ operator !=( MArray1< A, T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) != b[ l ] ); } @@ -2554,7 +2549,7 @@ operator <( MArray1< A, T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) < b[ l ] ); } @@ -2569,7 +2564,7 @@ operator <=( MArray1< A, T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) <= b[ l ] ); } @@ -2584,7 +2579,7 @@ operator >( MArray1< A, T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) > b[ l ] ); } @@ -2599,7 +2594,7 @@ operator >=( MArray1< A, T > const & a, FArray1< T > const & b ) { assert( conformable( a, b ) ); FArray1D< bool > r( FArray1D< bool >::shape( a ) ); - typename FArray1< T >::size_type l( 0 ); + FArray1D< bool >::size_type l( 0 ); for ( int i = 1, e = r.u(); i <= e; ++i, ++l ) { r( i ) = ( a( i ) >= b[ l ] ); } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1P.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1P.hh index 94708254f81..a04a3bfd283 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1P.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1P.hh @@ -29,8 +29,6 @@ class FArray1P : public FArray1< T >, public ObserverMulti private: // Types typedef FArray1< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; typedef internal::ProxySentinel ProxySentinel; private: // Friend @@ -100,7 +98,7 @@ public: // Creation // Real Constructor inline - FArray1P( real_FArray const & a ) : + FArray1P( FArray1D< T > const & a ) : Super( a, ProxySentinel() ), I_( a.I_ ), source_( &a ) @@ -166,7 +164,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray1P( real_FArray const & a, IR const & I ) : + FArray1P( FArray1D< T > const & a, IR const & I ) : Super( a, ProxySentinel() ), I_( I ), source_( &a ) @@ -235,7 +233,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray1P( real_FArray & a ) : + FArray1P( FArray1D< T > & a ) : Super( a, ProxySentinel() ), I_( a.I_ ), source_( &a ) @@ -301,7 +299,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray1P( real_FArray & a, IR const & I ) : + FArray1P( FArray1D< T > & a, IR const & I ) : Super( a, ProxySentinel() ), I_( I ), source_( &a ) @@ -1002,6 +1000,15 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i ) const + { + assert( I_.initialized() ); + return ( i - shift_ ); + } + // Const Tail Starting at array( i ) inline Tail const @@ -1021,15 +1028,6 @@ public: // Subscript return Tail( sdata_ + i, ( data_size_ != npos ? data_size_ - ( i - shift_ ) : npos ) ); } - // Linear Index - inline - size_type - index( int const i ) const - { - assert( I_.initialized() ); - return ( i - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1204,7 +1202,7 @@ public: // Modifier // Attach to Real Array inline FArray1P & - attach( real_FArray const & a ) + attach( FArray1D< T > const & a ) { Base::attach( a ); I_ = a.I_; @@ -1217,7 +1215,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray1P & - attach( real_FArray & a ) + attach( FArray1D< T > & a ) { Base::attach( a ); I_ = a.I_; @@ -1258,7 +1256,7 @@ public: // Modifier FArray1P & attach( Base const & a ) { - Base::attach( a, 1 ); + Base::attach< 1 >( a ); I_ = a.size(); if ( source_ ) source_->remove_observer( *this ); source_ = dynamic_cast< SubjectMulti const * >( &a ); @@ -1271,7 +1269,7 @@ public: // Modifier FArray1P & attach( Base & a ) { - Base::attach( a, 1 ); + Base::attach< 1 >( a ); I_ = a.size(); if ( source_ ) source_->remove_observer( *this ); source_ = dynamic_cast< SubjectMulti const * >( &a ); @@ -1284,7 +1282,7 @@ public: // Modifier FArray1P & attach( Tail const & s ) { - Base::attach( s, 1 ); + Base::attach< 1 >( s ); I_ = s.size(); if ( source_ ) source_->remove_observer( *this ); source_ = 0; @@ -1296,7 +1294,7 @@ public: // Modifier FArray1P & attach( Tail & s ) { - Base::attach( s, 1 ); + Base::attach< 1 >( s ); I_ = s.size(); if ( source_ ) source_->remove_observer( *this ); source_ = 0; @@ -1308,7 +1306,7 @@ public: // Modifier FArray1P & attach( T const & t ) { - Base::attach( t, 1 ); + Base::attach< 1 >( t ); I_ = star; // Unbounded if ( source_ ) source_->remove_observer( *this ); source_ = 0; @@ -1320,7 +1318,7 @@ public: // Modifier FArray1P & attach( T & t ) { - Base::attach( t, 1 ); + Base::attach< 1 >( t ); I_ = star; // Unbounded if ( source_ ) source_->remove_observer( *this ); source_ = 0; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.hh index b3fc69c8016..4827b08aa23 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.hh @@ -348,7 +348,7 @@ public: // Assignment: Array assert( conformable( a ) ); if ( a.dimensions_initialized() ) { for ( int i = 1; i <= u_; ++i ) { - assert( T( a( i ) ) != T( 0 ) ); + assert( a( i ) != T( 0 ) ); operator ()( i ) /= a( i ); } } @@ -496,7 +496,7 @@ public: // Assignment: Array { assert( conformable( a ) ); for ( int i = 1, j = a.l(); i <= u_; ++i, ++j ) { - assert( T( a( j ) ) != T( 0 ) ); + assert( a( j ) != T( 0 ) ); operator ()( i ) /= a( j ); } return *this; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.io.hh index 82616fd5357..03bddab2de3 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray1S.io.hh @@ -46,11 +46,11 @@ operator <<( std::ostream & stream, FArray1S< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i = 1, e = a.u(); i < e; ++i ) { stream << setw( w ) << a( i ) << ' '; if ( ! stream ) break; @@ -114,7 +114,7 @@ LD( FArray1S< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i = 1, e = a.u(); i <= e; ++i ) { s.append( fmt::LD( a( i ) ) ); } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.hh index 46159cf2b11..0070803b6a4 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.hh @@ -35,9 +35,6 @@ class FArray2 : public FArray< T > private: // Types typedef FArray< T > Super; - typedef FArray2D< T > real_FArray; - typedef FArray2P< T > proxy_FArray; - typedef FArray2A< T > arg_FArray; private: // Friend @@ -88,6 +85,7 @@ public: // Types using Super::data_size_; using Super::sdata_; using Super::shift_; + using Super::size_; #ifdef OBJEXXFCL_PROXY_CONST_CHECKS using Super::not_const_proxy; #endif // OBJEXXFCL_PROXY_CONST_CHECKS @@ -527,7 +525,7 @@ public: // Assignment: Array size_type l( 0 ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2 ) ) != T( 0 ) ); + assert( a( i1, i2 ) != T( 0 ) ); data_[ l ] /= a( i1, i2 ); } } @@ -599,7 +597,7 @@ public: // Assignment: Array size_type l( 0 ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2 ) ) != T( 0 ) ); + assert( a( i1, i2 ) != T( 0 ) ); data_[ l ] /= a( i1, i2 ); } } @@ -821,6 +819,15 @@ public: // Subscript return sdata_[ ( i2 * z1_ ) + i1 ]; } + // Linear Index + inline + size_type + index( int const i1, int const i2 ) const + { + assert( dimensions_initialized() ); + return ( ( i2 * z1_ ) + i1 ) - shift_; + } + // Const Tail Starting at array( i1, i2 ) inline Tail const @@ -842,15 +849,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2 ) const - { - assert( dimensions_initialized() ); - return ( ( i2 * z1_ ) + i1 ) - shift_; - } - public: // Slice Proxy Generators // array( s1, s2 ) const @@ -933,7 +931,7 @@ public: // Predicate bool conformable( FArray2< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) ); + return ( ( z1_ == a.z1_ ) && ( size2() == a.size2() ) ); } // Conformable? @@ -942,7 +940,7 @@ public: // Predicate bool conformable( FArray2S< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) ); + return ( ( z1_ == a.size1() ) && ( size2() == a.size2() ) ); } // Conformable? @@ -951,7 +949,7 @@ public: // Predicate bool conformable( MArray2< A, M > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) ); + return ( ( z1_ == a.size1() ) && ( size2() == a.size2() ) ); } // Equal Dimensions? @@ -1101,12 +1099,12 @@ public: // Inspector { switch ( d ) { case 1: - return size1(); + return z1_; case 2: return size2(); default: assert( false ); - return size1(); + return z1_; } } @@ -1213,7 +1211,7 @@ public: // Modifier FArray2 & A( *this ); // Shorthand name A = T( 0 ); // Zero the array T const One( T( 1 ) ); - for ( size_type l = 0, l_end = size(), l_inc = z1_ + 1; l < l_end; l += l_inc ) { + for ( size_type l = 0, l_inc = z1_ + 1; l < size_; l += l_inc ) { A[ l ] = One; } return *this; @@ -1228,7 +1226,7 @@ public: // Modifier assert( square() ); FArray2 & A( *this ); // Shorthand name A = T( 0 ); // Zero the array - for ( size_type l = 0, l_end = size(), l_inc = z1_ + 1; l < l_end; l += l_inc ) { + for ( size_type l = 0, l_inc = z1_ + 1; l < size_; l += l_inc ) { A[ l ] = d; } return *this; @@ -1242,7 +1240,7 @@ public: // Modifier proxy_const_assert( not_const_proxy() ); assert( square() ); FArray2 & A( *this ); // Shorthand name - for ( size_type l = 0, l_end = size(), l_inc = z1_ + 1; l < l_end; l += l_inc ) { + for ( size_type l = 0, l_inc = z1_ + 1; l < size_; l += l_inc ) { A[ l ] = d; } return *this; @@ -1272,24 +1270,23 @@ public: // Modifier right_multiply_by( FArray2< U > const & a ) { proxy_const_assert( not_const_proxy() ); - size_type const s1( z1_ ); size_type const s2( size2() ); - size_type const s( s1 * s2 ); - size_type const as1( a.size1() ); + size_type const s( z1_ * s2 ); + size_type const as1( a.z1_ ); size_type const as2( a.size2() ); assert( s2 == as1 ); assert( as1 == as2 ); // Square so that this array's dimensions aren't changed FArray2 & t( *this ); // Shorthand name for this array T * const r( new T[ s2 ] ); // Temporary row - for ( size_type i = 0; i < s1; ++i ) { + for ( size_type i = 0; i < z1_; ++i ) { for ( size_type j = 0, la = 0; j < as2; ++j ) { T d( 0 ); - for ( size_type lt = i; lt < s; lt += s1, ++la ) { + for ( size_type lt = i; lt < s; lt += z1_, ++la ) { d += t[ lt ] * a[ la ]; } r[ j ] = d; } - for ( size_type l = 0, lt = i; l < s2; ++l, lt += s1 ) { // Copy in the new row + for ( size_type l = 0, lt = i; l < s2; ++l, lt += z1_ ) { // Copy in the new row t[ lt ] = r[ l ]; } } @@ -1304,24 +1301,23 @@ public: // Modifier right_multiply_by_transpose( FArray2< U > const & a ) { proxy_const_assert( not_const_proxy() ); - size_type const s1( z1_ ); size_type const s2( size2() ); - size_type const s( s1 * s2 ); - size_type const as1( a.size1() ); + size_type const s( z1_ * s2 ); + size_type const as1( a.z1_ ); size_type const as2( a.size2() ); assert( s2 == as2 ); assert( as1 == as2 ); // Square so that this array's dimensions aren't changed FArray2 & t( *this ); // Shorthand name for this array T * const r( new T[ s2 ] ); // Temporary row - for ( size_type i = 0; i < s1; ++i ) { + for ( size_type i = 0; i < z1_; ++i ) { for ( size_type j = 0; j < as1; ++j ) { T d( 0 ); - for ( size_type lt = i, la = j; lt < s; lt += s1, la += as1 ) { + for ( size_type lt = i, la = j; lt < s; lt += z1_, la += as1 ) { d += t[ lt ] * a[ la ]; } r[ j ] = d; } - for ( size_type l = 0, lt = i; l < s2; ++l, lt += s1 ) { // Copy in the new row + for ( size_type l = 0, lt = i; l < s2; ++l, lt += z1_ ) { // Copy in the new row t[ lt ] = r[ l ]; } } @@ -2831,7 +2827,7 @@ protected: // Functions // Swap inline void - swap2DB( FArray2 & v ) + swap2( FArray2 & v ) { swapB( v ); std::swap( z1_, v.z1_ ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.io.hh index 9ca7f32cf2e..f9edbc1c210 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2.io.hh @@ -48,11 +48,11 @@ operator <<( std::ostream & stream, FArray2< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = a.l1(), e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = a.l2(), e2 = a.u2(); i2 < e2; ++i2 ) { stream << setw( w ) << a( i1, i2 ) << ' '; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2A.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2A.hh index 867f859a669..01250db096e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2A.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2A.hh @@ -27,9 +27,6 @@ class FArray2A : public FArray2< T > private: // Types typedef FArray2< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::ProxySentinel ProxySentinel; public: // Types @@ -93,7 +90,7 @@ public: // Creation // Real Constructor inline - FArray2A( real_FArray const & a ) : + FArray2A( FArray2D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ) @@ -104,7 +101,7 @@ public: // Creation // Proxy Constructor inline - FArray2A( proxy_FArray const & a ) : + FArray2A( FArray2P< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ) @@ -169,7 +166,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray2A( real_FArray const & a, IR const & I1, IR const & I2 ) : + FArray2A( FArray2D< T > const & a, IR const & I1, IR const & I2 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ) @@ -179,7 +176,7 @@ public: // Creation // Proxy + IndexRange Constructor inline - FArray2A( proxy_FArray const & a, IR const & I1, IR const & I2 ) : + FArray2A( FArray2P< T > const & a, IR const & I1, IR const & I2 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ) @@ -242,7 +239,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray2A( real_FArray & a ) : + FArray2A( FArray2D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ) @@ -253,7 +250,7 @@ public: // Creation // Non-Const Proxy Constructor inline - FArray2A( proxy_FArray & a ) : + FArray2A( FArray2P< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ) @@ -318,7 +315,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray2A( real_FArray & a, IR const & I1, IR const & I2 ) : + FArray2A( FArray2D< T > & a, IR const & I1, IR const & I2 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ) @@ -328,7 +325,7 @@ public: // Creation // Non-Const Proxy + IndexRange Constructor inline - FArray2A( proxy_FArray & a, IR const & I1, IR const & I2 ) : + FArray2A( FArray2P< T > & a, IR const & I1, IR const & I2 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ) @@ -682,6 +679,14 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2 ) const + { + return ( ( ( i2 * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2 ) inline Tail const @@ -703,14 +708,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2 ) const - { - return ( ( ( i2 * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -885,7 +882,7 @@ public: // Modifier // Attach to Real Array inline FArray2A & - attach( real_FArray const & a ) + attach( FArray2D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -897,7 +894,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray2A & - attach( real_FArray & a ) + attach( FArray2D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -909,7 +906,7 @@ public: // Modifier // Attach to Proxy Array inline FArray2A & - attach( proxy_FArray const & a ) + attach( FArray2P< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -921,7 +918,7 @@ public: // Modifier // Attach to Non-Const Proxy Array inline FArray2A & - attach( proxy_FArray & a ) + attach( FArray2P< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -959,7 +956,7 @@ public: // Modifier FArray2A & attach( Base const & a ) { - Base::attach( a, 2 ); + Base::attach< 2 >( a ); z1_ = 1; I1_ = 1; I2_ = a.isize(); @@ -971,7 +968,7 @@ public: // Modifier FArray2A & attach( Base & a ) { - Base::attach( a, 2 ); + Base::attach< 2 >( a ); z1_ = 1; I1_ = 1; I2_ = a.isize(); @@ -983,7 +980,7 @@ public: // Modifier FArray2A & attach( Tail const & s ) { - Base::attach( s, 2 ); + Base::attach< 2 >( s ); z1_ = 1; I1_ = 1; I2_ = s.isize(); @@ -995,7 +992,7 @@ public: // Modifier FArray2A & attach( Tail & s ) { - Base::attach( s, 2 ); + Base::attach< 2 >( s ); z1_ = 1; I1_ = 1; I2_ = s.isize(); @@ -1007,7 +1004,7 @@ public: // Modifier FArray2A & attach( T const & t ) { - Base::attach( t, 2 ); + Base::attach< 2 >( t ); z1_ = 1; I1_ = 1; I2_ = star; // Unbounded @@ -1019,7 +1016,7 @@ public: // Modifier FArray2A & attach( T & t ) { - Base::attach( t, 2 ); + Base::attach< 2 >( t ); z1_ = 1; I1_ = 1; I2_ = star; // Unbounded diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2D.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2D.hh index 50303f7a0c5..82b268f3af3 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2D.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2D.hh @@ -30,9 +30,6 @@ class FArray2D : public FArray2< T >, public ObserverMulti private: // Types typedef FArray2< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::InitializerSentinel InitializerSentinel; private: // Friend @@ -70,17 +67,17 @@ public: // Types typedef typename Initializer::Function InitializerFunction; using Super::conformable; + using Super::initialize; using Super::isize1; using Super::isize2; using Super::l; using Super::operator (); - using Super::reassign; using Super::resize; using Super::shift_set; using Super::size1; using Super::size2; using Super::size_of; - using Super::swap2DB; + using Super::swap2; using Super::u; using Super::data_; using Super::data_size_; @@ -147,7 +144,7 @@ public: // Creation size_type l( 0 ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2 ) ); + initialize( l, a( i1, i2 ) ); } } } @@ -169,7 +166,7 @@ public: // Creation size_type l( 0 ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2 ) ); + initialize( l, a( i1, i2 ) ); } } } @@ -292,7 +289,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -335,7 +332,7 @@ public: // Creation size_type l( 0 ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2 ) ); + initialize( l, a( i1, i2 ) ); } } } @@ -357,7 +354,7 @@ public: // Creation size_type l( 0 ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2 ) ); + initialize( l, a( i1, i2 ) ); } } } @@ -378,7 +375,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -398,7 +395,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -418,7 +415,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -861,32 +858,12 @@ public: // Assignment: Value public: // Subscript - // Const Tail Starting at array( i1, i2 ) - inline - Tail const - a( int const i1, int const i2 ) const - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) ); - size_type const offset( ( ( i2 * z1_ ) + i1 ) - shift_ ); - return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); - } - - // Tail Starting at array( i1, i2 ) - inline - Tail - a( int const i1, int const i2 ) - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) ); - size_type const offset( ( ( i2 * z1_ ) + i1 ) - shift_ ); - return Tail( data_ + offset, data_size_ - offset ); - } - // Linear Index inline size_type index( int const i1, int const i2 ) const { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) ); + assert( dimensions_initialized() ); return ( ( ( i2 * z1_ ) + i1 ) - shift_ ); } @@ -908,6 +885,26 @@ public: // Subscript return data_[ i ]; } + // Const Tail Starting at array( i1, i2 ) + inline + Tail const + a( int const i1, int const i2 ) const + { + assert( contains( i1, i2 ) ); + size_type const offset( ( ( i2 * z1_ ) + i1 ) - shift_ ); + return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); + } + + // Tail Starting at array( i1, i2 ) + inline + Tail + a( int const i1, int const i2 ) + { + assert( contains( i1, i2 ) ); + size_type const offset( ( ( i2 * z1_ ) + i1 ) - shift_ ); + return Tail( data_ + offset, data_size_ - offset ); + } + public: // Predicate // Dimensions Initialized? @@ -1280,7 +1277,7 @@ public: // Modifier { if ( ( initializer_.is_active() ) && ( dimensions_initialized() ) ) { if ( initializer_.is_value() ) { - reassign( initializer_.value() ); + initialize( initializer_.value() ); } else if ( initializer_.is_function() ) { initializer_.function()( *this ); } @@ -1294,7 +1291,7 @@ public: // Modifier swap( FArray2D & v ) { using std::swap; - swap2DB( v ); + swap2( v ); I1_.swap_no_notify( v.I1_ ); I2_.swap_no_notify( v.I2_ ); swap( initializer_, v.initializer_ ); @@ -1337,7 +1334,7 @@ protected: // Functions private: // Functions - // Setup for IndexRange Constructor + // Set Up for IndexRange Constructor inline void setup_real() @@ -1623,9 +1620,10 @@ operator ==( FArray2S< T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) == b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) == b( i1, i2 ) ); } } return r; @@ -1639,9 +1637,10 @@ operator !=( FArray2S< T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) != b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) != b( i1, i2 ) ); } } return r; @@ -1655,9 +1654,10 @@ operator <( FArray2S< T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) < b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) < b( i1, i2 ) ); } } return r; @@ -1671,9 +1671,10 @@ operator <=( FArray2S< T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) <= b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) <= b( i1, i2 ) ); } } return r; @@ -1687,9 +1688,10 @@ operator >( FArray2S< T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) > b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) > b( i1, i2 ) ); } } return r; @@ -1703,9 +1705,10 @@ operator >=( FArray2S< T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) >= b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) >= b( i1, i2 ) ); } } return r; @@ -1719,10 +1722,10 @@ operator ==( FArray2S< T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) == b[ l ] ); + r[ l ] = ( a( i1, i2 ) == b[ l ] ); } } return r; @@ -1736,10 +1739,10 @@ operator !=( FArray2S< T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) != b[ l ] ); + r[ l ] = ( a( i1, i2 ) != b[ l ] ); } } return r; @@ -1753,10 +1756,10 @@ operator <( FArray2S< T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) < b[ l ] ); + r[ l ] = ( a( i1, i2 ) < b[ l ] ); } } return r; @@ -1770,10 +1773,10 @@ operator <=( FArray2S< T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2 ) <= b[ l ] ); } } return r; @@ -1787,10 +1790,10 @@ operator >( FArray2S< T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) > b[ l ] ); + r[ l ] = ( a( i1, i2 ) > b[ l ] ); } } return r; @@ -1804,10 +1807,10 @@ operator >=( FArray2S< T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2 ) >= b[ l ] ); } } return r; @@ -1874,9 +1877,10 @@ FArray2D< bool > operator ==( FArray2S< T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) == t ); } } return r; @@ -1889,9 +1893,10 @@ FArray2D< bool > operator !=( FArray2S< T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) != t ); } } return r; @@ -1904,9 +1909,10 @@ FArray2D< bool > operator <( FArray2S< T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) < t ); } } return r; @@ -1919,9 +1925,10 @@ FArray2D< bool > operator <=( FArray2S< T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) <= t ); } } return r; @@ -1934,9 +1941,10 @@ FArray2D< bool > operator >( FArray2S< T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) > t ); } } return r; @@ -1949,9 +1957,10 @@ FArray2D< bool > operator >=( FArray2S< T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) >= t ); } } return r; @@ -2021,9 +2030,10 @@ operator ==( MArray2< A, T > const & a, MArray2< A, T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) == b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) == b( i1, i2 ) ); } } return r; @@ -2037,9 +2047,10 @@ operator !=( MArray2< A, T > const & a, MArray2< A, T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) != b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) != b( i1, i2 ) ); } } return r; @@ -2053,9 +2064,10 @@ operator <( MArray2< A, T > const & a, MArray2< A, T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) < b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) < b( i1, i2 ) ); } } return r; @@ -2069,9 +2081,10 @@ operator <=( MArray2< A, T > const & a, MArray2< A, T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) <= b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) <= b( i1, i2 ) ); } } return r; @@ -2085,9 +2098,10 @@ operator >( MArray2< A, T > const & a, MArray2< A, T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) > b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) > b( i1, i2 ) ); } } return r; @@ -2101,9 +2115,10 @@ operator >=( MArray2< A, T > const & a, MArray2< A, T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) >= b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) >= b( i1, i2 ) ); } } return r; @@ -2117,10 +2132,10 @@ operator ==( MArray2< A, T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) == b[ l ] ); + r[ l ] = ( a( i1, i2 ) == b[ l ] ); } } return r; @@ -2134,10 +2149,10 @@ operator !=( MArray2< A, T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) != b[ l ] ); + r[ l ] = ( a( i1, i2 ) != b[ l ] ); } } return r; @@ -2151,10 +2166,10 @@ operator <( MArray2< A, T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) < b[ l ] ); + r[ l ] = ( a( i1, i2 ) < b[ l ] ); } } return r; @@ -2168,10 +2183,10 @@ operator <=( MArray2< A, T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2 ) <= b[ l ] ); } } return r; @@ -2185,10 +2200,10 @@ operator >( MArray2< A, T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) > b[ l ] ); + r[ l ] = ( a( i1, i2 ) > b[ l ] ); } } return r; @@ -2202,10 +2217,10 @@ operator >=( MArray2< A, T > const & a, FArray2< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); - typename FArray2< T >::size_type l( 0 ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2 ) = ( a( i1, i2 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2 ) >= b[ l ] ); } } return r; @@ -2273,9 +2288,10 @@ operator ==( MArray2< A, T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) == b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) == b( i1, i2 ) ); } } return r; @@ -2289,9 +2305,10 @@ operator !=( MArray2< A, T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) != b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) != b( i1, i2 ) ); } } return r; @@ -2305,9 +2322,10 @@ operator <( MArray2< A, T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) < b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) < b( i1, i2 ) ); } } return r; @@ -2321,9 +2339,10 @@ operator <=( MArray2< A, T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) <= b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) <= b( i1, i2 ) ); } } return r; @@ -2337,9 +2356,10 @@ operator >( MArray2< A, T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) > b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) > b( i1, i2 ) ); } } return r; @@ -2353,9 +2373,10 @@ operator >=( MArray2< A, T > const & a, FArray2S< T > const & b ) { assert( conformable( a, b ) ); FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) >= b( i1, i2 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) >= b( i1, i2 ) ); } } return r; @@ -2422,9 +2443,10 @@ FArray2D< bool > operator ==( MArray2< A, T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) == t ); } } return r; @@ -2437,9 +2459,10 @@ FArray2D< bool > operator !=( MArray2< A, T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) != t ); } } return r; @@ -2452,9 +2475,10 @@ FArray2D< bool > operator <( MArray2< A, T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) < t ); } } return r; @@ -2467,9 +2491,10 @@ FArray2D< bool > operator <=( MArray2< A, T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) <= t ); } } return r; @@ -2482,9 +2507,10 @@ FArray2D< bool > operator >( MArray2< A, T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) > t ); } } return r; @@ -2497,9 +2523,10 @@ FArray2D< bool > operator >=( MArray2< A, T > const & a, T const & t ) { FArray2D< bool > r( FArray2D< bool >::shape( a ) ); + FArray2D< bool >::size_type l( 0 ); for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2 ) = ( a( i1, i2 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2 ) >= t ); } } return r; @@ -2728,7 +2755,7 @@ operator ||( FArray2< T > const & a, FArray2< T > const & b ) return r; } -// Transpose: Fortran-Compatible 1-Based Indexing +// Array Transpose: Fortran-Compatible 1-Based Indexing template< typename T > inline FArray2D< T > @@ -2746,7 +2773,7 @@ transpose( FArray2< T > const & a ) return aT; } -// Transposed: Preserved Indexing +// Array Transposed: Preserved Indexing template< typename T > inline FArray2D< T > @@ -3021,25 +3048,26 @@ operator ||( FArray2S< T > const & a, FArray2S< T > const & b ) return r; } -// Transpose: Fortran-Compatible 1-Based Indexing +// Slice Transpose: Fortran-Compatible 1-Based Indexing template< typename T > inline FArray2D< T > transpose( FArray2S< T > const & a ) { typedef typename FArray2S< T >::size_type size_type; - size_type const as1( a.size1() ); - size_type const as2( a.size2() ); + int const as1( a.isize1() ); + int const as2( a.isize2() ); FArray2D< T > aT( as2, as1 ); - for ( int i2 = 1, e2 = a.u1(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = a.u2(); i1 <= e1; ++i1 ) { - aT( i1, i2 ) = a( i2, i1 ); + size_type l( 0 ); + for ( int i2 = 1; i2 <= as2; ++i2 ) { + for ( int i1 = 1; i1 <= as1; ++i1, ++l ) { + aT[ l ] = a( i2, i1 ); } } return aT; } -// Transposed: Preserved Indexing +// Slice Transposed: Preserved Indexing template< typename T > inline FArray2D< T > @@ -3305,25 +3333,26 @@ operator ||( MArray2< A, T > const & a, MArray2< A, T > const & b ) return r; } -// Transpose: Fortran-Compatible 1-Based Indexing +// MArray Transpose: Fortran-Compatible 1-Based Indexing template< class A, typename T > inline FArray2D< T > transpose( MArray2< A, T > const & a ) { typedef typename MArray2< A, T >::size_type size_type; - size_type const as1( a.size1() ); - size_type const as2( a.size2() ); + int const as1( a.isize1() ); + int const as2( a.isize2() ); FArray2D< T > aT( as2, as1 ); - for ( int i2 = 1, e2 = a.u1(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = a.u2(); i1 <= e1; ++i1 ) { - aT( i1, i2 ) = a( i2, i1 ); + size_type l( 0 ); + for ( int i2 = 1; i2 <= as2; ++i2 ) { + for ( int i1 = 1; i1 <= as1; ++i1, ++l ) { + aT[ l ] = a( i2, i1 ); } } return aT; } -// Transposed: Preserved Indexing +// MArray Transposed: Preserved Indexing template< class A, typename T > inline FArray2D< T > diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2P.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2P.hh index 5d8f364d451..fe421b7adc8 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2P.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2P.hh @@ -29,8 +29,6 @@ class FArray2P : public FArray2< T >, public ObserverMulti private: // Types typedef FArray2< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; typedef internal::ProxySentinel ProxySentinel; private: // Friend @@ -104,7 +102,7 @@ public: // Creation // Real Constructor inline - FArray2P( real_FArray const & a ) : + FArray2P( FArray2D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -181,7 +179,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray2P( real_FArray const & a, IR const & I1, IR const & I2 ) : + FArray2P( FArray2D< T > const & a, IR const & I1, IR const & I2 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -257,7 +255,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray2P( real_FArray & a ) : + FArray2P( FArray2D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -334,7 +332,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray2P( real_FArray & a, IR const & I1, IR const & I2 ) : + FArray2P( FArray2D< T > & a, IR const & I1, IR const & I2 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -700,6 +698,15 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2 ) const + { + assert( ( I1_.initialized() ) && ( I2_.initialized() ) ); + return ( ( ( i2 * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2 ) inline Tail const @@ -721,15 +728,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2 ) const - { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) ); - return ( ( ( i2 * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -911,7 +909,7 @@ public: // Modifier // Attach to Real Array inline FArray2P & - attach( real_FArray const & a ) + attach( FArray2D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -926,7 +924,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray2P & - attach( real_FArray & a ) + attach( FArray2D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -973,7 +971,7 @@ public: // Modifier FArray2P & attach( Base const & a ) { - Base::attach( a, 2 ); + Base::attach< 2 >( a ); z1_ = 1; I1_ = 1; I2_ = a.isize(); @@ -988,7 +986,7 @@ public: // Modifier FArray2P & attach( Base & a ) { - Base::attach( a, 2 ); + Base::attach< 2 >( a ); z1_ = 1; I1_ = 1; I2_ = a.isize(); @@ -1003,7 +1001,7 @@ public: // Modifier FArray2P & attach( Tail const & s ) { - Base::attach( s, 2 ); + Base::attach< 2 >( s ); z1_ = 1; I1_ = 1; I2_ = s.isize(); @@ -1017,7 +1015,7 @@ public: // Modifier FArray2P & attach( Tail & s ) { - Base::attach( s, 2 ); + Base::attach< 2 >( s ); z1_ = 1; I1_ = 1; I2_ = s.isize(); @@ -1031,7 +1029,7 @@ public: // Modifier FArray2P & attach( T const & t ) { - Base::attach( t, 2 ); + Base::attach< 2 >( t ); z1_ = 1; I1_ = 1; I2_ = star; // Unbounded @@ -1045,7 +1043,7 @@ public: // Modifier FArray2P & attach( T & t ) { - Base::attach( t, 2 ); + Base::attach< 2 >( t ); z1_ = 1; I1_ = 1; I2_ = star; // Unbounded diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.hh index 8a34a228ecb..d8c9c45ddbb 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.hh @@ -331,7 +331,7 @@ public: // Assignment: Array if ( a.dimensions_initialized() ) { for ( int i2 = 1; i2 <= u2_; ++i2 ) { for ( int i1 = 1; i1 <= u1_; ++i1 ) { - assert( T( a( i1, i2 ) ) != T( 0 ) ); + assert( a( i1, i2 ) != T( 0 ) ); operator () ( i1, i2 ) /= a( i1, i2 ); } } @@ -444,7 +444,7 @@ public: // Assignment: Array size_type l( 0 ); for ( int j2 = a.l2(), e2 = a.u2(); j2 <= e2; ++j2 ) { for ( int j1 = a.l1(), e1 = a.u1(); j1 <= e1; ++j1, ++l ) { - assert( T( a( j1, j2 ) ) != T( 0 ) ); + assert( a( j1, j2 ) != T( 0 ) ); c[ l ] = a( j1, j2 ); } } @@ -457,7 +457,7 @@ public: // Assignment: Array } else { // Not overlap-safe for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2 ) ) != T( 0 ) ); + assert( a( j1, j2 ) != T( 0 ) ); operator ()( i1, i2 ) /= a( j1, j2 ); } } @@ -519,7 +519,7 @@ public: // Assignment: Array assert( conformable( a ) ); for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2 ) ) != T( 0 ) ); + assert( a( j1, j2 ) != T( 0 ) ); operator ()( i1, i2 ) /= a( j1, j2 ); } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.io.hh index 32d4c5b64e3..3f4d11f77d7 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray2S.io.hh @@ -48,11 +48,11 @@ operator <<( std::ostream & stream, FArray2S< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 < e2; ++i2 ) { stream << setw( w ) << a( i1, i2 ) << ' '; @@ -122,7 +122,7 @@ LD( FArray2S< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { s.append( fmt::LD( a( i1, i2 ) ) ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.hh index d0521255a67..fdcee9b449d 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.hh @@ -34,9 +34,6 @@ class FArray3 : public FArray< T > private: // Types typedef FArray< T > Super; - typedef FArray3D< T > real_FArray; - typedef FArray3P< T > proxy_FArray; - typedef FArray3A< T > arg_FArray; private: // Friend @@ -561,7 +558,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3 ) ) != T( 0 ) ); + assert( a( i1, i2, i3 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3 ); } } @@ -641,7 +638,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3 ) ) != T( 0 ) ); + assert( a( i1, i2, i3 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3 ); } } @@ -880,6 +877,15 @@ public: // Subscript return sdata_[ ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ]; } + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3 ) const + { + assert( dimensions_initialized() ); + return ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; + } + // Const Tail Starting at array( i1, i2, i3 ) inline Tail const @@ -901,15 +907,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3 ) const - { - assert( dimensions_initialized() ); - return ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; - } - public: // Slice Proxy Generators // array( s1, s2, s3 ) const @@ -1094,7 +1091,7 @@ public: // Predicate bool conformable( FArray3< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) ); + return ( ( z1_ == a.z1_ ) && ( z2_ == a.z2_ ) && ( size3() == a.size3() ) ); } // Conformable? @@ -1103,7 +1100,7 @@ public: // Predicate bool conformable( FArray3S< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( size3() == a.size3() ) ); } // Conformable? @@ -1112,7 +1109,7 @@ public: // Predicate bool conformable( MArray3< A, M > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( size3() == a.size3() ) ); } // Equal Dimensions? @@ -1124,6 +1121,24 @@ public: // Predicate return ( ( I1() == a.I1() ) && ( I2() == a.I2() ) && ( I3() == a.I3() ) ); } + // Equal Dimensions? + template< typename U > + inline + bool + equal_dimensions( FArray3S< U > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) ); + } + + // Equal Dimensions? + template< class A, typename M > + inline + bool + equal_dimensions( MArray3< A, M > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) ); + } + public: // Inspector // Rank @@ -1195,14 +1210,14 @@ public: // Inspector { switch ( d ) { case 1: - return size1(); + return z1_; case 2: - return size2(); + return z2_; case 3: return size3(); default: assert( false ); - return size1(); + return z1_; } } @@ -2894,7 +2909,7 @@ protected: // Functions // Swap inline void - swap3DB( FArray3 & v ) + swap3( FArray3 & v ) { swapB( v ); std::swap( z1_, v.z1_ ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.io.hh index 00601ebe6a5..78db0bda2ff 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3.io.hh @@ -50,11 +50,11 @@ operator <<( std::ostream & stream, FArray3< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = a.l1(), e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = a.l2(), e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = a.l3(), e3 = a.u3(); i3 < e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3A.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3A.hh index 2ca8a1626d0..4c76aa513ac 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3A.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3A.hh @@ -27,9 +27,6 @@ class FArray3A : public FArray3< T > private: // Types typedef FArray3< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::ProxySentinel ProxySentinel; public: // Types @@ -96,7 +93,7 @@ public: // Creation // Real Constructor inline - FArray3A( real_FArray const & a ) : + FArray3A( FArray3D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -109,7 +106,7 @@ public: // Creation // Proxy Constructor inline - FArray3A( proxy_FArray const & a ) : + FArray3A( FArray3P< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -182,7 +179,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray3A( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3 ) : + FArray3A( FArray3D< T > const & a, IR const & I1, IR const & I2, IR const & I3 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -193,7 +190,7 @@ public: // Creation // Proxy + IndexRange Constructor inline - FArray3A( proxy_FArray const & a, IR const & I1, IR const & I2, IR const & I3 ) : + FArray3A( FArray3P< T > const & a, IR const & I1, IR const & I2, IR const & I3 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -263,7 +260,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray3A( real_FArray & a ) : + FArray3A( FArray3D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -276,7 +273,7 @@ public: // Creation // Non-Const Proxy Constructor inline - FArray3A( proxy_FArray & a ) : + FArray3A( FArray3P< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -349,7 +346,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray3A( real_FArray & a, IR const & I1, IR const & I2, IR const & I3 ) : + FArray3A( FArray3D< T > & a, IR const & I1, IR const & I2, IR const & I3 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -360,7 +357,7 @@ public: // Creation // Non-Const Proxy + IndexRange Constructor inline - FArray3A( proxy_FArray & a, IR const & I1, IR const & I2, IR const & I3 ) : + FArray3A( FArray3P< T > & a, IR const & I1, IR const & I2, IR const & I3 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -719,6 +716,14 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3 ) const + { + return ( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3 ) inline Tail const @@ -740,14 +745,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3 ) const - { - return ( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -953,7 +950,7 @@ public: // Modifier // Attach to Real Array inline FArray3A & - attach( real_FArray const & a ) + attach( FArray3D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -967,7 +964,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray3A & - attach( real_FArray & a ) + attach( FArray3D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -981,7 +978,7 @@ public: // Modifier // Attach to Proxy Array inline FArray3A & - attach( proxy_FArray const & a ) + attach( FArray3P< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -995,7 +992,7 @@ public: // Modifier // Attach to Non-Const Proxy Array inline FArray3A & - attach( proxy_FArray & a ) + attach( FArray3P< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1039,7 +1036,7 @@ public: // Modifier FArray3A & attach( Base const & a ) { - Base::attach( a, 3 ); + Base::attach< 3 >( a ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1052,7 +1049,7 @@ public: // Modifier FArray3A & attach( Base & a ) { - Base::attach( a, 3 ); + Base::attach< 3 >( a ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1065,7 +1062,7 @@ public: // Modifier FArray3A & attach( Tail const & s ) { - Base::attach( s, 3 ); + Base::attach< 3 >( s ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1078,7 +1075,7 @@ public: // Modifier FArray3A & attach( Tail & s ) { - Base::attach( s, 3 ); + Base::attach< 3 >( s ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1091,7 +1088,7 @@ public: // Modifier FArray3A & attach( T const & t ) { - Base::attach( t, 3 ); + Base::attach< 3 >( t ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1104,7 +1101,7 @@ public: // Modifier FArray3A & attach( T & t ) { - Base::attach( t, 3 ); + Base::attach< 3 >( t ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3D.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3D.hh index 898309b3530..60244815874 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3D.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3D.hh @@ -30,9 +30,6 @@ class FArray3D : public FArray3< T >, public ObserverMulti private: // Types typedef FArray3< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::InitializerSentinel InitializerSentinel; private: // Friend @@ -70,19 +67,19 @@ public: // Types typedef typename Initializer::Function InitializerFunction; using Super::conformable; + using Super::initialize; using Super::isize1; using Super::isize2; using Super::isize3; using Super::l; using Super::operator (); - using Super::reassign; using Super::resize; using Super::shift_set; using Super::size1; using Super::size2; using Super::size3; using Super::size_of; - using Super::swap3DB; + using Super::swap3; using Super::u; using Super::data_; using Super::data_size_; @@ -155,7 +152,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3 ) ); + initialize( l, a( i1, i2, i3 ) ); } } } @@ -180,7 +177,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3 ) ); + initialize( l, a( i1, i2, i3 ) ); } } } @@ -312,7 +309,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -358,7 +355,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3 ) ); + initialize( l, a( i1, i2, i3 ) ); } } } @@ -383,7 +380,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3 ) ); + initialize( l, a( i1, i2, i3 ) ); } } } @@ -406,7 +403,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -427,7 +424,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -448,7 +445,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -869,32 +866,12 @@ public: // Assignment: Value public: // Subscript - // Const Tail Starting at array( i1, i2, i3 ) - inline - Tail const - a( int const i1, int const i2, int const i3 ) const - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) ); - size_type const offset( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); - } - - // Tail Starting at array( i1, i2, i3 ) - inline - Tail - a( int const i1, int const i2, int const i3 ) - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) ); - size_type const offset( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( data_ + offset, data_size_ - offset ); - } - // Linear Index inline size_type index( int const i1, int const i2, int const i3 ) const { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) ); + assert( dimensions_initialized() ); return ( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); } @@ -916,6 +893,26 @@ public: // Subscript return data_[ i ]; } + // Const Tail Starting at array( i1, i2, i3 ) + inline + Tail const + a( int const i1, int const i2, int const i3 ) const + { + assert( contains( i1, i2, i3 ) ); + size_type const offset( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); + } + + // Tail Starting at array( i1, i2, i3 ) + inline + Tail + a( int const i1, int const i2, int const i3 ) + { + assert( contains( i1, i2, i3 ) ); + size_type const offset( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( data_ + offset, data_size_ - offset ); + } + public: // Predicate // Dimensions Initialized? @@ -1199,8 +1196,10 @@ public: // Modifier int const b3( std::max( I3.l(), l3() ) ), e3( std::min( I3.u(), u3() ) ); for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3 ) = operator ()( i1, i2, i3 ); + size_type l( index( b1, i2, i3 ) ); + size_type m( o.index( b1, i2, i3 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1222,8 +1221,10 @@ public: // Modifier int const b3( std::max( I3.l(), l3() ) ), e3( std::min( I3.u(), u3() ) ); for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3 ) = operator ()( i1, i2, i3 ); + size_type l( index( b1, i2, i3 ) ); + size_type m( o.index( b1, i2, i3 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1246,8 +1247,10 @@ public: // Modifier int const b3( std::max( a.l3(), l3() ) ), e3( std::min( a.u3(), u3() ) ); for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3 ) = operator ()( i1, i2, i3 ); + size_type l( index( b1, i2, i3 ) ); + size_type m( o.index( b1, i2, i3 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1270,8 +1273,10 @@ public: // Modifier int const b3( std::max( a.l3(), l3() ) ), e3( std::min( a.u3(), u3() ) ); for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3 ) = operator ()( i1, i2, i3 ); + size_type l( index( b1, i2, i3 ) ); + size_type m( o.index( b1, i2, i3 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1314,7 +1319,7 @@ public: // Modifier { if ( ( initializer_.is_active() ) && ( dimensions_initialized() ) ) { if ( initializer_.is_value() ) { - reassign( initializer_.value() ); + initialize( initializer_.value() ); } else if ( initializer_.is_function() ) { initializer_.function()( *this ); } @@ -1328,7 +1333,7 @@ public: // Modifier swap( FArray3D & v ) { using std::swap; - swap3DB( v ); + swap3( v ); I1_.swap_no_notify( v.I1_ ); I2_.swap_no_notify( v.I2_ ); I3_.swap_no_notify( v.I3_ ); @@ -1373,7 +1378,7 @@ protected: // Functions private: // Functions - // Setup for IndexRange Constructor + // Set Up for IndexRange Constructor inline void setup_real() @@ -1664,10 +1669,11 @@ operator ==( FArray3S< T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) == b( i1, i2, i3 ) ); } } } @@ -1682,10 +1688,11 @@ operator !=( FArray3S< T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) != b( i1, i2, i3 ) ); } } } @@ -1700,10 +1707,11 @@ operator <( FArray3S< T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) < b( i1, i2, i3 ) ); } } } @@ -1718,10 +1726,11 @@ operator <=( FArray3S< T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) <= b( i1, i2, i3 ) ); } } } @@ -1736,10 +1745,11 @@ operator >( FArray3S< T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) > b( i1, i2, i3 ) ); } } } @@ -1754,10 +1764,11 @@ operator >=( FArray3S< T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) >= b( i1, i2, i3 ) ); } } } @@ -1772,11 +1783,11 @@ operator ==( FArray3S< T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) == b[ l ] ); } } } @@ -1791,11 +1802,11 @@ operator !=( FArray3S< T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) != b[ l ] ); } } } @@ -1810,11 +1821,11 @@ operator <( FArray3S< T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) < b[ l ] ); } } } @@ -1829,11 +1840,11 @@ operator <=( FArray3S< T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) <= b[ l ] ); } } } @@ -1848,11 +1859,11 @@ operator >( FArray3S< T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) > b[ l ] ); } } } @@ -1867,11 +1878,11 @@ operator >=( FArray3S< T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) >= b[ l ] ); } } } @@ -1939,10 +1950,11 @@ FArray3D< bool > operator ==( FArray3S< T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) == t ); } } } @@ -1956,10 +1968,11 @@ FArray3D< bool > operator !=( FArray3S< T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) != t ); } } } @@ -1973,10 +1986,11 @@ FArray3D< bool > operator <( FArray3S< T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) < t ); } } } @@ -1990,10 +2004,11 @@ FArray3D< bool > operator <=( FArray3S< T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) <= t ); } } } @@ -2007,10 +2022,11 @@ FArray3D< bool > operator >( FArray3S< T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) > t ); } } } @@ -2024,10 +2040,11 @@ FArray3D< bool > operator >=( FArray3S< T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) >= t ); } } } @@ -2098,10 +2115,11 @@ operator ==( MArray3< A, T > const & a, MArray3< A, T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) == b( i1, i2, i3 ) ); } } } @@ -2116,10 +2134,11 @@ operator !=( MArray3< A, T > const & a, MArray3< A, T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) != b( i1, i2, i3 ) ); } } } @@ -2134,10 +2153,11 @@ operator <( MArray3< A, T > const & a, MArray3< A, T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) < b( i1, i2, i3 ) ); } } } @@ -2152,10 +2172,11 @@ operator <=( MArray3< A, T > const & a, MArray3< A, T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) <= b( i1, i2, i3 ) ); } } } @@ -2170,10 +2191,11 @@ operator >( MArray3< A, T > const & a, MArray3< A, T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) > b( i1, i2, i3 ) ); } } } @@ -2188,10 +2210,11 @@ operator >=( MArray3< A, T > const & a, MArray3< A, T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) >= b( i1, i2, i3 ) ); } } } @@ -2206,11 +2229,11 @@ operator ==( MArray3< A, T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) == b[ l ] ); } } } @@ -2225,11 +2248,11 @@ operator !=( MArray3< A, T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) != b[ l ] ); } } } @@ -2244,11 +2267,11 @@ operator <( MArray3< A, T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) < b[ l ] ); } } } @@ -2263,11 +2286,11 @@ operator <=( MArray3< A, T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) <= b[ l ] ); } } } @@ -2282,11 +2305,11 @@ operator >( MArray3< A, T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) > b[ l ] ); } } } @@ -2301,11 +2324,11 @@ operator >=( MArray3< A, T > const & a, FArray3< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); - typename FArray3< T >::size_type l( 0 ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3 ) >= b[ l ] ); } } } @@ -2374,10 +2397,11 @@ operator ==( MArray3< A, T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) == b( i1, i2, i3 ) ); } } } @@ -2392,10 +2416,11 @@ operator !=( MArray3< A, T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) != b( i1, i2, i3 ) ); } } } @@ -2410,10 +2435,11 @@ operator <( MArray3< A, T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) < b( i1, i2, i3 ) ); } } } @@ -2428,10 +2454,11 @@ operator <=( MArray3< A, T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) <= b( i1, i2, i3 ) ); } } } @@ -2446,10 +2473,11 @@ operator >( MArray3< A, T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) > b( i1, i2, i3 ) ); } } } @@ -2464,10 +2492,11 @@ operator >=( MArray3< A, T > const & a, FArray3S< T > const & b ) { assert( conformable( a, b ) ); FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= b( i1, i2, i3 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) >= b( i1, i2, i3 ) ); } } } @@ -2535,10 +2564,11 @@ FArray3D< bool > operator ==( MArray3< A, T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) == t ); } } } @@ -2552,10 +2582,11 @@ FArray3D< bool > operator !=( MArray3< A, T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) != t ); } } } @@ -2569,10 +2600,11 @@ FArray3D< bool > operator <( MArray3< A, T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) < t ); } } } @@ -2586,10 +2618,11 @@ FArray3D< bool > operator <=( MArray3< A, T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) <= t ); } } } @@ -2603,10 +2636,11 @@ FArray3D< bool > operator >( MArray3< A, T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) > t ); } } } @@ -2620,10 +2654,11 @@ FArray3D< bool > operator >=( MArray3< A, T > const & a, T const & t ) { FArray3D< bool > r( FArray3D< bool >::shape( a ) ); + FArray3D< bool >::size_type l( 0 ); for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3 ) = ( a( i1, i2, i3 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3 ) >= t ); } } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3P.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3P.hh index 0fd94fcd909..3ec8e9e7a37 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3P.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3P.hh @@ -29,8 +29,6 @@ class FArray3P : public FArray3< T >, public ObserverMulti private: // Types typedef FArray3< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; typedef internal::ProxySentinel ProxySentinel; private: // Friend @@ -107,7 +105,7 @@ public: // Creation // Real Constructor inline - FArray3P( real_FArray const & a ) : + FArray3P( FArray3D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -192,7 +190,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray3P( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3 ) : + FArray3P( FArray3D< T > const & a, IR const & I1, IR const & I2, IR const & I3 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -275,7 +273,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray3P( real_FArray & a ) : + FArray3P( FArray3D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -360,7 +358,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray3P( real_FArray & a, IR const & I1, IR const & I2, IR const & I3 ) : + FArray3P( FArray3D< T > & a, IR const & I1, IR const & I2, IR const & I3 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -731,6 +729,15 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3 ) const + { + assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) ); + return ( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3 ) inline Tail const @@ -752,15 +759,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3 ) const - { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) ); - return ( ( ( ( ( i3 * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -973,7 +971,7 @@ public: // Modifier // Attach to Real Array inline FArray3P & - attach( real_FArray const & a ) + attach( FArray3D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -990,7 +988,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray3P & - attach( real_FArray & a ) + attach( FArray3D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1043,7 +1041,7 @@ public: // Modifier FArray3P & attach( Base const & a ) { - Base::attach( a, 3 ); + Base::attach< 3 >( a ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1059,7 +1057,7 @@ public: // Modifier FArray3P & attach( Base & a ) { - Base::attach( a, 3 ); + Base::attach< 3 >( a ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1075,7 +1073,7 @@ public: // Modifier FArray3P & attach( Tail const & s ) { - Base::attach( s, 3 ); + Base::attach< 3 >( s ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1090,7 +1088,7 @@ public: // Modifier FArray3P & attach( Tail & s ) { - Base::attach( s, 3 ); + Base::attach< 3 >( s ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1105,7 +1103,7 @@ public: // Modifier FArray3P & attach( T const & t ) { - Base::attach( t, 3 ); + Base::attach< 3 >( t ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; @@ -1120,7 +1118,7 @@ public: // Modifier FArray3P & attach( T & t ) { - Base::attach( t, 3 ); + Base::attach< 3 >( t ); z1_ = z2_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.hh index 8d9a72836f2..8ffadc72e20 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.hh @@ -368,7 +368,7 @@ public: // Assignment: Array for ( int i3 = 1; i3 <= u3_; ++i3 ) { for ( int i2 = 1; i2 <= u2_; ++i2 ) { for ( int i1 = 1; i1 <= u1_; ++i1 ) { - assert( T( a( i1, i2, i3 ) ) != T( 0 ) ); + assert( a( i1, i2, i3 ) != T( 0 ) ); operator () ( i1, i2, i3 ) /= a( i1, i2, i3 ); } } @@ -501,7 +501,7 @@ public: // Assignment: Array for ( int j3 = a.l3(), e3 = a.u3(); j3 <= e3; ++j3 ) { for ( int j2 = a.l2(), e2 = a.u2(); j2 <= e2; ++j2 ) { for ( int j1 = a.l1(), e1 = a.u1(); j1 <= e1; ++j1, ++l ) { - assert( T( a( j1, j2, j3 ) ) != T( 0 ) ); + assert( a( j1, j2, j3 ) != T( 0 ) ); c[ l ] = a( j1, j2, j3 ); } } @@ -518,7 +518,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3 ) ) != T( 0 ) ); + assert( a( j1, j2, j3 ) != T( 0 ) ); operator ()( i1, i2, i3 ) /= a( j1, j2, j3 ); } } @@ -588,7 +588,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3 ) ) != T( 0 ) ); + assert( a( j1, j2, j3 ) != T( 0 ) ); operator ()( i1, i2, i3 ) /= a( j1, j2, j3 ); } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.io.hh index 03d7c8fbf4c..346fe04920b 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray3S.io.hh @@ -50,11 +50,11 @@ operator <<( std::ostream & stream, FArray3S< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 < e3; ++i3 ) { @@ -130,7 +130,7 @@ LD( FArray3S< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.hh index 358d337082b..e9f16837391 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.hh @@ -34,9 +34,6 @@ class FArray4 : public FArray< T > private: // Types typedef FArray< T > Super; - typedef FArray4D< T > real_FArray; - typedef FArray4P< T > proxy_FArray; - typedef FArray4A< T > arg_FArray; private: // Friend @@ -596,7 +593,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3, i4 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3, i4 ); } } @@ -684,7 +681,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3, i4 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3, i4 ); } } @@ -940,6 +937,15 @@ public: // Subscript return sdata_[ ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ]; } + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4 ) const + { + assert( dimensions_initialized() ); + return ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; + } + // Const Tail Starting at array( i1, i2, i3, i4 ) inline Tail const @@ -961,15 +967,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4 ) const - { - assert( dimensions_initialized() ); - return ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; - } - public: // Slice Proxy Generators // array( s1, s2, s3, s4 ) const @@ -1376,7 +1373,7 @@ public: // Predicate bool conformable( FArray4< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) ); + return ( ( z1_ == a.z1_ ) && ( z2_ == a.z2_ ) && ( z3_ == a.z3_ ) && ( size4() == a.size4() ) ); } // Conformable? @@ -1385,7 +1382,7 @@ public: // Predicate bool conformable( FArray4S< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( z3_ == a.size3() ) && ( size4() == a.size4() ) ); } // Conformable? @@ -1394,7 +1391,7 @@ public: // Predicate bool conformable( MArray4< A, M > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( z3_ == a.size3() ) && ( size4() == a.size4() ) ); } // Equal Dimensions? @@ -1406,6 +1403,24 @@ public: // Predicate return ( ( I1() == a.I1() ) && ( I2() == a.I2() ) && ( I3() == a.I3() ) && ( I4() == a.I4() ) ); } + // Equal Dimensions? + template< typename U > + inline + bool + equal_dimensions( FArray4S< U > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) && ( l4() == 1 ) && ( u4() == a.u4() ) ); + } + + // Equal Dimensions? + template< class A, typename M > + inline + bool + equal_dimensions( MArray4< A, M > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) && ( l4() == 1 ) && ( u4() == a.u4() ) ); + } + public: // Inspector // Rank @@ -1483,16 +1498,16 @@ public: // Inspector { switch ( d ) { case 1: - return size1(); + return z1_; case 2: - return size2(); + return z2_; case 3: - return size3(); + return z3_; case 4: return size4(); default: assert( false ); - return size1(); + return z1_; } } @@ -3281,7 +3296,7 @@ protected: // Functions // Swap inline void - swap4DB( FArray4 & v ) + swap4( FArray4 & v ) { swapB( v ); std::swap( z1_, v.z1_ ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.io.hh index 1c66e1a56fc..23c960e4236 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4.io.hh @@ -52,11 +52,11 @@ operator <<( std::ostream & stream, FArray4< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = a.l1(), e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = a.l2(), e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = a.l3(), e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4A.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4A.hh index cd232cc7d51..ea4fd35be5d 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4A.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4A.hh @@ -27,9 +27,6 @@ class FArray4A : public FArray4< T > private: // Types typedef FArray4< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::ProxySentinel ProxySentinel; public: // Types @@ -99,7 +96,7 @@ public: // Creation // Real Constructor inline - FArray4A( real_FArray const & a ) : + FArray4A( FArray4D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -114,7 +111,7 @@ public: // Creation // Proxy Constructor inline - FArray4A( proxy_FArray const & a ) : + FArray4A( FArray4P< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -195,7 +192,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray4A( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : + FArray4A( FArray4D< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -207,7 +204,7 @@ public: // Creation // Proxy + IndexRange Constructor inline - FArray4A( proxy_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : + FArray4A( FArray4P< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -284,7 +281,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray4A( real_FArray & a ) : + FArray4A( FArray4D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -299,7 +296,7 @@ public: // Creation // Non-Const Proxy Constructor inline - FArray4A( proxy_FArray & a ) : + FArray4A( FArray4P< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -380,7 +377,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray4A( real_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : + FArray4A( FArray4D< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -392,7 +389,7 @@ public: // Creation // Non-Const Proxy + IndexRange Constructor inline - FArray4A( proxy_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : + FArray4A( FArray4P< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -756,6 +753,14 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4 ) const + { + return ( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3, i4 ) inline Tail const @@ -777,14 +782,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4 ) const - { - return ( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1021,7 +1018,7 @@ public: // Modifier // Attach to Real Array inline FArray4A & - attach( real_FArray const & a ) + attach( FArray4D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1037,7 +1034,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray4A & - attach( real_FArray & a ) + attach( FArray4D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1053,7 +1050,7 @@ public: // Modifier // Attach to Proxy Array inline FArray4A & - attach( proxy_FArray const & a ) + attach( FArray4P< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1069,7 +1066,7 @@ public: // Modifier // Attach to Non-Const Proxy Array inline FArray4A & - attach( proxy_FArray & a ) + attach( FArray4P< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1119,7 +1116,7 @@ public: // Modifier FArray4A & attach( Base const & a ) { - Base::attach( a, 4 ); + Base::attach< 4 >( a ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1133,7 +1130,7 @@ public: // Modifier FArray4A & attach( Base & a ) { - Base::attach( a, 4 ); + Base::attach< 4 >( a ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1147,7 +1144,7 @@ public: // Modifier FArray4A & attach( Tail const & s ) { - Base::attach( s, 4 ); + Base::attach< 4 >( s ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1161,7 +1158,7 @@ public: // Modifier FArray4A & attach( Tail & s ) { - Base::attach( s, 4 ); + Base::attach< 4 >( s ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1175,7 +1172,7 @@ public: // Modifier FArray4A & attach( T const & t ) { - Base::attach( t, 4 ); + Base::attach< 4 >( t ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1189,7 +1186,7 @@ public: // Modifier FArray4A & attach( T & t ) { - Base::attach( t, 4 ); + Base::attach< 4 >( t ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4D.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4D.hh index 77af9e79923..6e680d8ce67 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4D.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4D.hh @@ -30,9 +30,6 @@ class FArray4D : public FArray4< T >, public ObserverMulti private: // Types typedef FArray4< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::InitializerSentinel InitializerSentinel; private: // Friend @@ -70,13 +67,13 @@ public: // Types typedef typename Initializer::Function InitializerFunction; using Super::conformable; + using Super::initialize; using Super::isize1; using Super::isize2; using Super::isize3; using Super::isize4; using Super::l; using Super::operator (); - using Super::reassign; using Super::resize; using Super::shift_set; using Super::size1; @@ -84,7 +81,7 @@ public: // Types using Super::size3; using Super::size4; using Super::size_of; - using Super::swap4DB; + using Super::swap4; using Super::u; using Super::data_; using Super::data_size_; @@ -163,7 +160,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4 ) ); + initialize( l, a( i1, i2, i3, i4 ) ); } } } @@ -191,7 +188,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4 ) ); + initialize( l, a( i1, i2, i3, i4 ) ); } } } @@ -332,7 +329,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -381,7 +378,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4 ) ); + initialize( l, a( i1, i2, i3, i4 ) ); } } } @@ -409,7 +406,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4 ) ); + initialize( l, a( i1, i2, i3, i4 ) ); } } } @@ -434,7 +431,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -456,7 +453,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -478,7 +475,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -899,32 +896,12 @@ public: // Assignment: Value public: // Subscript - // Const Tail Starting at array( i1, i2, i3, i4 ) - inline - Tail const - a( int const i1, int const i2, int const i3, int const i4 ) const - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) && ( I4_.contains( i4 ) ) ); - size_type const offset( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); - } - - // Tail Starting at array( i1, i2, i3, i4 ) - inline - Tail - a( int const i1, int const i2, int const i3, int const i4 ) - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) && ( I4_.contains( i4 ) ) ); - size_type const offset( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( data_ + offset, data_size_ - offset ); - } - // Linear Index inline size_type index( int const i1, int const i2, int const i3, int const i4 ) const { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) ); + assert( dimensions_initialized() ); return ( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); } @@ -946,6 +923,26 @@ public: // Subscript return data_[ i ]; } + // Const Tail Starting at array( i1, i2, i3, i4 ) + inline + Tail const + a( int const i1, int const i2, int const i3, int const i4 ) const + { + assert( contains( i1, i2, i3, i4 ) ); + size_type const offset( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); + } + + // Tail Starting at array( i1, i2, i3, i4 ) + inline + Tail + a( int const i1, int const i2, int const i3, int const i4 ) + { + assert( contains( i1, i2, i3, i4 ) ); + size_type const offset( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( data_ + offset, data_size_ - offset ); + } + public: // Predicate // Dimensions Initialized? @@ -1265,8 +1262,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4 ) = operator ()( i1, i2, i3, i4 ); + size_type l( index( b1, i2, i3, i4 ) ); + size_type m( o.index( b1, i2, i3, i4 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1291,8 +1290,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4 ) = operator ()( i1, i2, i3, i4 ); + size_type l( index( b1, i2, i3, i4 ) ); + size_type m( o.index( b1, i2, i3, i4 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1318,8 +1319,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4 ) = operator ()( i1, i2, i3, i4 ); + size_type l( index( b1, i2, i3, i4 ) ); + size_type m( o.index( b1, i2, i3, i4 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1345,8 +1348,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4 ) = operator ()( i1, i2, i3, i4 ); + size_type l( index( b1, i2, i3, i4 ) ); + size_type m( o.index( b1, i2, i3, i4 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1390,7 +1395,7 @@ public: // Modifier { if ( ( initializer_.is_active() ) && ( dimensions_initialized() ) ) { if ( initializer_.is_value() ) { - reassign( initializer_.value() ); + initialize( initializer_.value() ); } else if ( initializer_.is_function() ) { initializer_.function()( *this ); } @@ -1404,7 +1409,7 @@ public: // Modifier swap( FArray4D & v ) { using std::swap; - swap4DB( v ); + swap4( v ); I1_.swap_no_notify( v.I1_ ); I2_.swap_no_notify( v.I2_ ); I3_.swap_no_notify( v.I3_ ); @@ -1451,7 +1456,7 @@ protected: // Functions private: // Functions - // Setup for IndexRange Constructor + // Set Up for IndexRange Constructor inline void setup_real() @@ -1747,11 +1752,12 @@ operator ==( FArray4S< T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) == b( i1, i2, i3, i4 ) ); } } } @@ -1767,11 +1773,12 @@ operator !=( FArray4S< T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) != b( i1, i2, i3, i4 ) ); } } } @@ -1787,11 +1794,12 @@ operator <( FArray4S< T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) < b( i1, i2, i3, i4 ) ); } } } @@ -1807,11 +1815,12 @@ operator <=( FArray4S< T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) <= b( i1, i2, i3, i4 ) ); } } } @@ -1827,11 +1836,12 @@ operator >( FArray4S< T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) > b( i1, i2, i3, i4 ) ); } } } @@ -1847,11 +1857,12 @@ operator >=( FArray4S< T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) >= b( i1, i2, i3, i4 ) ); } } } @@ -1867,12 +1878,12 @@ operator ==( FArray4S< T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) == b[ l ] ); } } } @@ -1888,12 +1899,12 @@ operator !=( FArray4S< T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) != b[ l ] ); } } } @@ -1909,12 +1920,12 @@ operator <( FArray4S< T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) < b[ l ] ); } } } @@ -1930,12 +1941,12 @@ operator <=( FArray4S< T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) <= b[ l ] ); } } } @@ -1951,12 +1962,12 @@ operator >( FArray4S< T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) > b[ l ] ); } } } @@ -1972,12 +1983,12 @@ operator >=( FArray4S< T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) >= b[ l ] ); } } } @@ -2046,11 +2057,12 @@ FArray4D< bool > operator ==( FArray4S< T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) == t ); } } } @@ -2065,11 +2077,12 @@ FArray4D< bool > operator !=( FArray4S< T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) != t ); } } } @@ -2084,11 +2097,12 @@ FArray4D< bool > operator <( FArray4S< T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) < t ); } } } @@ -2103,11 +2117,12 @@ FArray4D< bool > operator <=( FArray4S< T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) <= t ); } } } @@ -2122,11 +2137,12 @@ FArray4D< bool > operator >( FArray4S< T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) > t ); } } } @@ -2141,11 +2157,12 @@ FArray4D< bool > operator >=( FArray4S< T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) >= t ); } } } @@ -2217,11 +2234,12 @@ operator ==( MArray4< A, T > const & a, MArray4< A, T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) == b( i1, i2, i3, i4 ) ); } } } @@ -2237,11 +2255,12 @@ operator !=( MArray4< A, T > const & a, MArray4< A, T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) != b( i1, i2, i3, i4 ) ); } } } @@ -2257,11 +2276,12 @@ operator <( MArray4< A, T > const & a, MArray4< A, T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) < b( i1, i2, i3, i4 ) ); } } } @@ -2277,11 +2297,12 @@ operator <=( MArray4< A, T > const & a, MArray4< A, T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) <= b( i1, i2, i3, i4 ) ); } } } @@ -2297,11 +2318,12 @@ operator >( MArray4< A, T > const & a, MArray4< A, T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) > b( i1, i2, i3, i4 ) ); } } } @@ -2317,11 +2339,12 @@ operator >=( MArray4< A, T > const & a, MArray4< A, T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) >= b( i1, i2, i3, i4 ) ); } } } @@ -2337,12 +2360,12 @@ operator ==( MArray4< A, T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) == b[ l ] ); } } } @@ -2358,12 +2381,12 @@ operator !=( MArray4< A, T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) != b[ l ] ); } } } @@ -2379,12 +2402,12 @@ operator <( MArray4< A, T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) < b[ l ] ); } } } @@ -2400,12 +2423,12 @@ operator <=( MArray4< A, T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) <= b[ l ] ); } } } @@ -2421,12 +2444,12 @@ operator >( MArray4< A, T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) > b[ l ] ); } } } @@ -2442,12 +2465,12 @@ operator >=( MArray4< A, T > const & a, FArray4< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); - typename FArray4< T >::size_type l( 0 ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4 ) >= b[ l ] ); } } } @@ -2517,11 +2540,12 @@ operator ==( MArray4< A, T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) == b( i1, i2, i3, i4 ) ); } } } @@ -2537,11 +2561,12 @@ operator !=( MArray4< A, T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) != b( i1, i2, i3, i4 ) ); } } } @@ -2557,11 +2582,12 @@ operator <( MArray4< A, T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) < b( i1, i2, i3, i4 ) ); } } } @@ -2577,11 +2603,12 @@ operator <=( MArray4< A, T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) <= b( i1, i2, i3, i4 ) ); } } } @@ -2597,11 +2624,12 @@ operator >( MArray4< A, T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) > b( i1, i2, i3, i4 ) ); } } } @@ -2617,11 +2645,12 @@ operator >=( MArray4< A, T > const & a, FArray4S< T > const & b ) { assert( conformable( a, b ) ); FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= b( i1, i2, i3, i4 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) >= b( i1, i2, i3, i4 ) ); } } } @@ -2690,11 +2719,12 @@ FArray4D< bool > operator ==( MArray4< A, T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) == t ); } } } @@ -2709,11 +2739,12 @@ FArray4D< bool > operator !=( MArray4< A, T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) != t ); } } } @@ -2728,11 +2759,12 @@ FArray4D< bool > operator <( MArray4< A, T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) < t ); } } } @@ -2747,11 +2779,12 @@ FArray4D< bool > operator <=( MArray4< A, T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) <= t ); } } } @@ -2766,11 +2799,12 @@ FArray4D< bool > operator >( MArray4< A, T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) > t ); } } } @@ -2785,11 +2819,12 @@ FArray4D< bool > operator >=( MArray4< A, T > const & a, T const & t ) { FArray4D< bool > r( FArray4D< bool >::shape( a ) ); + FArray4D< bool >::size_type l( 0 ); for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4 ) = ( a( i1, i2, i3, i4 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4 ) >= t ); } } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4P.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4P.hh index d7224974953..90ea5446f8e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4P.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4P.hh @@ -29,8 +29,6 @@ class FArray4P : public FArray4< T >, public ObserverMulti private: // Types typedef FArray4< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; typedef internal::ProxySentinel ProxySentinel; private: // Friend @@ -110,7 +108,7 @@ public: // Creation // Real Constructor inline - FArray4P( real_FArray const & a ) : + FArray4P( FArray4D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -203,7 +201,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray4P( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : + FArray4P( FArray4D< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -293,7 +291,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray4P( real_FArray & a ) : + FArray4P( FArray4D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -386,7 +384,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray4P( real_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : + FArray4P( FArray4D< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -762,6 +760,15 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4 ) const + { + assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) ); + return ( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3, i4 ) inline Tail const @@ -783,15 +790,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4 ) const - { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) ); - return ( ( ( ( ( ( ( i4 * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1035,7 +1033,7 @@ public: // Modifier // Attach to Real Array inline FArray4P & - attach( real_FArray const & a ) + attach( FArray4D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1054,7 +1052,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray4P & - attach( real_FArray & a ) + attach( FArray4D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1113,7 +1111,7 @@ public: // Modifier FArray4P & attach( Base const & a ) { - Base::attach( a, 4 ); + Base::attach< 4 >( a ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1130,7 +1128,7 @@ public: // Modifier FArray4P & attach( Base & a ) { - Base::attach( a, 4 ); + Base::attach< 4 >( a ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1147,7 +1145,7 @@ public: // Modifier FArray4P & attach( Tail const & s ) { - Base::attach( s, 4 ); + Base::attach< 4 >( s ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1163,7 +1161,7 @@ public: // Modifier FArray4P & attach( Tail & s ) { - Base::attach( s, 4 ); + Base::attach< 4 >( s ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1179,7 +1177,7 @@ public: // Modifier FArray4P & attach( T const & t ) { - Base::attach( t, 4 ); + Base::attach< 4 >( t ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; @@ -1195,7 +1193,7 @@ public: // Modifier FArray4P & attach( T & t ) { - Base::attach( t, 4 ); + Base::attach< 4 >( t ); z1_ = z2_ = z3_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.hh index aa794502d2c..df6d05bf5cc 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.hh @@ -405,7 +405,7 @@ public: // Assignment: Array for ( int i3 = 1; i3 <= u3_; ++i3 ) { for ( int i2 = 1; i2 <= u2_; ++i2 ) { for ( int i1 = 1; i1 <= u1_; ++i1 ) { - assert( T( a( i1, i2, i3, i4 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4 ) != T( 0 ) ); operator ()( i1, i2, i3, i4 ) /= a( i1, i2, i3, i4 ); } } @@ -558,7 +558,7 @@ public: // Assignment: Array for ( int j3 = a.l3(), e3 = a.u3(); j3 <= e3; ++j3 ) { for ( int j2 = a.l2(), e2 = a.u2(); j2 <= e2; ++j2 ) { for ( int j1 = a.l1(), e1 = a.u1(); j1 <= e1; ++j1, ++l ) { - assert( T( a( j1, j2, j3, j4 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4 ) != T( 0 ) ); c[ l ] = a( j1, j2, j3, j4 ); } } @@ -579,7 +579,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3, j4 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4 ) != T( 0 ) ); operator ()( i1, i2, i3, i4 ) /= a( j1, j2, j3, j4 ); } } @@ -657,7 +657,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3, j4 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4 ) != T( 0 ) ); operator ()( i1, i2, i3, i4 ) /= a( j1, j2, j3, j4 ); } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.io.hh index 5fa2fe44885..627f72d0033 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray4S.io.hh @@ -52,11 +52,11 @@ operator <<( std::ostream & stream, FArray4S< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { @@ -138,7 +138,7 @@ LD( FArray4S< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.hh index 41413cc3787..b101d14bf25 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.hh @@ -34,9 +34,6 @@ class FArray5 : public FArray< T > private: // Types typedef FArray< T > Super; - typedef FArray5D< T > real_FArray; - typedef FArray5P< T > proxy_FArray; - typedef FArray5A< T > arg_FArray; private: // Friend @@ -630,7 +627,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3, i4, i5 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4, i5 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3, i4, i5 ); } } @@ -726,7 +723,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3, i4, i5 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4, i5 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3, i4, i5 ); } } @@ -999,6 +996,15 @@ public: // Subscript return sdata_[ ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ]; } + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const + { + assert( dimensions_initialized() ); + return ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; + } + // Const Tail Starting at array( i1, i2, i3, i4, i5 ) inline Tail const @@ -1020,15 +1026,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const - { - assert( dimensions_initialized() ); - return ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; - } - public: // Slice Proxy Generators // array( s1, s2, s3, s4, s5 ) const @@ -1975,7 +1972,7 @@ public: // Predicate bool conformable( FArray5< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) && ( size5() == a.size5() ) ); + return ( ( z1_ == a.z1_ ) && ( z2_ == a.z2_ ) && ( z3_ == a.z3_ ) && ( z4_ == a.z4_ ) && ( size5() == a.size5() ) ); } // Conformable? @@ -1984,7 +1981,7 @@ public: // Predicate bool conformable( FArray5S< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) && ( size5() == a.size5() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( z3_ == a.size3() ) && ( z4_ == a.size4() ) && ( size5() == a.size5() ) ); } // Conformable? @@ -1993,7 +1990,7 @@ public: // Predicate bool conformable( MArray5< A, M > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) && ( size5() == a.size5() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( z3_ == a.size3() ) && ( z4_ == a.size4() ) && ( size5() == a.size5() ) ); } // Equal Dimensions? @@ -2005,6 +2002,24 @@ public: // Predicate return ( ( I1() == a.I1() ) && ( I2() == a.I2() ) && ( I3() == a.I3() ) && ( I4() == a.I4() ) && ( I5() == a.I5() ) ); } + // Equal Dimensions? + template< typename U > + inline + bool + equal_dimensions( FArray5S< U > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) && ( l4() == 1 ) && ( u4() == a.u4() ) && ( l5() == 1 ) && ( u5() == a.u5() ) ); + } + + // Equal Dimensions? + template< class A, typename M > + inline + bool + equal_dimensions( MArray5< A, M > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) && ( l4() == 1 ) && ( u4() == a.u4() ) && ( l5() == 1 ) && ( u5() == a.u5() ) ); + } + public: // Inspector // Rank @@ -2088,18 +2103,18 @@ public: // Inspector { switch ( d ) { case 1: - return size1(); + return z1_; case 2: - return size2(); + return z2_; case 3: - return size3(); + return z3_; case 4: - return size4(); + return z4_; case 5: return size5(); default: assert( false ); - return size1(); + return z1_; } } @@ -3985,7 +4000,7 @@ protected: // Functions // Swap inline void - swap5DB( FArray5 & v ) + swap5( FArray5 & v ) { swapB( v ); std::swap( z1_, v.z1_ ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.io.hh index ccd27f845aa..45282188fba 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5.io.hh @@ -54,11 +54,11 @@ operator <<( std::ostream & stream, FArray5< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = a.l1(), e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = a.l2(), e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = a.l3(), e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5A.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5A.hh index 38ae4b2903a..ad347f9474b 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5A.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5A.hh @@ -27,9 +27,6 @@ class FArray5A : public FArray5< T > private: // Types typedef FArray5< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::ProxySentinel ProxySentinel; public: // Types @@ -102,7 +99,7 @@ public: // Creation // Real Constructor inline - FArray5A( real_FArray const & a ) : + FArray5A( FArray5D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -119,7 +116,7 @@ public: // Creation // Proxy Constructor inline - FArray5A( proxy_FArray const & a ) : + FArray5A( FArray5P< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -208,7 +205,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray5A( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : + FArray5A( FArray5D< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -221,7 +218,7 @@ public: // Creation // Proxy + IndexRange Constructor inline - FArray5A( proxy_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : + FArray5A( FArray5P< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -305,7 +302,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray5A( real_FArray & a ) : + FArray5A( FArray5D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -322,7 +319,7 @@ public: // Creation // Non-Const Proxy Constructor inline - FArray5A( proxy_FArray & a ) : + FArray5A( FArray5P< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -411,7 +408,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray5A( real_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : + FArray5A( FArray5D< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -424,7 +421,7 @@ public: // Creation // Non-Const Proxy + IndexRange Constructor inline - FArray5A( proxy_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : + FArray5A( FArray5P< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -793,6 +790,14 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const + { + return ( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3, i4, i5 ) inline Tail const @@ -814,14 +819,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const - { - return ( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1089,7 +1086,7 @@ public: // Modifier // Attach to Real Array inline FArray5A & - attach( real_FArray const & a ) + attach( FArray5D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1107,7 +1104,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray5A & - attach( real_FArray & a ) + attach( FArray5D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1125,7 +1122,7 @@ public: // Modifier // Attach to Proxy Array inline FArray5A & - attach( proxy_FArray const & a ) + attach( FArray5P< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1143,7 +1140,7 @@ public: // Modifier // Attach to Non-Const Proxy Array inline FArray5A & - attach( proxy_FArray & a ) + attach( FArray5P< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1199,7 +1196,7 @@ public: // Modifier FArray5A & attach( Base const & a ) { - Base::attach( a, 5 ); + Base::attach< 5 >( a ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1214,7 +1211,7 @@ public: // Modifier FArray5A & attach( Base & a ) { - Base::attach( a, 5 ); + Base::attach< 5 >( a ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1229,7 +1226,7 @@ public: // Modifier FArray5A & attach( Tail const & s ) { - Base::attach( s, 5 ); + Base::attach< 5 >( s ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1244,7 +1241,7 @@ public: // Modifier FArray5A & attach( Tail & s ) { - Base::attach( s, 5 ); + Base::attach< 5 >( s ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1259,7 +1256,7 @@ public: // Modifier FArray5A & attach( T const & t ) { - Base::attach( t, 5 ); + Base::attach< 5 >( t ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1274,7 +1271,7 @@ public: // Modifier FArray5A & attach( T & t ) { - Base::attach( t, 5 ); + Base::attach< 5 >( t ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5D.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5D.hh index 096b00edb46..3c100627fd9 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5D.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5D.hh @@ -30,9 +30,6 @@ class FArray5D : public FArray5< T >, public ObserverMulti private: // Types typedef FArray5< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::InitializerSentinel InitializerSentinel; private: // Friend @@ -70,6 +67,7 @@ public: // Types typedef typename Initializer::Function InitializerFunction; using Super::conformable; + using Super::initialize; using Super::isize1; using Super::isize2; using Super::isize3; @@ -77,7 +75,6 @@ public: // Types using Super::isize5; using Super::l; using Super::operator (); - using Super::reassign; using Super::resize; using Super::shift_set; using Super::size1; @@ -86,7 +83,7 @@ public: // Types using Super::size4; using Super::size5; using Super::size_of; - using Super::swap5DB; + using Super::swap5; using Super::u; using Super::data_; using Super::data_size_; @@ -171,7 +168,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5 ) ); + initialize( l, a( i1, i2, i3, i4, i5 ) ); } } } @@ -202,7 +199,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5 ) ); + initialize( l, a( i1, i2, i3, i4, i5 ) ); } } } @@ -352,7 +349,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -404,7 +401,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5 ) ); + initialize( l, a( i1, i2, i3, i4, i5 ) ); } } } @@ -435,7 +432,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5 ) ); + initialize( l, a( i1, i2, i3, i4, i5 ) ); } } } @@ -462,7 +459,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -485,7 +482,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -508,7 +505,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -929,32 +926,12 @@ public: // Assignment: Value public: // Subscript - // Const Tail Starting at array( i1, i2, i3, i4, i5 ) - inline - Tail const - a( int const i1, int const i2, int const i3, int const i4, int const i5 ) const - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) && ( I4_.contains( i4 ) ) && ( I5_.contains( i5 ) ) ); - size_type const offset( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); - } - - // Tail Starting at array( i1, i2, i3, i4, i5 ) - inline - Tail - a( int const i1, int const i2, int const i3, int const i4, int const i5 ) - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) && ( I4_.contains( i4 ) ) && ( I5_.contains( i5 ) ) ); - size_type const offset( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( data_ + offset, data_size_ - offset ); - } - // Linear Index inline size_type index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) && ( I5_.initialized() ) ); + assert( dimensions_initialized() ); return ( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); } @@ -976,6 +953,26 @@ public: // Subscript return data_[ i ]; } + // Const Tail Starting at array( i1, i2, i3, i4, i5 ) + inline + Tail const + a( int const i1, int const i2, int const i3, int const i4, int const i5 ) const + { + assert( contains( i1, i2, i3, i4, i5 ) ); + size_type const offset( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); + } + + // Tail Starting at array( i1, i2, i3, i4, i5 ) + inline + Tail + a( int const i1, int const i2, int const i3, int const i4, int const i5 ) + { + assert( contains( i1, i2, i3, i4, i5 ) ); + size_type const offset( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( data_ + offset, data_size_ - offset ); + } + public: // Predicate // Dimensions Initialized? @@ -1331,8 +1328,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5 ) = operator ()( i1, i2, i3, i4, i5 ); + size_type l( index( b1, i2, i3, i4, i5 ) ); + size_type m( o.index( b1, i2, i3, i4, i5 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1360,8 +1359,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5 ) = operator ()( i1, i2, i3, i4, i5 ); + size_type l( index( b1, i2, i3, i4, i5 ) ); + size_type m( o.index( b1, i2, i3, i4, i5 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1390,8 +1391,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5 ) = operator ()( i1, i2, i3, i4, i5 ); + size_type l( index( b1, i2, i3, i4, i5 ) ); + size_type m( o.index( b1, i2, i3, i4, i5 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1420,8 +1423,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5 ) = operator ()( i1, i2, i3, i4, i5 ); + size_type l( index( b1, i2, i3, i4, i5 ) ); + size_type m( o.index( b1, i2, i3, i4, i5 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1466,7 +1471,7 @@ public: // Modifier { if ( ( initializer_.is_active() ) && ( dimensions_initialized() ) ) { if ( initializer_.is_value() ) { - reassign( initializer_.value() ); + initialize( initializer_.value() ); } else if ( initializer_.is_function() ) { initializer_.function()( *this ); } @@ -1480,7 +1485,7 @@ public: // Modifier swap( FArray5D & v ) { using std::swap; - swap5DB( v ); + swap5( v ); I1_.swap_no_notify( v.I1_ ); I2_.swap_no_notify( v.I2_ ); I3_.swap_no_notify( v.I3_ ); @@ -1529,7 +1534,7 @@ protected: // Functions private: // Functions - // Setup for IndexRange Constructor + // Set Up for IndexRange Constructor inline void setup_real() @@ -1830,12 +1835,13 @@ operator ==( FArray5S< T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == b( i1, i2, i3, i4, i5 ) ); } } } @@ -1852,12 +1858,13 @@ operator !=( FArray5S< T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != b( i1, i2, i3, i4, i5 ) ); } } } @@ -1874,12 +1881,13 @@ operator <( FArray5S< T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < b( i1, i2, i3, i4, i5 ) ); } } } @@ -1896,12 +1904,13 @@ operator <=( FArray5S< T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= b( i1, i2, i3, i4, i5 ) ); } } } @@ -1918,12 +1927,13 @@ operator >( FArray5S< T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > b( i1, i2, i3, i4, i5 ) ); } } } @@ -1940,12 +1950,13 @@ operator >=( FArray5S< T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= b( i1, i2, i3, i4, i5 ) ); } } } @@ -1962,13 +1973,13 @@ operator ==( FArray5S< T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == b[ l ] ); } } } @@ -1985,13 +1996,13 @@ operator !=( FArray5S< T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != b[ l ] ); } } } @@ -2008,13 +2019,13 @@ operator <( FArray5S< T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < b[ l ] ); } } } @@ -2031,13 +2042,13 @@ operator <=( FArray5S< T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= b[ l ] ); } } } @@ -2054,13 +2065,13 @@ operator >( FArray5S< T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > b[ l ] ); } } } @@ -2077,13 +2088,13 @@ operator >=( FArray5S< T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= b[ l ] ); } } } @@ -2153,12 +2164,13 @@ FArray5D< bool > operator ==( FArray5S< T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == t ); } } } @@ -2174,12 +2186,13 @@ FArray5D< bool > operator !=( FArray5S< T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != t ); } } } @@ -2195,12 +2208,13 @@ FArray5D< bool > operator <( FArray5S< T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < t ); } } } @@ -2216,12 +2230,13 @@ FArray5D< bool > operator <=( FArray5S< T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= t ); } } } @@ -2237,12 +2252,13 @@ FArray5D< bool > operator >( FArray5S< T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > t ); } } } @@ -2258,12 +2274,13 @@ FArray5D< bool > operator >=( FArray5S< T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= t ); } } } @@ -2336,12 +2353,13 @@ operator ==( MArray5< A, T > const & a, MArray5< A, T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == b( i1, i2, i3, i4, i5 ) ); } } } @@ -2358,12 +2376,13 @@ operator !=( MArray5< A, T > const & a, MArray5< A, T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != b( i1, i2, i3, i4, i5 ) ); } } } @@ -2380,12 +2399,13 @@ operator <( MArray5< A, T > const & a, MArray5< A, T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < b( i1, i2, i3, i4, i5 ) ); } } } @@ -2402,12 +2422,13 @@ operator <=( MArray5< A, T > const & a, MArray5< A, T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= b( i1, i2, i3, i4, i5 ) ); } } } @@ -2424,12 +2445,13 @@ operator >( MArray5< A, T > const & a, MArray5< A, T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > b( i1, i2, i3, i4, i5 ) ); } } } @@ -2446,12 +2468,13 @@ operator >=( MArray5< A, T > const & a, MArray5< A, T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= b( i1, i2, i3, i4, i5 ) ); } } } @@ -2468,13 +2491,13 @@ operator ==( MArray5< A, T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == b[ l ] ); } } } @@ -2491,13 +2514,13 @@ operator !=( MArray5< A, T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != b[ l ] ); } } } @@ -2514,13 +2537,13 @@ operator <( MArray5< A, T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < b[ l ] ); } } } @@ -2537,13 +2560,13 @@ operator <=( MArray5< A, T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= b[ l ] ); } } } @@ -2560,13 +2583,13 @@ operator >( MArray5< A, T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > b[ l ] ); } } } @@ -2583,13 +2606,13 @@ operator >=( MArray5< A, T > const & a, FArray5< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); - typename FArray5< T >::size_type l( 0 ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= b[ l ] ); } } } @@ -2660,12 +2683,13 @@ operator ==( MArray5< A, T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == b( i1, i2, i3, i4, i5 ) ); } } } @@ -2682,12 +2706,13 @@ operator !=( MArray5< A, T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != b( i1, i2, i3, i4, i5 ) ); } } } @@ -2704,12 +2729,13 @@ operator <( MArray5< A, T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < b( i1, i2, i3, i4, i5 ) ); } } } @@ -2726,12 +2752,13 @@ operator <=( MArray5< A, T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= b( i1, i2, i3, i4, i5 ) ); } } } @@ -2748,12 +2775,13 @@ operator >( MArray5< A, T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > b( i1, i2, i3, i4, i5 ) ); } } } @@ -2770,12 +2798,13 @@ operator >=( MArray5< A, T > const & a, FArray5S< T > const & b ) { assert( conformable( a, b ) ); FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= b( i1, i2, i3, i4, i5 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= b( i1, i2, i3, i4, i5 ) ); } } } @@ -2845,12 +2874,13 @@ FArray5D< bool > operator ==( MArray5< A, T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) == t ); } } } @@ -2866,12 +2896,13 @@ FArray5D< bool > operator !=( MArray5< A, T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) != t ); } } } @@ -2887,12 +2918,13 @@ FArray5D< bool > operator <( MArray5< A, T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) < t ); } } } @@ -2908,12 +2940,13 @@ FArray5D< bool > operator <=( MArray5< A, T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) <= t ); } } } @@ -2929,12 +2962,13 @@ FArray5D< bool > operator >( MArray5< A, T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) > t ); } } } @@ -2950,12 +2984,13 @@ FArray5D< bool > operator >=( MArray5< A, T > const & a, T const & t ) { FArray5D< bool > r( FArray5D< bool >::shape( a ) ); + FArray5D< bool >::size_type l( 0 ); for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5 ) = ( a( i1, i2, i3, i4, i5 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5 ) >= t ); } } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5P.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5P.hh index 9ba787095cd..9f0f95eaf8c 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5P.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5P.hh @@ -29,8 +29,6 @@ class FArray5P : public FArray5< T >, public ObserverMulti private: // Types typedef FArray5< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; typedef internal::ProxySentinel ProxySentinel; private: // Friend @@ -113,7 +111,7 @@ public: // Creation // Real Constructor inline - FArray5P( real_FArray const & a ) : + FArray5P( FArray5D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -214,7 +212,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray5P( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : + FArray5P( FArray5D< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -311,7 +309,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray5P( real_FArray & a ) : + FArray5P( FArray5D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -412,7 +410,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray5P( real_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : + FArray5P( FArray5D< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -793,6 +791,15 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const + { + assert( ( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) && ( I5_.initialized() ) ) ); + return ( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3, i4, i5 ) inline Tail const @@ -814,15 +821,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4, int const i5 ) const - { - assert( ( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) && ( I5_.initialized() ) ) ); - return ( ( ( ( ( ( ( ( ( i5 * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1097,7 +1095,7 @@ public: // Modifier // Attach to Real Array inline FArray5P & - attach( real_FArray const & a ) + attach( FArray5D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1118,7 +1116,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray5P & - attach( real_FArray & a ) + attach( FArray5D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1183,7 +1181,7 @@ public: // Modifier FArray5P & attach( Base const & a ) { - Base::attach( a, 5 ); + Base::attach< 5 >( a ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1201,7 +1199,7 @@ public: // Modifier FArray5P & attach( Base & a ) { - Base::attach( a, 5 ); + Base::attach< 5 >( a ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1219,7 +1217,7 @@ public: // Modifier FArray5P & attach( Tail const & s ) { - Base::attach( s, 5 ); + Base::attach< 5 >( s ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1236,7 +1234,7 @@ public: // Modifier FArray5P & attach( Tail & s ) { - Base::attach( s, 5 ); + Base::attach< 5 >( s ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1253,7 +1251,7 @@ public: // Modifier FArray5P & attach( T const & t ) { - Base::attach( t, 5 ); + Base::attach< 5 >( t ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; @@ -1270,7 +1268,7 @@ public: // Modifier FArray5P & attach( T & t ) { - Base::attach( t, 5 ); + Base::attach< 5 >( t ); z1_ = z2_ = z3_ = z4_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.hh index 6f7787b38e1..c32501ae135 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.hh @@ -442,7 +442,7 @@ public: // Assignment: Array for ( int i3 = 1; i3 <= u3_; ++i3 ) { for ( int i2 = 1; i2 <= u2_; ++i2 ) { for ( int i1 = 1; i1 <= u1_; ++i1 ) { - assert( T( a( i1, i2, i3, i4, i5 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4, i5 ) != T( 0 ) ); operator ()( i1, i2, i3, i4, i5 ) /= a( i1, i2, i3, i4, i5 ); } } @@ -615,7 +615,7 @@ public: // Assignment: Array for ( int j3 = a.l3(), e3 = a.u3(); j3 <= e3; ++j3 ) { for ( int j2 = a.l2(), e2 = a.u2(); j2 <= e2; ++j2 ) { for ( int j1 = a.l1(), e1 = a.u1(); j1 <= e1; ++j1, ++l ) { - assert( T( a( j1, j2, j3, j4, j5 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4, j5 ) != T( 0 ) ); c[ l ] = a( j1, j2, j3, j4, j5 ); } } @@ -640,7 +640,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3, j4, j5 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4, j5 ) != T( 0 ) ); operator ()( i1, i2, i3, i4, i5 ) /= a( j1, j2, j3, j4, j5 ); } } @@ -726,7 +726,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3, j4, j5 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4, j5 ) != T( 0 ) ); operator ()( i1, i2, i3, i4, i5 ) /= a( j1, j2, j3, j4, j5 ); } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.io.hh index 5e29e576ad1..2dd5a08161e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray5S.io.hh @@ -54,11 +54,11 @@ operator <<( std::ostream & stream, FArray5S< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { @@ -146,7 +146,7 @@ LD( FArray5S< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.hh index 2a2cd768461..c7c49ee5ffe 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.hh @@ -34,9 +34,6 @@ class FArray6 : public FArray< T > private: // Types typedef FArray< T > Super; - typedef FArray6D< T > real_FArray; - typedef FArray6P< T > proxy_FArray; - typedef FArray6A< T > arg_FArray; private: // Friend @@ -666,7 +663,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3, i4, i5, i6 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4, i5, i6 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3, i4, i5, i6 ); } } @@ -770,7 +767,7 @@ public: // Assignment: Array for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - assert( T( a( i1, i2, i3, i4, i5, i6 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4, i5, i6 ) != T( 0 ) ); data_[ l ] /= a( i1, i2, i3, i4, i5, i6 ); } } @@ -1060,6 +1057,15 @@ public: // Subscript return sdata_[ ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ]; } + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const + { + assert( dimensions_initialized() ); + return ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; + } + // Const Tail Starting at array( i1, i2, i3, i4, i5, i6 ) inline Tail const @@ -1081,15 +1087,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const - { - assert( dimensions_initialized() ); - return ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_; - } - public: // Slice Proxy Generators // array( s1, s2, s3, s4, s5, s6 ) const @@ -3122,7 +3119,7 @@ public: // Predicate bool conformable( FArray6< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) && ( size5() == a.size5() ) && ( size6() == a.size6() ) ); + return ( ( z1_ == a.z1_ ) && ( z2_ == a.z2_ ) && ( z3_ == a.z3_ ) && ( z4_ == a.z4_ ) && ( z5_ == a.z5_ ) && ( size6() == a.size6() ) ); } // Conformable? @@ -3131,7 +3128,7 @@ public: // Predicate bool conformable( FArray6S< U > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) && ( size5() == a.size5() ) && ( size6() == a.size6() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( z3_ == a.size3() ) && ( z4_ == a.size4() ) && ( z5_ == a.size5() ) && ( size6() == a.size6() ) ); } // Conformable? @@ -3140,7 +3137,7 @@ public: // Predicate bool conformable( MArray6< A, M > const & a ) const { - return ( ( size1() == a.size1() ) && ( size2() == a.size2() ) && ( size3() == a.size3() ) && ( size4() == a.size4() ) && ( size5() == a.size5() ) && ( size6() == a.size6() ) ); + return ( ( z1_ == a.size1() ) && ( z2_ == a.size2() ) && ( z3_ == a.size3() ) && ( z4_ == a.size4() ) && ( z5_ == a.size5() ) && ( size6() == a.size6() ) ); } // Equal Dimensions? @@ -3152,6 +3149,24 @@ public: // Predicate return ( ( I1() == a.I1() ) && ( I2() == a.I2() ) && ( I3() == a.I3() ) && ( I4() == a.I4() ) && ( I5() == a.I5() ) && ( I6() == a.I6() ) ); } + // Equal Dimensions? + template< typename U > + inline + bool + equal_dimensions( FArray6S< U > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) && ( l4() == 1 ) && ( u4() == a.u4() ) && ( l5() == 1 ) && ( u5() == a.u5() ) && ( l6() == 1 ) && ( u6() == a.u6() ) ); + } + + // Equal Dimensions? + template< class A, typename M > + inline + bool + equal_dimensions( MArray6< A, M > const & a ) const + { + return ( ( l1() == 1 ) && ( u1() == a.u1() ) && ( l2() == 1 ) && ( u2() == a.u2() ) && ( l3() == 1 ) && ( u3() == a.u3() ) && ( l4() == 1 ) && ( u4() == a.u4() ) && ( l5() == 1 ) && ( u5() == a.u5() ) && ( l6() == 1 ) && ( u6() == a.u6() ) ); + } + public: // Inspector // Rank @@ -3241,20 +3256,20 @@ public: // Inspector { switch ( d ) { case 1: - return size1(); + return z1_; case 2: - return size2(); + return z2_; case 3: - return size3(); + return z3_; case 4: - return size4(); + return z4_; case 5: - return size5(); + return z5_; case 6: return size6(); default: assert( false ); - return size1(); + return z1_; } } @@ -5237,7 +5252,7 @@ protected: // Functions // Swap inline void - swap6DB( FArray6 & v ) + swap6( FArray6 & v ) { swapB( v ); std::swap( z1_, v.z1_ ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.io.hh index 32ec2456918..07812479f6d 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6.io.hh @@ -56,11 +56,11 @@ operator <<( std::ostream & stream, FArray6< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = a.l1(), e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = a.l2(), e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = a.l3(), e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6A.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6A.hh index 73b2cd50912..04a96c7526e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6A.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6A.hh @@ -27,9 +27,6 @@ class FArray6A : public FArray6< T > private: // Types typedef FArray6< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::ProxySentinel ProxySentinel; public: // Types @@ -105,7 +102,7 @@ public: // Creation // Real Constructor inline - FArray6A( real_FArray const & a ) : + FArray6A( FArray6D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -124,7 +121,7 @@ public: // Creation // Proxy Constructor inline - FArray6A( proxy_FArray const & a ) : + FArray6A( FArray6P< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -221,7 +218,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray6A( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : + FArray6A( FArray6D< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -235,7 +232,7 @@ public: // Creation // Proxy + IndexRange Constructor inline - FArray6A( proxy_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : + FArray6A( FArray6P< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -326,7 +323,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray6A( real_FArray & a ) : + FArray6A( FArray6D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -345,7 +342,7 @@ public: // Creation // Non-Const Proxy Constructor inline - FArray6A( proxy_FArray & a ) : + FArray6A( FArray6P< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -442,7 +439,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray6A( real_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : + FArray6A( FArray6D< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -456,7 +453,7 @@ public: // Creation // Non-Const Proxy + IndexRange Constructor inline - FArray6A( proxy_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : + FArray6A( FArray6P< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -830,6 +827,14 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const + { + return ( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3, i4, i5, i6 ) inline Tail const @@ -851,14 +856,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const - { - return ( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1157,7 +1154,7 @@ public: // Modifier // Attach to Real Array inline FArray6A & - attach( real_FArray const & a ) + attach( FArray6D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1177,7 +1174,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray6A & - attach( real_FArray & a ) + attach( FArray6D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1197,7 +1194,7 @@ public: // Modifier // Attach to Proxy Array inline FArray6A & - attach( proxy_FArray const & a ) + attach( FArray6P< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1217,7 +1214,7 @@ public: // Modifier // Attach to Non-Const Proxy Array inline FArray6A & - attach( proxy_FArray & a ) + attach( FArray6P< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1279,7 +1276,7 @@ public: // Modifier FArray6A & attach( Base const & a ) { - Base::attach( a, 6 ); + Base::attach< 6 >( a ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1295,7 +1292,7 @@ public: // Modifier FArray6A & attach( Base & a ) { - Base::attach( a, 6 ); + Base::attach< 6 >( a ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1311,7 +1308,7 @@ public: // Modifier FArray6A & attach( Tail const & s ) { - Base::attach( s, 6 ); + Base::attach< 6 >( s ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1327,7 +1324,7 @@ public: // Modifier FArray6A & attach( Tail & s ) { - Base::attach( s, 6 ); + Base::attach< 6 >( s ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1343,7 +1340,7 @@ public: // Modifier FArray6A & attach( T const & t ) { - Base::attach( t, 6 ); + Base::attach< 6 >( t ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1359,7 +1356,7 @@ public: // Modifier FArray6A & attach( T & t ) { - Base::attach( t, 6 ); + Base::attach< 6 >( t ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6D.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6D.hh index f5cd42a618d..f5f80a62bc5 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6D.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6D.hh @@ -30,9 +30,6 @@ class FArray6D : public FArray6< T >, public ObserverMulti private: // Types typedef FArray6< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; - typedef typename Super::arg_FArray arg_FArray; typedef internal::InitializerSentinel InitializerSentinel; private: // Friend @@ -70,6 +67,7 @@ public: // Types typedef typename Initializer::Function InitializerFunction; using Super::conformable; + using Super::initialize; using Super::isize1; using Super::isize2; using Super::isize3; @@ -78,7 +76,6 @@ public: // Types using Super::isize6; using Super::l; using Super::operator (); - using Super::reassign; using Super::resize; using Super::shift_set; using Super::size1; @@ -88,7 +85,7 @@ public: // Types using Super::size5; using Super::size6; using Super::size_of; - using Super::swap6DB; + using Super::swap6; using Super::u; using Super::data_; using Super::data_size_; @@ -179,7 +176,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5, i6 ) ); + initialize( l, a( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -213,7 +210,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5, i6 ) ); + initialize( l, a( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -372,7 +369,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -427,7 +424,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5, i6 ) ); + initialize( l, a( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -461,7 +458,7 @@ public: // Creation for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1, ++l ) { - reassign( l, a( i1, i2, i3, i4, i5, i6 ) ); + initialize( l, a( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -490,7 +487,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( conformable( a ) ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -514,7 +511,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -538,7 +535,7 @@ public: // Creation if ( a.dimensions_initialized() ) { assert( size_ == a.size() ); for ( size_type i = 0, e = size_; i < e; ++i ) { - reassign( i, a[ i ] ); + initialize( i, a[ i ] ); } } } @@ -959,32 +956,12 @@ public: // Assignment: Value public: // Subscript - // Const Tail Starting at array( i1, i2, i3, i4, i5, i6 ) - inline - Tail const - a( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) && ( I4_.contains( i4 ) ) && ( I5_.contains( i5 ) ) && ( I6_.contains( i6 ) ) ); - size_type const offset( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); - } - - // Tail Starting at array( i1, i2, i3, i4, i5, i6 ) - inline - Tail - a( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) - { - assert( ( I1_.contains( i1 ) ) && ( I2_.contains( i2 ) ) && ( I3_.contains( i3 ) ) && ( I4_.contains( i4 ) ) && ( I5_.contains( i5 ) ) && ( I6_.contains( i6 ) ) ); - size_type const offset( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - return Tail( data_ + offset, data_size_ - offset ); - } - // Linear Index inline size_type index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const { - assert( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) && ( I5_.initialized() ) && ( I6_.initialized() ) ); + assert( dimensions_initialized() ); return ( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); } @@ -1006,6 +983,26 @@ public: // Subscript return data_[ i ]; } + // Const Tail Starting at array( i1, i2, i3, i4, i5, i6 ) + inline + Tail const + a( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const + { + assert( contains( i1, i2, i3, i4, i5, i6 ) ); + size_type const offset( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( static_cast< T const * >( data_ + offset ), data_size_ - offset ); + } + + // Tail Starting at array( i1, i2, i3, i4, i5, i6 ) + inline + Tail + a( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) + { + assert( contains( i1, i2, i3, i4, i5, i6 ) ); + size_type const offset( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + return Tail( data_ + offset, data_size_ - offset ); + } + public: // Predicate // Dimensions Initialized? @@ -1397,8 +1394,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5, i6 ) = operator ()( i1, i2, i3, i4, i5, i6 ); + size_type l( index( b1, i2, i3, i4, i5, i6 ) ); + size_type m( o.index( b1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1429,8 +1428,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5, i6 ) = operator ()( i1, i2, i3, i4, i5, i6 ); + size_type l( index( b1, i2, i3, i4, i5, i6 ) ); + size_type m( o.index( b1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1462,8 +1463,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5, i6 ) = operator ()( i1, i2, i3, i4, i5, i6 ); + size_type l( index( b1, i2, i3, i4, i5, i6 ) ); + size_type m( o.index( b1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1495,8 +1498,10 @@ public: // Modifier for ( int i4 = b4; i4 <= e4; ++i4 ) { for ( int i3 = b3; i3 <= e3; ++i3 ) { for ( int i2 = b2; i2 <= e2; ++i2 ) { - for ( int i1 = b1; i1 <= e1; ++i1 ) { - o( i1, i2, i3, i4, i5, i6 ) = operator ()( i1, i2, i3, i4, i5, i6 ); + size_type l( index( b1, i2, i3, i4, i5, i6 ) ); + size_type m( o.index( b1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = b1; i1 <= e1; ++i1, ++l, ++m ) { + o[ m ] = operator []( l ); } } } @@ -1542,7 +1547,7 @@ public: // Modifier { if ( ( initializer_.is_active() ) && ( dimensions_initialized() ) ) { if ( initializer_.is_value() ) { - reassign( initializer_.value() ); + initialize( initializer_.value() ); } else if ( initializer_.is_function() ) { initializer_.function()( *this ); } @@ -1556,7 +1561,7 @@ public: // Modifier swap( FArray6D & v ) { using std::swap; - swap6DB( v ); + swap6( v ); I1_.swap_no_notify( v.I1_ ); I2_.swap_no_notify( v.I2_ ); I3_.swap_no_notify( v.I3_ ); @@ -1607,7 +1612,7 @@ protected: // Functions private: // Functions - // Setup for IndexRange Constructor + // Set Up for IndexRange Constructor inline void setup_real() @@ -1912,13 +1917,14 @@ operator ==( FArray6S< T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -1936,13 +1942,14 @@ operator !=( FArray6S< T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -1960,13 +1967,14 @@ operator <( FArray6S< T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -1984,13 +1992,14 @@ operator <=( FArray6S< T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2008,13 +2017,14 @@ operator >( FArray6S< T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2032,13 +2042,14 @@ operator >=( FArray6S< T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2056,14 +2067,14 @@ operator ==( FArray6S< T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == b[ l ] ); } } } @@ -2081,14 +2092,14 @@ operator !=( FArray6S< T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != b[ l ] ); } } } @@ -2106,14 +2117,14 @@ operator <( FArray6S< T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < b[ l ] ); } } } @@ -2131,14 +2142,14 @@ operator <=( FArray6S< T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= b[ l ] ); } } } @@ -2156,14 +2167,14 @@ operator >( FArray6S< T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > b[ l ] ); } } } @@ -2181,14 +2192,14 @@ operator >=( FArray6S< T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= b[ l ] ); } } } @@ -2259,13 +2270,14 @@ FArray6D< bool > operator ==( FArray6S< T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == t ); } } } @@ -2282,13 +2294,14 @@ FArray6D< bool > operator !=( FArray6S< T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != t ); } } } @@ -2305,13 +2318,14 @@ FArray6D< bool > operator <( FArray6S< T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < t ); } } } @@ -2328,13 +2342,14 @@ FArray6D< bool > operator <=( FArray6S< T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= t ); } } } @@ -2351,13 +2366,14 @@ FArray6D< bool > operator >( FArray6S< T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > t ); } } } @@ -2374,13 +2390,14 @@ FArray6D< bool > operator >=( FArray6S< T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= t ); } } } @@ -2454,13 +2471,14 @@ operator ==( MArray6< A, T > const & a, MArray6< A, T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2478,13 +2496,14 @@ operator !=( MArray6< A, T > const & a, MArray6< A, T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2502,13 +2521,14 @@ operator <( MArray6< A, T > const & a, MArray6< A, T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2526,13 +2546,14 @@ operator <=( MArray6< A, T > const & a, MArray6< A, T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2550,13 +2571,14 @@ operator >( MArray6< A, T > const & a, MArray6< A, T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2574,13 +2596,14 @@ operator >=( MArray6< A, T > const & a, MArray6< A, T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2598,14 +2621,14 @@ operator ==( MArray6< A, T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == b[ l ] ); } } } @@ -2623,14 +2646,14 @@ operator !=( MArray6< A, T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != b[ l ] ); } } } @@ -2648,14 +2671,14 @@ operator <( MArray6< A, T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < b[ l ] ); } } } @@ -2673,14 +2696,14 @@ operator <=( MArray6< A, T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= b[ l ] ); } } } @@ -2698,14 +2721,14 @@ operator >( MArray6< A, T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > b[ l ] ); } } } @@ -2723,14 +2746,14 @@ operator >=( MArray6< A, T > const & a, FArray6< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); - typename FArray6< T >::size_type l( 0 ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= b[ l ] ); + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= b[ l ] ); } } } @@ -2802,13 +2825,14 @@ operator ==( MArray6< A, T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2826,13 +2850,14 @@ operator !=( MArray6< A, T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2850,13 +2875,14 @@ operator <( MArray6< A, T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2874,13 +2900,14 @@ operator <=( MArray6< A, T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2898,13 +2925,14 @@ operator >( MArray6< A, T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2922,13 +2950,14 @@ operator >=( MArray6< A, T > const & a, FArray6S< T > const & b ) { assert( conformable( a, b ) ); FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= b( i1, i2, i3, i4, i5, i6 ) ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= b( i1, i2, i3, i4, i5, i6 ) ); } } } @@ -2999,13 +3028,14 @@ FArray6D< bool > operator ==( MArray6< A, T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) == t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) == t ); } } } @@ -3022,13 +3052,14 @@ FArray6D< bool > operator !=( MArray6< A, T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) != t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) != t ); } } } @@ -3045,13 +3076,14 @@ FArray6D< bool > operator <( MArray6< A, T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) < t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) < t ); } } } @@ -3068,13 +3100,14 @@ FArray6D< bool > operator <=( MArray6< A, T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) <= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) <= t ); } } } @@ -3091,13 +3124,14 @@ FArray6D< bool > operator >( MArray6< A, T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) > t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) > t ); } } } @@ -3114,13 +3148,14 @@ FArray6D< bool > operator >=( MArray6< A, T > const & a, T const & t ) { FArray6D< bool > r( FArray6D< bool >::shape( a ) ); + FArray6D< bool >::size_type l( 0 ); for ( int i6 = 1, e6 = r.u6(); i6 <= e6; ++i6 ) { for ( int i5 = 1, e5 = r.u5(); i5 <= e5; ++i5 ) { for ( int i4 = 1, e4 = r.u4(); i4 <= e4; ++i4 ) { for ( int i3 = 1, e3 = r.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = r.u2(); i2 <= e2; ++i2 ) { - for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1 ) { - r( i1, i2, i3, i4, i5, i6 ) = ( a( i1, i2, i3, i4, i5, i6 ) >= t ); + for ( int i1 = 1, e1 = r.u1(); i1 <= e1; ++i1, ++l ) { + r[ l ] = ( a( i1, i2, i3, i4, i5, i6 ) >= t ); } } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6P.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6P.hh index 60be90b4efe..dc4035e7be9 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6P.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6P.hh @@ -29,8 +29,6 @@ class FArray6P : public FArray6< T >, public ObserverMulti private: // Types typedef FArray6< T > Super; - typedef typename Super::real_FArray real_FArray; - typedef typename Super::proxy_FArray proxy_FArray; typedef internal::ProxySentinel ProxySentinel; private: // Friend @@ -116,7 +114,7 @@ public: // Creation // Real Constructor inline - FArray6P( real_FArray const & a ) : + FArray6P( FArray6D< T > const & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -225,7 +223,7 @@ public: // Creation // Real + IndexRange Constructor inline - FArray6P( real_FArray const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : + FArray6P( FArray6D< T > const & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -329,7 +327,7 @@ public: // Creation // Non-Const Real Constructor inline - FArray6P( real_FArray & a ) : + FArray6P( FArray6D< T > & a ) : Super( a, ProxySentinel() ), I1_( a.I1_ ), I2_( a.I2_ ), @@ -438,7 +436,7 @@ public: // Creation // Non-Const Real + IndexRange Constructor inline - FArray6P( real_FArray & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : + FArray6P( FArray6D< T > & a, IR const & I1, IR const & I2, IR const & I3, IR const & I4, IR const & I5, IR const & I6 ) : Super( a, ProxySentinel() ), I1_( I1 ), I2_( I2 ), @@ -824,6 +822,15 @@ public: // Assignment: Value public: // Subscript + // Linear Index + inline + size_type + index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const + { + assert( ( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) && ( I5_.initialized() ) && ( I6_.initialized() ) ) ); + return ( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); + } + // Const Tail Starting at array( i1, i2, i3, i4, i5, i6 ) inline Tail const @@ -845,15 +852,6 @@ public: // Subscript return Tail( data_ + offset, ( data_size_ != npos ? data_size_ - offset : npos ) ); } - // Linear Index - inline - size_type - index( int const i1, int const i2, int const i3, int const i4, int const i5, int const i6 ) const - { - assert( ( ( I1_.initialized() ) && ( I2_.initialized() ) && ( I3_.initialized() ) && ( I4_.initialized() ) && ( I5_.initialized() ) && ( I6_.initialized() ) ) ); - return ( ( ( ( ( ( ( ( ( ( ( i6 * z5_ ) + i5 ) * z4_ ) + i4 ) * z3_ ) + i3 ) * z2_ ) + i2 ) * z1_ ) + i1 ) - shift_ ); - } - public: // Predicate // Dimensions Initialized? @@ -1159,7 +1157,7 @@ public: // Modifier // Attach to Real Array inline FArray6P & - attach( real_FArray const & a ) + attach( FArray6D< T > const & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1182,7 +1180,7 @@ public: // Modifier // Attach to Non-Const Real Array inline FArray6P & - attach( real_FArray & a ) + attach( FArray6D< T > & a ) { Base::attach( a ); z1_ = a.z1_; @@ -1253,7 +1251,7 @@ public: // Modifier FArray6P & attach( Base const & a ) { - Base::attach( a, 6 ); + Base::attach< 6 >( a ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1272,7 +1270,7 @@ public: // Modifier FArray6P & attach( Base & a ) { - Base::attach( a, 6 ); + Base::attach< 6 >( a ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1291,7 +1289,7 @@ public: // Modifier FArray6P & attach( Tail const & s ) { - Base::attach( s, 6 ); + Base::attach< 6 >( s ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1309,7 +1307,7 @@ public: // Modifier FArray6P & attach( Tail & s ) { - Base::attach( s, 6 ); + Base::attach< 6 >( s ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1327,7 +1325,7 @@ public: // Modifier FArray6P & attach( T const & t ) { - Base::attach( t, 6 ); + Base::attach< 6 >( t ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; @@ -1345,7 +1343,7 @@ public: // Modifier FArray6P & attach( T & t ) { - Base::attach( t, 6 ); + Base::attach< 6 >( t ); z1_ = z2_ = z3_ = z4_ = z5_ = 1; I1_ = 1; I2_ = 1; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.hh index 0ec7e3da7e4..d945811e874 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.hh @@ -479,7 +479,7 @@ public: // Assignment: Array for ( int i3 = 1; i3 <= u3_; ++i3 ) { for ( int i2 = 1; i2 <= u2_; ++i2 ) { for ( int i1 = 1; i1 <= u1_; ++i1 ) { - assert( T( a( i1, i2, i3, i4, i5, i6 ) ) != T( 0 ) ); + assert( a( i1, i2, i3, i4, i5, i6 ) != T( 0 ) ); operator ()( i1, i2, i3, i4, i5, i6 ) /= a( i1, i2, i3, i4, i5, i6 ); } } @@ -672,7 +672,7 @@ public: // Assignment: Array for ( int j3 = a.l3(), e3 = a.u3(); j3 <= e3; ++j3 ) { for ( int j2 = a.l2(), e2 = a.u2(); j2 <= e2; ++j2 ) { for ( int j1 = a.l1(), e1 = a.u1(); j1 <= e1; ++j1, ++l ) { - assert( T( a( j1, j2, j3, j4, j5, j6 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4, j5, j6 ) != T( 0 ) ); c[ l ] = a( j1, j2, j3, j4, j5, j6 ); } } @@ -701,7 +701,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3, j4, j5, j6 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4, j5, j6 ) != T( 0 ) ); operator ()( i1, i2, i3, i4, i5, i6 ) /= a( j1, j2, j3, j4, j5, j6 ); } } @@ -795,7 +795,7 @@ public: // Assignment: Array for ( int i3 = 1, j3 = a.l3(); i3 <= u3_; ++i3, ++j3 ) { for ( int i2 = 1, j2 = a.l2(); i2 <= u2_; ++i2, ++j2 ) { for ( int i1 = 1, j1 = a.l1(); i1 <= u1_; ++i1, ++j1 ) { - assert( T( a( j1, j2, j3, j4, j5 ) ) != T( 0 ) ); + assert( a( j1, j2, j3, j4, j5 ) != T( 0 ) ); operator ()( i1, i2, i3, i4, i5, i6 ) /= a( j1, j2, j3, j4, j5, j6 ); } } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.io.hh index 3ba4cab08db..5c65c53de6a 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArray6S.io.hh @@ -56,11 +56,11 @@ operator <<( std::ostream & stream, FArray6S< T > const & a ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { @@ -154,7 +154,7 @@ LD( FArray6S< T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArrayInitializer.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArrayInitializer.hh index 1e3df21457e..1c11fdc284f 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArrayInitializer.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArrayInitializer.hh @@ -196,6 +196,18 @@ public: // Modifier } } + // Swap + inline + void + swap( FArrayInitializer & o ) + { + using std::swap; + swap( state_, o.state_ ); + swap( sticky_, o.sticky_ ); + swap( value_, o.value_ ); + swap( function_, o.function_ ); + } + private: // Data State state_; // State @@ -205,6 +217,15 @@ private: // Data }; // FArrayInitializer +// Swap +template< typename T, template< typename > class Array > +inline +void +swap( FArrayInitializer< T, Array > & a, FArrayInitializer< T, Array > & b ) +{ + a.swap( b ); +} + } // ObjexxFCL #endif // ObjexxFCL_FArrayInitializer_hh_INCLUDED diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArrayS.functions.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArrayS.functions.hh index fdfe69ee504..c90e87e80ef 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArrayS.functions.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArrayS.functions.hh @@ -431,27 +431,27 @@ count( FArray2S< bool > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< FArray2S< bool >::size_type > v( a.isize2() ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - FArray2S< bool >::size_type c( 0u ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( a( i1, i2 ) ) ++c; - } - v( i2 ) = c; + FArray1D< FArray2S< bool >::size_type > v( a.isize2() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + FArray2S< bool >::size_type c( 0u ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + if ( a( i1, i2 ) ) ++c; } - return v; + v( i2 ) = c; + } + return v; } case 2: { - FArray1D< FArray2S< bool >::size_type > v( a.isize1() ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - FArray2S< bool >::size_type c( 0u ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - if ( a( i1, i2 ) ) ++c; - } - v( i1 ) = c; + FArray1D< FArray2S< bool >::size_type > v( a.isize1() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + FArray2S< bool >::size_type c( 0u ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + if ( a( i1, i2 ) ) ++c; } - return v; + v( i1 ) = c; + } + return v; } default: assert( false ); @@ -459,12 +459,12 @@ count( FArray2S< bool > const & a, int const dim ) } } -// is_contiguous ///// +// contiguous ///// template< typename T > inline bool -is_contiguous( FArrayS< T > const & ) +contiguous( FArrayS< T > const & ) { return false; //Do Replace by method call once we support it } @@ -1578,27 +1578,27 @@ sum( FArray2S< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< T > sums( a.size2(), 0 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T s( 0 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - s += a( i1, i2 ); - } - sums( i2 ) = s; + FArray1D< T > sums( a.size2() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T s( 0 ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + s += a( i1, i2 ); } - return sums; + sums( i2 ) = s; + } + return sums; } case 2: { - FArray1D< T > sums( a.size1(), 0 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T s( 0 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - s += a( i1, i2 ); - } - sums( i1 ) = s; + FArray1D< T > sums( a.size1() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T s( 0 ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + s += a( i1, i2 ); } - return sums; + sums( i1 ) = s; + } + return sums; } default: assert( false ); @@ -1842,27 +1842,27 @@ product( FArray2S< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< T > prds( a.size2(), 0 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T p( 1 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - p *= a( i1, i2 ); - } - prds( i2 ) = p; + FArray1D< T > prds( a.isize2() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T p( 1 ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + p *= a( i1, i2 ); } - return prds; + prds( i2 ) = p; + } + return prds; } case 2: { - FArray1D< T > prds( a.size1(), 0 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T p( 1 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - p *= a( i1, i2 ); - } - prds( i1 ) = p; + FArray1D< T > prds( a.isize1() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T p( 1 ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + p *= a( i1, i2 ); } - return prds; + prds( i1 ) = p; + } + return prds; } default: assert( false ); @@ -2630,31 +2630,31 @@ minloc( FArray2S< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< int > loc( a.size2(), a.size2() > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T r( std::numeric_limits< T >::max() ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( a( i1, i2 ) < r ) { - r = a( i1, i2 ); - loc( i2 ) = i1; - } + FArray1D< int > loc( a.isize2(), a.size2() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T r( std::numeric_limits< T >::max() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + if ( a( i1, i2 ) < r ) { + r = a( i1, i2 ); + loc( i2 ) = i1; } } - return loc; + } + return loc; } case 2: { - FArray1D< int > loc( a.size1(), a.size1() > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T r( std::numeric_limits< T >::max() ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - if ( a( i1, i2 ) < r ) { - r = a( i1, i2 ); - loc( i1 ) = i2; - } + FArray1D< int > loc( a.isize1(), a.size1() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T r( std::numeric_limits< T >::max() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + if ( a( i1, i2 ) < r ) { + r = a( i1, i2 ); + loc( i1 ) = i2; } } - return loc; + } + return loc; } default: assert( false ); @@ -2944,31 +2944,31 @@ maxloc( FArray2S< T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< int > loc( a.size2(), a.size2() > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T r( std::numeric_limits< T >::lowest() ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( a( i1, i2 ) > r ) { - r = a( i1, i2 ); - loc( i2 ) = i1; - } + FArray1D< int > loc( a.isize2(), a.size2() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T r( std::numeric_limits< T >::lowest() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + if ( a( i1, i2 ) > r ) { + r = a( i1, i2 ); + loc( i2 ) = i1; } } - return loc; + } + return loc; } case 2: { - FArray1D< int > loc( a.size1(), a.size1() > 0 ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T r( std::numeric_limits< T >::lowest() ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - if ( a( i1, i2 ) > r ) { - r = a( i1, i2 ); - loc( i1 ) = i2; - } + FArray1D< int > loc( a.isize1(), a.size1() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T r( std::numeric_limits< T >::lowest() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + if ( a( i1, i2 ) > r ) { + r = a( i1, i2 ); + loc( i1 ) = i2; } } - return loc; + } + return loc; } default: assert( false ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/FArrayTail.hh b/third_party/ObjexxFCL/src/ObjexxFCL/FArrayTail.hh index ccaa7596d7e..a77d75bf49c 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/FArrayTail.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/FArrayTail.hh @@ -64,8 +64,8 @@ public: // Creation // Pointer + Size Constructor inline - FArrayTail( T const * array, size_type const size ) : - data_( const_cast< T * >( array ) ), + FArrayTail( T const * a, size_type const size ) : + data_( const_cast< T * >( a ) ), size_( size ) #ifdef OBJEXXFCL_PROXY_CONST_CHECKS , const_proxy_( true ) @@ -84,8 +84,8 @@ public: // Creation // Non-Const Pointer + Size Constructor inline - FArrayTail( T * array, size_type const size ) : - data_( array ), + FArrayTail( T * a, size_type const size ) : + data_( a ), size_( size ), const_proxy_( false ) {} diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/Format.cc b/third_party/ObjexxFCL/src/ObjexxFCL/Format.cc index 3f77e580d15..c12db86764a 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/Format.cc +++ b/third_party/ObjexxFCL/src/ObjexxFCL/Format.cc @@ -717,7 +717,7 @@ typedef std::vector< Format * > Formats; void FormatG::in( std::istream & stream, bool & b ) { - std::string const s( read( stream, wid( TraitsG< bool >::w() ) ) ); + std::string const s( read( stream, wid( TraitsG< bool >::w ) ) ); if ( has_prefix( s, "T", false ) || has_prefix( s, ".T", false ) ) { b = true; } else if ( has_prefix( s, "F", false ) || has_prefix( s, ".F", false ) || is_blank( s ) ) { // Blank is Intel Fortran extension @@ -731,7 +731,7 @@ typedef std::vector< Format * > Formats; void FormatG::in( std::istream & stream, char & c ) { - std::string const b( read( stream, wid( TraitsG< char >::w() ) ) ); // Buffer string + std::string const b( read( stream, wid( TraitsG< char >::w ) ) ); // Buffer string std::string::size_type const lb( b.length() ); // Might be < w() if hit end of record if ( lb >= 1 ) { // Take rightmost character read c = b.back(); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/Format.hh b/third_party/ObjexxFCL/src/ObjexxFCL/Format.hh index 3ab226aba4a..fa8719ba55a 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/Format.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/Format.hh @@ -3100,7 +3100,7 @@ private: // Methods void read_val_reinterpret( std::istream & stream, T & t ) const { - Size const w( TraitsA< T >::w() ); + Size const w( TraitsA< T >::w ); std::string s( read( stream, wid( w ) ) ); std::string::size_type const ls( s.length() ); if ( ( w > 0ul ) && ( ls < w ) ) s += std::string( w - ls, ' ' ); // Right-pad to width needed by T @@ -3119,7 +3119,7 @@ private: // Methods void write_val_reinterpret( std::ostream & stream, T const & t, std::string const & ter ) { - Size const w( TraitsA< T >::w() ); + Size const w( TraitsA< T >::w ); Size const ww( wid( w ) ); Size const wt( std::min( w, ww ) ); std::string s( ww, ' ' ); @@ -3133,7 +3133,7 @@ private: // Methods void write_val_reinterpret( std::ostream & stream, bool const b, std::string const & ter ) { - Size const w( TraitsA< bool >::w() ); + Size const w( TraitsA< bool >::w ); Size const ww( wid( w ) ); Size const wt( std::min( w, ww ) ); std::string s( ww, ' ' ); @@ -3335,7 +3335,7 @@ public: // Properties return w_; } - // Min Width + // Minimum Width inline Size m() const @@ -3467,7 +3467,7 @@ protected: // Methods void read_int( std::istream & stream, T & t ) const { - std::string const s( blank_process( read( stream, wid( TraitsI< T >::w() ) ) ) ); + std::string const s( blank_process( read( stream, wid( TraitsI< T >::w ) ) ) ); t = static_cast< T >( read_int_base( stream, s ) ); } @@ -3477,7 +3477,7 @@ protected: // Methods void read_int_reinterpret( std::istream & stream, T & t ) const { - std::string const s( blank_process( read( stream, wid( TraitsI< T >::w() ) ) ) ); + std::string const s( blank_process( read( stream, wid( TraitsI< T >::w ) ) ) ); read_int_reinterpret( stream, s, t ); } @@ -3854,7 +3854,7 @@ protected: // Methods void read_binary( std::istream & stream, T & t ) const { - std::string const s( blank_process( read( stream, wid( TraitsB< T >::w() ) ) ) ); + std::string const s( blank_process( read( stream, wid( TraitsB< T >::w ) ) ) ); t = static_cast< T >( read_int_base( stream, s ) ); } @@ -3864,7 +3864,7 @@ protected: // Methods void read_binary_reinterpret( std::istream & stream, T & t ) const { - std::string const s( blank_process( read( stream, wid( TraitsB< T >::w() ) ) ) ); + std::string const s( blank_process( read( stream, wid( TraitsB< T >::w ) ) ) ); read_int_reinterpret( stream, s, t ); } @@ -4272,7 +4272,7 @@ public: // Input Methods void in( std::istream & stream, bool & b ) { - std::string const s( blank_process( read_float( stream, wid( TraitsF< bool >::w() ) ) ) ); + std::string const s( blank_process( read_float( stream, wid( TraitsF< bool >::w ) ) ) ); if ( s.length() > 0 ) { bool ok( is_type< float >( s ) ); float const v( val_of< float >( s ) ); @@ -4365,7 +4365,7 @@ protected: // Methods void read_val( std::istream & stream, T & t ) const { - std::string const s( blank_process( read_float( stream, wid( TraitsF< T >::w() ) ) ) ); + std::string const s( blank_process( read_float( stream, wid( TraitsF< T >::w ) ) ) ); if ( is_type< T >( s ) ) { t = type_of< T >( s ); if ( ( d_ > 0ul ) && ( t != T( 0 ) ) && ( ! has( s, '.' ) ) ) t /= static_cast< T >( std::pow( T( 10 ), d_ ) ); // Apply implied decimal point @@ -4382,7 +4382,7 @@ protected: // Methods void read_val_reinterpret( std::istream & stream, T & t ) const { - std::string const s( blank_process( read_float( stream, wid( TraitsF< T >::w() ) ) ) ); + std::string const s( blank_process( read_float( stream, wid( TraitsF< T >::w ) ) ) ); if ( s.length() > 0 ) { bool ok( true ); if ( sizeof( T ) < sizeof( float ) ) { @@ -4767,7 +4767,7 @@ protected: // Methods void read_int( std::istream & stream, T & t ) const { - std::string const s( blank_process( read( stream, wid( TraitsG< T >::w() ) ) ) ); + std::string const s( blank_process( read( stream, wid( TraitsG< T >::w ) ) ) ); if ( is_type< T >( s ) ) { t = type_of< T >( s ); } else { // Bad input diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/Fstring.hh b/third_party/ObjexxFCL/src/ObjexxFCL/Fstring.hh index 956d859fd94..a261fb1eb6b 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/Fstring.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/Fstring.hh @@ -2810,7 +2810,7 @@ Fstring Fstring_of( T const & t ) { std::ostringstream t_stream; - t_stream << std::uppercase << std::setprecision( TypeTraits< T >::precision() ) << t; + t_stream << std::uppercase << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -2849,7 +2849,7 @@ left_Fstring_of( { std::ostringstream t_stream; t_stream << std::left << std::uppercase - << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision() ) << t; + << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -2865,7 +2865,7 @@ right_Fstring_of( { std::ostringstream t_stream; t_stream << std::right << std::uppercase - << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision() ) << t; + << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -2881,7 +2881,7 @@ lead_zero_Fstring_of( { std::ostringstream t_stream; t_stream << std::internal << std::uppercase - << std::setw( w ) << std::setfill( '0' ) << std::setprecision( TypeTraits< T >::precision() ) << t; + << std::setw( w ) << std::setfill( '0' ) << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -2891,8 +2891,8 @@ inline Fstring general_Fstring_of( T const & t, - int const w = TypeTraits< T >::iwidth(), // Minimum width - std::streamsize const p = TypeTraits< T >::precision() // Precision + int const w = TypeTraits< T >::iwidth, // Minimum width + std::streamsize const p = TypeTraits< T >::precision // Precision ) { std::ostringstream t_stream; @@ -2907,8 +2907,8 @@ inline Fstring fixed_Fstring_of( T const & t, - int const w = TypeTraits< T >::iwidth(), // Minimum width - std::streamsize const p = TypeTraits< T >::precision() // Precision + int const w = TypeTraits< T >::iwidth, // Minimum width + std::streamsize const p = TypeTraits< T >::precision // Precision ) { std::ostringstream t_stream; @@ -2923,8 +2923,8 @@ inline Fstring scientific_Fstring_of( T const & t, - int const w = TypeTraits< T >::iwidth(), // Minimum width - std::streamsize const p = TypeTraits< T >::precision() // Precision + int const w = TypeTraits< T >::iwidth, // Minimum width + std::streamsize const p = TypeTraits< T >::precision // Precision ) { std::ostringstream t_stream; diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.fwd.hh b/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.fwd.hh index a8aa4b99995..05cbaff7047 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.fwd.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.fwd.hh @@ -18,9 +18,6 @@ namespace ObjexxFCL { // Forward class IndexRange; -// Types -typedef IndexRange IRange; - } // ObjexxFCL #endif // ObjexxFCL_IndexRange_fwd_hh_INCLUDED diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.hh b/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.hh index 8eb6b136e69..8ddee09aa7f 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/IndexRange.hh @@ -716,15 +716,11 @@ private: // Data int l_; // Lower index int u_; // Upper index - size_type size_; // Size (npos iff unbounded) }; // IndexRange -// Types -typedef IndexRange IRange; - -// Comparison +// Functions // IndexRange == IndexRange inline @@ -774,8 +770,6 @@ operator >=( IndexRange const & I, IndexRange const & J ) return ( I.positive() && J.positive() && ( I.l() >= J.u() ) ); } -// I/O - // Stream Input std::istream & operator >>( std::istream & stream, IndexRange & I ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray.functions.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray.functions.hh index 700bc3fd187..52e96ec1465 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray.functions.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray.functions.hh @@ -476,27 +476,27 @@ count( MArray2< A, bool > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< typename MArray2< A, bool >::size_type > v( a.isize2() ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - typename MArray2< A, bool >::size_type c( 0u ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( a( i1, i2 ) ) ++c; - } - v( i2 ) = c; + FArray1D< typename MArray2< A, bool >::size_type > v( a.isize2() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + typename MArray2< A, bool >::size_type c( 0u ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + if ( a( i1, i2 ) ) ++c; } - return v; + v( i2 ) = c; + } + return v; } case 2: { - FArray1D< typename MArray2< A, bool >::size_type > v( a.isize1() ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - typename MArray2< A, bool >::size_type c( 0u ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - if ( a( i1, i2 ) ) ++c; - } - v( i1 ) = c; + FArray1D< typename MArray2< A, bool >::size_type > v( a.isize1() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + typename MArray2< A, bool >::size_type c( 0u ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + if ( a( i1, i2 ) ) ++c; } - return v; + v( i1 ) = c; + } + return v; } default: assert( false ); @@ -504,12 +504,12 @@ count( MArray2< A, bool > const & a, int const dim ) } } -// is_contiguous ///// +// contiguous ///// template< class A, typename T > inline bool -is_contiguous( MArray< A, T > const & ) +contiguous( MArray< A, T > const & ) { return false; // Member arrays are by definition non-contiguous } @@ -1668,27 +1668,27 @@ sum( MArray2< A, T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< T > sums( a.size2(), 0 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T s( 0 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - s += a( i1, i2 ); - } - sums( i2 ) = s; + FArray1D< T > r( a.isize2() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T s( 0 ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + s += a( i1, i2 ); } - return sums; + r( i2 ) = s; + } + return r; } case 2: { - FArray1D< T > sums( a.size1(), 0 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T s( 0 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - s += a( i1, i2 ); - } - sums( i1 ) = s; + FArray1D< T > r( a.isize1() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T s( 0 ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + s += a( i1, i2 ); } - return sums; + r( i1 ) = s; + } + return r; } default: assert( false ); @@ -2134,27 +2134,27 @@ product( MArray2< A, T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< T > prds( a.size2(), 0 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T p( 1 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - p *= a( i1, i2 ); - } - prds( i2 ) = p; + FArray1D< T > r( a.isize2() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T p( 1 ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + p *= a( i1, i2 ); } - return prds; + r( i2 ) = p; + } + return r; } case 2: { - FArray1D< T > prds( a.size1(), 0 ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T p( 1 ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - p *= a( i1, i2 ); - } - prds( i1 ) = p; + FArray1D< T > r( a.isize1() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T p( 1 ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + p *= a( i1, i2 ); } - return prds; + r( i1 ) = p; + } + return r; } default: assert( false ); @@ -2972,31 +2972,31 @@ minloc( MArray2< A, T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< int > loc( a.size2(), a.size2() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T r( std::numeric_limits< T >::max() ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( a( i1, i2 ) < r ) { - r = a( i1, i2 ); - loc( i2 ) = i1; - } + FArray1D< int > loc( a.isize2(), a.size2() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T r( std::numeric_limits< T >::max() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + if ( a( i1, i2 ) < r ) { + r = a( i1, i2 ); + loc( i2 ) = i1; } } - return loc; + } + return loc; } case 2: { - FArray1D< int > loc( a.size1(), a.size1() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T r( std::numeric_limits< T >::max() ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - if ( a( i1, i2 ) < r ) { - r = a( i1, i2 ); - loc( i1 ) = i2; - } + FArray1D< int > loc( a.isize1(), a.size1() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T r( std::numeric_limits< T >::max() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + if ( a( i1, i2 ) < r ) { + r = a( i1, i2 ); + loc( i1 ) = i2; } } - return loc; + } + return loc; } default: assert( false ); @@ -3300,31 +3300,31 @@ maxloc( MArray2< A, T > const & a, int const dim ) switch ( dim ) { case 1: { - FArray1D< int > loc( a.size2(), a.size2() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - T r( std::numeric_limits< T >::lowest() ); - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( a( i1, i2 ) > r ) { - r = a( i1, i2 ); - loc( i2 ) = i1; - } + FArray1D< int > loc( a.isize2(), a.size2() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + T r( std::numeric_limits< T >::lowest() ); + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + if ( a( i1, i2 ) > r ) { + r = a( i1, i2 ); + loc( i2 ) = i1; } } - return loc; + } + return loc; } case 2: { - FArray1D< int > loc( a.size1(), a.size1() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays - for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - T r( std::numeric_limits< T >::lowest() ); - for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - if ( a( i1, i2 ) > r ) { - r = a( i1, i2 ); - loc( i1 ) = i2; - } + FArray1D< int > loc( a.isize1(), a.size1() > 0u ? 1 : 0 ); // F2008 standard => 0 for empty arrays + for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { + T r( std::numeric_limits< T >::lowest() ); + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + if ( a( i1, i2 ) > r ) { + r = a( i1, i2 ); + loc( i1 ) = i2; } } - return loc; + } + return loc; } default: assert( false ); @@ -3643,7 +3643,7 @@ matmul( MArray2< A, bool > const & a, MArray2< A, bool > const & b ) return m; } -// Array Generators +// Subscript Array Generators // Subscripted Array template< class A, typename T > @@ -3651,7 +3651,7 @@ inline FArray1D< T > array_sub( MArray1< A, T > const & a, FArray1< int > const & sub ) { - FArray1D< T > r( sub.size() ); + FArray1D< T > r( sub.isize() ); for ( int i = sub.l(), e = sub.u(), k = 1; i <= e; ++i, ++k ) { r( k ) = a( sub( i ) ); } @@ -3664,9 +3664,9 @@ inline FArray1D< T > array_sub( MArray1< A, T > const & a, FArray1S< int > const & sub ) { - FArray1D< T > r( sub.size() ); - for ( int i = sub.l(), e = sub.u(), k = 1; i <= e; ++i, ++k ) { - r( k ) = a( sub( i ) ); + FArray1D< T > r( sub.isize() ); + for ( int i = 1, e = sub.u(); i <= e; ++i ) { + r( i ) = a( sub( i ) ); } return r; } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray.hh index 555b22c5dce..8348d83f063 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray.hh @@ -69,8 +69,8 @@ protected: // Creation // Constructor inline - MArray( A & array, T Class::* pmem ) : - array_( array ), + MArray( A & a, T Class::* pmem ) : + array_( a ), pmem_( pmem ) {} diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.hh index 786552b6d39..23a74330565 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.hh @@ -1869,18 +1869,18 @@ public: // Comparison: Count template< class A, typename T > inline MArray1< A, T > -make_MArray1( A & array, T A::value_type::* pmem ) +make_MArray1( A & a, T A::value_type::* pmem ) { - return MArray1< A, T >( array, pmem ); + return MArray1< A, T >( a, pmem ); } // Make a MArray1 template< class A, typename T > inline MArray1< A, T > -MA1( A & array, T A::value_type::* pmem ) +MA1( A & a, T A::value_type::* pmem ) { - return MArray1< A, T >( array, pmem ); + return MArray1< A, T >( a, pmem ); } // Conformable? diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.io.hh index 17bbc9081cc..4f734503c76 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray1.io.hh @@ -39,29 +39,24 @@ std::ostream & operator <<( std::ostream & stream, MArray1< A, T > const & a ) { if ( ( stream ) && ( a.size() > 0u ) ) { // Write array to stream - - // Types - using std::setw; typedef TypeTraits< T > Traits; // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); - for ( int i = 1, e = a.u(); i < e; ++i ) { - stream << setw( w ) << a( i ) << ' '; + int const w( Traits::iwidth ); + for ( int i = 1, e = a.u(); i <= e; ++i ) { + stream << std::setw( w ) << a( i ) << ' '; if ( ! stream ) break; - } stream << setw( w ) << a( a.u() ); + } // Restore previous stream state stream.precision( old_precision ); stream.flags( old_flags ); - } - return stream; } @@ -74,11 +69,8 @@ read_binary( std::istream & stream, MArray1< A, T > & a ) if ( ( stream ) && ( n > 0u ) ) { // Read array from stream std::size_t const type_size( sizeof( T ) / sizeof( std::istream::char_type ) ); for ( int i = 1, e = a.u(); i <= e; ++i ) { - if ( stream ) { - stream.read( ( std::istream::char_type * )&a( i ), type_size ); - } else { - break; - } + stream.read( ( std::istream::char_type * )&a( i ), type_size ); + if ( ! stream ) break; } } return stream; @@ -93,11 +85,8 @@ write_binary( std::ostream & stream, MArray1< A, T > const & a ) if ( ( stream ) && ( n > 0u ) ) { // Write array to stream std::size_t const type_size( sizeof( T ) / sizeof( std::ostream::char_type ) ); for ( int i = 1, e = a.u(); i <= e; ++i ) { - if ( stream ) { - stream.write( ( std::ostream::char_type const * )&a( i ), type_size ); - } else { - break; - } + stream.write( ( std::ostream::char_type const * )&a( i ), type_size ); + if ( ! stream ) break; } } return stream; @@ -114,7 +103,7 @@ LD( MArray1< A, T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i = 1, e = a.u(); i <= e; ++i ) { s.append( fmt::LD( a( i ) ) ); } diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.hh index 6315c654168..2fe8fa865e0 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.hh @@ -1450,18 +1450,18 @@ public: // Comparison: Count template< class A, typename T > inline MArray2< A, T > -make_MArray2( A & array, T A::value_type::* pmem ) +make_MArray2( A & a, T A::value_type::* pmem ) { - return MArray2< A, T >( array, pmem ); + return MArray2< A, T >( a, pmem ); } // Make a MArray2 template< class A, typename T > inline MArray2< A, T > -MA2( A & array, T A::value_type::* pmem ) +MA2( A & a, T A::value_type::* pmem ) { - return MArray2< A, T >( array, pmem ); + return MArray2< A, T >( a, pmem ); } // Conformable? diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.io.hh index f04e87c4923..9ae512075ca 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray2.io.hh @@ -41,31 +41,26 @@ std::ostream & operator <<( std::ostream & stream, MArray2< A, T > const & a ) { if ( ( stream ) && ( a.size() > 0u ) ) { // Write array to stream in row-major order - - // Types - using std::setw; typedef TypeTraits< T > Traits; // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - for ( int i2 = 1, e2 = a.u2(); i2 < e2; ++i2 ) { - stream << setw( w ) << a( i1, i2 ) << ' '; + for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { + stream << std::setw( w ) << a( i1, i2 ) << ' '; if ( ! stream ) break; - } stream << setw( w ) << a( i1, a.u2() ) << '\n'; + } if ( ! stream ) break; } // Restore previous stream state stream.precision( old_precision ); stream.flags( old_flags ); - } - return stream; } @@ -79,12 +74,9 @@ read_binary( std::istream & stream, MArray2< A, T > & a ) std::size_t const type_size( sizeof( T ) / sizeof( std::istream::char_type ) ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.read( ( std::istream::char_type * )&a( i1, i2 ), type_size ); - } else { - break; - } - } + stream.read( ( std::istream::char_type * )&a( i1, i2 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -100,12 +92,9 @@ write_binary( std::ostream & stream, MArray2< A, T > const & a ) std::size_t const type_size( sizeof( T ) / sizeof( std::ostream::char_type ) ); for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.write( ( std::ostream::char_type const * )&a( i1, i2 ), type_size ); - } else { - break; - } - } + stream.write( ( std::ostream::char_type const * )&a( i1, i2 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -122,7 +111,7 @@ LD( MArray2< A, T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { s.append( fmt::LD( a( i1, i2 ) ) ); diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.hh index 596d16996fa..3512ddfad2e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.hh @@ -1592,18 +1592,18 @@ public: // Comparison: Count template< class A, typename T > inline MArray3< A, T > -make_MArray3( A & array, T A::value_type::* pmem ) +make_MArray3( A & a, T A::value_type::* pmem ) { - return MArray3< A, T >( array, pmem ); + return MArray3< A, T >( a, pmem ); } // Make a MArray3 template< class A, typename T > inline MArray3< A, T > -MA3( A & array, T A::value_type::* pmem ) +MA3( A & a, T A::value_type::* pmem ) { - return MArray3< A, T >( array, pmem ); + return MArray3< A, T >( a, pmem ); } // Conformable? diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.io.hh index 91a567e1dc6..efab73528d2 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray3.io.hh @@ -43,33 +43,28 @@ std::ostream & operator <<( std::ostream & stream, MArray3< A, T > const & a ) { if ( ( stream ) && ( a.size() > 0u ) ) { // Write array to stream in row-major order - - // Types - using std::setw; typedef TypeTraits< T > Traits; // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { - for ( int i3 = 1, e3 = a.u3(); i3 < e3; ++i3 ) { - stream << setw( w ) << a( i1, i2, i3 ) << ' '; + for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { + stream << std::setw( w ) << a( i1, i2, i3 ) << ' '; if ( ! stream ) break; - } stream << setw( w ) << a( i1, i2, a.u3() ) << '\n'; + } if ( ! stream ) break; } if ( ! stream ) break; } // Restore previous stream state stream.precision( old_precision ); stream.flags( old_flags ); - } - return stream; } @@ -84,13 +79,10 @@ read_binary( std::istream & stream, MArray3< A, T > & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.read( ( std::istream::char_type * )&a( i1, i2, i3 ), type_size ); - } else { - break; - } - } - } + stream.read( ( std::istream::char_type * )&a( i1, i2, i3 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -107,13 +99,10 @@ write_binary( std::ostream & stream, MArray3< A, T > const & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3 ), type_size ); - } else { - break; - } - } - } + stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -130,7 +119,7 @@ LD( MArray3< A, T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.hh index c0d1568233e..22e88dccba7 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.hh @@ -1732,18 +1732,18 @@ public: // Comparison: Count template< class A, typename T > inline MArray4< A, T > -make_MArray4( A & array, T A::value_type::* pmem ) +make_MArray4( A & a, T A::value_type::* pmem ) { - return MArray4< A, T >( array, pmem ); + return MArray4< A, T >( a, pmem ); } // Make a MArray4 template< class A, typename T > inline MArray4< A, T > -MA4( A & array, T A::value_type::* pmem ) +MA4( A & a, T A::value_type::* pmem ) { - return MArray4< A, T >( array, pmem ); + return MArray4< A, T >( a, pmem ); } // Conformable? diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.io.hh index 61b4f33ccf6..8829b9a2d1e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray4.io.hh @@ -45,25 +45,22 @@ std::ostream & operator <<( std::ostream & stream, MArray4< A, T > const & a ) { if ( ( stream ) && ( a.size() > 0u ) ) { // Write array to stream in row-major order - - // Types - using std::setw; typedef TypeTraits< T > Traits; // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { - for ( int i4 = 1, e4 = a.u4(); i4 < e4; ++i4 ) { - stream << setw( w ) << a( i1, i2, i3, i4 ) << ' '; + for ( int i4 = 1, e4 = a.u4(); i4 <= e4; ++i4 ) { + stream << std::setw( w ) << a( i1, i2, i3, i4 ) << ' '; if ( ! stream ) break; - } stream << setw( w ) << a( i1, i2, i3, a.u4() ) << '\n'; + } if ( ! stream ) break; } if ( ! stream ) break; } if ( ! stream ) break; } @@ -71,9 +68,7 @@ operator <<( std::ostream & stream, MArray4< A, T > const & a ) // Restore previous stream state stream.precision( old_precision ); stream.flags( old_flags ); - } - return stream; } @@ -89,14 +84,11 @@ read_binary( std::istream & stream, MArray4< A, T > & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.read( ( std::istream::char_type * )&a( i1, i2, i3, i4 ), type_size ); - } else { - break; - } - } - } - } + stream.read( ( std::istream::char_type * )&a( i1, i2, i3, i4 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -114,14 +106,11 @@ write_binary( std::ostream & stream, MArray4< A, T > const & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3, i4 ), type_size ); - } else { - break; - } - } - } - } + stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3, i4 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -138,7 +127,7 @@ LD( MArray4< A, T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.hh index 796d1e50937..d637c6647e3 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.hh @@ -1872,18 +1872,18 @@ public: // Comparison: Count template< class A, typename T > inline MArray5< A, T > -make_MArray5( A & array, T A::value_type::* pmem ) +make_MArray5( A & a, T A::value_type::* pmem ) { - return MArray5< A, T >( array, pmem ); + return MArray5< A, T >( a, pmem ); } // Make a MArray5 template< class A, typename T > inline MArray5< A, T > -MA5( A & array, T A::value_type::* pmem ) +MA5( A & a, T A::value_type::* pmem ) { - return MArray5< A, T >( array, pmem ); + return MArray5< A, T >( a, pmem ); } // Conformable? diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.io.hh index 0d5f6a34795..049d04d28e8 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray5.io.hh @@ -47,26 +47,23 @@ std::ostream & operator <<( std::ostream & stream, MArray5< A, T > const & a ) { if ( ( stream ) && ( a.size() > 0u ) ) { // Write array to stream in row-major order - - // Types - using std::setw; typedef TypeTraits< T > Traits; // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i4 = 1, e4 = a.u4(); i4 <= e4; ++i4 ) { - for ( int i5 = 1, e5 = a.u5(); i5 < e5; ++i5 ) { - stream << setw( w ) << a( i1, i2, i3, i4, i5 ) << ' '; + for ( int i5 = 1, e5 = a.u5(); i5 <= e5; ++i5 ) { + stream << std::setw( w ) << a( i1, i2, i3, i4, i5 ) << ' '; if ( ! stream ) break; - } stream << setw( w ) << a( i1, i2, i3, i4, a.u5() ) << '\n'; + } if ( ! stream ) break; } if ( ! stream ) break; } if ( ! stream ) break; } if ( ! stream ) break; @@ -75,9 +72,7 @@ operator <<( std::ostream & stream, MArray5< A, T > const & a ) // Restore previous stream state stream.precision( old_precision ); stream.flags( old_flags ); - } - return stream; } @@ -94,15 +89,12 @@ read_binary( std::istream & stream, MArray5< A, T > & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.read( ( std::istream::char_type * )&a( i1, i2, i3, i4, i5 ), type_size ); - } else { - break; - } - } - } - } - } + stream.read( ( std::istream::char_type * )&a( i1, i2, i3, i4, i5 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -121,15 +113,12 @@ write_binary( std::ostream & stream, MArray5< A, T > const & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3, i4, i5 ), type_size ); - } else { - break; - } - } - } - } - } + stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3, i4, i5 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -146,7 +135,7 @@ LD( MArray5< A, T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.hh index 978c9099109..61aefb518a3 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.hh @@ -2013,18 +2013,18 @@ public: // Comparison: Count template< class A, typename T > inline MArray6< A, T > -make_MArray6( A & array, T A::value_type::* pmem ) +make_MArray6( A & a, T A::value_type::* pmem ) { - return MArray6< A, T >( array, pmem ); + return MArray6< A, T >( a, pmem ); } // Make a MArray6 template< class A, typename T > inline MArray6< A, T > -MA6( A & array, T A::value_type::* pmem ) +MA6( A & a, T A::value_type::* pmem ) { - return MArray6< A, T >( array, pmem ); + return MArray6< A, T >( a, pmem ); } // Conformable? diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.io.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.io.hh index 79648c0c76b..94eba0ec9d2 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.io.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArray6.io.hh @@ -49,27 +49,24 @@ std::ostream & operator <<( std::ostream & stream, MArray6< A, T > const & a ) { if ( ( stream ) && ( a.size() > 0u ) ) { // Write array to stream in row-major order - - // Types - using std::setw; typedef TypeTraits< T > Traits; // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i4 = 1, e4 = a.u4(); i4 <= e4; ++i4 ) { for ( int i5 = 1, e5 = a.u5(); i5 <= e5; ++i5 ) { - for ( int i6 = 1, e6 = a.u6(); i6 < e6; ++i6 ) { - stream << setw( w ) << a( i1, i2, i3, i4, i5, i6 ) << ' '; + for ( int i6 = 1, e6 = a.u6(); i6 <= e6; ++i6 ) { + stream << std::setw( w ) << a( i1, i2, i3, i4, i5, i6 ) << ' '; if ( ! stream ) break; - } stream << setw( w ) << a( i1, i2, i3, i4, i5, a.u6() ) << '\n'; + } if ( ! stream ) break; } if ( ! stream ) break; } if ( ! stream ) break; } if ( ! stream ) break; @@ -79,9 +76,7 @@ operator <<( std::ostream & stream, MArray6< A, T > const & a ) // Restore previous stream state stream.precision( old_precision ); stream.flags( old_flags ); - } - return stream; } @@ -99,16 +94,13 @@ read_binary( std::istream & stream, MArray6< A, T > & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.read( ( std::istream::char_type * )&a( i1, i2, i3, i4, i5, i6 ), type_size ); - } else { - break; - } - } - } - } - } - } + stream.read( ( std::istream::char_type * )&a( i1, i2, i3, i4, i5, i6 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -128,16 +120,13 @@ write_binary( std::ostream & stream, MArray6< A, T > const & a ) for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { - if ( stream ) { - stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3, i4, i5, i6 ), type_size ); - } else { - break; - } - } - } - } - } - } + stream.write( ( std::ostream::char_type const * )&a( i1, i2, i3, i4, i5, i6 ), type_size ); + if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; + } if ( ! stream ) break; } } return stream; @@ -154,7 +143,7 @@ LD( MArray6< A, T > const & a ) std::string s; std::size_t const n( a.size() ); if ( n > 0u ) { - s.reserve( n * TypeTraits< T >::width() ); + s.reserve( n * TypeTraits< T >::width ); for ( int i1 = 1, e1 = a.u1(); i1 <= e1; ++i1 ) { for ( int i2 = 1, e2 = a.u2(); i2 <= e2; ++i2 ) { for ( int i3 = 1, e3 = a.u3(); i3 <= e3; ++i3 ) { diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/MArrayR.hh b/third_party/ObjexxFCL/src/ObjexxFCL/MArrayR.hh index 95717d8d0aa..a2bfe1f5f9e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/MArrayR.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/MArrayR.hh @@ -78,8 +78,8 @@ protected: // Creation // Constructor inline - MArrayR( A & array, T Class::* pmem ) : - Super( array, pmem ) + MArrayR( A & a, T Class::* pmem ) : + Super( a, pmem ) {} public: // Creation diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/ObjexxFCL.fwd.hh b/third_party/ObjexxFCL/src/ObjexxFCL/ObjexxFCL.fwd.hh index f44131ae860..134ea18ef27 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/ObjexxFCL.fwd.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/ObjexxFCL.fwd.hh @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.fwd.hh b/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.fwd.hh index 51b65d92d56..988ee960c08 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.fwd.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.fwd.hh @@ -18,9 +18,6 @@ namespace ObjexxFCL { // Forward class StaticIndexRange; -// Types -typedef StaticIndexRange SRange; - } // ObjexxFCL #endif // ObjexxFCL_StaticIndexRange_fwd_hh_INCLUDED diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.hh b/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.hh index aca44460e63..0bf5b3b57c2 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/StaticIndexRange.hh @@ -666,9 +666,6 @@ public: // Modifier }; // StaticIndexRange -// Types -typedef StaticIndexRange SRange; - // Functions // Swap diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsA.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsA.hh index 832fa987b53..c5383f9205e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsA.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsA.hh @@ -33,14 +33,7 @@ struct TraitsA typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } + static Size const w = 0; // No minimum width for generic types }; // TraitsA @@ -51,14 +44,7 @@ struct TraitsA< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 1; - } + static Size const w = 1; }; // TraitsA @@ -69,14 +55,7 @@ struct TraitsA< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 4; - } + static Size const w = 4; }; // TraitsA @@ -87,14 +66,7 @@ struct TraitsA< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 1; - } + static Size const w = 1; }; // TraitsA @@ -105,14 +77,7 @@ struct TraitsA< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 1; - } + static Size const w = 1; }; // TraitsA @@ -123,14 +88,7 @@ struct TraitsA< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 2; - } + static Size const w = 2; }; // TraitsA @@ -141,14 +99,7 @@ struct TraitsA< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 2; - } + static Size const w = 2; }; // TraitsA @@ -159,14 +110,7 @@ struct TraitsA< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 4; - } + static Size const w = 4; }; // TraitsA @@ -177,14 +121,7 @@ struct TraitsA< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 4; - } + static Size const w = 4; }; // TraitsA @@ -195,14 +132,7 @@ struct TraitsA< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 8; - } + static Size const w = 8; }; // TraitsA @@ -213,14 +143,7 @@ struct TraitsA< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 8; - } + static Size const w = 8; }; // TraitsA @@ -231,14 +154,7 @@ struct TraitsA< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 8; - } + static Size const w = 8; }; // TraitsA @@ -249,14 +165,7 @@ struct TraitsA< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 8; - } + static Size const w = 8; }; // TraitsA @@ -267,14 +176,7 @@ struct TraitsA< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 4; - } + static Size const w = 4; }; // TraitsA @@ -285,14 +187,7 @@ struct TraitsA< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 8; - } + static Size const w = 8; }; // TraitsA @@ -303,14 +198,7 @@ struct TraitsA< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 16; - } + static Size const w = 16; }; // TraitsA diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsB.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsB.hh index d55649898f5..1643fb1b547 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsB.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsB.hh @@ -34,25 +34,8 @@ struct TraitsB typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } - - // Minimum Width - inline - static - Size - m() - { - return 0; - } - -}; // TraitsB + static Size const w = 0; // Field width +}; // TraitsB: char Specialization template<> @@ -61,16 +44,8 @@ struct TraitsB< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 17; - } - -}; // TraitsB + static Size const w = 17; // Field width +}; // TraitsB: bool Specialization template<> @@ -79,16 +54,8 @@ struct TraitsB< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 33; - } - -}; // TraitsB + static Size const w = 33; // Field width +}; // TraitsB: Type Traits byte Specialization template<> @@ -97,16 +64,8 @@ struct TraitsB< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 17; - } - -}; // TraitsB + static Size const w = 17; // Field width +}; // TraitsB: ubyte Specialization template<> @@ -115,16 +74,8 @@ struct TraitsB< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 17; - } - -}; // TraitsB + static Size const w = 17; // Field width +}; // TraitsB: short int Specialization template<> @@ -133,16 +84,8 @@ struct TraitsB< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 17; - } - -}; // TraitsB + static Size const w = 17; // Field width +}; // TraitsB: unsigned short int Specialization template<> @@ -151,16 +94,8 @@ struct TraitsB< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 17; - } - -}; // TraitsB + static Size const w = 17; // Field width +}; // TraitsB: int Specialization template<> @@ -169,16 +104,8 @@ struct TraitsB< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 33; - } - -}; // TraitsB + static Size const w = 33; // Field width +}; // TraitsB: unsigned int Specialization template<> @@ -187,16 +114,8 @@ struct TraitsB< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 33; - } - -}; // TraitsB + static Size const w = 33; // Field width +}; // TraitsB: long int Specialization template<> @@ -205,16 +124,8 @@ struct TraitsB< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 65; - } - -}; // TraitsB + static Size const w = 65; // Field width +}; // TraitsB: unsigned long int Specialization template<> @@ -223,16 +134,8 @@ struct TraitsB< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 65; - } - -}; // TraitsB + static Size const w = 65; // Field width +}; // TraitsB: long long int Specialization template<> @@ -241,16 +144,8 @@ struct TraitsB< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 65; - } - -}; // TraitsB + static Size const w = 65; // Field width +}; // TraitsB: unsigned long long int Specialization template<> @@ -259,16 +154,8 @@ struct TraitsB< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 65; - } - -}; // TraitsB + static Size const w = 65; // Field width +}; // TraitsB: float Specialization template<> @@ -277,16 +164,8 @@ struct TraitsB< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 33; - } - -}; // TraitsB + static Size const w = 33; // Field width +}; // TraitsB: double Specialization template<> @@ -295,16 +174,8 @@ struct TraitsB< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 65; - } - -}; // TraitsB + static Size const w = 65; // Field width +}; // TraitsB: long double Specialization template<> @@ -313,16 +184,8 @@ struct TraitsB< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 129; - } - -}; // TraitsB + static Size const w = 129; // Field width +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsE.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsE.hh index ab9dab3e963..8796334f9fd 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsE.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsE.hh @@ -34,34 +34,10 @@ struct TraitsE typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } - - // Fraction Width - inline - static - Size - d() - { - return 0; // No minimum width for generic types - } - - // Exponent Width - inline - static - Size - e() - { - return 0; // No minimum width for generic types - } - -}; // TraitsE + static Size const w = 0; // Field width + static Size const d = 0; // Fraction width + static Size const e = 0; // Exponent width +}; // TraitsE: char Specialization template<> @@ -70,34 +46,10 @@ struct TraitsE< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: bool Specialization template<> @@ -106,34 +58,10 @@ struct TraitsE< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: Type Traits byte Specialization template<> @@ -142,34 +70,10 @@ struct TraitsE< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: ubyte Specialization template<> @@ -178,34 +82,10 @@ struct TraitsE< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: short int Specialization template<> @@ -214,34 +94,10 @@ struct TraitsE< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: unsigned short int Specialization template<> @@ -250,34 +106,10 @@ struct TraitsE< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: int Specialization template<> @@ -286,34 +118,10 @@ struct TraitsE< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: unsigned int Specialization template<> @@ -322,34 +130,10 @@ struct TraitsE< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: long int Specialization template<> @@ -358,34 +142,10 @@ struct TraitsE< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsE + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width + static Size const e = 3; // Exponent width +}; // TraitsE: unsigned long int Specialization template<> @@ -394,34 +154,10 @@ struct TraitsE< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsE + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width + static Size const e = 3; // Exponent width +}; // TraitsE: long long int Specialization template<> @@ -430,34 +166,10 @@ struct TraitsE< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsE + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width + static Size const e = 3; // Exponent width +}; // TraitsE: unsigned long long int Specialization template<> @@ -466,34 +178,10 @@ struct TraitsE< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsE + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width + static Size const e = 3; // Exponent width +}; // TraitsE: float Specialization template<> @@ -502,34 +190,10 @@ struct TraitsE< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: double Specialization template<> @@ -538,34 +202,10 @@ struct TraitsE< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsE + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsE: long double Specialization template<> @@ -574,34 +214,10 @@ struct TraitsE< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 44; - } - - // Fraction Width - inline - static - Size - d() - { - return 33; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsE + static Size const w = 44; // Field width + static Size const d = 33; // Fraction width + static Size const e = 3; // Exponent width +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsF.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsF.hh index 8a7b19d66bd..4f44f730f84 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsF.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsF.hh @@ -34,25 +34,9 @@ struct TraitsF typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } - - // Fraction Width - inline - static - Size - d() - { - return 0; // No minimum width for generic types - } - -}; // TraitsF + static Size const w = 0; // Field width + static Size const d = 0; // Fraction width +}; // TraitsF: char Specialization template<> @@ -61,16 +45,8 @@ struct TraitsF< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 1; - } - -}; // TraitsF + static Size const w = 1; // Field width +}; // TraitsF: bool Specialization template<> @@ -79,16 +55,8 @@ struct TraitsF< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: Type Traits byte Specialization template<> @@ -97,16 +65,8 @@ struct TraitsF< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: ubyte Specialization template<> @@ -115,16 +75,8 @@ struct TraitsF< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: short int Specialization template<> @@ -133,16 +85,8 @@ struct TraitsF< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: unsigned short int Specialization template<> @@ -151,16 +95,8 @@ struct TraitsF< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: int Specialization template<> @@ -169,16 +105,8 @@ struct TraitsF< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: unsigned int Specialization template<> @@ -187,16 +115,8 @@ struct TraitsF< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - -}; // TraitsF + static Size const w = 15; // Field width +}; // TraitsF: long int Specialization template<> @@ -205,16 +125,8 @@ struct TraitsF< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - -}; // TraitsF + static Size const w = 25; // Field width +}; // TraitsF: unsigned long int Specialization template<> @@ -223,16 +135,8 @@ struct TraitsF< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - -}; // TraitsF + static Size const w = 25; // Field width +}; // TraitsF: long long int Specialization template<> @@ -241,16 +145,8 @@ struct TraitsF< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - -}; // TraitsF + static Size const w = 25; // Field width +}; // TraitsF: unsigned long long int Specialization template<> @@ -259,16 +155,8 @@ struct TraitsF< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - -}; // TraitsF + static Size const w = 25; // Field width +}; // TraitsF: float Specialization template<> @@ -277,25 +165,9 @@ struct TraitsF< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - -}; // TraitsF + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width +}; // TraitsF: double Specialization template<> @@ -304,25 +176,9 @@ struct TraitsF< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - -}; // TraitsF + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width +}; // TraitsF: long double Specialization template<> @@ -331,25 +187,9 @@ struct TraitsF< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 42; - } - - // Fraction Width - inline - static - Size - d() - { - return 33; - } - -}; // TraitsF + static Size const w = 42; // Field width + static Size const d = 33; // Fraction width +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsG.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsG.hh index 8265461a041..c9425d4c869 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsG.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsG.hh @@ -34,34 +34,10 @@ struct TraitsG typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } - - // Fraction Width - inline - static - Size - d() - { - return 0; // No minimum width for generic types - } - - // Exponent Width - inline - static - Size - e() - { - return 0; // No minimum width for generic types - } - -}; // TraitsG + static Size const w = 0; // Field width + static Size const d = 0; // Fraction width + static Size const e = 0; // Exponent width +}; // TraitsG: char Specialization template<> @@ -70,16 +46,8 @@ struct TraitsG< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 1; - } - -}; // TraitsG + static Size const w = 1; // Field width +}; // TraitsG: bool Specialization template<> @@ -88,16 +56,8 @@ struct TraitsG< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsG + static Size const w = 12; // Field width +}; // TraitsG: Type Traits byte Specialization template<> @@ -106,16 +66,8 @@ struct TraitsG< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsG + static Size const w = 7; // Field width +}; // TraitsG: ubyte Specialization template<> @@ -124,16 +76,8 @@ struct TraitsG< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsG + static Size const w = 7; // Field width +}; // TraitsG: short int Specialization template<> @@ -142,16 +86,8 @@ struct TraitsG< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsG + static Size const w = 7; // Field width +}; // TraitsG: unsigned short int Specialization template<> @@ -160,16 +96,8 @@ struct TraitsG< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsG + static Size const w = 7; // Field width +}; // TraitsG: int Specialization template<> @@ -178,16 +106,8 @@ struct TraitsG< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsG + static Size const w = 12; // Field width +}; // TraitsG: unsigned int Specialization template<> @@ -196,16 +116,8 @@ struct TraitsG< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsG + static Size const w = 12; // Field width +}; // TraitsG: long int Specialization template<> @@ -214,16 +126,8 @@ struct TraitsG< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsG + static Size const w = 23; // Field width +}; // TraitsG: unsigned long int Specialization template<> @@ -232,16 +136,8 @@ struct TraitsG< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsG + static Size const w = 23; // Field width +}; // TraitsG: long long int Specialization template<> @@ -250,16 +146,8 @@ struct TraitsG< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsG + static Size const w = 23; // Field width +}; // TraitsG: unsigned long long int Specialization template<> @@ -268,16 +156,8 @@ struct TraitsG< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsG + static Size const w = 23; // Field width +}; // TraitsG: float Specialization template<> @@ -286,34 +166,10 @@ struct TraitsG< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsG + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsG: double Specialization template<> @@ -322,34 +178,10 @@ struct TraitsG< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 25; - } - - // Fraction Width - inline - static - Size - d() - { - return 16; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsG + static Size const w = 25; // Field width + static Size const d = 16; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsG: long double Specialization template<> @@ -358,34 +190,10 @@ struct TraitsG< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 42; - } - - // Fraction Width - inline - static - Size - d() - { - return 33; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsG + static Size const w = 42; // Field width + static Size const d = 33; // Fraction width + static Size const e = 3; // Exponent width +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsI.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsI.hh index f6aaa70bde0..1bbceeb007e 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsI.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsI.hh @@ -34,25 +34,8 @@ struct TraitsI typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } - - // Minimum Width - inline - static - Size - m() - { - return 0; - } - -}; // TraitsI + static Size const w = 0; // Field width +}; // TraitsI: char Specialization template<> @@ -61,16 +44,8 @@ struct TraitsI< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsI + static Size const w = 7; // Field width +}; // TraitsI: bool Specialization template<> @@ -79,16 +54,8 @@ struct TraitsI< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsI + static Size const w = 12; // Field width +}; // TraitsI: Type Traits byte Specialization template<> @@ -97,16 +64,8 @@ struct TraitsI< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsI + static Size const w = 7; // Field width +}; // TraitsI: ubyte Specialization template<> @@ -115,16 +74,8 @@ struct TraitsI< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsI + static Size const w = 7; // Field width +}; // TraitsI: short int Specialization template<> @@ -133,16 +84,8 @@ struct TraitsI< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsI + static Size const w = 7; // Field width +}; // TraitsI: unsigned short int Specialization template<> @@ -151,16 +94,8 @@ struct TraitsI< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsI + static Size const w = 7; // Field width +}; // TraitsI: int Specialization template<> @@ -169,16 +104,8 @@ struct TraitsI< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsI + static Size const w = 12; // Field width +}; // TraitsI: unsigned int Specialization template<> @@ -187,16 +114,8 @@ struct TraitsI< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsI + static Size const w = 12; // Field width +}; // TraitsI: long int Specialization template<> @@ -205,16 +124,8 @@ struct TraitsI< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsI + static Size const w = 23; // Field width +}; // TraitsI: unsigned long int Specialization template<> @@ -223,16 +134,8 @@ struct TraitsI< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsI + static Size const w = 23; // Field width +}; // TraitsI: long long int Specialization template<> @@ -241,16 +144,8 @@ struct TraitsI< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsI + static Size const w = 23; // Field width +}; // TraitsI: unsigned long long int Specialization template<> @@ -259,16 +154,8 @@ struct TraitsI< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsI + static Size const w = 23; // Field width +}; // TraitsI: float Specialization template<> @@ -277,16 +164,8 @@ struct TraitsI< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsI + static Size const w = 12; // Field width +}; // TraitsI: double Specialization template<> @@ -295,16 +174,8 @@ struct TraitsI< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - -}; // TraitsI + static Size const w = 23; // Field width +}; // TraitsI: long double Specialization template<> @@ -313,16 +184,8 @@ struct TraitsI< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 40; - } - -}; // TraitsI + static Size const w = 40; // Field width +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsLD.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsLD.hh index 14749369145..b385e79afb9 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TraitsLD.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TraitsLD.hh @@ -34,34 +34,10 @@ struct TraitsLD typedef T traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 0; // No minimum width for generic types - } - - // Fraction Width - inline - static - Size - d() - { - return 0; // No minimum width for generic types - } - - // Exponent Width - inline - static - Size - e() - { - return 0; // No minimum width for generic types - } - -}; // TraitsLD + static Size const w = 0; // Field width + static Size const d = 0; // Fraction width + static Size const e = 0; // Exponent width +}; // TraitsLD: char Specialization template<> @@ -70,16 +46,8 @@ struct TraitsLD< char > typedef char traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 1; - } - -}; // TraitsLD + static Size const w = 1; // Field width +}; // TraitsLD: bool Specialization template<> @@ -88,16 +56,8 @@ struct TraitsLD< bool > typedef bool traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 2; - } - -}; // TraitsLD + static Size const w = 2; // Field width +}; // TraitsLD: byte Specialization template<> @@ -106,16 +66,8 @@ struct TraitsLD< byte > typedef byte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 5; - } - -}; // TraitsLD + static Size const w = 5; // Field width +}; // TraitsLD: ubyte Specialization template<> @@ -124,16 +76,8 @@ struct TraitsLD< ubyte > typedef ubyte traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 5; - } - -}; // TraitsLD + static Size const w = 5; // Field width +}; // TraitsLD: short int Specialization template<> @@ -142,16 +86,8 @@ struct TraitsLD< short int > typedef short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsLD + static Size const w = 7; // Field width +}; // TraitsLD: unsigned short int Specialization template<> @@ -160,16 +96,8 @@ struct TraitsLD< unsigned short int > typedef unsigned short int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 7; - } - -}; // TraitsLD + static Size const w = 7; // Field width +}; // TraitsLD: int Specialization template<> @@ -178,16 +106,8 @@ struct TraitsLD< int > typedef int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsLD + static Size const w = 12; // Field width +}; // TraitsLD: unsigned int Specialization template<> @@ -196,16 +116,8 @@ struct TraitsLD< unsigned int > typedef unsigned int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 12; - } - -}; // TraitsLD + static Size const w = 12; // Field width +}; // TraitsLD: long int Specialization template<> @@ -214,16 +126,8 @@ struct TraitsLD< long int > typedef long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 22; - } - -}; // TraitsLD + static Size const w = 22; // Field width +}; // TraitsLD: unsigned long int Specialization template<> @@ -232,16 +136,8 @@ struct TraitsLD< unsigned long int > typedef unsigned long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 22; - } - -}; // TraitsLD + static Size const w = 22; // Field width +}; // TraitsLD: long long int Specialization template<> @@ -250,16 +146,8 @@ struct TraitsLD< long long int > typedef long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 22; - } - -}; // TraitsLD + static Size const w = 22; // Field width +}; // TraitsLD: unsigned long long int Specialization template<> @@ -268,16 +156,8 @@ struct TraitsLD< unsigned long long int > typedef unsigned long long int traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 22; - } - -}; // TraitsLD + static Size const w = 22; // Field width +}; // TraitsLD: float Specialization template<> @@ -286,34 +166,10 @@ struct TraitsLD< float > typedef float traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 15; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsLD + static Size const w = 15; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsLD: double Specialization template<> @@ -322,34 +178,10 @@ struct TraitsLD< double > typedef double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 24; - } - - // Fraction Width - inline - static - Size - d() - { - return 15; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsLD + static Size const w = 24; // Field width + static Size const d = 15; // Fraction width + static Size const e = 3; // Exponent width +}; // TraitsLD: long double Specialization template<> @@ -358,34 +190,10 @@ struct TraitsLD< long double > typedef long double traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 43; - } - - // Fraction Width - inline - static - Size - d() - { - return 33; - } - - // Exponent Width - inline - static - Size - e() - { - return 4; - } - -}; // TraitsLD + static Size const w = 43; // Field width + static Size const d = 33; // Fraction width + static Size const e = 4; // Exponent width +}; // TraitsLD: std::complex< float > Specialization template<> @@ -394,34 +202,10 @@ struct TraitsLD< std::complex< float > > typedef std::complex< float > traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 14; - } - - // Fraction Width - inline - static - Size - d() - { - return 7; - } - - // Exponent Width - inline - static - Size - e() - { - return 2; - } - -}; // TraitsLD + static Size const w = 14; // Field width + static Size const d = 7; // Fraction width + static Size const e = 2; // Exponent width +}; // TraitsLD: std::complex< double > Specialization template<> @@ -430,34 +214,10 @@ struct TraitsLD< std::complex< double > > typedef std::complex< double > traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 23; - } - - // Fraction Width - inline - static - Size - d() - { - return 15; - } - - // Exponent Width - inline - static - Size - e() - { - return 3; - } - -}; // TraitsLD + static Size const w = 23; // Field width + static Size const d = 15; // Fraction width + static Size const e = 3; // Exponent width +}; // TraitsLD: std::complex< long double > Specialization template<> @@ -466,34 +226,10 @@ struct TraitsLD< std::complex< long double > > typedef std::complex< long double > traits_type; typedef std::size_t Size; - // Field Width - inline - static - Size - w() - { - return 42; - } - - // Fraction Width - inline - static - Size - d() - { - return 33; - } - - // Exponent Width - inline - static - Size - e() - { - return 4; - } - -}; // TraitsLD + static Size const w = 42; // Field width + static Size const d = 33; // Fraction width + static Size const e = 4; // Exponent width +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/TypeTraits.hh b/third_party/ObjexxFCL/src/ObjexxFCL/TypeTraits.hh index f7bfd9460ac..38559facb07 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/TypeTraits.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/TypeTraits.hh @@ -146,34 +146,13 @@ struct TypeTraits #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; // No precision for generic types - } - - // Field Width - inline - static - Size - width() - { - return 0; // No minimum width for generic types - } - - // Field Width - inline - static - int - iwidth() - { - return 0; // No minimum width for generic types - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 0; // Field width + static int const iwidth = 0; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits char Specialization template<> @@ -213,34 +192,13 @@ struct TypeTraits< char > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 1; - } - - // Field Width - inline - static - int - iwidth() - { - return 1; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 1; // Field width + static int const iwidth = 1; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits signed char Specialization template<> @@ -280,34 +238,13 @@ struct TypeTraits< signed char > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 1; - } - - // Field Width - inline - static - int - iwidth() - { - return 1; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 1; // Field width + static int const iwidth = 1; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits unsigned char Specialization template<> @@ -347,34 +284,13 @@ struct TypeTraits< unsigned char > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 1; - } - - // Field Width - inline - static - int - iwidth() - { - return 1; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 1; // Field width + static int const iwidth = 1; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits bool Specialization template<> @@ -414,34 +330,13 @@ struct TypeTraits< bool > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 2; - } - - // Field Width - inline - static - int - iwidth() - { - return 2; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 2; // Field width + static int const iwidth = 2; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits byte Specialization template<> @@ -481,34 +376,13 @@ struct TypeTraits< byte > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 7; - } - - // Field Width - inline - static - int - iwidth() - { - return 7; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 7; // Field width + static int const iwidth = 7; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits ubyte Specialization template<> @@ -548,34 +422,13 @@ struct TypeTraits< ubyte > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 7; - } - - // Field Width - inline - static - int - iwidth() - { - return 7; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 7; // Field width + static int const iwidth = 7; // Field width + static Size const loc_2_crossover = 300u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits short int Specialization template<> @@ -615,34 +468,13 @@ struct TypeTraits< short int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 7; - } - - // Field Width - inline - static - int - iwidth() - { - return 7; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 7; // Field width + static int const iwidth = 7; // Field width + static Size const loc_2_crossover = 275u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits unsigned short int Specialization template<> @@ -682,34 +514,13 @@ struct TypeTraits< unsigned short int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 7; - } - - // Field Width - inline - static - int - iwidth() - { - return 7; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 7; // Field width + static int const iwidth = 7; // Field width + static Size const loc_2_crossover = 275u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 20u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits int Specialization template<> @@ -749,34 +560,13 @@ struct TypeTraits< int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 12; - } - - // Field Width - inline - static - int - iwidth() - { - return 12; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 12; // Field width + static int const iwidth = 12; // Field width + static Size const loc_2_crossover = 150u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 11u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits unsigned int Specialization template<> @@ -816,34 +606,13 @@ struct TypeTraits< unsigned int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 12; - } - - // Field Width - inline - static - int - iwidth() - { - return 12; - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 12; // Field width + static int const iwidth = 12; // Field width + static Size const loc_2_crossover = 150u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 11u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits long int Specialization template<> @@ -883,34 +652,13 @@ struct TypeTraits< long int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 23; // Big enough for 64-bit LP64 representation - } - - // Field Width - inline - static - int - iwidth() - { - return 23; // Big enough for 64-bit LP64 representation - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 23; // Field width + static int const iwidth = 23; // Field width + static Size const loc_2_crossover = 170u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits unsigned long int Specialization template<> @@ -950,34 +698,13 @@ struct TypeTraits< unsigned long int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 23; // Big enough for 64-bit LP64 representation - } - - // Field Width - inline - static - int - iwidth() - { - return 23; // Big enough for 64-bit LP64 representation - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 23; // Field width + static int const iwidth = 23; // Field width + static Size const loc_2_crossover = 170u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits long long int Specialization template<> @@ -1017,34 +744,13 @@ struct TypeTraits< long long int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 23; // Big enough for 64-bit LP64 representation - } - - // Field Width - inline - static - int - iwidth() - { - return 23; // Big enough for 64-bit LP64 representation - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 23; // Field width + static int const iwidth = 23; // Field width + static Size const loc_2_crossover = 145u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits unsigned long long int Specialization template<> @@ -1084,34 +790,13 @@ struct TypeTraits< unsigned long long int > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 0; - } - - // Field Width - inline - static - Size - width() - { - return 23; // Big enough for 64-bit LP64 representation - } - - // Field Width - inline - static - int - iwidth() - { - return 23; // Big enough for 64-bit LP64 representation - } - -}; // TypeTraits + static std::streamsize const precision = 0; // Precision + static Size const width = 23; // Field width + static int const iwidth = 23; // Field width + static Size const loc_2_crossover = 145u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits float Specialization template<> @@ -1151,34 +836,13 @@ struct TypeTraits< float > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 8; - } - - // Field Width - inline - static - Size - width() - { - return 15; - } - - // Field Width - inline - static - int - iwidth() - { - return 15; - } - -}; // TypeTraits + static std::streamsize const precision = 8; // Precision + static Size const width = 15; // Field width + static int const iwidth = 15; // Field width + static Size const loc_2_crossover = 200u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits double Specialization template<> @@ -1218,34 +882,13 @@ struct TypeTraits< double > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 16; - } - - // Field Width - inline - static - Size - width() - { - return 23; - } - - // Field Width - inline - static - int - iwidth() - { - return 23; - } - -}; // TypeTraits + static std::streamsize const precision = 16; // Precision + static Size const width = 23; // Field width + static int const iwidth = 23; // Field width + static Size const loc_2_crossover = 150u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits long double Specialization template<> @@ -1285,34 +928,13 @@ struct TypeTraits< long double > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 33; // Big enough for 128-bit representation - } - - // Field Width - inline - static - Size - width() - { - return 42; // Big enough for 128-bit representation - } - - // Field Width - inline - static - int - iwidth() - { - return 42; // Big enough for 128-bit representation - } - -}; // TypeTraits + static std::streamsize const precision = 33; // Precision + static Size const width = 42; // Field width + static int const iwidth = 42; // Field width + static Size const loc_2_crossover = ( sizeof( traits_type ) >= 16 ? 125u : 150u ); // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = ( sizeof( traits_type ) >= 16 ? 600u : 10u ); // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = ( sizeof( traits_type ) >= 16 ? 400u : 10u ); // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits std::complex< float > Specialization template<> @@ -1353,34 +975,13 @@ struct TypeTraits< std::complex< float > > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 8; - } - - // Field Width - inline - static - Size - width() - { - return 33; - } - - // Field Width - inline - static - int - iwidth() - { - return 33; - } - -}; // TypeTraits + static std::streamsize const precision = 8; // Precision + static Size const width = 33; // Field width + static int const iwidth = 33; // Field width + static Size const loc_2_crossover = 150u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits std::complex< double > Specialization template<> @@ -1421,34 +1022,13 @@ struct TypeTraits< std::complex< double > > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 16; - } - - // Field Width - inline - static - Size - width() - { - return 49; - } - - // Field Width - inline - static - int - iwidth() - { - return 49; - } - -}; // TypeTraits + static std::streamsize const precision = 16; // Precision + static Size const width = 49; // Field width + static int const iwidth = 49; // Field width + static Size const loc_2_crossover = 150u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; // TypeTraits: Type Traits std::complex< long double > Specialization template<> @@ -1489,34 +1069,13 @@ struct TypeTraits< std::complex< long double > > #endif // OBJEXXFCL_FARRAY_INIT_DEBUG } - // Precision - inline - static - std::streamsize - precision() - { - return 33; // Big enough for 128-bit representation - } - - // Field Width - inline - static - Size - width() - { - return 83; // Big enough for 128-bit representation - } - - // Field Width - inline - static - int - iwidth() - { - return 83; // Big enough for 128-bit representation - } - -}; // TypeTraits + static std::streamsize const precision = 33; // Precision + static Size const width = 83; // Field width + static int const iwidth = 83; // Field width + static Size const loc_2_crossover = 100u; // Array 2D min/max location crossover + static Size const matmul_1_2_crossover = 10u; // Array 1D x 2D multiplication crossover + static Size const matmul_2_2_crossover = 10u; // Array 2D x 2D multiplication crossover +}; } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/Vector2.hh b/third_party/ObjexxFCL/src/ObjexxFCL/Vector2.hh index c64ca09572b..1e9f94311e5 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/Vector2.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/Vector2.hh @@ -1740,11 +1740,11 @@ operator <<( std::ostream & stream, Vector2< T > const & v ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output Vector2 - std::size_t const w( Traits::width() ); + std::size_t const w( Traits::width ); stream << std::setw( w ) << v.x << ' ' << std::setw( w ) << v.y; // Restore previous stream state diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/Vector3.hh b/third_party/ObjexxFCL/src/ObjexxFCL/Vector3.hh index c3927a23a92..c4438bb48ad 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/Vector3.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/Vector3.hh @@ -1835,11 +1835,11 @@ operator <<( std::ostream & stream, Vector3< T > const & v ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output Vector3 - std::size_t const w( Traits::width() ); + std::size_t const w( Traits::width ); stream << std::setw( w ) << v.x << ' ' << std::setw( w ) << v.y << ' ' << std::setw( w ) << v.z; // Restore previous stream state diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/array.iterator.hh b/third_party/ObjexxFCL/src/ObjexxFCL/array.iterator.hh index 409c60a3e80..12ca0908be8 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/array.iterator.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/array.iterator.hh @@ -22,18 +22,18 @@ namespace ObjexxFCL { template< typename T, std::size_t N > inline T * -begin( T (&array)[N] ) +begin( T (&a)[N] ) { - return array + 0; + return a + 0; } // End Iterator for C Array template< typename T, std::size_t N > inline T * -end( T (&array)[N] ) +end( T (&a)[N] ) { - return array + N; + return a + N; } } // ObjexxFCL diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/fmt.hh b/third_party/ObjexxFCL/src/ObjexxFCL/fmt.hh index 9d7d2a1b25a..299a594f15a 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/fmt.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/fmt.hh @@ -161,9 +161,9 @@ L( T const & t, Size const w = 1ul ) template< typename T > inline std::string -I( T const & t, Size w = TraitsI< T >::w(), Size const m = 0ul ) +I( T const & t, Size w = TraitsI< T >::w, Size const m = 0ul ) { - if ( w == NOSIZE ) w = TraitsI< T >::w(); + if ( w == NOSIZE ) w = TraitsI< T >::w; std::ostringstream stream; if ( w > 0ul ) stream << std::setw( m > 0ul ? std::min( m, w ) : w ); if ( m > 0ul ) stream << std::setfill( '0' ); @@ -175,10 +175,10 @@ I( T const & t, Size w = TraitsI< T >::w(), Size const m = 0ul ) template< typename T > inline std::string -B( T const & t, Size w = TraitsB< T >::w(), Size const m = 0ul ) +B( T const & t, Size w = TraitsB< T >::w, Size const m = 0ul ) { static std::locale const loc( std::locale(), new fmt::Binary_num_put ); - if ( w == NOSIZE ) w = TraitsB< T >::w(); + if ( w == NOSIZE ) w = TraitsB< T >::w; std::ostringstream stream; if ( w > 0ul ) stream << std::setw( m > 0ul ? std::min( m, w ) : w ); if ( m > 0ul ) stream << std::setfill( '0' ); @@ -191,9 +191,9 @@ B( T const & t, Size w = TraitsB< T >::w(), Size const m = 0ul ) template< typename T > inline std::string -O( T const & t, Size w = TraitsI< T >::w(), Size const m = 0ul ) +O( T const & t, Size w = TraitsI< T >::w, Size const m = 0ul ) { - if ( w == NOSIZE ) w = TraitsI< T >::w(); + if ( w == NOSIZE ) w = TraitsI< T >::w; std::ostringstream stream; if ( w > 0ul ) stream << std::setw( m > 0ul ? std::min( m, w ) : w ); if ( m > 0ul ) stream << std::setfill( '0' ); @@ -205,9 +205,9 @@ O( T const & t, Size w = TraitsI< T >::w(), Size const m = 0ul ) template< typename T > inline std::string -Z( T const & t, Size w = TraitsI< T >::w(), Size const m = 0ul ) +Z( T const & t, Size w = TraitsI< T >::w, Size const m = 0ul ) { - if ( w == NOSIZE ) w = TraitsI< T >::w(); + if ( w == NOSIZE ) w = TraitsI< T >::w; std::ostringstream stream; if ( w > 0ul ) stream << std::setw( m > 0ul ? std::min( m, w ) : w ); if ( m > 0ul ) stream << std::setfill( '0' ); @@ -219,9 +219,9 @@ Z( T const & t, Size w = TraitsI< T >::w(), Size const m = 0ul ) template< typename T > inline std::string -F( T const & t, Size w = TraitsF< T >::w(), Size const d = TraitsF< T >::d(), int const k = 0 ) +F( T const & t, Size w = TraitsF< T >::w, Size const d = TraitsF< T >::d, int const k = 0 ) { - if ( w == NOSIZE ) w = TraitsF< T >::w(); + if ( w == NOSIZE ) w = TraitsF< T >::w; T const v( k == 0 ? t : t * std::pow( T( 10.0 ), k ) ); std::stringstream stream; stream << std::showpoint << std::setprecision( d ) << std::fixed; @@ -253,7 +253,7 @@ F( T const & t, Size w = TraitsF< T >::w(), Size const d = TraitsF< T >::d(), in template< typename T > inline std::string -F( std::complex< T > const & c, Size const w = TraitsF< T >::w(), Size const d = TraitsF< T >::d(), int const k = 0 ) +F( std::complex< T > const & c, Size const w = TraitsF< T >::w, Size const d = TraitsF< T >::d, int const k = 0 ) { return '(' + F( c.real(), w, d, k ) + ',' + F( c.imag(), w, d, k ) + ')'; } @@ -262,11 +262,11 @@ F( std::complex< T > const & c, Size const w = TraitsF< T >::w(), Size const d = template< typename T > inline std::string -E( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e(), int const k = 0 ) +E( T const & t, Size w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e, int const k = 0 ) { static auto np( new fmt::Exponent_num_put ); static std::locale const loc( std::locale(), np ); - if ( w == NOSIZE ) w = TraitsE< T >::w(); + if ( w == NOSIZE ) w = TraitsE< T >::w; if ( w == 0ul ) return std::string(); np->set( d, e, k ); std::ostringstream stream; @@ -279,7 +279,7 @@ E( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Si template< typename T > inline std::string -E( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e(), int const k = 0 ) +E( std::complex< T > const & c, Size const w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e, int const k = 0 ) { return '(' + E( c.real(), w, d, e, k ) + ',' + E( c.imag(), w, d, e, k ) + ')'; } @@ -288,11 +288,11 @@ E( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d = template< typename T > inline std::string -D( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e(), int const k = 0 ) +D( T const & t, Size w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e, int const k = 0 ) { static auto np( new fmt::Exponent_num_put ); static std::locale const loc( std::locale(), np ); - if ( w == NOSIZE ) w = TraitsE< T >::w(); + if ( w == NOSIZE ) w = TraitsE< T >::w; if ( w == 0ul ) return std::string(); np->set( d, e, k, 'D' ); std::ostringstream stream; @@ -305,7 +305,7 @@ D( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Si template< typename T > inline std::string -D( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e(), int const k = 0 ) +D( std::complex< T > const & c, Size const w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e, int const k = 0 ) { return '(' + D( c.real(), w, d, e, k ) + ',' + D( c.imag(), w, d, e, k ) + ')'; } @@ -314,11 +314,11 @@ D( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d = template< typename T > inline std::string -EN( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e() ) +EN( T const & t, Size w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e ) { static auto np( new fmt::Engineering_num_put ); static std::locale const loc( std::locale(), np ); - if ( w == NOSIZE ) w = TraitsE< T >::w(); + if ( w == NOSIZE ) w = TraitsE< T >::w; if ( w == 0ul ) return std::string(); np->set( d, e ); std::ostringstream stream; @@ -331,7 +331,7 @@ EN( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), S template< typename T > inline std::string -EN( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e() ) +EN( std::complex< T > const & c, Size const w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e ) { return '(' + EN( c.real(), w, d, e ) + ',' + EN( c.imag(), w, d, e ) + ')'; } @@ -340,11 +340,11 @@ EN( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d template< typename T > inline std::string -ES( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e() ) +ES( T const & t, Size w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e ) { static auto np( new fmt::Scientific_num_put ); static std::locale const loc( std::locale(), np ); - if ( w == NOSIZE ) w = TraitsE< T >::w(); + if ( w == NOSIZE ) w = TraitsE< T >::w; if ( w == 0ul ) return std::string(); np->set( d, e ); std::ostringstream stream; @@ -357,7 +357,7 @@ ES( T const & t, Size w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), S template< typename T > inline std::string -ES( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d = TraitsE< T >::d(), Size e = TraitsE< T >::e() ) +ES( std::complex< T > const & c, Size const w = TraitsE< T >::w, Size const d = TraitsE< T >::d, Size e = TraitsE< T >::e ) { return '(' + ES( c.real(), w, d, e ) + ',' + ES( c.imag(), w, d, e ) + ')'; } @@ -366,9 +366,9 @@ ES( std::complex< T > const & c, Size const w = TraitsE< T >::w(), Size const d template< typename T > inline std::string -G( T const & t, Size w = TraitsG< T >::w(), Size const d = TraitsG< T >::d(), Size e = TraitsG< T >::e(), int const k = 0 ) +G( T const & t, Size w = TraitsG< T >::w, Size const d = TraitsG< T >::d, Size e = TraitsG< T >::e, int const k = 0 ) { - if ( w == NOSIZE ) w = TraitsG< T >::w(); + if ( w == NOSIZE ) w = TraitsG< T >::w; if ( std::numeric_limits< T >::is_integer ) { // Integer return I( t, w ); } else { // Treat as floating point @@ -384,7 +384,7 @@ G( T const & t, Size w = TraitsG< T >::w(), Size const d = TraitsG< T >::d(), Si return F( t, w - n, d - std::min( Size( p ), d ) ) + std::string( n, ' ' ); } else { // Use E editing if ( w == 0ul ) { // Choose width - Size const e_( TraitsG< T >::e() ); // G0.dEe form not allowed in Fortran: Set exponent width based on type + Size const e_( TraitsG< T >::e ); // G0.dEe form not allowed in Fortran: Set exponent width based on type return E( t, d + e_ + 4, d, e_, k ); } else { // Use specified width return E( t, w, d, e, k ); @@ -397,7 +397,7 @@ G( T const & t, Size w = TraitsG< T >::w(), Size const d = TraitsG< T >::d(), Si // General: bool Specialization inline std::string -G( bool const & b, Size const w = TraitsG< bool >::w(), Size const = 0ul, Size const = 0ul, int const = 0 ) +G( bool const & b, Size const w = TraitsG< bool >::w, Size const = 0ul, Size const = 0ul, int const = 0 ) { return L( b, w ); } @@ -405,7 +405,7 @@ G( bool const & b, Size const w = TraitsG< bool >::w(), Size const = 0ul, Size c // General: char Specialization inline std::string -G( char const & c, Size const w = TraitsG< char >::w(), Size const = 0ul, Size const = 0ul, int const = 0 ) +G( char const & c, Size const w = TraitsG< char >::w, Size const = 0ul, Size const = 0ul, int const = 0 ) { return A( c, w ); } @@ -413,7 +413,7 @@ G( char const & c, Size const w = TraitsG< char >::w(), Size const = 0ul, Size c // General: string Specialization inline std::string -G( std::string const & s, Size const w = TraitsG< std::string >::w(), Size const = 0ul, Size const = 0ul, int const = 0 ) +G( std::string const & s, Size const w = TraitsG< std::string >::w, Size const = 0ul, Size const = 0ul, int const = 0 ) { return A( s, w ); } @@ -421,7 +421,7 @@ G( std::string const & s, Size const w = TraitsG< std::string >::w(), Size const // General: Fstring Specialization inline std::string -G( Fstring const & s, Size const w = TraitsG< Fstring >::w(), Size const = 0ul, Size const = 0ul, int const = 0 ) +G( Fstring const & s, Size const w = TraitsG< Fstring >::w, Size const = 0ul, Size const = 0ul, int const = 0 ) { return A( s, w ); } @@ -429,7 +429,7 @@ G( Fstring const & s, Size const w = TraitsG< Fstring >::w(), Size const = 0ul, // General: cstring Specialization inline std::string -G( c_cstring const s, Size const w = TraitsG< c_cstring >::w(), Size const = 0ul, Size const = 0ul, int const = 0 ) +G( c_cstring const s, Size const w = TraitsG< c_cstring >::w, Size const = 0ul, Size const = 0ul, int const = 0 ) { return A( s, w ); } @@ -438,7 +438,7 @@ G( c_cstring const s, Size const w = TraitsG< c_cstring >::w(), Size const = 0ul template< typename T > inline std::string -G( std::complex< T > const & c, Size const w = TraitsG< T >::w(), Size const d = TraitsG< T >::d(), Size const e = TraitsG< T >::e(), int const k = 0 ) +G( std::complex< T > const & c, Size const w = TraitsG< T >::w, Size const d = TraitsG< T >::d, Size const e = TraitsG< T >::e, int const k = 0 ) { return '(' + G( c.real(), w, d, e, k ) + ',' + G( c.imag(), w, d, e, k ) + ')'; } @@ -461,7 +461,7 @@ inline std::string LD( bool const b ) { - return L( b, TraitsLD< bool >::w() ); + return L( b, TraitsLD< bool >::w ); } // List-Directed: byte Specialization @@ -477,7 +477,7 @@ inline std::string LD( short int const i ) { - return I( i, TraitsLD< short int >::w() ); + return I( i, TraitsLD< short int >::w ); } // List-Directed: unsigned short Specialization @@ -485,7 +485,7 @@ inline std::string LD( unsigned short int const i ) { - return I( i, TraitsLD< unsigned short int >::w() ); + return I( i, TraitsLD< unsigned short int >::w ); } // List-Directed: int Specialization @@ -493,7 +493,7 @@ inline std::string LD( int const i ) { - return I( i, TraitsLD< int >::w() ); + return I( i, TraitsLD< int >::w ); } // List-Directed: unsigned int Specialization @@ -501,7 +501,7 @@ inline std::string LD( unsigned int const i ) { - return I( i, TraitsLD< unsigned int >::w() ); + return I( i, TraitsLD< unsigned int >::w ); } // List-Directed: long int Specialization @@ -509,7 +509,7 @@ inline std::string LD( long int const i ) { - return I( i, TraitsLD< long int >::w() ); + return I( i, TraitsLD< long int >::w ); } // List-Directed: unsigned long int Specialization @@ -517,7 +517,7 @@ inline std::string LD( unsigned long int const i ) { - return I( i, TraitsLD< unsigned long int >::w() ); + return I( i, TraitsLD< unsigned long int >::w ); } // List-Directed: float Specialization @@ -526,7 +526,7 @@ std::string LD( float const v ) { typedef TraitsLD< float > Tr; - return G( v, Tr::w(), Tr::d(), Tr::e(), 1 ); + return G( v, Tr::w, Tr::d, Tr::e, 1 ); } // List-Directed: double Specialization @@ -535,7 +535,7 @@ std::string LD( double const v ) { typedef TraitsLD< double > Tr; - return G( v, Tr::w(), Tr::d(), Tr::e(), 1 ); + return G( v, Tr::w, Tr::d, Tr::e, 1 ); } // List-Directed: long double Specialization @@ -544,7 +544,7 @@ std::string LD( long double const v ) { typedef TraitsLD< long double > Tr; - return G( v, Tr::w(), Tr::d(), Tr::e(), 1 ); + return G( v, Tr::w, Tr::d, Tr::e, 1 ); } // List-Directed: complex< float > Specialization @@ -553,7 +553,7 @@ std::string LD( std::complex< float > const & c ) { typedef TraitsLD< std::complex< float > > Tr; - return '(' + stripped( G( c.real(), Tr::w(), Tr::d(), Tr::e(), 1 ) ) + ',' + stripped( G( c.imag(), Tr::w(), Tr::d(), Tr::e(), 1 ) ) + ')'; + return '(' + stripped( G( c.real(), Tr::w, Tr::d, Tr::e, 1 ) ) + ',' + stripped( G( c.imag(), Tr::w, Tr::d, Tr::e, 1 ) ) + ')'; } // List-Directed: complex< double > Specialization @@ -562,7 +562,7 @@ std::string LD( std::complex< double > const & c ) { typedef TraitsLD< std::complex< double > > Tr; - return '(' + stripped( G( c.real(), Tr::w(), Tr::d(), Tr::e(), 1 ) ) + ',' + stripped( G( c.imag(), Tr::w(), Tr::d(), Tr::e(), 1 ) ) + ')'; + return '(' + stripped( G( c.real(), Tr::w, Tr::d, Tr::e, 1 ) ) + ',' + stripped( G( c.imag(), Tr::w, Tr::d, Tr::e, 1 ) ) + ')'; } // List-Directed: complex< long double > Specialization @@ -571,7 +571,7 @@ std::string LD( std::complex< long double > const & c ) { typedef TraitsLD< std::complex< long double > > Tr; - return '(' + stripped( G( c.real(), Tr::w(), Tr::d(), Tr::e(), 1 ) ) + ',' + stripped( G( c.imag(), Tr::w(), Tr::d(), Tr::e(), 1 ) ) + ')'; + return '(' + stripped( G( c.real(), Tr::w, Tr::d, Tr::e, 1 ) ) + ',' + stripped( G( c.imag(), Tr::w, Tr::d, Tr::e, 1 ) ) + ')'; } // char diff --git a/third_party/ObjexxFCL/src/ObjexxFCL/string.functions.hh b/third_party/ObjexxFCL/src/ObjexxFCL/string.functions.hh index 8203fa069cf..bc2b97e1e74 100644 --- a/third_party/ObjexxFCL/src/ObjexxFCL/string.functions.hh +++ b/third_party/ObjexxFCL/src/ObjexxFCL/string.functions.hh @@ -920,7 +920,7 @@ std::string string_of( T const & t ) { std::ostringstream t_stream; - t_stream << std::uppercase << std::setprecision( TypeTraits< T >::precision() ) << t; + t_stream << std::uppercase << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -950,7 +950,7 @@ left_string_of( { std::ostringstream t_stream; t_stream << std::left << std::uppercase - << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision() ) << t; + << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -966,7 +966,7 @@ right_string_of( { std::ostringstream t_stream; t_stream << std::right << std::uppercase - << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision() ) << t; + << std::setw( w ) << std::setfill( f ) << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -982,7 +982,7 @@ lead_zero_string_of( { std::ostringstream t_stream; t_stream << std::internal << std::uppercase - << std::setw( w ) << std::setfill( '0' ) << std::setprecision( TypeTraits< T >::precision() ) << t; + << std::setw( w ) << std::setfill( '0' ) << std::setprecision( TypeTraits< T >::precision ) << t; return t_stream.str(); } @@ -992,8 +992,8 @@ inline std::string general_string_of( T const & t, - int const w = TypeTraits< T >::iwidth(), // Minimum width - std::streamsize const p = TypeTraits< T >::precision() // Precision + int const w = TypeTraits< T >::iwidth, // Minimum width + std::streamsize const p = TypeTraits< T >::precision // Precision ) { std::ostringstream t_stream; @@ -1008,8 +1008,8 @@ inline std::string fixed_string_of( T const & t, - int const w = TypeTraits< T >::iwidth(), // Minimum width - std::streamsize const p = TypeTraits< T >::precision() // Precision + int const w = TypeTraits< T >::iwidth, // Minimum width + std::streamsize const p = TypeTraits< T >::precision // Precision ) { std::ostringstream t_stream; @@ -1024,8 +1024,8 @@ inline std::string scientific_string_of( T const & t, - int const w = TypeTraits< T >::iwidth(), // Minimum width - std::streamsize const p = TypeTraits< T >::precision() // Precision + int const w = TypeTraits< T >::iwidth, // Minimum width + std::streamsize const p = TypeTraits< T >::precision // Precision ) { std::ostringstream t_stream; diff --git a/third_party/ObjexxFCL/tst/unit/Chunk.unit.cc b/third_party/ObjexxFCL/tst/unit/Chunk.unit.cc index e934d0a56ae..72803342359 100644 --- a/third_party/ObjexxFCL/tst/unit/Chunk.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/Chunk.unit.cc @@ -37,12 +37,12 @@ operator <<( std::ostream & stream, ObjexxFCL::Chunk< T > const & c ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream size_type const e( c.size() - 1 ); - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( size_type i = 0; i < e; ++i ) { stream << setw( w ) << c[ i ] << ' '; } stream << setw( w ) << c[ e ]; diff --git a/third_party/ObjexxFCL/tst/unit/ChunkVector.unit.cc b/third_party/ObjexxFCL/tst/unit/ChunkVector.unit.cc index c6340e8acec..e4b077a6525 100644 --- a/third_party/ObjexxFCL/tst/unit/ChunkVector.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/ChunkVector.unit.cc @@ -39,12 +39,12 @@ operator <<( std::ostream & stream, std::vector< T > const & v ) // Save current stream state and set persistent state std::ios_base::fmtflags const old_flags( stream.flags() ); - std::streamsize const old_precision( stream.precision( Traits::precision() ) ); + std::streamsize const old_precision( stream.precision( Traits::precision ) ); stream << std::right << std::showpoint << std::uppercase; // Output array to stream size_type const e( v.size() - 1 ); - int const w( Traits::iwidth() ); + int const w( Traits::iwidth ); for ( size_type i = 0; i < e; ++i ) { stream << setw( w ) << v[ i ] << ' '; } stream << setw( w ) << v[ e ]; diff --git a/third_party/ObjexxFCL/tst/unit/FArray.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray.unit.cc index c91b612c83c..66ed545033e 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray.unit.cc @@ -37,7 +37,8 @@ TEST( FArrayTest, DefaultConstruction ) TEST( FArrayTest, Construction2DIndexRangeInitializerList ) { - FArray2D_int r( SRange( -1, 1 ), SRange( -1, 1 ), { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ); + typedef StaticIndexRange SR; + FArray2D_int r( SR( -1, 1 ), SR( -1, 1 ), { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ); EXPECT_EQ( -1, r.l1() ); EXPECT_EQ( -1, lbound( r, 1 ) ); EXPECT_EQ( 1, r.u1() ); @@ -64,18 +65,20 @@ TEST( FArrayTest, Construction2DDifferentValueType ) TEST( FArrayTest, Assignment2D ) { + typedef DynamicIndexRange DR; FArray2D_int A( 3, 3, 33 ); - FArray2D_int B( DRange( 0, 4 ), DRange( 0, 4 ), 44 ); + FArray2D_int B( DR( 0, 4 ), DR( 0, 4 ), 44 ); A = B; EXPECT_TRUE( eq( B, A ) ); } TEST( FArrayTest, Assignment2DRedimensionDifferentValueType ) { + typedef DynamicIndexRange DR; FArray2D_int A( 3, 3, 33 ); - FArray2D_double B( DRange( 0, 4 ), DRange( 0, 4 ), 4.4 ); + FArray2D_double B( DR( 0, 4 ), DR( 0, 4 ), 4.4 ); A = B; - EXPECT_TRUE( eq( FArray2D_int( DRange( 0, 4 ), DRange( 0, 4 ), 4 ), A ) ); + EXPECT_TRUE( eq( FArray2D_int( DR( 0, 4 ), DR( 0, 4 ), 4 ), A ) ); } TEST( FArrayTest, Assignment2DNoOverlapProxy ) @@ -189,10 +192,11 @@ TEST( FArrayTest, Operators6D ) TEST( FArrayTest, Redimension2D ) { + typedef DynamicIndexRange DR; FArray2D_int A( 4, 4, 44 ); A.redimension( 5, 5, 55 ); // Redimension by index ranges - EXPECT_EQ( DRange( 1, 5 ), A.I1() ); - EXPECT_EQ( DRange( 1, 5 ), A.I2() ); + EXPECT_EQ( DR( 1, 5 ), A.I1() ); + EXPECT_EQ( DR( 1, 5 ), A.I2() ); EXPECT_EQ( 5U, A.size1() ); EXPECT_EQ( 5U, A.size2() ); EXPECT_EQ( 5U * 5U, A.size() ); @@ -230,11 +234,12 @@ TEST( FArrayTest, Redimension2DDimension ) TEST( FArrayTest, Redimension3DFill ) { + typedef DynamicIndexRange DR; FArray3D_int A( 4, 4, 4, 44 ); A.redimension( 5, 5, 5, 55 ); // Redimension by index ranges - EXPECT_EQ( DRange( 1, 5 ), A.I1() ); - EXPECT_EQ( DRange( 1, 5 ), A.I2() ); - EXPECT_EQ( DRange( 1, 5 ), A.I3() ); + EXPECT_EQ( DR( 1, 5 ), A.I1() ); + EXPECT_EQ( DR( 1, 5 ), A.I2() ); + EXPECT_EQ( DR( 1, 5 ), A.I3() ); EXPECT_EQ( 5u, A.size1() ); EXPECT_EQ( 5u, A.size2() ); EXPECT_EQ( 5u, A.size3() ); @@ -254,11 +259,12 @@ TEST( FArrayTest, Redimension3DFill ) TEST( FArrayTest, Swap3D ) { + typedef DynamicIndexRange DR; FArray3D_int A( 4, 4, 4, 44 ); FArray3D_int( 5, 5, 5, 55 ).swap( A ); - EXPECT_EQ( DRange( 1, 5 ), A.I1() ); - EXPECT_EQ( DRange( 1, 5 ), A.I2() ); - EXPECT_EQ( DRange( 1, 5 ), A.I3() ); + EXPECT_EQ( DR( 1, 5 ), A.I1() ); + EXPECT_EQ( DR( 1, 5 ), A.I2() ); + EXPECT_EQ( DR( 1, 5 ), A.I3() ); EXPECT_EQ( 5u, A.size1() ); EXPECT_EQ( 5u, A.size2() ); EXPECT_EQ( 5u, A.size3() ); @@ -404,7 +410,7 @@ TEST( FArrayTest, Matmul22 ) TEST( FArrayTest, Matrix2DMultiplication ) { - SRange I1( 3 ), I2( 3 ); + StaticIndexRange I1( 3 ), I2( 3 ); FArray2D_int A( I1, I2 ); for ( int i = A.l1(), ie = A.u1(); i <= ie; ++i ) { @@ -437,7 +443,7 @@ TEST( FArrayTest, Matrix2DMultiplication ) TEST( FArrayTest, Matrix2DMultiplicationTranspose ) { - SRange I1( 3 ), I2( 3 ); + StaticIndexRange I1( 3 ), I2( 3 ); FArray2D_int A( I1, I2 ); for ( int i = A.l1(), ie = A.u1(); i <= ie; ++i ) { diff --git a/third_party/ObjexxFCL/tst/unit/FArray1.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray1.unit.cc index 36b9d10d796..671228a8d85 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray1.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray1.unit.cc @@ -239,19 +239,22 @@ TEST( FArray1Test, ConstructionInitializerFunction ) TEST( FArray1Test, ConstructionIndexRange ) { - FArray1D_int r( SRange( 1, 5 ), 33 ); + typedef StaticIndexRange SR; + typedef DynamicIndexRange DR; + + FArray1D_int r( SR( 1, 5 ), 33 ); EXPECT_EQ( 1, r.l() ); EXPECT_EQ( 5, r.u() ); for ( int i = 1; i <= 5; ++i ) { EXPECT_EQ( 33, r( i ) ); EXPECT_EQ( 33, r[ i - 1 ] ); } - FArray1P_int p( r, SRange( 1, 4 ) ); + FArray1P_int p( r, SR( 1, 4 ) ); EXPECT_EQ( 1, p.l() ); EXPECT_EQ( 4, p.u() ); EXPECT_EQ( 33, p[ 0 ] ); EXPECT_EQ( 33, p[ 3 ] ); - FArray1A_int a( r, DRange( 1, 3 ) ); + FArray1A_int a( r, DR( 1, 3 ) ); EXPECT_EQ( 1, a.l() ); EXPECT_EQ( 3, a.u() ); EXPECT_EQ( 33, a[ 0 ] ); @@ -356,7 +359,8 @@ TEST( FArray1Test, ConstructionFstringMakeStickyInitializerList ) TEST( FArray1Test, ConstructionIndexRangeInitializerList ) { - FArray1D_int r( SRange( -1, 1 ), { 1, 2, 3 } ); + typedef StaticIndexRange SR; + FArray1D_int r( SR( -1, 1 ), { 1, 2, 3 } ); EXPECT_EQ( -1, r.l() ); EXPECT_EQ( 1, r.u() ); for ( int i = -1; i <= 1; ++i ) { @@ -913,11 +917,12 @@ TEST( FArray1Test, Redimension ) TEST( FArray1Test, Swap ) { + typedef DynamicIndexRange DR; FArray1D_int A( 4, 11 ); FArray1P_int P( A ); EXPECT_TRUE( eq( A, P ) ); FArray1D_int( 5, 22 ).swap( A ); - EXPECT_EQ( DRange( 1, 5 ), A.I() ); + EXPECT_EQ( DR( 1, 5 ), A.I() ); EXPECT_EQ( 5u, A.size() ); for ( int i = A.l(); i <= A.u(); ++i ) { EXPECT_EQ( 22, A( i ) ); @@ -1068,7 +1073,7 @@ TEST( FArray1FunctionsTest, Count ) TEST( FArray1FunctionsTest, IsContiguous ) { FArray1D_double A; - EXPECT_TRUE( is_contiguous( A ) ); + EXPECT_TRUE( contiguous( A ) ); } TEST( FArray1FunctionsTest, LUBound ) diff --git a/third_party/ObjexxFCL/tst/unit/FArray2.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray2.unit.cc index cc714ac3b5d..6bf1e6725af 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray2.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray2.unit.cc @@ -280,8 +280,10 @@ TEST( FArray2Test, ConstructIndexes ) TEST( FArray2Test, ConstructIndexRange ) { + typedef StaticIndexRange SR; + // Explicit index range, positive bounds - FArray2D_int A11( SRange( 2, 5 ), SRange( 3, 7 ) ); + FArray2D_int A11( SR( 2, 5 ), SR( 3, 7 ) ); EXPECT_EQ( 20u, A11.size() ); EXPECT_EQ( 4u, A11.size1() ); EXPECT_EQ( 5u, A11.size2() ); @@ -295,7 +297,7 @@ TEST( FArray2Test, ConstructIndexRange ) EXPECT_FALSE( A11.initializer_active() ); // Explicit index range, negative bounds - FArray2D_int A12( SRange( -5, -2 ), SRange( -7, -3 ) ); + FArray2D_int A12( SR( -5, -2 ), SR( -7, -3 ) ); EXPECT_EQ( 20u, A12.size() ); EXPECT_EQ( 4u, A12.size1() ); EXPECT_EQ( 5u, A12.size2() ); @@ -309,7 +311,7 @@ TEST( FArray2Test, ConstructIndexRange ) EXPECT_FALSE( A12.initializer_active() ); // Explicit index range, bounds that cross zero - FArray2D_int A13( SRange( -3, 3 ), SRange( -2, 2 ) ); + FArray2D_int A13( SR( -3, 3 ), SR( -2, 2 ) ); EXPECT_EQ( 35u, A13.size() ); EXPECT_EQ( 7u, A13.size1() ); EXPECT_EQ( 5u, A13.size2() ); @@ -406,8 +408,10 @@ TEST( FArray2Test, ConstructIndexesInitializerValue ) TEST( FArray2Test, ConstructIndexRangeInitializerValue ) { + typedef StaticIndexRange SR; + // Explicit index range - FArray2D_int A11( SRange( 2, 5 ), SRange( 3, 7 ), 31459 ); + FArray2D_int A11( SR( 2, 5 ), SR( 3, 7 ), 31459 ); EXPECT_EQ( 20u, A11.size() ); EXPECT_EQ( 4u, A11.size1() ); EXPECT_EQ( 5u, A11.size2() ); @@ -426,7 +430,7 @@ TEST( FArray2Test, ConstructIndexRangeInitializerValue ) } // Explicit index range, bounds that cross zero - FArray2D_int A12( SRange( -3, 3 ), SRange( -2, 2 ), -31459 ); + FArray2D_int A12( SR( -3, 3 ), SR( -2, 2 ), -31459 ); EXPECT_EQ( 35u, A12.size() ); EXPECT_EQ( 7u, A12.size1() ); EXPECT_EQ( 5u, A12.size2() ); @@ -680,14 +684,14 @@ static void initializer_function_Fstring( FArray2D_Fstring & A ) TEST( FArray2Test, ConstructIndexesInitializerFunction ) { - FArray2D_int A1( 2, 3, initializer_function_int); + FArray2D_int A1( 2, 3, initializer_function_int ); EXPECT_TRUE( eq( FArray2D_int( 2, 3, { 11, 21, 12, 22, 13, 23 } ), A1 ) ); FArray2D_double A2( 2, 3, initializer_function_double ); EXPECT_TRUE( eq( FArray2D_double( 2, 3, { 1.1, 2.1, 1.2, 2.2, 1.3, 2.3 } ), A2 ) ); FArray2D_Fstring A3( 2, 3, initializer_function_Fstring ); EXPECT_TRUE( eq( FArray2D_Fstring( 2, 3, { "1,1", "2,1", "1,2", "2,2", "1,3", "2,3" } ), A3 ) ); - FArray2D_int const C1( 2, 3, initializer_function_int); + FArray2D_int const C1( 2, 3, initializer_function_int ); EXPECT_TRUE( eq( FArray2D_int( 2, 3, { 11, 21, 12, 22, 13, 23 } ), C1 ) ); FArray2D_double const C2( 2, 3, initializer_function_double ); EXPECT_TRUE( eq( FArray2D_double( 2, 3, { 1.1, 2.1, 1.2, 2.2, 1.3, 2.3 } ), C2 ) ); @@ -704,7 +708,7 @@ TEST( FArray2Test, ConstructIndexRangeInitializerFunction ) FArray2D_Fstring A3( { 0, 1 }, { -1, 1 }, initializer_function_Fstring ); EXPECT_TRUE( eq( FArray2D_Fstring( { 0, 1 }, { -1, 1 }, { "0,-1", "1,-1", "0,0", "1,0", "0,1", "1,1" } ), A3 ) ); - FArray2D_int const C1( { 0, 1 }, { -1, 1 }, initializer_function_int); + FArray2D_int const C1( { 0, 1 }, { -1, 1 }, initializer_function_int ); EXPECT_TRUE( eq( FArray2D_int( { 0, 1 }, { -1, 1 }, { -1, 9, 0, 10, 1, 11 } ), C1 ) ); FArray2D_double const C2( { 0, 1 }, { -1, 1 }, initializer_function_double ); EXPECT_TRUE( eq( FArray2D_double( { 0, 1 }, { -1, 1 }, { -0.1, 0.9, 0.0, 1.0, 0.1, 1.1 } ), C2 ) ); @@ -1373,7 +1377,7 @@ TEST( FArray2Test, Predicates ) FArray2D_int A1; EXPECT_FALSE( A1.active() ); EXPECT_FALSE( A1.allocated() ); - EXPECT_TRUE( A1.is_contiguous() ); + EXPECT_TRUE( A1.contiguous() ); EXPECT_TRUE( A1.data_size_bounded() ); EXPECT_FALSE( A1.data_size_unbounded() ); EXPECT_TRUE( A1.empty() ); @@ -1389,7 +1393,7 @@ TEST( FArray2Test, Predicates ) FArray2D_int A2( 2, 3 ); // Uninitialized EXPECT_TRUE( A2.active() ); EXPECT_TRUE( A2.allocated() ); - EXPECT_TRUE( A2.is_contiguous() ); + EXPECT_TRUE( A2.contiguous() ); EXPECT_TRUE( A2.data_size_bounded() ); EXPECT_FALSE( A2.data_size_unbounded() ); EXPECT_FALSE( A2.empty() ); @@ -1401,7 +1405,7 @@ TEST( FArray2Test, Predicates ) FArray2D_int A3( 2, 3, 31459 ); EXPECT_TRUE( A3.active() ); EXPECT_TRUE( A3.allocated() ); - EXPECT_TRUE( A3.is_contiguous() ); + EXPECT_TRUE( A3.contiguous() ); EXPECT_TRUE( A3.data_size_bounded() ); EXPECT_FALSE( A3.data_size_unbounded() ); EXPECT_FALSE( A3.empty() ); @@ -1417,7 +1421,7 @@ TEST( FArray2Test, Predicates ) FArray2D_int A4( 2, 3, { 11, 21, 12, 22, 13, 23 } ); EXPECT_TRUE( A4.active() ); EXPECT_TRUE( A4.allocated() ); - EXPECT_TRUE( A4.is_contiguous() ); + EXPECT_TRUE( A4.contiguous() ); EXPECT_TRUE( A4.data_size_bounded() ); EXPECT_FALSE( A4.data_size_unbounded() ); EXPECT_FALSE( A4.empty() ); @@ -1727,6 +1731,8 @@ TEST( FArray2Test, PredicateInitializerActive ) TEST( FArray2Test, Inspectors ) { + typedef StaticIndexRange SR; + FArray2D_int const C1; // Rank EXPECT_EQ( 2, C1.rank() ); @@ -1738,9 +1744,9 @@ TEST( FArray2Test, Inspectors ) EXPECT_EQ( 0u, C1.size( 2 ) ); EXPECT_EQ( C1.size2(), C1.size( 2 ) ); // Indexes - EXPECT_EQ( SRange(), C1.I( 1 ) ); + EXPECT_EQ( SR(), C1.I( 1 ) ); EXPECT_EQ( C1.I1(), C1.I( 1 ) ); - EXPECT_EQ( SRange(), C1.I( 2 ) ); + EXPECT_EQ( SR(), C1.I( 2 ) ); EXPECT_EQ( C1.I2(), C1.I( 2 ) ); EXPECT_EQ( 1, C1.l( 1 ) ); EXPECT_EQ( C1.l1(), C1.l( 1 ) ); @@ -1766,9 +1772,9 @@ TEST( FArray2Test, Inspectors ) EXPECT_EQ( 3u, C2.size( 2 ) ); EXPECT_EQ( C2.size2(), C2.size( 2 ) ); // Indexes - EXPECT_EQ( SRange( 1, 2 ), C2.I( 1 ) ); + EXPECT_EQ( SR( 1, 2 ), C2.I( 1 ) ); EXPECT_EQ( C2.I1(), C2.I( 1 ) ); - EXPECT_EQ( SRange( 1, 3 ), C2.I( 2 ) ); + EXPECT_EQ( SR( 1, 3 ), C2.I( 2 ) ); EXPECT_EQ( C2.I2(), C2.I( 2 ) ); EXPECT_EQ( 1, C2.l( 1 ) ); EXPECT_EQ( C2.l1(), C2.l( 1 ) ); diff --git a/third_party/ObjexxFCL/tst/unit/FArray3.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray3.unit.cc index 58af2a79efb..b387eaffdff 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray3.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray3.unit.cc @@ -147,7 +147,7 @@ TEST( FArray3Test, Predicates ) FArray3D_int A1; EXPECT_FALSE( A1.active() ); EXPECT_FALSE( A1.allocated() ); - EXPECT_TRUE( A1.is_contiguous() ); + EXPECT_TRUE( A1.contiguous() ); EXPECT_TRUE( A1.data_size_bounded() ); EXPECT_FALSE( A1.data_size_unbounded() ); EXPECT_TRUE( A1.empty() ); @@ -163,7 +163,7 @@ TEST( FArray3Test, Predicates ) FArray3D_int A2( 2, 3, 2 ); // Uninitialized EXPECT_TRUE( A2.active() ); EXPECT_TRUE( A2.allocated() ); - EXPECT_TRUE( A2.is_contiguous() ); + EXPECT_TRUE( A2.contiguous() ); EXPECT_TRUE( A2.data_size_bounded() ); EXPECT_FALSE( A2.data_size_unbounded() ); EXPECT_FALSE( A2.empty() ); @@ -175,7 +175,7 @@ TEST( FArray3Test, Predicates ) FArray3D_int A3( 2, 3, 2, 31459 ); EXPECT_TRUE( A3.active() ); EXPECT_TRUE( A3.allocated() ); - EXPECT_TRUE( A3.is_contiguous() ); + EXPECT_TRUE( A3.contiguous() ); EXPECT_TRUE( A3.data_size_bounded() ); EXPECT_FALSE( A3.data_size_unbounded() ); EXPECT_FALSE( A3.empty() ); @@ -191,7 +191,7 @@ TEST( FArray3Test, Predicates ) FArray3D_int A4( 2, 2, 2, { 111, 211, 121, 221, 112, 212, 122, 222 } ); EXPECT_TRUE( A4.active() ); EXPECT_TRUE( A4.allocated() ); - EXPECT_TRUE( A4.is_contiguous() ); + EXPECT_TRUE( A4.contiguous() ); EXPECT_TRUE( A4.data_size_bounded() ); EXPECT_FALSE( A4.data_size_unbounded() ); EXPECT_FALSE( A4.empty() ); diff --git a/third_party/ObjexxFCL/tst/unit/FArray4.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray4.unit.cc index 1e18043af94..76b701e5038 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray4.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray4.unit.cc @@ -179,7 +179,7 @@ TEST( FArray4Test, Predicates ) FArray4D_int A1; EXPECT_FALSE( A1.active() ); EXPECT_FALSE( A1.allocated() ); - EXPECT_TRUE( A1.is_contiguous() ); + EXPECT_TRUE( A1.contiguous() ); EXPECT_TRUE( A1.data_size_bounded() ); EXPECT_FALSE( A1.data_size_unbounded() ); EXPECT_TRUE( A1.empty() ); @@ -195,7 +195,7 @@ TEST( FArray4Test, Predicates ) FArray4D_int A2( 2, 3, 2, 2 ); // Uninitialized EXPECT_TRUE( A2.active() ); EXPECT_TRUE( A2.allocated() ); - EXPECT_TRUE( A2.is_contiguous() ); + EXPECT_TRUE( A2.contiguous() ); EXPECT_TRUE( A2.data_size_bounded() ); EXPECT_FALSE( A2.data_size_unbounded() ); EXPECT_FALSE( A2.empty() ); @@ -207,7 +207,7 @@ TEST( FArray4Test, Predicates ) FArray4D_int A3( 2, 3, 2, 2, 31459 ); EXPECT_TRUE( A3.active() ); EXPECT_TRUE( A3.allocated() ); - EXPECT_TRUE( A3.is_contiguous() ); + EXPECT_TRUE( A3.contiguous() ); EXPECT_TRUE( A3.data_size_bounded() ); EXPECT_FALSE( A3.data_size_unbounded() ); EXPECT_FALSE( A3.empty() ); @@ -223,7 +223,7 @@ TEST( FArray4Test, Predicates ) FArray4D_int A4( 2, 2, 2, 2, { 1111, 2111, 1211, 2211, 1121, 2121, 1221, 2221, 1112, 2112, 1212, 2212, 1122, 2122, 1222, 2222 } ); EXPECT_TRUE( A4.active() ); EXPECT_TRUE( A4.allocated() ); - EXPECT_TRUE( A4.is_contiguous() ); + EXPECT_TRUE( A4.contiguous() ); EXPECT_TRUE( A4.data_size_bounded() ); EXPECT_FALSE( A4.data_size_unbounded() ); EXPECT_FALSE( A4.empty() ); diff --git a/third_party/ObjexxFCL/tst/unit/FArray5.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray5.unit.cc index 4d8c07dfcd2..4459310d4b6 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray5.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray5.unit.cc @@ -227,7 +227,7 @@ TEST( FArray5Test, Predicates ) FArray5D_int A1; EXPECT_FALSE( A1.active() ); EXPECT_FALSE( A1.allocated() ); - EXPECT_TRUE( A1.is_contiguous() ); + EXPECT_TRUE( A1.contiguous() ); EXPECT_TRUE( A1.data_size_bounded() ); EXPECT_FALSE( A1.data_size_unbounded() ); EXPECT_TRUE( A1.empty() ); @@ -243,7 +243,7 @@ TEST( FArray5Test, Predicates ) FArray5D_int A2( 2, 3, 2, 2, 3 ); // Uninitialized EXPECT_TRUE( A2.active() ); EXPECT_TRUE( A2.allocated() ); - EXPECT_TRUE( A2.is_contiguous() ); + EXPECT_TRUE( A2.contiguous() ); EXPECT_TRUE( A2.data_size_bounded() ); EXPECT_FALSE( A2.data_size_unbounded() ); EXPECT_FALSE( A2.empty() ); @@ -255,7 +255,7 @@ TEST( FArray5Test, Predicates ) FArray5D_int A3( 2, 3, 2, 2, 3, 31459 ); EXPECT_TRUE( A3.active() ); EXPECT_TRUE( A3.allocated() ); - EXPECT_TRUE( A3.is_contiguous() ); + EXPECT_TRUE( A3.contiguous() ); EXPECT_TRUE( A3.data_size_bounded() ); EXPECT_FALSE( A3.data_size_unbounded() ); EXPECT_FALSE( A3.empty() ); @@ -271,7 +271,7 @@ TEST( FArray5Test, Predicates ) FArray5D_int A4( 2, 2, 2, 2, 2, { 11111, 21111, 12111, 22111, 11211, 21211, 12211, 22211, 11121, 21121, 12121, 22121, 11221, 21221, 12221, 22221, 11112, 21112, 12112, 22112, 11212, 21212, 12212, 22212, 11122, 21122, 12122, 22122, 11222, 21222, 12222, 22222 } ); EXPECT_TRUE( A4.active() ); EXPECT_TRUE( A4.allocated() ); - EXPECT_TRUE( A4.is_contiguous() ); + EXPECT_TRUE( A4.contiguous() ); EXPECT_TRUE( A4.data_size_bounded() ); EXPECT_FALSE( A4.data_size_unbounded() ); EXPECT_FALSE( A4.empty() ); diff --git a/third_party/ObjexxFCL/tst/unit/FArray6.unit.cc b/third_party/ObjexxFCL/tst/unit/FArray6.unit.cc index 0c2de7f8db9..d49506f3a79 100644 --- a/third_party/ObjexxFCL/tst/unit/FArray6.unit.cc +++ b/third_party/ObjexxFCL/tst/unit/FArray6.unit.cc @@ -308,7 +308,7 @@ TEST( FArray6Test, Predicates ) FArray6D_int A1; EXPECT_FALSE( A1.active() ); EXPECT_FALSE( A1.allocated() ); - EXPECT_TRUE( A1.is_contiguous() ); + EXPECT_TRUE( A1.contiguous() ); EXPECT_TRUE( A1.data_size_bounded() ); EXPECT_FALSE( A1.data_size_unbounded() ); EXPECT_TRUE( A1.empty() ); @@ -324,7 +324,7 @@ TEST( FArray6Test, Predicates ) FArray6D_int A2( 2, 3, 2, 2, 3, 4 ); // Uninitialized EXPECT_TRUE( A2.active() ); EXPECT_TRUE( A2.allocated() ); - EXPECT_TRUE( A2.is_contiguous() ); + EXPECT_TRUE( A2.contiguous() ); EXPECT_TRUE( A2.data_size_bounded() ); EXPECT_FALSE( A2.data_size_unbounded() ); EXPECT_FALSE( A2.empty() ); @@ -336,7 +336,7 @@ TEST( FArray6Test, Predicates ) FArray6D_int A3( 2, 3, 2, 2, 3, 4, 31459 ); EXPECT_TRUE( A3.active() ); EXPECT_TRUE( A3.allocated() ); - EXPECT_TRUE( A3.is_contiguous() ); + EXPECT_TRUE( A3.contiguous() ); EXPECT_TRUE( A3.data_size_bounded() ); EXPECT_FALSE( A3.data_size_unbounded() ); EXPECT_FALSE( A3.empty() ); @@ -353,7 +353,7 @@ TEST( FArray6Test, Predicates ) 111112, 211112, 121112, 221112, 112112, 212112, 122112, 222112, 111212, 211212, 121212, 221212, 112212, 212212, 122212, 222212, 111122, 211122, 121122, 221122, 112122, 212122, 122122, 222122, 111222, 211222, 121222, 221222, 112222, 212222, 122222, 222222 } ); EXPECT_TRUE( A4.active() ); EXPECT_TRUE( A4.allocated() ); - EXPECT_TRUE( A4.is_contiguous() ); + EXPECT_TRUE( A4.contiguous() ); EXPECT_TRUE( A4.data_size_bounded() ); EXPECT_FALSE( A4.data_size_unbounded() ); EXPECT_FALSE( A4.empty() ); diff --git a/tst/EnergyPlus/unit/CMakeLists.txt b/tst/EnergyPlus/unit/CMakeLists.txt index 98613976622..ce922030355 100644 --- a/tst/EnergyPlus/unit/CMakeLists.txt +++ b/tst/EnergyPlus/unit/CMakeLists.txt @@ -1,21 +1,25 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src ) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/src/EnergyPlus ) -if(MSVC) - ADD_DEFINITIONS(/Za) # Disables MS language extensions -endif() - set( test_src DataPlant.unit.cc DXCoils.unit.cc ExteriorEnergyUse.unit.cc HeatBalanceManager.unit.cc HVACStandaloneERV.unit.cc + MixedAir.unit.cc + PurchasedAirManager.unit.cc + OutputProcessor.unit.cc + OutputReportTabular.unit.cc + ReportSizingManager.unit.cc + SizingManager.unit.cc SolarShading.unit.cc SortAndStringUtilities.unit.cc + SQLite.unit.cc Vectors.unit.cc Vector.unit.cc WaterThermalTanks.unit.cc + main.cc ) set( test_dependencies diff --git a/tst/EnergyPlus/unit/ExteriorEnergyUse.unit.cc b/tst/EnergyPlus/unit/ExteriorEnergyUse.unit.cc index 60c325ab5b1..57f64ac281b 100644 --- a/tst/EnergyPlus/unit/ExteriorEnergyUse.unit.cc +++ b/tst/EnergyPlus/unit/ExteriorEnergyUse.unit.cc @@ -19,12 +19,13 @@ TEST( ExteriorEquipmentTest, Test1 ) NumExteriorLights = 0; NumExteriorEqs = 2; TimeStepZone = 0.25; + TimeStepZoneSec = TimeStepZone * SecInHour; ExteriorEquipment.allocate( NumExteriorEqs ); ExteriorEquipment( 1 ).DesignLevel = 1000.0; ExteriorEquipment( 2 ).DesignLevel = 0.0; ExteriorEquipment( 1 ).SchedPtr = ScheduleAlwaysOn; // From dataglobals, always returns a 1 for schedule value ExteriorEquipment( 2 ).SchedPtr = ScheduleAlwaysOn; // From dataglobals, always returns a 1 for schedule value - ReportExteriorEnergyUse( ); + ReportExteriorEnergyUse(); EXPECT_EQ( 1000.0, ExteriorEquipment( 1 ).Power ); EXPECT_EQ( 0.0, ExteriorEquipment( 2 ).Power ); diff --git a/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc b/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc index b486e5c3036..57b8e34b729 100644 --- a/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc +++ b/tst/EnergyPlus/unit/HVACStandaloneERV.unit.cc @@ -10,7 +10,6 @@ #include #include #include -#include using namespace EnergyPlus; @@ -31,15 +30,6 @@ TEST( SizeStandAloneERVTest, Test1 ) { IOFlags flags; flags.ACTION( "write" ); flags.STATUS( "UNKNOWN" ); gio::open( OutputFileInits, "eplusout.eio", flags ); write_stat = flags.ios( ); } // eso_stream = gio::out_stream( OutputFileStandard ); - //CreateSQLiteDatabase(); (lifted from SimulationManager.cc) - try { - EnergyPlus::sqlite = std::unique_ptr( new SQLite( ) ); - } - catch ( const std::runtime_error& error ) { - // Maybe this could be higher in the call stack, and then handle all runtime exceptions this way. - ShowFatalError( error.what( ) ); - } - ZoneEquipConfig.allocate( 1 ); ZoneEquipConfig( 1 ).ZoneName = "Zone 1"; ZoneEquipConfig( 1 ).ActualZoneNum = 1; diff --git a/tst/EnergyPlus/unit/HeatBalanceManager.unit.cc b/tst/EnergyPlus/unit/HeatBalanceManager.unit.cc index 53b076308dc..fb2af04e3fb 100644 --- a/tst/EnergyPlus/unit/HeatBalanceManager.unit.cc +++ b/tst/EnergyPlus/unit/HeatBalanceManager.unit.cc @@ -33,8 +33,8 @@ TEST( ProcessZoneDataTest, Test1 ) // , !- Floor Area{ m2 } // AdaptiveConvectionAlgorithm; !- Zone Inside Convection Algorithm - static bool ErrorsFound( false ); // If errors detected in input - static int ZoneNum( 0 ); // Zone number + bool ErrorsFound( false ); // If errors detected in input + int ZoneNum( 0 ); // Zone number int NumAlphas ( 2 ); int NumNumbers ( 9 ); diff --git a/tst/EnergyPlus/unit/MixedAir.unit.cc b/tst/EnergyPlus/unit/MixedAir.unit.cc new file mode 100644 index 00000000000..5b5daa2f2b4 --- /dev/null +++ b/tst/EnergyPlus/unit/MixedAir.unit.cc @@ -0,0 +1,160 @@ +// EnergyPlus::MixedAir Unit Tests + +// Google Test Headers +#include + +// EnergyPlus Headers +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace EnergyPlus; +using namespace EnergyPlus::MixedAir; +using namespace EnergyPlus::OutAirNodeManager; +using namespace EnergyPlus::InputProcessor; +using namespace EnergyPlus::DataIPShortCuts; +using namespace EnergyPlus::DataGlobals; +using namespace EnergyPlus::DataLoopNode; +using namespace ObjexxFCL; + +TEST( ProcessOAControllerTest, Test1 ) +{ +// Test input processing of portion of Controller:OutdoorAir object + // Controller:OutdoorAir, + // OA Controller 1, !- Name + // Relief Air Outlet Node 1,!- Relief Air Outlet Node Name + // VAV Sys 1 Inlet Node, !- Return Air Node Name + // Mixed Air Node 1, !- Mixed Air Node Name + // Outside Air Inlet Node 1,!- Actuator Node Name + // autosize, !- Minimum Outdoor Air Flow Rate {m3/s} + // autosize, !- Maximum Outdoor Air Flow Rate {m3/s} + + bool ErrorsFound( false ); // If errors detected in input + int ControllerNum( 0 ); // Controller number + int NumAlphas ( 17 ); + int NumNumbers ( 7 ); + int NumOfOAControllers( 2 ); + + // Open the Error Output File (lifted from UtilityRoutines.cc) + int StandardErrorOutput = GetNewUnitNumber( ); + IOFlags flags; + flags.ACTION( "write" ); + gio::open( StandardErrorOutput, DataStringGlobals::outputErrFileName, flags ); + int write_stat = flags.ios( ); + + cCurrentModuleObject = "Controller:OutdoorAir"; + OAController.allocate( NumOfOAControllers ); + + // Set up OutdoorAir:Node list + GetOutAirNodesInput( ); + OutsideAirNodeList.allocate( 1 ); + OutsideAirNodeList( 1 ) = 2; // Nodes will be registered in the order they appear in the firat controller object, so the OA actuator node will be node 5 + + //Set up Node array + NumOfNodes = 10; + // GetOnlySingleNode requires that the IDD object definition for NodeList is present, so populate it here + ListOfObjects.dimension( 1 ); + ListOfObjects( 1 ) = "NodeList"; + iListOfObjects.dimension( 1 ); + iListOfObjects( 1 ) = 1; + NumObjectDefs = 1; + ObjectDef.allocate( 1 ); + ObjectDef( 1 ).NumParams = 4; + ObjectDef( 1 ).NumAlpha = 4; + ObjectDef( 1 ).NumNumeric = 0; + + + // Set up Controller input objects + lNumericFieldBlanks.allocate ( NumNumbers ); + lAlphaFieldBlanks.allocate( NumAlphas ); + cAlphaFieldNames.allocate( NumAlphas ); + cNumericFieldNames.allocate( NumNumbers ); + cAlphaArgs.allocate( NumAlphas ); + rNumericArgs.allocate( NumNumbers ); + lNumericFieldBlanks = false; + lAlphaFieldBlanks = false; + cAlphaFieldNames = " "; + cNumericFieldNames = " "; + cAlphaArgs = " "; + rNumericArgs = 0.0; + + ControllerNum = 1; + cAlphaArgs( 1 ) = "OA Controller 1"; // Name + // cAlphaArgs( 2 ) = "Relief Node 1"; // Relief Air Outlet Node Name - not used + // cAlphaArgs( 3 ) = "Return Node 1"; // Return Air Node Name - not used + cAlphaArgs( 4 ) = "Mixed Air Node 1"; // Mixed Air Node Name + cAlphaArgs( 5 ) = "OA Inlet Node 1"; // Actuator Node Name + rNumericArgs( 1 ) = 0.00; // Minimum Outdoor Air Flow Rate {m3/s} + rNumericArgs( 2 ) = 0.01; // Maximum Outdoor Air Flow Rate {m3/s} + cAlphaArgs( 6 ) = "NoEconomizer"; + cAlphaArgs( 7 ) = "ModulateFlow"; + lNumericFieldBlanks( 3 ) = true; + lNumericFieldBlanks( 4 ) = true; + lNumericFieldBlanks( 5 ) = true; + lAlphaFieldBlanks( 8 ) = true; + lNumericFieldBlanks( 6 ) = true; + cAlphaArgs( 9 ) = "NoLockout"; + cAlphaArgs( 10 ) = "ProportionalMinimum"; + lAlphaFieldBlanks( 11 ) = true; + lAlphaFieldBlanks( 12 ) = true; + lAlphaFieldBlanks( 13 ) = true; + lAlphaFieldBlanks( 14 ) = true; + lAlphaFieldBlanks( 15 ) = true; + lAlphaFieldBlanks( 16 ) = true; + lAlphaFieldBlanks( 17 ) = true; + lNumericFieldBlanks( 7 ) = true; + + ErrorsFound = false; + ProcessOAControllerInputs( cCurrentModuleObject, ControllerNum, cAlphaArgs, NumAlphas, rNumericArgs, NumNumbers, lNumericFieldBlanks, lAlphaFieldBlanks, cAlphaFieldNames, cNumericFieldNames, ErrorsFound ); + EXPECT_FALSE( ErrorsFound ); + EXPECT_EQ( 2, OAController( 1 ).OANode ); + EXPECT_TRUE( CheckOutAirNodeNumber( OAController( 1 ).OANode ) ); + + ControllerNum = 2; + cAlphaArgs( 1 ) = "OA Controller 2"; // Name + // cAlphaArgs( 2 ) = "Relief Node 2"; // Relief Air Outlet Node Name - not used + // cAlphaArgs( 3 ) = "Return Node 2"; // Return Air Node Name - not used + cAlphaArgs( 4 ) = "Mixed Air Node 2"; // Mixed Air Node Name + cAlphaArgs( 5 ) = "OA Inlet Node 2"; // Actuator Node Name + rNumericArgs( 1 ) = 0.00; // Minimum Outdoor Air Flow Rate {m3/s} + rNumericArgs( 2 ) = 0.01; // Maximum Outdoor Air Flow Rate {m3/s} + cAlphaArgs( 6 ) = "NoEconomizer"; + cAlphaArgs( 7 ) = "ModulateFlow"; + lNumericFieldBlanks( 3 ) = true; + lNumericFieldBlanks( 4 ) = true; + lNumericFieldBlanks( 5 ) = true; + lAlphaFieldBlanks( 8 ) = true; + lNumericFieldBlanks( 6 ) = true; + cAlphaArgs( 9 ) = "NoLockout"; + cAlphaArgs( 10 ) = "ProportionalMinimum"; + lAlphaFieldBlanks( 11 ) = true; + lAlphaFieldBlanks( 12 ) = true; + lAlphaFieldBlanks( 13 ) = true; + lAlphaFieldBlanks( 14 ) = true; + lAlphaFieldBlanks( 15 ) = true; + lAlphaFieldBlanks( 16 ) = true; + lAlphaFieldBlanks( 17 ) = true; + lNumericFieldBlanks( 7 ) = true; + + ErrorsFound = false; + ProcessOAControllerInputs( cCurrentModuleObject, ControllerNum, cAlphaArgs, NumAlphas, rNumericArgs, NumNumbers, lNumericFieldBlanks, lAlphaFieldBlanks, cAlphaFieldNames, cNumericFieldNames, ErrorsFound ); + EXPECT_FALSE( ErrorsFound ); + EXPECT_EQ( 4, OAController( 2 ).OANode ); + EXPECT_FALSE( CheckOutAirNodeNumber( OAController( 2 ).OANode ) ); + + OAController.deallocate(); + OutsideAirNodeList.deallocate(); + + lNumericFieldBlanks.deallocate(); + lAlphaFieldBlanks.deallocate(); + cAlphaFieldNames.deallocate(); + cNumericFieldNames.deallocate(); + cAlphaArgs.deallocate(); + rNumericArgs.deallocate(); +} diff --git a/tst/EnergyPlus/unit/OutputProcessor.unit.cc b/tst/EnergyPlus/unit/OutputProcessor.unit.cc new file mode 100644 index 00000000000..dcfa2021288 --- /dev/null +++ b/tst/EnergyPlus/unit/OutputProcessor.unit.cc @@ -0,0 +1,70 @@ +// EnergyPlus::OutputProcessor Unit Tests + +// Google Test Headers +#include + +// EnergyPlus Headers +#include + +using namespace EnergyPlus; +using namespace EnergyPlus::OutputProcessor; +using namespace ObjexxFCL; +using namespace DataGlobals; + +TEST( OutputProcessor, TestGetMeteredVariables ) +{ + FArray1D_int VarIndexes; // Variable Numbers + FArray1D_int VarTypes; // Variable Types (1=integer, 2=real, 3=meter) + FArray1D_int IndexTypes; // Variable Index Types (1=Zone,2=HVAC) + FArray1D_string UnitsStrings; // UnitsStrings for each variable + FArray1D_int ResourceTypes; // ResourceTypes for each variable + FArray1D_string EndUses; // EndUses for each variable + FArray1D_string Groups; // Groups for each variable + FArray1D_string Names; // Variable Names for each variable + int NumVariables = 2; + Real64 ZoneElectricPower = 0.2; + Reference< RealVariables > RVar; + + + std::string TypeOfComp = "ZONEHVAC:TERMINALUNIT:VARIABLEREFRIGERANTFLOW"; + std::string NameOfComp = "FC-5-1B"; + + VarIndexes.allocate( NumVariables ); + VarTypes.allocate( NumVariables ); + IndexTypes.allocate( NumVariables ); + UnitsStrings.allocate( NumVariables ); + ResourceTypes.allocate( NumVariables ); + EndUses.allocate( NumVariables ); + Groups.allocate( NumVariables ); + Names.allocate( NumVariables ); + + int NumFound; + + GetMeteredVariables( TypeOfComp, NameOfComp, VarIndexes, VarTypes, IndexTypes, UnitsStrings, ResourceTypes, EndUses, Groups, Names, NumFound ); + + EXPECT_EQ( 0, NumFound ); + + NumOfRVariable = 2; + RVariableTypes.allocate( NumOfRVariable ); + NameOfComp = "OUTSIDELIGHTS"; + RVar.allocate(); + + RVar().MeterArrayPtr = 1; + RVariableTypes( 1 ).KeyNameOnlyUC = NameOfComp; + RVariableTypes( 1 ).VarPtr = RVar; + VarMeterArrays.allocate( 1 ); + + VarMeterArrays( 1 ).NumOnMeters = 1; + VarMeterArrays( 1 ).OnMeters( 1 ) = 1; + + EnergyMeters.allocate( 10 ); + EnergyMeters( 1 ).ResourceType = NameOfComp; + + GetMeteredVariables( TypeOfComp, NameOfComp, VarIndexes, VarTypes, IndexTypes, UnitsStrings, ResourceTypes, EndUses, Groups, Names, NumFound ); + EXPECT_EQ( 1 , NumFound ); + + // Clean up + RVariableTypes.deallocate(); + VarMeterArrays.deallocate(); + EnergyMeters.deallocate(); +} diff --git a/tst/EnergyPlus/unit/OutputReportTabular.unit.cc b/tst/EnergyPlus/unit/OutputReportTabular.unit.cc index 038b77e58c3..51f75f1a3fb 100644 --- a/tst/EnergyPlus/unit/OutputReportTabular.unit.cc +++ b/tst/EnergyPlus/unit/OutputReportTabular.unit.cc @@ -2,10 +2,8 @@ // Google Test Headers #include - // ObjexxFCL Headers #include - // EnergyPlus Headers #include @@ -13,6 +11,16 @@ using namespace EnergyPlus; using namespace EnergyPlus::OutputReportTabular; using namespace ObjexxFCL; +TEST( OutputReportTabularTest, ConfirmSetUnitsStyleFromString ) +{ + EXPECT_EQ( unitsStyleNone, SetUnitsStyleFromString( "None" ) ); + EXPECT_EQ( unitsStyleJtoKWH, SetUnitsStyleFromString( "JTOKWH" ) ); + EXPECT_EQ( unitsStyleJtoMJ, SetUnitsStyleFromString( "JTOMJ" ) ); + EXPECT_EQ( unitsStyleJtoGJ, SetUnitsStyleFromString( "JTOGJ" ) ); + EXPECT_EQ( unitsStyleInchPound, SetUnitsStyleFromString( "INCHPOUND" ) ); + EXPECT_EQ( unitsStyleNotFound, SetUnitsStyleFromString( "qqq" ) ); +} + TEST( OutputReportTabularTest, Basic ) { OutputTableBinned.allocate( 10 ); diff --git a/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc b/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc new file mode 100644 index 00000000000..0b8cc2cf081 --- /dev/null +++ b/tst/EnergyPlus/unit/PurchasedAirManager.unit.cc @@ -0,0 +1,88 @@ +// EnergyPlus::PurchasedAirManager (Ideal Loads) Unit Tests + +// Google Test Headers +#include + +// EnergyPlus Headers +#include +#include +#include +#include +#include +#include + + +using namespace EnergyPlus; +using namespace EnergyPlus::PurchasedAirManager; +using namespace ObjexxFCL; +using namespace EnergyPlus::DataHVACGlobals; +using namespace DataGlobals; +using namespace EnergyPlus::DataZoneEquipment; +using namespace EnergyPlus::DataSizing; + + +TEST( SizePurchasedAirTest, Test1 ) +{ + + int PurchAirNum; + int write_stat; + // Open the Initialization Output File (lifted from SimulationManager.cc) + OutputFileInits = GetNewUnitNumber( ); + { IOFlags flags; flags.ACTION( "write" ); flags.STATUS( "UNKNOWN" ); gio::open( OutputFileInits, "eplusout.eio", flags ); write_stat = flags.ios( ); } +// eso_stream = gio::out_stream( OutputFileStandard ); + + //ZoneEquipConfig.allocate( 1 ); + //ZoneEquipConfig( 1 ).ZoneName = "Zone 1"; + //ZoneEquipConfig( 1 ).ActualZoneNum = 1; + + //Zone.allocate( 1 ); + //Zone( 1 ).Name = ZoneEquipConfig( 1 ).ZoneName; + ZoneEqSizing.allocate( 1 ); + CurZoneEqNum = 1; + ZoneEqSizing( CurZoneEqNum ).SizingMethod.allocate( 24 ); + + FinalZoneSizing.allocate(1); + FinalZoneSizing( CurZoneEqNum ).DesHeatVolFlow = 1.0; + FinalZoneSizing( CurZoneEqNum ).DesHeatCoilInTemp = 30.0; + FinalZoneSizing( CurZoneEqNum ).HeatDesTemp = 80.0; + FinalZoneSizing( CurZoneEqNum ).HeatDesHumRat = 0.008; + FinalZoneSizing( CurZoneEqNum ).DesHeatMassFlow = 0.01; + + FinalZoneSizing( CurZoneEqNum ).DesCoolVolFlow = 2.0; + FinalZoneSizing( CurZoneEqNum ).DesCoolCoilInTemp = 60.0; + FinalZoneSizing( CurZoneEqNum ).CoolDesTemp = 50.0; + FinalZoneSizing( CurZoneEqNum ).CoolDesHumRat = 0.008; + FinalZoneSizing( CurZoneEqNum ).DesCoolCoilInHumRat = 0.010; + FinalZoneSizing( CurZoneEqNum ).DesCoolMassFlow = 0.0103747425; + + PurchAir.allocate( 1 ); + PurchAirNumericFields.allocate( 1 ); + PurchAirNum = 1; + PurchAirNumericFields( PurchAirNum ).FieldNames.allocate( 8 ); + PurchAirNumericFields( PurchAirNum ).FieldNames( 5 ) = "Maximum Heating Air Flow Rate"; + PurchAirNumericFields( PurchAirNum ).FieldNames( 6 ) = "Maximum Sensible Heating Capacity"; + PurchAirNumericFields( PurchAirNum ).FieldNames( 7 ) = "Maximum Cooling Air Flow Rate"; + PurchAirNumericFields( PurchAirNum ).FieldNames( 8 ) = "Maximum Total Cooling Capacity"; + + ZoneEqSizing( CurZoneEqNum ).SizingMethod( HeatingAirflowSizing ) = SupplyAirFlowRate; + ZoneSizingRunDone = true; + + PurchAir( PurchAirNum ).HeatingLimit = LimitFlowRateAndCapacity; + PurchAir( PurchAirNum ).MaxHeatVolFlowRate = AutoSize; + PurchAir( PurchAirNum ).MaxHeatSensCap = AutoSize; + PurchAir( PurchAirNum ).CoolingLimit = LimitFlowRateAndCapacity; + PurchAir( PurchAirNum ).MaxCoolVolFlowRate = AutoSize; + PurchAir( PurchAirNum ).MaxCoolTotCap = AutoSize; + PurchAir( PurchAirNum ).cObjectName = "ZONEHVAC:IDEALLOADSAIRSYSTEM"; + PurchAir( PurchAirNum ).Name = "Ideal Loads 1"; + + SizePurchasedAir( PurchAirNum ); + EXPECT_DOUBLE_EQ( 1.0 , PurchAir( PurchAirNum ).MaxHeatVolFlowRate ); + EXPECT_NEAR( 509.856, PurchAir( PurchAirNum ).MaxHeatSensCap, 0.1 ); + EXPECT_DOUBLE_EQ( 2.0, PurchAir( PurchAirNum ).MaxCoolVolFlowRate ); + EXPECT_NEAR( 160.0, PurchAir( PurchAirNum ).MaxCoolTotCap, 0.1 ); + + // Close and delete eio output file + { IOFlags flags; flags.DISPOSE( "DELETE" ); gio::close( OutputFileInits, flags ); } + +} diff --git a/tst/EnergyPlus/unit/ReportSizingManager.unit.cc b/tst/EnergyPlus/unit/ReportSizingManager.unit.cc new file mode 100644 index 00000000000..f5ba682ba39 --- /dev/null +++ b/tst/EnergyPlus/unit/ReportSizingManager.unit.cc @@ -0,0 +1,122 @@ +// EnergyPlus::Standalone ERV Unit Tests + +// Google Test Headers +#include + +// EnergyPlus Headers +#include +#include +#include +#include + +using namespace EnergyPlus; + +TEST( ReportSizingManager, GetCoilDesFlowT ) +{ + // setup global allocation + DataSizing::SysSizInput.allocate(1); + DataSizing::SysSizPeakDDNum.allocate(1); + DataSizing::FinalSysSizing.allocate(1); + DataSizing::CalcSysSizing.allocate(1); + DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq.allocate(1); + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq.allocate(1); + DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk.allocate(1); + DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.allocate(1); + DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk.allocate(1); + + // one-time global initialization + int const DesignDayForPeak = 1; + DataSizing::SysSizPeakDDNum(1).SensCoolPeakDD = DesignDayForPeak; + DataSizing::SysSizPeakDDNum(1).CoolFlowPeakDD = DesignDayForPeak; + DataSizing::SysSizPeakDDNum(1).TotCoolPeakDD = DesignDayForPeak; + DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk(DesignDayForPeak) = 1; + DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk(DesignDayForPeak) = 1; + DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk(DesignDayForPeak) = 1; + DataSizing::FinalSysSizing(1).CoolSupTemp = 10; + DataSizing::FinalSysSizing(1).MassFlowAtCoolPeak = 2.0; + DataSizing::FinalSysSizing(1).DesCoolVolFlow = 0.15; + DataSizing::DataAirFlowUsedForSizing = 0.2; + DataEnvironment::StdRhoAir = 1000; + DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq(1) = 1250000; + + // one-time argument initialization + int const sysNum = 1; + Real64 const CpAir = 4179; + + // argument return values + Real64 designFlowValue; + Real64 designExitTemp; + + DataSizing::SysSizInput(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + DataSizing::FinalSysSizing(1).CoolingPeakLoadType = DataSizing::TotalCoolingLoad; + + // Single path for VAV + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VAV; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(0.002, designFlowValue); + + // Single path for OnOff + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::OnOff; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(0.2, designFlowValue); + + // Two paths for VT: + // CoolSupTemp > calculated value + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 10; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + // CoolSupTemp < calculated value + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 15; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_NEAR(13.00590, designExitTemp, 0.0001); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + + // Two paths for bypass: + // MixTemp > DesExitTemp + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::Bypass; + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 13; + DataSizing::CalcSysSizing(1).MixTempAtCoolPeak = 15; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(10, designExitTemp); + EXPECT_NEAR(0.119823, designFlowValue, 0.0001); + // MixTemp < DesExitTemp + DataSizing::CalcSysSizing(1).MixTempAtCoolPeak = 5; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(10, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + + // Oh and the sensible cases + DataSizing::SysSizInput(1).CoolingPeakLoadType = DataSizing::SensibleCoolingLoad; + DataSizing::FinalSysSizing(1).CoolingPeakLoadType = DataSizing::SensibleCoolingLoad; + // Repeat a VT case + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::VT; + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 10; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).CoolSupTemp, designExitTemp); + EXPECT_DOUBLE_EQ(DataSizing::FinalSysSizing(1).DesCoolVolFlow, designFlowValue); + // And a bypass case + DataSizing::SysSizInput(1).CoolCapControl = DataSizing::Bypass; + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq(1) = 13; + DataSizing::CalcSysSizing(1).MixTempAtCoolPeak = 15; + ReportSizingManager::GetCoilDesFlowT(sysNum, CpAir, designFlowValue, designExitTemp); + EXPECT_DOUBLE_EQ(10, designExitTemp); + EXPECT_NEAR(0.119823, designFlowValue, 0.0001); + + + // tear down + DataSizing::CalcSysSizing(1).SumZoneCoolLoadSeq.deallocate(); + DataSizing::CalcSysSizing(1).CoolZoneAvgTempSeq.deallocate(); + DataSizing::SysSizPeakDDNum(1).TimeStepAtSensCoolPk.deallocate(); + DataSizing::SysSizPeakDDNum(1).TimeStepAtCoolFlowPk.deallocate(); + DataSizing::SysSizPeakDDNum(1).TimeStepAtTotCoolPk.deallocate(); + DataSizing::SysSizInput.deallocate(); + DataSizing::SysSizPeakDDNum.deallocate(); + DataSizing::FinalSysSizing.deallocate(); + DataSizing::CalcSysSizing.deallocate(); + +} diff --git a/tst/EnergyPlus/unit/SQLite.unit.cc b/tst/EnergyPlus/unit/SQLite.unit.cc new file mode 100644 index 00000000000..453faab6b83 --- /dev/null +++ b/tst/EnergyPlus/unit/SQLite.unit.cc @@ -0,0 +1,1055 @@ +// EnergyPlus::SQLite Unit Tests + +// Google Test Headers +#include + +// EnergyPlus Headers +#include + +using namespace EnergyPlus; +using namespace ObjexxFCL; + +namespace EnergyPlus { + + class SQLiteFixture : public testing::Test + { + + protected: + static void SetUpTestCase() { } + + static void TearDownTestCase() { } + + std::unique_ptr sqlite_test; + std::shared_ptr ss = std::make_shared(); + + virtual void SetUp() { + ASSERT_NO_THROW(sqlite_test = std::unique_ptr(new SQLite( ss, ":memory:", "std::ostringstream", true, true ))); + ASSERT_TRUE(sqlite_test->writeOutputToSQLite()); + ASSERT_TRUE(sqlite_test->writeTabularDataToSQLite()); + sqlite_test->sqliteExecuteCommand("PRAGMA foreign_keys = ON;"); + EXPECT_EQ("SQLite3 message, std::ostringstream open for processing!\n", ss->str()); + ss->str(std::string()); + } + + virtual void TearDown() { + // don't know if this is needed... + sqlite_test.reset(); + sqlite_test = nullptr; + } + + std::string storageType( const int storageTypeIndex ) { + return sqlite_test->storageType( storageTypeIndex ); + } + + std::string timestepTypeName( const int timestepType ) { + return sqlite_test->timestepTypeName( timestepType ); + } + + std::string reportingFreqName( const int reportingFreqIndex ) { + return sqlite_test->reportingFreqName( reportingFreqIndex ); + } + + std::string columnText( const unsigned char* column ) { + return std::string( reinterpret_cast( column ) ); + } + + int logicalToInteger( const bool value ) { + return sqlite_test->logicalToInteger(value); + } + + void adjustReportingHourAndMinutes( int & hour, int & minutes ) { + sqlite_test->adjustReportingHourAndMinutes( hour, minutes ); + } + + bool indexExists( const std::string& indexName ) { + sqlite3_stmt* sqlStmtPtr; + std::string sql("pragma index_info(" + indexName + ");"); + bool success = false; + int rc = sqlite3_prepare_v2(sqlite_test->m_db.get(), sql.c_str(), -1, &sqlStmtPtr, nullptr); + if ( SQLITE_OK != rc ) { + sqlite3_finalize(sqlStmtPtr); + return success; + } + if ( SQLITE_ROW == sqlite3_step( sqlStmtPtr ) ) { + success = true; + } + sqlite3_finalize(sqlStmtPtr); + return success; + } + + int columnCount( const std::string& tableName ) { + sqlite3_stmt* sqlStmtPtr; + std::string sql("pragma table_info(" + tableName + ");"); + int rc = sqlite3_prepare_v2(sqlite_test->m_db.get(), sql.c_str(), -1, &sqlStmtPtr, nullptr); + if ( SQLITE_OK != rc ) { + sqlite3_finalize(sqlStmtPtr); + return -1; + } + int rowCount = 0; + while ( SQLITE_ROW == sqlite3_step( sqlStmtPtr ) ) { + rowCount++; + } + sqlite3_finalize(sqlStmtPtr); + return rowCount; + } + + std::vector < std::vector < std::string > > queryResult( const std::string& statement, const std::string& tableName ) { + std::vector < std::vector < std::string > > queryVector; + + int rowCount = columnCount( tableName ); + if( rowCount < 1 ) return queryVector; + + sqlite3_stmt* sqlStmtPtr; + + int code = sqlite3_prepare_v2(sqlite_test->m_db.get(), statement.c_str(), -1, &sqlStmtPtr, nullptr); + while ( SQLITE_ROW == sqlite3_step( sqlStmtPtr ) ) { + std::vector < std::string > valueVector; + for( int i = 0; i < rowCount; ++i ) { + auto sqlite_value = sqlite3_column_text(sqlStmtPtr, i); + if (nullptr == sqlite_value) { + valueVector.push_back(""); + } else { + valueVector.push_back(columnText(sqlite_value)); + } + } + queryVector.push_back(valueVector); + } + sqlite3_finalize(sqlStmtPtr); + return queryVector; + } + }; + + TEST_F( SQLiteFixture, sqliteWriteMessage ) { + sqlite_test->sqliteWriteMessage(""); + EXPECT_EQ("SQLite3 message, \n", ss->str()); + ss->str(std::string()); + sqlite_test->sqliteWriteMessage("test message"); + EXPECT_EQ("SQLite3 message, test message\n", ss->str()); + ss->str(std::string()); + } + + TEST_F( SQLiteFixture, initializeIndexes ) { + sqlite_test->sqliteBegin(); + sqlite_test->initializeIndexes(); + sqlite_test->sqliteCommit(); + + EXPECT_TRUE(indexExists("rddMTR")); + EXPECT_TRUE(indexExists("redRD")); + EXPECT_FALSE(indexExists("dmhdHRI")); + EXPECT_FALSE(indexExists("dmhrMNI")); + EXPECT_FALSE(indexExists("tdI")); + } + + TEST_F( SQLiteFixture, simulationRecords ) { + sqlite_test->sqliteBegin(); + // There needs to be a simulation record otherwise updateSQLiteSimulationRecord will fail + sqlite_test->createSQLiteSimulationsRecord( 1, "EnergyPlus Version", "Current Time" ); + sqlite_test->createSQLiteSimulationsRecord( 2, "EnergyPlus Version", "Current Time" ); + sqlite_test->createSQLiteSimulationsRecord( 3, "EnergyPlus Version", "Current Time" ); + sqlite_test->updateSQLiteSimulationRecord( 1, 6 ); + sqlite_test->updateSQLiteSimulationRecord( true, false, 2 ); + sqlite_test->updateSQLiteSimulationRecord( true, true, 3 ); + auto result = queryResult("SELECT * FROM Simulations;", "Simulations"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(3, result.size()); + std::vector testResult0 {"1", "EnergyPlus Version", "Current Time", "6", "FALSE", "FALSE"}; + std::vector testResult1 {"2", "EnergyPlus Version", "Current Time", "", "1", "0"}; + std::vector testResult2 {"3", "EnergyPlus Version", "Current Time", "", "1", "1"}; + EXPECT_EQ(testResult0, result[0]); + EXPECT_EQ(testResult1, result[1]); + EXPECT_EQ(testResult2, result[2]); + + sqlite_test->sqliteBegin(); + sqlite_test->updateSQLiteSimulationRecord( true, true ); + result = queryResult("SELECT * FROM Simulations;", "Simulations"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(3, result.size()); + std::vector testResult3 {"1", "EnergyPlus Version", "Current Time", "6", "1", "1"}; + EXPECT_EQ(testResult3, result[0]); + } + + TEST_F( SQLiteFixture, createSQLiteEnvironmentPeriodRecord ) { + sqlite_test->sqliteBegin(); + // There needs to be a simulation record otherwise the foreign key constraint will fail + sqlite_test->createSQLiteSimulationsRecord( 1, "EnergyPlus Version", "Current Time" ); + sqlite_test->createSQLiteEnvironmentPeriodRecord( 1, "CHICAGO ANN HTG 99.6% CONDNS DB", 1 ); + sqlite_test->createSQLiteEnvironmentPeriodRecord( 2, "CHICAGO ANN CLG .4% CONDNS WB=>MDB", 1, 1 ); + sqlite_test->createSQLiteEnvironmentPeriodRecord( 3, "CHICAGO ANN HTG 99.6% CONDNS DB", 2 ); + sqlite_test->createSQLiteEnvironmentPeriodRecord( 4, "CHICAGO ANN CLG .4% CONDNS WB=>MDB", 3, 1 ); + auto result = queryResult("SELECT * FROM EnvironmentPeriods;", "EnvironmentPeriods"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(4, result.size()); + std::vector testResult0 {"1", "1", "CHICAGO ANN HTG 99.6% CONDNS DB", "1"}; + std::vector testResult1 {"2", "1", "CHICAGO ANN CLG .4% CONDNS WB=>MDB", "1"}; + std::vector testResult2 {"3", "1", "CHICAGO ANN HTG 99.6% CONDNS DB", "2"}; + std::vector testResult3 {"4", "1", "CHICAGO ANN CLG .4% CONDNS WB=>MDB", "3"}; + EXPECT_EQ(testResult0, result[0]); + EXPECT_EQ(testResult1, result[1]); + EXPECT_EQ(testResult2, result[2]); + EXPECT_EQ(testResult3, result[3]); + + sqlite_test->sqliteBegin(); + // This should fail to insert due to foreign key constraint + sqlite_test->createSQLiteEnvironmentPeriodRecord( 5, "CHICAGO ANN HTG 99.6% CONDNS DB", 1, 100 ); + // This should fail to insert due to duplicate primary key + sqlite_test->createSQLiteEnvironmentPeriodRecord( 4, "CHICAGO ANN CLG .4% CONDNS WB=>MDB", 1, 1 ); + result = queryResult("SELECT * FROM EnvironmentPeriods;", "EnvironmentPeriods"); + sqlite_test->sqliteCommit(); + + EXPECT_EQ(4, result.size()); + } + + TEST_F( SQLiteFixture, errorRecords ) { + sqlite_test->sqliteBegin(); + // There needs to be a simulation record otherwise the foreign key constraint will fail + sqlite_test->createSQLiteSimulationsRecord( 1, "EnergyPlus Version", "Current Time" ); + sqlite_test->createSQLiteErrorRecord( 1, 0, "CheckUsedConstructions: There are 2 nominally unused constructions in input.", 1 ); + auto result = queryResult("SELECT * FROM Errors;", "Errors"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(1, result.size()); + std::vector testResult0 {"1", "1", "0", "CheckUsedConstructions: There are 2 nominally unused constructions in input.", "1"}; + EXPECT_EQ(testResult0, result[0]); + + sqlite_test->sqliteBegin(); + // updateSQLiteErrorRecord appends the message to the current error message of the last error in the table + sqlite_test->updateSQLiteErrorRecord( "New error message" ); + result = queryResult("SELECT * FROM Errors;", "Errors"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(1, result.size()); + std::vector testResult1 {"1", "1", "0", "CheckUsedConstructions: There are 2 nominally unused constructions in input. New error message", "1"}; + EXPECT_EQ(testResult1, result[0]); + + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteErrorRecord( 1, 0, "CheckUsedConstructions: There are 2 nominally unused constructions in input.", 1 ); + sqlite_test->createSQLiteErrorRecord( 1, 0, "This should be changed.", 1 ); + sqlite_test->updateSQLiteErrorRecord( "Changed error message." ); + result = queryResult("SELECT * FROM Errors;", "Errors"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(3, result.size()); + std::vector testResult2 {"1", "1", "0", "CheckUsedConstructions: There are 2 nominally unused constructions in input. New error message", "1"}; + std::vector testResult3 {"2", "1", "0", "CheckUsedConstructions: There are 2 nominally unused constructions in input.", "1"}; + std::vector testResult4 {"3", "1", "0", "This should be changed. Changed error message.", "1"}; + EXPECT_EQ(testResult2, result[0]); + EXPECT_EQ(testResult3, result[1]); + EXPECT_EQ(testResult4, result[2]); + + sqlite_test->sqliteBegin(); + // This should fail to insert due to foreign key constraint + sqlite_test->createSQLiteErrorRecord( 100, 0, "CheckUsedConstructions: There are 2 nominally unused constructions in input.", 1 ); + result = queryResult("SELECT * FROM Errors;", "Errors"); + sqlite_test->sqliteCommit(); + + EXPECT_EQ(3, result.size()); + } + + TEST_F( SQLiteFixture, createSQLiteReportDictionaryRecord ) + { + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteReportDictionaryRecord( 1, 1, "Zone", "Environment", "Site Outdoor Air Drybulb Temperature", 1, "C", 1, false, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 2, 2, "Facility:Electricity", "", "Facility:Electricity", 1, "J", 1, true, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 3, 2, "Facility:Electricity", "", "Facility:Electricity", 1, "J", 3, true, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 4, 1, "HVAC", "", "AHU-1", 2, "", 1, false, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 5, 1, "HVAC", "", "AHU-1", 2, "", 1, false, "test schedule" ); + auto result = queryResult("SELECT * FROM ReportDataDictionary;", "ReportDataDictionary"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(5, result.size()); + std::vector testResult0 {"1", "0", "Avg", "Zone", "HVAC System", "Environment", "Site Outdoor Air Drybulb Temperature", "Hourly", "", "C"}; + std::vector testResult1 {"2", "1", "Sum", "Facility:Electricity", "HVAC System", "", "Facility:Electricity", "Hourly", "", "J"}; + std::vector testResult2 {"3", "1", "Sum", "Facility:Electricity", "HVAC System", "", "Facility:Electricity", "Monthly", "", "J"}; + std::vector testResult3 {"4", "0", "Avg", "HVAC", "Zone", "", "AHU-1", "Hourly", "", ""}; + std::vector testResult4 {"5", "0", "Avg", "HVAC", "Zone", "", "AHU-1", "Hourly", "test schedule", ""}; + EXPECT_EQ(testResult0, result[0]); + EXPECT_EQ(testResult1, result[1]); + EXPECT_EQ(testResult2, result[2]); + EXPECT_EQ(testResult3, result[3]); + EXPECT_EQ(testResult4, result[4]); + + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteReportDictionaryRecord( 6, 3, "Zone", "Environment", "Site Outdoor Air Drybulb Temperature", 1, "C", 1, false, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 7, 2, "Facility:Electricity", "", "Facility:Electricity", 3, "J", 1, true, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 8, 2, "Facility:Electricity", "", "Facility:Electricity", 1, "J", 7, true, _ ); + sqlite_test->createSQLiteReportDictionaryRecord( 9, 1, "HVAC", "", "AHU-1", 2, "", -2, false, _ ); + result = queryResult("SELECT * FROM ReportDataDictionary;", "ReportDataDictionary"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(9, result.size()); + std::vector testResult5 {"6", "0", "Unknown!!!", "Zone", "HVAC System", "Environment", "Site Outdoor Air Drybulb Temperature", "Hourly", "", "C"}; + std::vector testResult6 {"7", "1", "Sum", "Facility:Electricity", "Unknown!!!", "", "Facility:Electricity", "Hourly", "", "J"}; + std::vector testResult7 {"8", "1", "Sum", "Facility:Electricity", "HVAC System", "", "Facility:Electricity", "Unknown!!!", "", "J"}; + std::vector testResult8 {"9", "0", "Avg", "HVAC", "Zone", "", "AHU-1", "Unknown!!!", "", ""}; + EXPECT_EQ(testResult5, result[5]); + EXPECT_EQ(testResult6, result[6]); + EXPECT_EQ(testResult7, result[7]); + EXPECT_EQ(testResult8, result[8]); + + sqlite_test->sqliteBegin(); + // This should fail to insert due to duplicate primary key + sqlite_test->createSQLiteReportDictionaryRecord( 9, 3, "Zone", "Environment", "Site Outdoor Air Drybulb Temperature", 1, "C", 1, false, _ ); + result = queryResult("SELECT * FROM ReportDataDictionary;", "ReportDataDictionary"); + sqlite_test->sqliteCommit(); + EXPECT_EQ(9, result.size()); + } + + TEST_F( SQLiteFixture, createSQLiteTimeIndexRecord ) { + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteTimeIndexRecord( 4, 1, 1, 0 ); + sqlite_test->createSQLiteTimeIndexRecord( 3, 1, 1, 0, 1 ); + sqlite_test->createSQLiteTimeIndexRecord( 2, 1, 1, 0, 1, 1, 1, _, _, 0, "WinterDesignDay" ); + sqlite_test->createSQLiteTimeIndexRecord( 1, 1, 1, 0, 1, 2, 2, _, _, 0, "SummerDesignDay" ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 0, 1, 1, 1, 60, 0, 0, "WinterDesignDay" ); + sqlite_test->createSQLiteTimeIndexRecord( -1, 1, 1, 0, 1, 2, 2, 60, 0, 0, "SummerDesignDay" ); + sqlite_test->createSQLiteTimeIndexRecord( -1, 1, 1, 1, 1, 3, 3, 60, 0, 0, "SummerDesignDay", true ); + auto result = queryResult("SELECT * FROM Time;", "Time"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(7, result.size()); + // some of these are odd......... + std::vector testResult0 {"1", "", "", "", "", "", "1440", "4", "1", "", "0", ""}; + std::vector testResult1 {"2", "1", "31", "24", "0", "", "44640", "3", "1", "", "0", ""}; + std::vector testResult2 {"3", "1", "1", "24", "0", "0", "1440", "2", "1", "WinterDesignDay", "0", ""}; + std::vector testResult3 {"4", "1", "2", "2", "0", "0", "60", "1", "1", "SummerDesignDay", "0", ""}; + std::vector testResult4 {"5", "1", "1", "1", "0", "0", "60", "0", "1", "WinterDesignDay", "0", "0"}; + std::vector testResult5 {"6", "1", "2", "2", "0", "0", "60", "-1", "1", "SummerDesignDay", "0", "0"}; + std::vector testResult6 {"7", "1", "3", "3", "0", "0", "60", "-1", "1", "SummerDesignDay", "1", "1"}; + EXPECT_EQ(testResult0, result[0]); + EXPECT_EQ(testResult1, result[1]); + EXPECT_EQ(testResult2, result[2]); + EXPECT_EQ(testResult3, result[3]); + EXPECT_EQ(testResult4, result[4]); + EXPECT_EQ(testResult5, result[5]); + EXPECT_EQ(testResult6, result[6]); + + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteTimeIndexRecord( -999, 1, 1, 0 ); + sqlite_test->sqliteCommit(); + EXPECT_EQ("SQLite3 message, Illegal reportingInterval passed to CreateSQLiteTimeIndexRecord: -999\n", ss->str()); + ss->str(std::string()); + + EXPECT_EQ(7, result.size()); + + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, 1, 3, 3, 60, 0, 0, _, true ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, 1, 3, 3, 60, 0, _, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, 1, 3, 3, 60, _, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, 1, 3, 3, _, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, 1, 3, _, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, 1, _, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 0, 1, 1, 1, _, 3, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 1, 1, 1, 1, 1, 3, 3, 60, 0, 0, _, true ); + sqlite_test->createSQLiteTimeIndexRecord( 1, 1, 1, 1, 1, 3, 3, 60, 0, _, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 1, 1, 1, 1, 1, 3, _, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 1, 1, 1, 1, 1, _, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 1, 1, 1, 1, _, 3, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 2, 1, 1, 1, 1, 3, 3, 60, 0, 0, _, true ); + sqlite_test->createSQLiteTimeIndexRecord( 2, 1, 1, 1, 1, 3, 3, 60, 0, _, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 2, 1, 1, 1, 1, 3, _, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 2, 1, 1, 1, 1, _, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 2, 1, 1, 1, _, 3, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->createSQLiteTimeIndexRecord( 3, 1, 1, 1, _, 3, 3, 60, 0, 0, "SummerDesignDay", true ); + sqlite_test->sqliteCommit(); + } + + TEST_F( SQLiteFixture, createSQLiteReportDataRecord ) { + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteTimeIndexRecord( 4, 1, 1, 0 ); + sqlite_test->createSQLiteReportDictionaryRecord( 1, 1, "Zone", "Environment", "Site Outdoor Air Drybulb Temperature", 1, "C", 1, false, _ ); + sqlite_test->createSQLiteReportDataRecord( 1, 999.9 ); + sqlite_test->createSQLiteReportDataRecord( 1, 999.9, 2, 0, 1310459, 100, 7031530, 15 ); + sqlite_test->createSQLiteReportDataRecord( 1, 999.9, 0, 0, 1310459, 100, 7031530, 15 ); + sqlite_test->createSQLiteReportDataRecord( 1, 999.9, 2, 100, 1310459, 999, 7031530, _ ); + auto reportData = queryResult("SELECT * FROM ReportData;", "ReportData"); + auto reportExtendedData = queryResult("SELECT * FROM ReportExtendedData;", "ReportExtendedData"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(4, reportData.size()); + std::vector reportData0 {"1", "1", "1", "999.9"}; + std::vector reportData1 {"2", "1", "1", "999.9"}; + std::vector reportData2 {"3", "1", "1", "999.9"}; + std::vector reportData3 {"4", "1", "1", "999.9"}; + EXPECT_EQ(reportData0, reportData[0]); + EXPECT_EQ(reportData1, reportData[1]); + EXPECT_EQ(reportData2, reportData[2]); + EXPECT_EQ(reportData3, reportData[3]); + + ASSERT_EQ(2, reportExtendedData.size()); + std::vector reportExtendedData0 {"1","2","100.0","7","3","14","16","30","0.0","1","31","3","45","59"}; + std::vector reportExtendedData1 {"2","4","999.0","7","3","14","","30","100.0","1","31","3","","59"}; + EXPECT_EQ(reportExtendedData0, reportExtendedData[0]); + EXPECT_EQ(reportExtendedData1, reportExtendedData[1]); + + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteReportDataRecord( 1, 999.9, -999, 0, 1310459, 100, 7031530, 15 ); + sqlite_test->sqliteCommit(); + EXPECT_EQ("SQLite3 message, Illegal reportingInterval passed to CreateSQLiteMeterRecord: -999\n", ss->str()); + ss->str(std::string()); + + sqlite_test->sqliteBegin(); + sqlite_test->createSQLiteReportDataRecord( 1, 999.9, -100, 0, 1310459, 100, 7031530, _ ); + sqlite_test->sqliteCommit(); + EXPECT_EQ("SQLite3 message, Illegal reportingInterval passed to CreateSQLiteMeterRecord: -100\n", ss->str()); + ss->str(std::string()); + + EXPECT_EQ(4, reportData.size()); + EXPECT_EQ(2, reportExtendedData.size()); + } + + TEST_F( SQLiteFixture, addSQLiteZoneSizingRecord ) { + sqlite_test->sqliteBegin(); + sqlite_test->addSQLiteZoneSizingRecord( "FLOOR 1 IT HALL", "Cooling", 175, 262, 0.013, 0.019, "CHICAGO ANN CLG .4% CONDNS WB=>MDB", "7/21 06:00:00", 20.7, 0.0157, 0.0033 ); + auto result = queryResult("SELECT * FROM ZoneSizes;", "ZoneSizes"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(1, result.size()); + std::vector testResult0 {"1", "FLOOR 1 IT HALL", "Cooling", "175.0", "262.0", "0.013", "0.019", "CHICAGO ANN CLG .4% CONDNS WB=>MDB", "7/21 06:00:00", "20.7", "0.0157", "0.0033"}; + EXPECT_EQ(testResult0, result[0]); + } + + TEST_F( SQLiteFixture, addSQLiteSystemSizingRecord ) { + sqlite_test->sqliteBegin(); + sqlite_test->addSQLiteSystemSizingRecord( "VAV_1", "Calculated Cooling Design Air Flow Rate [m3/s]", 6.37 ); + sqlite_test->addSQLiteSystemSizingRecord( "VAV_2", "User Cooling Design Air Flow Rate", 5.1 ); + auto result = queryResult("SELECT * FROM SystemSizes;", "SystemSizes"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(2, result.size()); + std::vector testResult0 {"1", "VAV_1", "Calculated Cooling Design Air Flow Rate", "6.37", "m3/s"}; + std::vector testResult1 {"2", "VAV_2", "User Cooling Design Air Flow Rate", "5.1", ""}; + EXPECT_EQ(testResult0, result[0]); + EXPECT_EQ(testResult1, result[1]); + } + + TEST_F( SQLiteFixture, addSQLiteComponentSizingRecord ) { + sqlite_test->sqliteBegin(); + sqlite_test->addSQLiteComponentSizingRecord( "AirTerminal:SingleDuct:VAV:Reheat", "CORE_BOTTOM VAV BOX COMPONENT", "Design Size Maximum Air Flow Rate [m3/s]", 3.23 ); + sqlite_test->addSQLiteComponentSizingRecord( "Coil:Heating:Electric", "CORE_BOTTOM VAV BOX REHEAT COIL", "Design Size Nominal Capacity", 38689.18 ); + auto result = queryResult("SELECT * FROM ComponentSizes;", "ComponentSizes"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(2, result.size()); + std::vector testResult0 {"1", "AirTerminal:SingleDuct:VAV:Reheat", "CORE_BOTTOM VAV BOX COMPONENT", "Design Size Maximum Air Flow Rate", "3.23", "m3/s"}; + std::vector testResult1 {"2", "Coil:Heating:Electric", "CORE_BOTTOM VAV BOX REHEAT COIL", "Design Size Nominal Capacity", "38689.18", ""}; + EXPECT_EQ(testResult0, result[0]); + EXPECT_EQ(testResult1, result[1]); + } + + TEST_F( SQLiteFixture, privateMethods ) { + // test storageType + EXPECT_EQ( "Avg", storageType( 1 ) ); + EXPECT_EQ( "Sum", storageType( 2 ) ); + EXPECT_EQ( "Unknown!!!", storageType( 3 ) ); + EXPECT_EQ( "Unknown!!!", storageType( -1 ) ); + + // test timestepTypeName + EXPECT_EQ( "HVAC System", timestepTypeName( 1 ) ); + EXPECT_EQ( "Zone", timestepTypeName( 2 ) ); + EXPECT_EQ( "Unknown!!!", timestepTypeName( 3 ) ); + EXPECT_EQ( "Unknown!!!", timestepTypeName( -1 ) ); + + // test reportingFreqName + EXPECT_EQ( "HVAC System Timestep", reportingFreqName( -1 ) ); + EXPECT_EQ( "Zone Timestep", reportingFreqName( 0 ) ); + EXPECT_EQ( "Hourly", reportingFreqName( 1 ) ); + EXPECT_EQ( "Daily", reportingFreqName( 2 ) ); + EXPECT_EQ( "Monthly", reportingFreqName( 3 ) ); + EXPECT_EQ( "Run Period", reportingFreqName( 4 ) ); + EXPECT_EQ( "Unknown!!!", reportingFreqName( 5 ) ); + EXPECT_EQ( "Unknown!!!", reportingFreqName( -2 ) ); + + EXPECT_EQ( 1, logicalToInteger( true ) ); + EXPECT_EQ( 0, logicalToInteger( false ) ); + + int hour = 0, minutes = 0; + adjustReportingHourAndMinutes( hour, minutes ); + EXPECT_EQ( -1, hour ); + EXPECT_EQ( 0, minutes ); + hour = 1, minutes = 60; + adjustReportingHourAndMinutes( hour, minutes ); + EXPECT_EQ( 1, hour ); + EXPECT_EQ( 0, minutes ); + hour = 1, minutes = 65; + adjustReportingHourAndMinutes( hour, minutes ); + EXPECT_EQ( 0, hour ); + EXPECT_EQ( 65, minutes ); + } + + TEST_F( SQLiteFixture, DaylightMaping ) { + auto const & zone = std::unique_ptr(new DataHeatBalance::ZoneData()); + zone->Name = "DAYLIT ZONE"; + zone->CeilingHeight = 3; + zone->Volume = 302; + + FArray1D< Real64 > XValue( { 50.1, 51.3 } ); + FArray1D< Real64 > YValue( { 50.1, 52.1 } ); + FArray2D< Real64 > IllumValue( 2, 2, { 1, 2, 3, 4 } ); + + sqlite_test->sqliteBegin(); + sqlite_test->addZoneData( 1, *zone ); + sqlite_test->createZoneExtendedOutput(); + sqlite_test->createSQLiteDaylightMapTitle( 1, "DAYLIT ZONE:CHICAGO", "CHICAGO ANN CLG", 1, "RefPt1=(2.50:2.00:0.80)", "RefPt2=(2.50:18.00:0.80)", 0.8 ); + sqlite_test->createSQLiteDaylightMap( 1, 7 , 21, 5, XValue.size(), XValue, YValue.size(), YValue, IllumValue ); + + auto zones = queryResult("SELECT * FROM Zones;", "Zones"); + auto daylightMaps = queryResult("SELECT * FROM DaylightMaps;", "DaylightMaps"); + auto daylightMapHourlyData = queryResult("SELECT * FROM DaylightMapHourlyData;", "DaylightMapHourlyData"); + auto daylightMapHourlyReports = queryResult("SELECT * FROM DaylightMapHourlyReports;", "DaylightMapHourlyReports"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(1, zones.size()); + std::vector zone0 { "1", "DAYLIT ZONE", "0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "1", "1.0", "1.0", "0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "3.0", "302.0", "1", "1", "0.0", "0.0", "0.0", "0.0", "1" }; + EXPECT_EQ(zone0, zones[0]); + + ASSERT_EQ(1, daylightMaps.size()); + std::vector daylightMap0 { "1", "DAYLIT ZONE:CHICAGO", "CHICAGO ANN CLG", "1", "RefPt1=(2.50:2.00:0.80)", "RefPt2=(2.50:18.00:0.80)", "0.8" }; + EXPECT_EQ(daylightMap0, daylightMaps[0]); + + ASSERT_EQ(1, daylightMapHourlyReports.size()); + std::vector daylightMapHourlyReport0 { "1", "1", "7", "21", "5" }; + EXPECT_EQ(daylightMapHourlyReport0, daylightMapHourlyReports[0]); + + ASSERT_EQ(4, daylightMapHourlyData.size()); + std::vector daylightMapHourlyData0 { "1", "1", "50.1", "50.1", "1.0" }; + std::vector daylightMapHourlyData1 { "2", "1", "51.3", "50.1", "2.0" }; + std::vector daylightMapHourlyData2 { "3", "1", "50.1", "52.1", "3.0" }; + std::vector daylightMapHourlyData3 { "4", "1", "51.3", "52.1", "4.0" }; + EXPECT_EQ(daylightMapHourlyData0, daylightMapHourlyData[0]); + EXPECT_EQ(daylightMapHourlyData1, daylightMapHourlyData[1]); + EXPECT_EQ(daylightMapHourlyData2, daylightMapHourlyData[2]); + EXPECT_EQ(daylightMapHourlyData3, daylightMapHourlyData[3]); + + sqlite_test->sqliteBegin(); + // this should fail due to missing foreign key + sqlite_test->createSQLiteDaylightMapTitle( 2, "test", "test", 2, "test", "test", 0.8 ); + // this should fail due to duplicate primary key + sqlite_test->createSQLiteDaylightMapTitle( 1, "test", "test", 1, "test", "test", 0.8 ); + // this should fail due to missing foreign key + sqlite_test->createSQLiteDaylightMap( 2, 7 , 21, 5, XValue.size(), XValue, YValue.size(), YValue, IllumValue ); + daylightMaps = queryResult("SELECT * FROM DaylightMaps;", "DaylightMaps"); + daylightMapHourlyData = queryResult("SELECT * FROM DaylightMapHourlyData;", "DaylightMapHourlyData"); + daylightMapHourlyReports = queryResult("SELECT * FROM DaylightMapHourlyReports;", "DaylightMapHourlyReports"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(1, daylightMaps.size()); + ASSERT_EQ(1, daylightMapHourlyReports.size()); + ASSERT_EQ(4, daylightMapHourlyData.size()); + } + + TEST_F( SQLiteFixture, createZoneExtendedOutput ) { + auto const & zoneData0 = std::unique_ptr(new DataHeatBalance::ZoneData()); + zoneData0->Name = "test zone 1"; + zoneData0->CeilingHeight = 1; + zoneData0->Volume = 1; + auto const & zoneData1 = std::unique_ptr(new DataHeatBalance::ZoneData()); + zoneData1->Name = "test zone 2"; + zoneData1->RelNorth = 2; + zoneData1->OriginX = 2; + zoneData1->OriginY = 2; + zoneData1->OriginZ = 2; + zoneData1->Centroid.x = 2; + zoneData1->Centroid.y = 2; + zoneData1->Centroid.z = 2; + zoneData1->OfType = 2; + zoneData1->Multiplier = 2; + zoneData1->ListMultiplier = 2; + zoneData1->MinimumX = 2; + zoneData1->MaximumX = 2; + zoneData1->MinimumY = 2; + zoneData1->MaximumY = 2; + zoneData1->MinimumZ = 2; + zoneData1->MaximumZ = 2; + zoneData1->CeilingHeight = 2; + zoneData1->Volume = 2; + zoneData1->InsideConvectionAlgo = 2; + zoneData1->OutsideConvectionAlgo = 2; + zoneData1->FloorArea = 2; + zoneData1->ExtGrossWallArea = 2; + zoneData1->ExtNetWallArea = 2; + zoneData1->ExtWindowArea = 2; + zoneData1->isPartOfTotalArea = false; + + auto const & zoneListData0 = std::unique_ptr(new DataHeatBalance::ZoneListData()); + zoneListData0->Name = "test zoneList 1"; + zoneListData0->Zone.allocate( 1 ); + zoneListData0->Zone( 1 ) = 1; + auto const & zoneListData1 = std::unique_ptr(new DataHeatBalance::ZoneListData()); + zoneListData1->Name = "test zoneList 2"; + zoneListData1->Zone.allocate( 2 ); + zoneListData1->Zone( 1 ) = 1; + zoneListData1->Zone( 2 ) = 2; + + auto const & zoneGroupData0 = std::unique_ptr(new DataHeatBalance::ZoneGroupData()); + zoneGroupData0->Name = "test zoneGroup 1"; + auto const & zoneGroupData1 = std::unique_ptr(new DataHeatBalance::ZoneGroupData()); + zoneGroupData1->Name = "test zoneGroup 2"; + zoneGroupData1->ZoneList = 2; + zoneGroupData1->Multiplier = 99; + + auto const & materialData0 = std::unique_ptr(new DataHeatBalance::MaterialProperties()); + materialData0->Name = "test material 1"; + materialData0->Group = 1; + auto const & materialData1 = std::unique_ptr(new DataHeatBalance::MaterialProperties()); + materialData1->Name = "test material 2"; + materialData1->Group = 2; + materialData1->Roughness = 2; + materialData1->Conductivity = 2; + materialData1->Density = 2; + materialData1->IsoMoistCap = 2; + materialData1->Porosity = 2; + materialData1->Resistance = 2; + materialData1->ROnly = true; + materialData1->SpecHeat = 2; + materialData1->ThermGradCoef = 2; + materialData1->Thickness = 2; + materialData1->VaporDiffus = 2; + + auto const & constructData0 = std::unique_ptr(new DataHeatBalance::ConstructionData()); + constructData0->Name = "test construction 1"; + auto const & constructData1 = std::unique_ptr(new DataHeatBalance::ConstructionData()); + constructData1->Name = "test construction 2"; + constructData1->TotLayers = 2; + constructData1->TotSolidLayers = 2; + constructData1->TotGlassLayers = 2; + constructData1->InsideAbsorpVis = 2; + constructData1->OutsideAbsorpVis = 2; + constructData1->InsideAbsorpSolar = 2; + constructData1->OutsideAbsorpSolar = 2; + constructData1->InsideAbsorpThermal = 2; + constructData1->OutsideAbsorpThermal = 2; + constructData1->OutsideRoughness = 2; + constructData1->TypeIsWindow = true; + constructData1->LayerPoint.allocate( 2 ); + constructData1->LayerPoint( 1 ) = 2; + constructData1->LayerPoint( 2 ) = 1; + + auto const & surfaceData0 = std::unique_ptr(new DataSurfaces::SurfaceData()); + surfaceData0->Name = "test surface 1"; + auto const & surfaceData1 = std::unique_ptr(new DataSurfaces::SurfaceData()); + surfaceData1->Name = "test surface 2"; + surfaceData1->Construction = 2; + surfaceData1->Area = 2; + surfaceData1->GrossArea = 2; + surfaceData1->Perimeter = 2; + surfaceData1->Azimuth = 2; + surfaceData1->Height = 2; + surfaceData1->Reveal = 2; + surfaceData1->Shape = 2; + surfaceData1->Sides = 2; + surfaceData1->Tilt = 2; + surfaceData1->Width = 2; + surfaceData1->HeatTransSurf = true; + surfaceData1->BaseSurf = 1; + surfaceData1->Zone = 1; + surfaceData1->ExtBoundCond = 2; + surfaceData1->ExtSolar = true; + surfaceData1->ExtWind = true; + + auto const & lightingData0 = std::unique_ptr(new DataHeatBalance::LightsData()); + lightingData0->Name = "test lighting 1"; + auto const & lightingData1 = std::unique_ptr(new DataHeatBalance::LightsData()); + lightingData1->Name = "test lighting 2"; + lightingData1->ZonePtr = 1; + lightingData1->SchedPtr = 1; + lightingData1->DesignLevel = 2; + lightingData1->FractionReturnAir = 2; + lightingData1->FractionRadiant = 2; + lightingData1->FractionShortWave = 2; + lightingData1->FractionReplaceable = 2; + lightingData1->FractionConvected = 2; + lightingData1->EndUseSubcategory = "test"; + + auto const & peopleData0 = std::unique_ptr(new DataHeatBalance::PeopleData()); + peopleData0->Name = "test people 1"; + auto const & peopleData1 = std::unique_ptr(new DataHeatBalance::PeopleData()); + peopleData1->Name = "test people 2"; + peopleData1->ZonePtr = 1; + peopleData1->NumberOfPeople = 2; + peopleData1->NumberOfPeoplePtr = 1; + peopleData1->ActivityLevelPtr = 1; + peopleData1->FractionRadiant = 2; + peopleData1->FractionConvected = 2; + peopleData1->WorkEffPtr = 1; + peopleData1->ClothingPtr = 1; + peopleData1->AirVelocityPtr = 1; + peopleData1->Fanger = true; + peopleData1->Pierce = true; + peopleData1->KSU = true; + peopleData1->MRTCalcType = 2; + peopleData1->SurfacePtr = 1; + peopleData1->AngleFactorListName = "test"; + peopleData1->AngleFactorListPtr = 1; + peopleData1->UserSpecSensFrac = 2; + peopleData1->Show55Warning = true; + + auto const & elecEquipData0 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + elecEquipData0->Name = "test elecEquip 1"; + auto const & elecEquipData1 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + elecEquipData1->Name = "test elecEquip 2"; + elecEquipData1->ZonePtr = 1; + elecEquipData1->SchedPtr = 1; + elecEquipData1->DesignLevel = 2; + elecEquipData1->FractionLatent = 2; + elecEquipData1->FractionRadiant = 2; + elecEquipData1->FractionLost = 2; + elecEquipData1->FractionConvected = 2; + elecEquipData1->EndUseSubcategory = "test"; + + auto const & gasEquipData0 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + gasEquipData0->Name = "test gasEquip 1"; + auto const & gasEquipData1 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + gasEquipData1->Name = "test gasEquip 2"; + gasEquipData1->ZonePtr = 1; + gasEquipData1->SchedPtr = 1; + gasEquipData1->DesignLevel = 2; + gasEquipData1->FractionLatent = 2; + gasEquipData1->FractionRadiant = 2; + gasEquipData1->FractionLost = 2; + gasEquipData1->FractionConvected = 2; + gasEquipData1->EndUseSubcategory = "test"; + + auto const & steamEquipData0 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + steamEquipData0->Name = "test steamEquip 1"; + auto const & steamEquipData1 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + steamEquipData1->Name = "test steamEquip 2"; + steamEquipData1->ZonePtr = 1; + steamEquipData1->SchedPtr = 1; + steamEquipData1->DesignLevel = 2; + steamEquipData1->FractionLatent = 2; + steamEquipData1->FractionRadiant = 2; + steamEquipData1->FractionLost = 2; + steamEquipData1->FractionConvected = 2; + steamEquipData1->EndUseSubcategory = "test"; + + auto const & hwEquipData0 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + hwEquipData0->Name = "test hwEquip 1"; + auto const & hwEquipData1 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + hwEquipData1->Name = "test hwEquip 2"; + hwEquipData1->ZonePtr = 1; + hwEquipData1->SchedPtr = 1; + hwEquipData1->DesignLevel = 2; + hwEquipData1->FractionLatent = 2; + hwEquipData1->FractionRadiant = 2; + hwEquipData1->FractionLost = 2; + hwEquipData1->FractionConvected = 2; + hwEquipData1->EndUseSubcategory = "test"; + + auto const & otherEquipData0 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + otherEquipData0->Name = "test otherEquip 1"; + auto const & otherEquipData1 = std::unique_ptr(new DataHeatBalance::ZoneEquipData()); + otherEquipData1->Name = "test otherEquip 2"; + otherEquipData1->ZonePtr = 1; + otherEquipData1->SchedPtr = 1; + otherEquipData1->DesignLevel = 2; + otherEquipData1->FractionLatent = 2; + otherEquipData1->FractionRadiant = 2; + otherEquipData1->FractionLost = 2; + otherEquipData1->FractionConvected = 2; + otherEquipData1->EndUseSubcategory = "test"; + + auto const & baseboardData0 = std::unique_ptr(new DataHeatBalance::BBHeatData()); + baseboardData0->Name = "test baseboard 1"; + auto const & baseboardData1 = std::unique_ptr(new DataHeatBalance::BBHeatData()); + baseboardData1->Name = "test baseboard 2"; + baseboardData1->ZonePtr = 1; + baseboardData1->SchedPtr = 1; + baseboardData1->CapatLowTemperature = 2; + baseboardData1->LowTemperature = 2; + baseboardData1->CapatHighTemperature = 2; + baseboardData1->HighTemperature = 2; + baseboardData1->FractionRadiant = 2; + baseboardData1->FractionConvected = 2; + baseboardData1->EndUseSubcategory = "test"; + + auto const & infiltrationData0 = std::unique_ptr(new DataHeatBalance::InfiltrationData()); + infiltrationData0->Name = "test infiltration 1"; + auto const & infiltrationData1 = std::unique_ptr(new DataHeatBalance::InfiltrationData()); + infiltrationData1->Name = "test infiltration 2"; + infiltrationData1->ZonePtr = 1; + infiltrationData1->SchedPtr = 1; + infiltrationData1->DesignLevel = 2; + + auto const & ventilationData0 = std::unique_ptr(new DataHeatBalance::VentilationData()); + ventilationData0->Name = "test ventilation 1"; + auto const & ventilationData1 = std::unique_ptr(new DataHeatBalance::VentilationData()); + ventilationData1->Name = "test ventilation 2"; + ventilationData1->ZonePtr = 1; + ventilationData1->SchedPtr = 1; + ventilationData1->DesignLevel = 2; + + auto const & roomAirModelData0 = std::unique_ptr(new DataRoomAirModel::AirModelData()); + roomAirModelData0->AirModelName = "test roomAirModel 1"; + auto const & roomAirModelData1 = std::unique_ptr(new DataRoomAirModel::AirModelData()); + roomAirModelData1->AirModelName = "test roomAirModel 2"; + roomAirModelData1->AirModelType = 3; + roomAirModelData1->TempCoupleScheme = 3; + roomAirModelData1->SimAirModel = true; + + std::string const alwaysOn( "always on" ); + std::string const alwaysOff( "always off" ); + std::string const onOff( "ON/OFF" ); + std::string const window( "Window" ); + std::string const wall( "Wall" ); + double const one = 1.0; + double const zero = 0.0; + double const two = 2.0; + + sqlite_test->addScheduleData( 1, alwaysOn, onOff, one, one ); + sqlite_test->addScheduleData( 2, alwaysOff, onOff, zero, zero ); + sqlite_test->addZoneData( 1, *zoneData0 ); + sqlite_test->addZoneData( 2, *zoneData1 ); + sqlite_test->addZoneListData( 1, *zoneListData0 ); + sqlite_test->addZoneListData( 2, *zoneListData1 ); + sqlite_test->addZoneGroupData( 1, *zoneGroupData0 ); + sqlite_test->addZoneGroupData( 2, *zoneGroupData1 ); + sqlite_test->addMaterialData( 1, *materialData0 ); + sqlite_test->addMaterialData( 2, *materialData1 ); + sqlite_test->addConstructionData( 1, *constructData0, zero ); + sqlite_test->addConstructionData( 2, *constructData1, two ); + sqlite_test->addSurfaceData( 1, *surfaceData0, window ); + sqlite_test->addSurfaceData( 2, *surfaceData1, wall ); + sqlite_test->addNominalLightingData( 1, *lightingData0 ); + sqlite_test->addNominalLightingData( 2, *lightingData1 ); + sqlite_test->addNominalPeopleData( 1, *peopleData0 ); + sqlite_test->addNominalPeopleData( 2, *peopleData1 ); + sqlite_test->addNominalElectricEquipmentData( 1, *elecEquipData0 ); + sqlite_test->addNominalElectricEquipmentData( 2, *elecEquipData1 ); + sqlite_test->addNominalGasEquipmentData( 1, *gasEquipData0 ); + sqlite_test->addNominalGasEquipmentData( 2, *gasEquipData1 ); + sqlite_test->addNominalSteamEquipmentData( 1, *steamEquipData0 ); + sqlite_test->addNominalSteamEquipmentData( 2, *steamEquipData1 ); + sqlite_test->addNominalHotWaterEquipmentData( 1, *hwEquipData0 ); + sqlite_test->addNominalHotWaterEquipmentData( 2, *hwEquipData1 ); + sqlite_test->addNominalOtherEquipmentData( 1, *otherEquipData0 ); + sqlite_test->addNominalOtherEquipmentData( 2, *otherEquipData1 ); + sqlite_test->addNominalBaseboardData( 1, *baseboardData0 ); + sqlite_test->addNominalBaseboardData( 2, *baseboardData1 ); + sqlite_test->addInfiltrationData( 1, *infiltrationData0 ); + sqlite_test->addInfiltrationData( 2, *infiltrationData1 ); + sqlite_test->addVentilationData( 1, *ventilationData0 ); + sqlite_test->addVentilationData( 2, *ventilationData1 ); + sqlite_test->addRoomAirModelData( 1, *roomAirModelData0 ); + sqlite_test->addRoomAirModelData( 2, *roomAirModelData1 ); + + sqlite_test->sqliteBegin(); + sqlite_test->createZoneExtendedOutput(); + auto zones = queryResult("SELECT * FROM Zones;", "Zones"); + auto zoneLists = queryResult("SELECT * FROM ZoneLists;", "ZoneLists"); + auto zoneGroups = queryResult("SELECT * FROM ZoneGroups;", "ZoneGroups"); + auto zoneInfoZoneLists = queryResult("SELECT * FROM ZoneInfoZoneLists;", "ZoneInfoZoneLists"); + auto schedules = queryResult("SELECT * FROM Schedules;", "Schedules"); + auto surfaces = queryResult("SELECT * FROM Surfaces;", "Surfaces"); + auto materials = queryResult("SELECT * FROM Materials;", "Materials"); + auto constructions = queryResult("SELECT * FROM Constructions;", "Constructions"); + auto constructionLayers = queryResult("SELECT * FROM ConstructionLayers;", "ConstructionLayers"); + auto lightings = queryResult("SELECT * FROM NominalLighting;", "NominalLighting"); + auto peoples = queryResult("SELECT * FROM NominalPeople;", "NominalPeople"); + auto elecEquips = queryResult("SELECT * FROM NominalElectricEquipment;", "NominalElectricEquipment"); + auto gasEquips = queryResult("SELECT * FROM NominalGasEquipment;", "NominalGasEquipment"); + auto steamEquips = queryResult("SELECT * FROM NominalSteamEquipment;", "NominalSteamEquipment"); + auto hwEquips = queryResult("SELECT * FROM NominalHotWaterEquipment;", "NominalHotWaterEquipment"); + auto otherEquips = queryResult("SELECT * FROM NominalOtherEquipment;", "NominalOtherEquipment"); + auto baseboards = queryResult("SELECT * FROM NominalBaseboardHeaters;", "NominalBaseboardHeaters"); + auto infiltrations = queryResult("SELECT * FROM NominalInfiltration;", "NominalInfiltration"); + auto ventilations = queryResult("SELECT * FROM NominalVentilation;", "NominalVentilation"); + auto roomAirModels = queryResult("SELECT * FROM RoomAirModels;", "RoomAirModels"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(2, zones.size()); + std::vector zone0 { "1","test zone 1","0.0","0.0","0.0","0.0","0.0","0.0","0.0","1","1.0","1.0","0.0","0.0","0.0","0.0","0.0","0.0","1.0","1.0","1","1","0.0","0.0","0.0","0.0","1" }; + std::vector zone1 { "2","test zone 2","2.0","2.0","2.0","2.0","2.0","2.0","2.0","2","2.0","2.0","2.0","2.0","2.0","2.0","2.0","2.0","2.0","2.0","2","2","2.0","2.0","2.0","2.0","0" }; + EXPECT_EQ(zone0, zones[0]); + EXPECT_EQ(zone1, zones[1]); + + ASSERT_EQ(2, zoneLists.size()); + std::vector zoneList0 { "1","test zoneList 1" }; + std::vector zoneList1 { "2","test zoneList 2" }; + EXPECT_EQ(zoneList0, zoneLists[0]); + EXPECT_EQ(zoneList1, zoneLists[1]); + + ASSERT_EQ(2, zoneGroups.size()); + std::vector zoneGroup0 { "1","test zoneGroup 1","","1" }; + std::vector zoneGroup1 { "2","test zoneGroup 2","2","99" }; + EXPECT_EQ(zoneGroup0, zoneGroups[0]); + EXPECT_EQ(zoneGroup1, zoneGroups[1]); + + ASSERT_EQ(3, zoneInfoZoneLists.size()); + std::vector zoneInfoZoneList0 { "1","1" }; + std::vector zoneInfoZoneList1 { "2","1" }; + std::vector zoneInfoZoneList2 { "2","2" }; + EXPECT_EQ(zoneInfoZoneList0, zoneInfoZoneLists[0]); + EXPECT_EQ(zoneInfoZoneList1, zoneInfoZoneLists[1]); + EXPECT_EQ(zoneInfoZoneList2, zoneInfoZoneLists[2]); + + ASSERT_EQ(2, schedules.size()); + std::vector schedule0 { "1","always on","ON/OFF","1.0","1.0" }; + std::vector schedule1 { "2","always off","ON/OFF","0.0","0.0" }; + EXPECT_EQ(schedule0, schedules[0]); + EXPECT_EQ(schedule1, schedules[1]); + + ASSERT_EQ(2, materials.size()); + std::vector material0 { "1","test material 1","1","0","0.0","0.0","0.0","0.0","0.0","0","0.0","0.0","0.0","0.0" }; + std::vector material1 { "2","test material 2","2","2","2.0","2.0","2.0","2.0","2.0","1","2.0","2.0","2.0","2.0" }; + EXPECT_EQ(material0, materials[0]); + EXPECT_EQ(material1, materials[1]); + + ASSERT_EQ(2, constructions.size()); + std::vector construction0 { "1","test construction 1","0","0","0","0.0","0.0","0.0","0.0","0.0","0.0","0","0","0.0" }; + std::vector construction1 { "2","test construction 2","2","2","2","2.0","2.0","2.0","2.0","2.0","2.0","2","1","2.0" }; + EXPECT_EQ(construction0, constructions[0]); + EXPECT_EQ(construction1, constructions[1]); + + ASSERT_EQ(2, constructionLayers.size()); + std::vector constructionLayer0 { "1","2","1","2" }; + std::vector constructionLayer1 { "2","2","2","1" }; + EXPECT_EQ(constructionLayer0, constructionLayers[0]); + EXPECT_EQ(constructionLayer1, constructionLayers[1]); + + ASSERT_EQ(2, surfaces.size()); + std::vector surface0 { "1","test surface 1","","Window","0.0","0.0","0.0","0.0","0.0","0.0","0","0","0.0","0.0","0","","","0","0","0" }; + std::vector surface1 { "2","test surface 2","2","Wall","2.0","2.0","2.0","2.0","2.0","2.0","2","2","2.0","2.0","1","1","1","2","1","1" }; + EXPECT_EQ(surface0, surfaces[0]); + EXPECT_EQ(surface1, surfaces[1]); + + ASSERT_EQ(2, lightings.size()); + std::vector lighting0 { "1","test lighting 1","","","0.0","0.0","0.0","0.0","0.0","0.0","" }; + std::vector lighting1 { "2","test lighting 2","1","1","2.0","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(lighting0, lightings[0]); + EXPECT_EQ(lighting1, lightings[1]); + + ASSERT_EQ(2, peoples.size()); + std::vector people0 { "1","test people 1","","0","","","0.0","0.0","","","","0","0","0","0","","","-1","0.0","0" }; + std::vector people1 { "2","test people 2","1","2","1","1","2.0","2.0","1","1","1","1","1","1","2","1","test","1","2.0","1" }; + EXPECT_EQ(people0, peoples[0]); + EXPECT_EQ(people1, peoples[1]); + + ASSERT_EQ(2, elecEquips.size()); + std::vector elecEquip0 { "1","test elecEquip 1","","","0.0","0.0","0.0","0.0","0.0","" }; + std::vector elecEquip1 { "2","test elecEquip 2","1","1","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(elecEquip0, elecEquips[0]); + EXPECT_EQ(elecEquip1, elecEquips[1]); + + ASSERT_EQ(2, gasEquips.size()); + std::vector gasEquip0 { "1","test gasEquip 1","","","0.0","0.0","0.0","0.0","0.0","" }; + std::vector gasEquip1 { "2","test gasEquip 2","1","1","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(gasEquip0, gasEquips[0]); + EXPECT_EQ(gasEquip1, gasEquips[1]); + + ASSERT_EQ(2, steamEquips.size()); + std::vector steamEquip0 { "1","test steamEquip 1","","","0.0","0.0","0.0","0.0","0.0","" }; + std::vector steamEquip1 { "2","test steamEquip 2","1","1","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(steamEquip0, steamEquips[0]); + EXPECT_EQ(steamEquip1, steamEquips[1]); + + ASSERT_EQ(2, hwEquips.size()); + std::vector hwEquip0 { "1","test hwEquip 1","","","0.0","0.0","0.0","0.0","0.0","" }; + std::vector hwEquip1 { "2","test hwEquip 2","1","1","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(hwEquip0, hwEquips[0]); + EXPECT_EQ(hwEquip1, hwEquips[1]); + + ASSERT_EQ(2, otherEquips.size()); + std::vector otherEquip0 { "1","test otherEquip 1","","","0.0","0.0","0.0","0.0","0.0","" }; + std::vector otherEquip1 { "2","test otherEquip 2","1","1","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(otherEquip0, otherEquips[0]); + EXPECT_EQ(otherEquip1, otherEquips[1]); + + ASSERT_EQ(2, baseboards.size()); + std::vector baseboard0 { "1","test baseboard 1","","","0.0","0.0","0.0","0.0","0.0","0.0","" }; + std::vector baseboard1 { "2","test baseboard 2","1","1","2.0","2.0","2.0","2.0","2.0","2.0","test" }; + EXPECT_EQ(baseboard0, baseboards[0]); + EXPECT_EQ(baseboard1, baseboards[1]); + + ASSERT_EQ(2, infiltrations.size()); + std::vector infiltration0 { "1","test infiltration 1","","","0.0" }; + std::vector infiltration1 { "2","test infiltration 2","1","1","2.0" }; + EXPECT_EQ(infiltration0, infiltrations[0]); + EXPECT_EQ(infiltration1, infiltrations[1]); + + ASSERT_EQ(2, ventilations.size()); + std::vector ventilation0 { "1","test ventilation 1","","","0.0" }; + std::vector ventilation1 { "2","test ventilation 2","1","1","2.0" }; + EXPECT_EQ(ventilation0, ventilations[0]); + EXPECT_EQ(ventilation1, ventilations[1]); + + ASSERT_EQ(2, roomAirModels.size()); + std::vector roomAirModel0 { "1","test roomAirModel 1","2","1","0" }; + std::vector roomAirModel1 { "2","test roomAirModel 2","3","3","1" }; + EXPECT_EQ(roomAirModel0, roomAirModels[0]); + EXPECT_EQ(roomAirModel1, roomAirModels[1]); + } + + TEST_F( SQLiteFixture, createSQLiteTabularDataRecords ) { + FArray1D_string const rowLabels( { "Heating", "Cooling" } ); + FArray1D_string const columnLabels( { "Electricity [GJ]", "Natural Gas [GJ]" } ); + FArray2D_string const body( 2, 2, { "216.38", "869.08", "1822.42", "0.00" } ); + FArray1D_string const rowLabels2( { "Heating [kWh]" } ); + FArray1D_string const columnLabels2( { "Electricity", "Natural Gas" } ); + FArray2D_string const body2( 1, 2, { "815.19", "256.72" } ); + + sqlite_test->sqliteBegin(); + // tabular data references simulation record... always checks for first simulation record only. + sqlite_test->createSQLiteSimulationsRecord( 1, "EnergyPlus Version", "Current Time" ); + sqlite_test->createSQLiteTabularDataRecords(body, rowLabels, columnLabels, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "End Uses"); + sqlite_test->createSQLiteTabularDataRecords(body2, rowLabels2, columnLabels2, "AnnualBuildingUtilityPerformanceSummary", "Entire Facility", "End Uses By Subcategory"); + auto tabularData = queryResult("SELECT * FROM TabularData;", "TabularData"); + auto strings = queryResult("SELECT * FROM Strings;", "Strings"); + auto stringTypes = queryResult("SELECT * FROM StringTypes;", "StringTypes"); + sqlite_test->sqliteCommit(); + + ASSERT_EQ(6, tabularData.size()); + // tabularDataIndex, reportNameIndex, reportForStringIndex, tableNameIndex, rowLabelIndex, columnLabelIndex, unitsIndex, simulationIndex, rowId, columnId, value + std::vector tabularData0 { "1","1","2","3","6","4","5","1","0","0","216.38" }; + std::vector tabularData1 { "2","1","2","3","7","4","5","1","1","0","869.08" }; + std::vector tabularData2 { "3","1","2","3","6","8","5","1","0","1","1822.42" }; + std::vector tabularData3 { "4","1","2","3","7","8","5","1","1","1","0.00" }; + std::vector tabularData4 { "5","1","2","9","6","4","10","1","0","0","815.19" }; + std::vector tabularData5 { "6","1","2","9","6","8","10","1","0","1","256.72" }; + EXPECT_EQ(tabularData0, tabularData[0]); + EXPECT_EQ(tabularData1, tabularData[1]); + EXPECT_EQ(tabularData2, tabularData[2]); + EXPECT_EQ(tabularData3, tabularData[3]); + EXPECT_EQ(tabularData4, tabularData[4]); + EXPECT_EQ(tabularData5, tabularData[5]); + + + ASSERT_EQ(10, strings.size()); + std::vector string0 { "1","1","AnnualBuildingUtilityPerformanceSummary" }; + std::vector string1 { "2","2","Entire Facility" }; + std::vector string2 { "3","3","End Uses" }; + std::vector string3 { "4","5","Electricity" }; + std::vector string4 { "5","6","GJ" }; + std::vector string5 { "6","4","Heating" }; + std::vector string6 { "7","4","Cooling" }; + std::vector string7 { "8","5","Natural Gas" }; + std::vector string8 { "9","3","End Uses By Subcategory" }; + std::vector string9 { "10","6","kWh" }; + EXPECT_EQ(string0, strings[0]); + EXPECT_EQ(string1, strings[1]); + EXPECT_EQ(string2, strings[2]); + EXPECT_EQ(string3, strings[3]); + EXPECT_EQ(string4, strings[4]); + EXPECT_EQ(string5, strings[5]); + EXPECT_EQ(string6, strings[6]); + EXPECT_EQ(string7, strings[7]); + EXPECT_EQ(string8, strings[8]); + EXPECT_EQ(string9, strings[9]); + + ASSERT_EQ(6, stringTypes.size()); + std::vector stringType0 { "1","ReportName" }; + std::vector stringType1 { "2","ReportForString" }; + std::vector stringType2 { "3","TableName" }; + std::vector stringType3 { "4","RowName" }; + std::vector stringType4 { "5","ColumnName" }; + std::vector stringType5 { "6","Units" }; + EXPECT_EQ(stringType0, stringTypes[0]); + EXPECT_EQ(stringType1, stringTypes[1]); + EXPECT_EQ(stringType2, stringTypes[2]); + EXPECT_EQ(stringType3, stringTypes[3]); + EXPECT_EQ(stringType4, stringTypes[4]); + EXPECT_EQ(stringType5, stringTypes[5]); + } +} diff --git a/tst/EnergyPlus/unit/SizingManager.unit.cc b/tst/EnergyPlus/unit/SizingManager.unit.cc new file mode 100644 index 00000000000..b8d3a5563c4 --- /dev/null +++ b/tst/EnergyPlus/unit/SizingManager.unit.cc @@ -0,0 +1,160 @@ +// EnergyPlus::ExteriorEnergyUse Unit Tests + +// Google Test Headers +#include + +// EnergyPlus Headers +#include +#include + +using namespace EnergyPlus; +using namespace EnergyPlus::SizingManager; +using namespace EnergyPlus::DataSizing; +using namespace ObjexxFCL; + +TEST( GetOARequirementsTest, DSOA1 ) +{ + static bool ErrorsFound( false ); // If errors detected in input + static int OAIndex( 0 ); // Zone number + int NumAlphas( 2 ); + int NumNumbers( 4 ); + + std::string CurrentModuleObject = "DesignSpecification:OutdoorAir"; + int NumOARequirements = 6; + OARequirements.allocate( NumOARequirements ); + + FArray1D_string Alphas; // Alpha input items for object + FArray1D_string cAlphaFields; // Alpha field names + FArray1D_string cNumericFields; // Numeric field names + FArray1D< Real64 > Numbers; // Numeric input items for object + FArray1D_bool lAlphaBlanks; // Logical array, alpha field input BLANK = .TRUE. + FArray1D_bool lNumericBlanks; // Logical array, numeric field input BLANK = .TRUE. + + Alphas.allocate( NumAlphas ); + cAlphaFields.allocate( NumAlphas ); + cNumericFields.allocate( NumNumbers ); + Numbers.dimension( NumNumbers, 0.0 ); + lAlphaBlanks.dimension( NumAlphas, true ); + lNumericBlanks.dimension( NumNumbers, true ); + + // Flow/Area + OAIndex = 1; + Alphas( 1 ) = "Test DSOA 1"; // Name + Alphas( 2 ) = "Flow/Area"; // Outdoor Air Method + Numbers( 1 ) = 0.1; // Outdoor Air Flow per Person{ m3 / s - person } + Numbers( 2 ) = 0.2; // Outdoor Air Flow per Zone Floor Area{ m3 / s - m2 } + Numbers( 3 ) = 0.3; // Outdoor Air Flow per Zone{ m3 / s } + Numbers( 4 ) = 0.4; //Outdoor Air Flow Air Changes per Hour + + ErrorsFound = false; + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); + + EXPECT_FALSE( ErrorsFound ); + + EXPECT_EQ( OAFlowPerArea, OARequirements( OAIndex ).OAFlowMethod ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerPerson ); + EXPECT_EQ( 0.2, OARequirements( OAIndex ).OAFlowPerArea ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerZone ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowACH ); + + // Flow/Person + OAIndex = 2; + Alphas( 1 ) = "Test DSOA 2"; // Name + Alphas( 2 ) = "Flow/Person"; // Outdoor Air Method + Numbers( 1 ) = 0.1; // Outdoor Air Flow per Person{ m3 / s - person } + Numbers( 2 ) = 0.2; // Outdoor Air Flow per Zone Floor Area{ m3 / s - m2 } + Numbers( 3 ) = 0.3; // Outdoor Air Flow per Zone{ m3 / s } + Numbers( 4 ) = 0.4; //Outdoor Air Flow Air Changes per Hour + + ErrorsFound = false; + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); + + EXPECT_FALSE( ErrorsFound ); + + EXPECT_EQ( OAFlowPPer, OARequirements( OAIndex ).OAFlowMethod ); + EXPECT_EQ( 0.1, OARequirements( OAIndex ).OAFlowPerPerson ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerArea ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerZone ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowACH ); + + // Flow/Zone + OAIndex = 3; + Alphas( 1 ) = "Test DSOA 3"; // Name + Alphas( 2 ) = "Flow/Zone"; // Outdoor Air Method + Numbers( 1 ) = 0.1; // Outdoor Air Flow per Person{ m3 / s - person } + Numbers( 2 ) = 0.2; // Outdoor Air Flow per Zone Floor Area{ m3 / s - m2 } + Numbers( 3 ) = 0.3; // Outdoor Air Flow per Zone{ m3 / s } + Numbers( 4 ) = 0.4; //Outdoor Air Flow Air Changes per Hour + + ErrorsFound = false; + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); + + EXPECT_FALSE( ErrorsFound ); + + EXPECT_EQ( OAFlow, OARequirements( OAIndex ).OAFlowMethod ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerPerson ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerArea ); + EXPECT_EQ( 0.3, OARequirements( OAIndex ).OAFlowPerZone ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowACH ); + + // Flow/Zone + OAIndex = 4; + Alphas( 1 ) = "Test DSOA 4"; // Name + Alphas( 2 ) = "AirChanges/Hour"; // Outdoor Air Method + Numbers( 1 ) = 0.1; // Outdoor Air Flow per Person{ m3 / s - person } + Numbers( 2 ) = 0.2; // Outdoor Air Flow per Zone Floor Area{ m3 / s - m2 } + Numbers( 3 ) = 0.3; // Outdoor Air Flow per Zone{ m3 / s } + Numbers( 4 ) = 0.4; //Outdoor Air Flow Air Changes per Hour + + ErrorsFound = false; + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); + + EXPECT_FALSE( ErrorsFound ); + + EXPECT_EQ( OAFlowACH, OARequirements( OAIndex ).OAFlowMethod ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerPerson ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerArea ); + EXPECT_EQ( 0.0, OARequirements( OAIndex ).OAFlowPerZone ); + EXPECT_EQ( 0.4, OARequirements( OAIndex ).OAFlowACH ); + + // Sum + OAIndex = 5; + Alphas( 1 ) = "Test DSOA 5"; // Name + Alphas( 2 ) = "Sum"; // Outdoor Air Method + Numbers( 1 ) = 0.1; // Outdoor Air Flow per Person{ m3 / s - person } + Numbers( 2 ) = 0.2; // Outdoor Air Flow per Zone Floor Area{ m3 / s - m2 } + Numbers( 3 ) = 0.3; // Outdoor Air Flow per Zone{ m3 / s } + Numbers( 4 ) = 0.4; //Outdoor Air Flow Air Changes per Hour + + ErrorsFound = false; + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); + + EXPECT_FALSE( ErrorsFound ); + + EXPECT_EQ( OAFlowSum, OARequirements( OAIndex ).OAFlowMethod ); + EXPECT_EQ( 0.1, OARequirements( OAIndex ).OAFlowPerPerson ); + EXPECT_EQ( 0.2, OARequirements( OAIndex ).OAFlowPerArea ); + EXPECT_EQ( 0.3, OARequirements( OAIndex ).OAFlowPerZone ); + EXPECT_EQ( 0.4, OARequirements( OAIndex ).OAFlowACH ); + + // Maximum + OAIndex = 6; + Alphas( 1 ) = "Test DSOA 6"; // Name + Alphas( 2 ) = "Maximum"; // Outdoor Air Method + Numbers( 1 ) = 0.1; // Outdoor Air Flow per Person{ m3 / s - person } + Numbers( 2 ) = 0.2; // Outdoor Air Flow per Zone Floor Area{ m3 / s - m2 } + Numbers( 3 ) = 0.3; // Outdoor Air Flow per Zone{ m3 / s } + Numbers( 4 ) = 0.4; //Outdoor Air Flow Air Changes per Hour + + ErrorsFound = false; + ProcessInputOARequirements( CurrentModuleObject, OAIndex, Alphas, NumAlphas, Numbers, NumNumbers, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields, ErrorsFound ); + + EXPECT_FALSE( ErrorsFound ); + + EXPECT_EQ( OAFlowMax, OARequirements( OAIndex ).OAFlowMethod ); + EXPECT_EQ( 0.1, OARequirements( OAIndex ).OAFlowPerPerson ); + EXPECT_EQ( 0.2, OARequirements( OAIndex ).OAFlowPerArea ); + EXPECT_EQ( 0.3, OARequirements( OAIndex ).OAFlowPerZone ); + EXPECT_EQ( 0.4, OARequirements( OAIndex ).OAFlowACH ); + +} diff --git a/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc b/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc index 44501da95d3..9a7155c5abc 100644 --- a/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc +++ b/tst/EnergyPlus/unit/WaterThermalTanks.unit.cc @@ -8,11 +8,6 @@ using namespace EnergyPlus; -bool FloatEqualTest(Real64 val1, Real64 val2, Real64 SmallNum = 0.00000001) { - using namespace std; - return ( abs(val1 - val2) < SmallNum ); -} - TEST( HeatPumpWaterHeaterTests, TestQsourceCalcs ) { Real64 DeltaT = 0.0; diff --git a/tst/EnergyPlus/unit/main.unit.cc b/tst/EnergyPlus/unit/main.cc similarity index 60% rename from tst/EnergyPlus/unit/main.unit.cc rename to tst/EnergyPlus/unit/main.cc index b9201a2040e..ad53f7bfccc 100644 --- a/tst/EnergyPlus/unit/main.unit.cc +++ b/tst/EnergyPlus/unit/main.cc @@ -7,6 +7,10 @@ int main( int argc, char **argv ) { +#ifdef ENABLE_GTEST_DEBUG_MODE + ::testing::GTEST_FLAG(break_on_failure) = true; + ::testing::GTEST_FLAG(catch_exceptions) = false; +#endif ::testing::InitGoogleTest( &argc, argv ); return RUN_ALL_TESTS(); }