diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ed6a79c96..6517142547 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -560,11 +560,6 @@ endif() # EnergyPlus -if((DEFINED ENERGYPLUS_EXE) AND NOT (ENERGYPLUS_EXE STREQUAL "")) - get_filename_component(OLD_ENERGYPLUS_EXTRACTED_DIR "${ENERGYPLUS_EXE}" DIRECTORY) - message("OLD_ENERGYPLUS_EXTRACTED_DIR=${OLD_ENERGYPLUS_EXTRACTED_DIR}") -endif() - if(UNIX) if(APPLE) set(ENERGYPLUS_EXPECTED_HASH 0bf64f4b153a87c3a4822321bc5878e1) @@ -601,10 +596,6 @@ if(UNIX) EXPECTED_MD5 ${ENERGYPLUS_EXPECTED_HASH}) endif() - # Remove the old extracted dir if exists - if(DEFINED OLD_ENERGYPLUS_EXTRACTED_DIR) - execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${OLD_ENERGYPLUS_EXTRACTED_DIR}") - endif() execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}") endif() @@ -630,16 +621,30 @@ elseif(WIN32) SHOW_PROGRESS EXPECTED_MD5 ${ENERGYPLUS_EXPECTED_HASH}) - # Remove the old extracted dir if exists - if(DEFINED OLD_ENERGYPLUS_EXTRACTED_DIR) - execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${OLD_ENERGYPLUS_EXTRACTED_DIR}") - endif() execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}") endif() endif() +if((DEFINED ENERGYPLUS_EXE) AND NOT (ENERGYPLUS_EXE STREQUAL "")) + get_filename_component(OLD_ENERGYPLUS_EXTRACTED_DIR "${ENERGYPLUS_EXE}" DIRECTORY) + if(NOT "${OLD_ENERGYPLUS_EXTRACTED_DIR}" MATCHES ".*${ENERGYPLUS_PATH}.*") + + message(STATUS "Removing old extracted dir = ${OLD_ENERGYPLUS_EXTRACTED_DIR}") + # Remove the old extracted dir + execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${OLD_ENERGYPLUS_EXTRACTED_DIR}") + + # Unset variables so that FindEnergyPlus is called again + unset(ENERGYPLUS_FOUND CACHE) + unset(ENERGYPLUS_EXE CACHE) + unset(ENERGYPLUS_IDD CACHE) + unset(ENERGYPLUS_WEATHER_DIR CACHE) + + endif() +endif() + + # Allows placing the archive manually in the build dir too if (NOT EXISTS "${ENERGYPLUS_PATH}") unset(ENERGYPLUS_FOUND CACHE) diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index df95ee93f9..8554c1170b 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -88,6 +88,7 @@ set(utilities_resources_src utilities/SqlFile/1ZoneEvapCooler-V9-2-0.sql utilities/SqlFile/1ZoneEvapCooler-V9-3-0.sql utilities/SqlFile/1ZoneEvapCooler-V9-4-0.sql + utilities/SqlFile/1ZoneEvapCooler-V9-5-0.sql utilities/Zip/test1.zip ) diff --git a/resources/energyplus/5ZoneAirCooled/in.idf b/resources/energyplus/5ZoneAirCooled/in.idf index 24cb80a810..734915ac5b 100644 --- a/resources/energyplus/5ZoneAirCooled/in.idf +++ b/resources/energyplus/5ZoneAirCooled/in.idf @@ -100,7 +100,7 @@ ! Environmental Emissions: None ! Utility Tariffs: None - Version,9.4; + Version,9.5; Building, Building, !- Name diff --git a/resources/energyplus/BestestEx/in.idf b/resources/energyplus/BestestEx/in.idf index 785ceeed36..67c10ef36e 100644 --- a/resources/energyplus/BestestEx/in.idf +++ b/resources/energyplus/BestestEx/in.idf @@ -5,7 +5,7 @@ !BESTEST-EX Case L200EX-PH BASE-CASE, developed by NREL !Use EnergyPlus IDFEditor to view inputs in IP units - Version,9.4; + Version,9.5; SimulationControl, No, !- Do Zone Sizing Calculation diff --git a/resources/energyplus/Daylighting_Office/in.idf b/resources/energyplus/Daylighting_Office/in.idf index 1c183db076..dc1d1dd7e0 100644 --- a/resources/energyplus/Daylighting_Office/in.idf +++ b/resources/energyplus/Daylighting_Office/in.idf @@ -140,7 +140,7 @@ ! schedule types, always on schedule, misc ! ***GENERAL SIMULATION PARAMETERS*** - Version,9.4; + Version,9.5; SimulationControl, YES, !- Do Zone Sizing Calculation diff --git a/resources/energyplus/Daylighting_School/in.idf b/resources/energyplus/Daylighting_School/in.idf index e0cb6aa521..2cea262e21 100644 --- a/resources/energyplus/Daylighting_School/in.idf +++ b/resources/energyplus/Daylighting_School/in.idf @@ -33,7 +33,7 @@ ! WeatherFileName=USA_CO_Boulder_TMY2.epw ! End SimMetaData - Version,9.4; + Version,9.5; Timestep,6; diff --git a/resources/energyplus/HospitalBaseline/in.idf b/resources/energyplus/HospitalBaseline/in.idf index 1dfdde52e4..1c7afe374d 100644 --- a/resources/energyplus/HospitalBaseline/in.idf +++ b/resources/energyplus/HospitalBaseline/in.idf @@ -100,7 +100,7 @@ ! End SimMetaData ! Number of Zones: 130 - Version,9.4; + Version,9.5; Timestep,6; diff --git a/resources/energyplus/NewFileTemplate.idf b/resources/energyplus/NewFileTemplate.idf index 02ae2f0b08..2b889e41ff 100644 --- a/resources/energyplus/NewFileTemplate.idf +++ b/resources/energyplus/NewFileTemplate.idf @@ -1,6 +1,6 @@ !- =========== ALL OBJECTS IN CLASS: VERSION =========== - Version,9.4; + Version,9.5; !- =========== ALL OBJECTS IN CLASS: BUILDING =========== diff --git a/resources/energyplus/Office_With_Many_HVAC_Types/in.idf b/resources/energyplus/Office_With_Many_HVAC_Types/in.idf index 7cd4de5302..bd2a032f66 100644 --- a/resources/energyplus/Office_With_Many_HVAC_Types/in.idf +++ b/resources/energyplus/Office_With_Many_HVAC_Types/in.idf @@ -1,4 +1,4 @@ - Version,9.4; + Version,9.5; Building, Building 1, !- Name diff --git a/resources/energyplus/RefLargeOffice/RefBldgLargeOfficeNew2004_Chicago.idf b/resources/energyplus/RefLargeOffice/RefBldgLargeOfficeNew2004_Chicago.idf index 612af7e666..d353e7249e 100644 --- a/resources/energyplus/RefLargeOffice/RefBldgLargeOfficeNew2004_Chicago.idf +++ b/resources/energyplus/RefLargeOffice/RefBldgLargeOfficeNew2004_Chicago.idf @@ -68,7 +68,7 @@ ! ***GENERAL SIMULATION PARAMETERS*** ! Number of Zones: 19 - Version,9.4; + Version,9.5; SimulationControl, YES, !- Do Zone Sizing Calculation diff --git a/resources/energyplus/ScheduleFile/in.idf b/resources/energyplus/ScheduleFile/in.idf index 976ff88b48..0c27ffdafa 100644 --- a/resources/energyplus/ScheduleFile/in.idf +++ b/resources/energyplus/ScheduleFile/in.idf @@ -1,4 +1,4 @@ - Version,9.4; + Version,9.5; Timestep,4; diff --git a/resources/energyplus/SimpleSurfaces/4ZoneWithShading_Simple_2.idf b/resources/energyplus/SimpleSurfaces/4ZoneWithShading_Simple_2.idf index 2c1d523d81..37ae46aab1 100644 --- a/resources/energyplus/SimpleSurfaces/4ZoneWithShading_Simple_2.idf +++ b/resources/energyplus/SimpleSurfaces/4ZoneWithShading_Simple_2.idf @@ -81,7 +81,7 @@ ! Environmental Emissions: None ! Utility Tariffs: None - Version,9.4; + Version,9.5; Timestep,4; diff --git a/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Reference.idf b/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Reference.idf index 557995bb25..e4ab6c3081 100644 --- a/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Reference.idf +++ b/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Reference.idf @@ -1,7 +1,7 @@ ! Basecase reference for SimpleSurfaces_Test !- =========== ALL OBJECTS IN CLASS: VERSION =========== - Version,9.4; + Version,9.5; !- =========== ALL OBJECTS IN CLASS: BUILDING =========== diff --git a/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Relative.idf b/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Relative.idf index 6944305715..0a625be0f0 100644 --- a/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Relative.idf +++ b/resources/energyplus/SimpleSurfaces/SimpleSurfaces_Relative.idf @@ -1,7 +1,7 @@ ! File to test the import of simple surfaces !- =========== ALL OBJECTS IN CLASS: VERSION =========== - Version,9.4; + Version,9.5; !- =========== ALL OBJECTS IN CLASS: BUILDING =========== diff --git a/resources/energyplus/SmallOffice/SmallOffice.idf b/resources/energyplus/SmallOffice/SmallOffice.idf index e91ad81a3d..2bc1dcf20d 100644 --- a/resources/energyplus/SmallOffice/SmallOffice.idf +++ b/resources/energyplus/SmallOffice/SmallOffice.idf @@ -67,7 +67,7 @@ ! ExtWallConstruction=Mass ! End SimMetaData - Version,9.4; + Version,9.5; Timestep,6; @@ -5814,7 +5814,7 @@ UtilityCost:Tariff, IN_EIAMonthlyRateGas, !- Name - NaturalGas:Facility, !- Output Meter Name + NaturalGas:Facility, !- Output Meter Name MCF, !- Conversion Factor Choice , !- Energy Conversion Factor , !- Demand Conversion Factor diff --git a/resources/energyplus/ZoneBoundaryCondition/Bug_486_zone_bdr_test.idf b/resources/energyplus/ZoneBoundaryCondition/Bug_486_zone_bdr_test.idf index 30b60094e0..b6d94d0fd4 100644 --- a/resources/energyplus/ZoneBoundaryCondition/Bug_486_zone_bdr_test.idf +++ b/resources/energyplus/ZoneBoundaryCondition/Bug_486_zone_bdr_test.idf @@ -1,6 +1,6 @@ !- =========== ALL OBJECTS IN CLASS: VERSION =========== - Version,9.4; + Version,9.5; !- =========== ALL OBJECTS IN CLASS: BUILDING =========== diff --git a/resources/utilities/Idf/CommentTest.idf b/resources/utilities/Idf/CommentTest.idf index 9d88ffb89f..ed58f34b49 100644 --- a/resources/utilities/Idf/CommentTest.idf +++ b/resources/utilities/Idf/CommentTest.idf @@ -2,7 +2,7 @@ ! Written by Elaine T. Hale, 15 September 2010 ! Version object should keep up with EnergyPlus version number. - Version,9.4; + Version,9.5; ! Timestep should be > 1. diff --git a/resources/utilities/Idf/DosLineEndingTest.idf b/resources/utilities/Idf/DosLineEndingTest.idf index 9d88ffb89f..ed58f34b49 100644 --- a/resources/utilities/Idf/DosLineEndingTest.idf +++ b/resources/utilities/Idf/DosLineEndingTest.idf @@ -2,7 +2,7 @@ ! Written by Elaine T. Hale, 15 September 2010 ! Version object should keep up with EnergyPlus version number. - Version,9.4; + Version,9.5; ! Timestep should be > 1. diff --git a/resources/utilities/Idf/FormatPropertyTest_Formatted.idf b/resources/utilities/Idf/FormatPropertyTest_Formatted.idf index 72a722f6fc..e829186f21 100644 --- a/resources/utilities/Idf/FormatPropertyTest_Formatted.idf +++ b/resources/utilities/Idf/FormatPropertyTest_Formatted.idf @@ -5,7 +5,7 @@ !- =========== ALL OBJECTS IN CLASS: VERSION =========== ! \format singleLine - Version,9.4; + Version,9.5; !- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== ! \format singleLine diff --git a/resources/utilities/Idf/FormatPropertyTest_Unformatted.idf b/resources/utilities/Idf/FormatPropertyTest_Unformatted.idf index 90c30e8eb9..a80e29a50d 100644 --- a/resources/utilities/Idf/FormatPropertyTest_Unformatted.idf +++ b/resources/utilities/Idf/FormatPropertyTest_Unformatted.idf @@ -5,7 +5,7 @@ !- =========== ALL OBJECTS IN CLASS: VERSION =========== ! \format singleLine - Version,9.4; + Version,9.5; !- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== ! \format singleLine diff --git a/resources/utilities/Idf/MixedLineEndingTest.idf b/resources/utilities/Idf/MixedLineEndingTest.idf index 9d88ffb89f..ed58f34b49 100644 --- a/resources/utilities/Idf/MixedLineEndingTest.idf +++ b/resources/utilities/Idf/MixedLineEndingTest.idf @@ -2,7 +2,7 @@ ! Written by Elaine T. Hale, 15 September 2010 ! Version object should keep up with EnergyPlus version number. - Version,9.4; + Version,9.5; ! Timestep should be > 1. diff --git a/resources/utilities/Idf/UnixLineEndingTest.idf b/resources/utilities/Idf/UnixLineEndingTest.idf index 9d88ffb89f..ed58f34b49 100644 --- a/resources/utilities/Idf/UnixLineEndingTest.idf +++ b/resources/utilities/Idf/UnixLineEndingTest.idf @@ -2,7 +2,7 @@ ! Written by Elaine T. Hale, 15 September 2010 ! Version object should keep up with EnergyPlus version number. - Version,9.4; + Version,9.5; ! Timestep should be > 1. diff --git a/resources/utilities/SqlFile/1ZoneEvapCooler-V9-5-0-IOFreeze.idf b/resources/utilities/SqlFile/1ZoneEvapCooler-V9-5-0-IOFreeze.idf new file mode 100644 index 0000000000..57646a0701 --- /dev/null +++ b/resources/utilities/SqlFile/1ZoneEvapCooler-V9-5-0-IOFreeze.idf @@ -0,0 +1,638 @@ +!-Generator IDFEditor 1.34 +!-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. +! 1ZoneEvapCooler.idf +! +! Basic file description: This file models a small one-zone house with a whole-house direct evaporative cooler system. +! Because evaporative coolers cannot be controlled with the ZoneControl:Thermostat object, +! this file illustrates how an evaporative cooler system can be thermostatically controlled +! in a crude manner using the AvailabilityManager objects: +! +! AvailabilityManager:LowTemperatureTurnOff +! AvailabilityManager:HighTemperatureTurnOn +! +! Availability managers are capable of turning on or off the fan for an air system (or the pump +! for a plant system) by monitoring temperature conditions at a user-specified system node. +! In this model, the availability managers are monitoring the zone outlet air node to act as +! a crude thermostatic control for the zone. +! +! Keep in mind that availability manager control is "lagged". This means that the node +! conditions from the previous time step are used to make control decisions at the current +! time step. +! +! There are two ways to use the availability managers for controlling an evaporative cooler: +! +! Method 1. The fan is scheduled to be available at all times, meaning that the system +! is on all the time by default. This usually results in over-cooling. +! To prevent over-cooling, the LOW TEMPERATURE TURN OFF object is used to +! turn off the system fan when the temperature falls below the setpoint (23 C). +! +! Method 2. The fan is scheduled to be unavailable at all times, meaning that the system +! is off all the time by default. This usually results in under-cooling. +! To prevent under-cooling, the HIGH TEMPERATURE TURN ON object is used to +! turn on the system fan when the temperature rises above the setpoint (26 C). +! +! With either method, all other equipment is scheduled to be always available. In this file, +! for demonstration purposes only, the fan is scheduled to be available from 12 AM-12 PM to +! to demonstrate Method 1, and scheduled to be unavailable from 12 PM-12 AM for Method 2. +! +! Note that ZoneControl:Thermostat is still used in this model to control the baseboard +! heating in the winter, but it does not effect the evaporative cooler system. +! +! Highlights: Test of AvailabilityManagers for controlling an air system. +! +! Simulation Location/Run: DENVER_STAPLETON_CO_USA_WMO_724690, 2 design days, 1 run period, +! Run Control executes two design days (see RUN PERIOD object) +! +! Location: Denver, CO +! +! Design Days: DENVER_STAPLETON_CO_USA Annual Heating 99%, MaxDB=-16°C +! DENVER_STAPLETON_CO_USA Annual Cooling (DB=>MWB) 1%, MaxDB=32.6°C MWB=15.5°C +! +! Run Period (Weather File): Full Annual Simulation, DENVER_STAPLETON_CO_USA_WMO_724690 +! +! Run Control: No zone or system sizing, design day run control (no weather file simulation) +! +! Building: Fictional 1 zone building with resistive walls based on 1ZoneUncontrolled example. +! No windows. No internal gains. No internal mass. The building is oriented due north. +! +! Floor Area: 232.25 m2 +! Number of Stories: 1 + + Version,9.5; + + Timestep,6; + + Building, + Bldg, !- Name + 0.0, !- North Axis {deg} + Suburbs, !- Terrain + 0.05, !- Loads Convergence Tolerance Value {W} + 0.05, !- Temperature Convergence Tolerance Value {deltaC} + MinimalShadowing, !- Solar Distribution + 30, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + + HeatBalanceAlgorithm,ConductionTransferFunction; + + SurfaceConvectionAlgorithm:Inside,TARP; + + SurfaceConvectionAlgorithm:Outside,DOE-2; + + SimulationControl, + No, !- Do Zone Sizing Calculation + No, !- Do System Sizing Calculation + No, !- Do Plant Sizing Calculation + Yes, !- Run Simulation for Sizing Periods + Yes, !- Run Simulation for Weather File Run Periods + No, !- Do HVAC Sizing Simulation for Sizing Periods + 1; !- Maximum Number of HVAC Sizing Simulation Passes + + RunPeriod, + Run Period 1, !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 12, !- End Month + 31, !- End Day of Month + , !- End Year + Tuesday, !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + No, !- Apply Weekend Holiday Rule + Yes, !- Use Weather File Rain Indicators + Yes; !- Use Weather File Snow Indicators + + Site:Location, + Denver Centennial CO USA WMO=724666, !- Name + 39.74, !- Latitude {deg} + -105.18, !- Longitude {deg} + -7.00, !- Time Zone {hr} + 1793.00; !- Elevation {m} + + ! WMO=724666 Time Zone=NAM (GMT-07:00) Mountain Time (US & Canada) + ! Data Source=ASHRAE 2009 Annual Design Conditions + ! Using Design Conditions from "Climate Design Data 2009 ASHRAE Handbook" + ! Denver Centennial CO USA Extreme Annual Wind Speeds, 1%=11.1m/s, 2.5%=9.5m/s, 5%=8.4m/s + ! Denver Centennial CO USA Extreme Annual Temperatures, Max Drybulb=-22.9°C Min Drybulb=36.1°C + ! Denver Centennial CO USA Annual Heating Design Conditions Wind Speed=3m/s Wind Dir=340 + ! Coldest Month=December + ! Denver Centennial CO USA Annual Heating 99.6%, MaxDB=-18.8°C + + SizingPeriod:DesignDay, + Denver Centennial Ann Htg 99.6% Condns DB, !- Name + 12, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -18.8, !- 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 + -18.8, !- 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} + 81560., !- Barometric Pressure {Pa} + 3, !- Wind Speed {m/s} + 340, !- 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 + + ! Denver Centennial Annual Cooling Design Conditions Wind Speed=4.9m/s Wind Dir=0 + ! Hottest Month=July + ! Denver Centennial CO USA Annual Cooling (DB=>MWB) 1%, MaxDB=32°C MWB=15.5°C + + SizingPeriod:DesignDay, + Denver Centennial Ann Clg 1% Condns DB=>MWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 32, !- Maximum Dry-Bulb Temperature {C} + 15.2, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 15.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} + 81560., !- Barometric Pressure {Pa} + 4.9, !- Wind Speed {m/s} + 0, !- Wind Direction {deg} + No, !- Rain Indicator + No, !- Snow Indicator + No, !- Daylight Saving Time Indicator + ASHRAEClearSky, !- Solar Model Indicator + , !- Beam Solar Day Schedule Name + , !- Diffuse Solar Day Schedule Name + , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless} + , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} + 1.00; !- Sky Clearness + + Material:NoMass, + R13LAYER, !- Name + Rough, !- Roughness + 2.290965, !- Thermal Resistance {m2-K/W} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material:NoMass, + R31LAYER, !- Name + Rough, !- Roughness + 5.456, !- Thermal Resistance {m2-K/W} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material, + C5 - 4 IN HW CONCRETE, !- Name + MediumRough, !- Roughness + 0.1014984, !- Thickness {m} + 1.729577, !- Conductivity {W/m-K} + 2242.585, !- Density {kg/m3} + 836.8000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.6500000, !- Solar Absorptance + 0.6500000; !- Visible Absorptance + + Construction, + R13WALL, !- Name + R13LAYER; !- Outside Layer + + Construction, + FLOOR, !- Name + C5 - 4 IN HW CONCRETE; !- Outside Layer + + Construction, + ROOF31, !- Name + R31LAYER; !- Outside Layer + + Site:GroundTemperature:BuildingSurface,18.89,18.92,19.02,19.12,19.21,19.23,19.07,19.32,19.09,19.21,19.13,18.96; + + Zone, + Main Zone, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + autocalculate, !- Ceiling Height {m} + autocalculate; !- Volume {m3} + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + + BuildingSurface:Detailed, + Zn001:Wall001, !- Name + Wall, !- Surface Type + R13WALL, !- Construction Name + Main Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,0,4.572000, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 15.24000,0,0, !- X,Y,Z ==> Vertex 3 {m} + 15.24000,0,4.572000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall002, !- Name + Wall, !- Surface Type + R13WALL, !- Construction Name + Main Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 15.24000,0,4.572000, !- X,Y,Z ==> Vertex 1 {m} + 15.24000,0,0, !- X,Y,Z ==> Vertex 2 {m} + 15.24000,15.24000,0, !- X,Y,Z ==> Vertex 3 {m} + 15.24000,15.24000,4.572000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall003, !- Name + Wall, !- Surface Type + R13WALL, !- Construction Name + Main Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 15.24000,15.24000,4.572000, !- X,Y,Z ==> Vertex 1 {m} + 15.24000,15.24000,0, !- X,Y,Z ==> Vertex 2 {m} + 0,15.24000,0, !- X,Y,Z ==> Vertex 3 {m} + 0,15.24000,4.572000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Wall004, !- Name + Wall, !- Surface Type + R13WALL, !- Construction Name + Main Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.5000000, !- View Factor to Ground + 4, !- Number of Vertices + 0,15.24000,4.572000, !- X,Y,Z ==> Vertex 1 {m} + 0,15.24000,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,4.572000; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Flr001, !- Name + Floor, !- Surface Type + FLOOR, !- Construction Name + Main Zone, !- Zone Name + Surface, !- Outside Boundary Condition + Zn001:Flr001, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 1.000000, !- View Factor to Ground + 4, !- Number of Vertices + 15.24000,0.000000,0.0, !- X,Y,Z ==> Vertex 1 {m} + 0.000000,0.000000,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.000000,15.24000,0.0, !- X,Y,Z ==> Vertex 3 {m} + 15.24000,15.24000,0.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Zn001:Roof001, !- Name + Roof, !- Surface Type + ROOF31, !- Construction Name + Main Zone, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0, !- View Factor to Ground + 4, !- Number of Vertices + 0.000000,15.24000,4.572, !- X,Y,Z ==> Vertex 1 {m} + 0.000000,0.000000,4.572, !- X,Y,Z ==> Vertex 2 {m} + 15.24000,0.000000,4.572, !- X,Y,Z ==> Vertex 3 {m} + 15.24000,15.24000,4.572; !- X,Y,Z ==> Vertex 4 {m} + + ZoneInfiltration:DesignFlowRate, + Main Zone Infiltration, !- Name + Main Zone, !- Zone or ZoneList Name + System Availability Schedule, !- Schedule Name + Flow/Zone, !- Design Flow Rate Calculation Method + 0.02, !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + , !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 1.0000, !- Constant Term Coefficient + 0.0000, !- Temperature Term Coefficient + 0.0000, !- Velocity Term Coefficient + 0.0000; !- Velocity Squared Term Coefficient + + ScheduleTypeLimits, + Any Number; !- Name + + Schedule:Compact, + System Availability Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 24:00,1; !- Field 3 + + Schedule:Compact, + Fan Availability Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 12:00,1, !- Field 3 + UNTIL: 24:00,0; !- Field 5 + + AirLoopHVAC, + Evap Cooler System, !- Name + , !- Controller List Name + Evap Cooler Availability List, !- Availability Manager List Name + 2.0, !- Design Supply Air Flow Rate {m3/s} + Air Loop Branches, !- Branch List Name + , !- Connector List Name + Supply Inlet Node, !- Supply Side Inlet Node Name + Zone Equipment Outlet Node, !- Demand Side Outlet Node Name + Zone Equipment Inlet Node, !- Demand Side Inlet Node Names + Supply Outlet Node; !- Supply Side Outlet Node Names + + AvailabilityManagerAssignmentList, + Evap Cooler Availability List, !- Name + AvailabilityManager:LowTemperatureTurnOff, !- Availability Manager 1 Object Type + Low Temperature Turn Off Availability Manager, !- Availability Manager 1 Name + AvailabilityManager:HighTemperatureTurnOn, !- Availability Manager 2 Object Type + High Temperature Turn On Availability Manager; !- Availability Manager 2 Name + + AvailabilityManager:LowTemperatureTurnOff, + Low Temperature Turn Off Availability Manager, !- Name + Main Zone Outlet Node, !- Sensor Node Name + 23.0; !- Temperature {C} + + AvailabilityManager:HighTemperatureTurnOn, + High Temperature Turn On Availability Manager, !- Name + Main Zone Outlet Node, !- Sensor Node Name + 27.0; !- Temperature {C} + + BranchList, + Air Loop Branches, !- Name + Air Loop Main Branch; !- Branch 1 Name + + Branch, + Air Loop Main Branch, !- Name + , !- Pressure Drop Curve Name + AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type + Outside Air System, !- Component 1 Name + Supply Inlet Node, !- Component 1 Inlet Node Name + Fan Inlet Node, !- Component 1 Outlet Node Name + Fan:ConstantVolume, !- Component 2 Object Type + Supply Fan, !- Component 2 Name + Fan Inlet Node, !- Component 2 Inlet Node Name + Evap Cooler Inlet Node, !- Component 2 Outlet Node Name + EvaporativeCooler:Direct:CelDekPad, !- Component 3 Object Type + Evaporative Cooler, !- Component 3 Name + Evap Cooler Inlet Node, !- Component 3 Inlet Node Name + Supply Outlet Node; !- Component 3 Outlet Node Name + + AirLoopHVAC:OutdoorAirSystem, + Outside Air System, !- Name + Outside Air System Controllers, !- Controller List Name + Outside Air System Equipment, !- Outdoor Air Equipment List Name + Evap Cooler Availability List; !- Availability Manager List Name + + OutdoorAir:Node, + Outside Air Inlet Node; !- Name + + AirLoopHVAC:ControllerList, + Outside Air System Controllers, !- Name + Controller:OutdoorAir, !- Controller 1 Object Type + Outside Air Controller; !- Controller 1 Name + + Controller:OutdoorAir, + Outside Air Controller, !- Name + Relief Air Outlet Node, !- Relief Air Outlet Node Name + Supply Inlet Node, !- Return Air Node Name + Fan Inlet Node, !- Mixed Air Node Name + Outside Air Inlet Node, !- Actuator Node Name + 2.0, !- Minimum Outdoor Air Flow Rate {m3/s} + 2.0, !- Maximum Outdoor Air Flow Rate {m3/s} + NoEconomizer, !- Economizer Control Type + ModulateFlow, !- Economizer Control Action Type + 19., !- Economizer Maximum Limit Dry-Bulb Temperature {C} + , !- Economizer Maximum Limit Enthalpy {J/kg} + , !- Economizer Maximum Limit Dewpoint Temperature {C} + , !- Electronic Enthalpy Limit Curve Name + 4., !- Economizer Minimum Limit Dry-Bulb Temperature {C} + NoLockout, !- Lockout Type + FixedMinimum; !- Minimum Limit Type + + AirLoopHVAC:OutdoorAirSystem:EquipmentList, + Outside Air System Equipment, !- Name + OutdoorAir:Mixer, !- Component 1 Object Type + Outside Air Mixing Box; !- Component 1 Name + + OutdoorAir:Mixer, + Outside Air Mixing Box, !- Name + Fan Inlet Node, !- Mixed Air Node Name + Outside Air Inlet Node, !- Outdoor Air Stream Node Name + Relief Air Outlet Node, !- Relief Air Stream Node Name + Supply Inlet Node; !- Return Air Stream Node Name + + Fan:ConstantVolume, + Supply Fan, !- Name + Fan Availability Schedule, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 600.0, !- Pressure Rise {Pa} + 2.0, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + Fan Inlet Node, !- Air Inlet Node Name + Evap Cooler Inlet Node; !- Air Outlet Node Name + + EvaporativeCooler:Direct:CelDekPad, + Evaporative Cooler, !- Name + System Availability Schedule, !- Availability Schedule Name + 0.6, !- Direct Pad Area {m2} + 0.2, !- Direct Pad Depth {m} + 225, !- Recirculating Water Pump Power Consumption {W} + Evap Cooler Inlet Node, !- Air Inlet Node Name + Supply Outlet Node, !- Air Outlet Node Name + CONSTANT; !- Control Type + + AirLoopHVAC:SupplyPath, + Zone Supply Air Path, !- Name + Zone Equipment Inlet Node, !- Supply Air Path Inlet Node Name + AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type + Zone Supply Air Splitter;!- Component 1 Name + + AirLoopHVAC:ZoneSplitter, + Zone Supply Air Splitter,!- Name + Zone Equipment Inlet Node, !- Inlet Node Name + Main Zone Inlet Node ATInlet; !- Outlet 1 Node Name + + AirLoopHVAC:ReturnPath, + Zone Return Air Path, !- Name + Zone Equipment Outlet Node, !- Return Air Path Outlet Node Name + AirLoopHVAC:ZoneMixer, !- Component 1 Object Type + Zone Return Air Mixer; !- Component 1 Name + + AirLoopHVAC:ZoneMixer, + Zone Return Air Mixer, !- Name + Zone Equipment Outlet Node, !- Outlet Node Name + Main Zone Outlet Node; !- Inlet 1 Node Name + + ZoneHVAC:EquipmentConnections, + Main Zone, !- Zone Name + Main Zone Equipment, !- Zone Conditioning Equipment List Name + Main Zone Inlet Node, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + Main Zone Node, !- Zone Air Node Name + Main Zone Outlet Node; !- Zone Return Air Node or NodeList Name + + ZoneHVAC:EquipmentList, + Main Zone Equipment, !- Name + SequentialLoad, !- Load Distribution Scheme + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + Main Zone Direct Air ADU,!- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 2, !- Zone Equipment 1 Heating or No-Load Sequence + , !- Zone Equipment 1 Sequential Cooling Fraction Schedule Name + , !- Zone Equipment 1 Sequential Heating Fraction Schedule Name + ZoneHVAC:Baseboard:Convective:Electric, !- Zone Equipment 2 Object Type + Main Zone Baseboard, !- Zone Equipment 2 Name + 2, !- Zone Equipment 2 Cooling Sequence + 1, !- Zone Equipment 2 Heating or No-Load Sequence + , !- Zone Equipment 2 Sequential Cooling Fraction Schedule Name + ; !- Zone Equipment 2 Sequential Heating Fraction Schedule Name + + AirTerminal:SingleDuct:ConstantVolume:NoReheat, + Main Zone Direct Air, !- Name + System Availability Schedule, !- Availability Schedule Name + Main Zone Inlet Node ATInlet, !- Air Inlet Node Name + Main Zone Inlet Node, !- Air Outlet Node Name + 1.5, !- Maximum Air Flow Rate {m3/s} + , !- Design Specification Outdoor Air Object Name + ; !- Per Person Ventilation Rate Mode + + ZoneHVAC:AirDistributionUnit, + Main Zone Direct Air ADU,!- Name + Main Zone Inlet Node, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type + Main Zone Direct Air, !- Air Terminal Name + , !- Nominal Upstream Leakage Fraction + , !- Constant Downstream Leakage Fraction + ; !- Design Specification Air Terminal Sizing Object Name + + ZoneHVAC:Baseboard:Convective:Electric, + Main Zone Baseboard, !- Name + System Availability Schedule, !- Availability Schedule Name + HeatingDesignCapacity, !- Heating Design Capacity Method + 8000, !- Heating Design Capacity {W} + , !- Heating Design Capacity Per Floor Area {W/m2} + , !- Fraction of Autosized Heating Design Capacity + 0.97; !- Efficiency + + ZoneControl:Thermostat, + Main Zone Thermostat, !- Name + Main Zone, !- Zone or ZoneList Name + Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:SingleHeating, !- Control 1 Object Type + Heating Setpoint; !- Control 1 Name + + Schedule:Compact, + Zone Control Type Sched, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1; !- Field 3 + + ThermostatSetpoint:SingleHeating, + Heating Setpoint, !- Name + Heating Setpoint Schedule; !- Setpoint Temperature Schedule Name + + Schedule:Compact, + Heating Setpoint Schedule, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,20.0; !- Field 3 + + Output:VariableDictionary,Regular; + + Output:Surfaces:Drawing,DXF; + + Output:Constructions,Constructions; + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Wetbulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Humidity Ratio,hourly; + + Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + + Output:Variable,*,Zone Mean Air Temperature,Annual; + + Output:Variable,*,Zone Mean Air Temperature,RunPeriod; + + Output:Variable,*,Zone Mean Air Temperature,Environment; + + Output:Variable,*,Zone Mean Air Temperature,Monthly; + + Output:Variable,*,Zone Mean Air Temperature,Daily; + + Output:Variable,*,Zone Mean Air Temperature,Hourly; + + Output:Variable,*,Zone Mean Air Temperature,Timestep; + + Output:Variable,*,Zone Mean Air Temperature,Detailed; + + Output:Variable,Supply Outlet Node,System Node Mass Flow Rate,hourly; + + Output:Variable,*,System Node Temperature,hourly; + + Output:Variable,*,Baseboard Electricity Rate,hourly; + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + OutputControl:Table:Style, + TabAndHTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + + Output:SQLite, + SimpleAndTabular; !- Option Type + diff --git a/resources/utilities/SqlFile/1ZoneEvapCooler-V9-5-0.sql b/resources/utilities/SqlFile/1ZoneEvapCooler-V9-5-0.sql new file mode 100644 index 0000000000..f75d67c0b0 Binary files /dev/null and b/resources/utilities/SqlFile/1ZoneEvapCooler-V9-5-0.sql differ diff --git a/resources/utilities/SqlFile/update_all.sh b/resources/utilities/SqlFile/update_all.sh index ba0cf68626..159ada9e1b 100755 --- a/resources/utilities/SqlFile/update_all.sh +++ b/resources/utilities/SqlFile/update_all.sh @@ -6,7 +6,7 @@ curl_token="-H \"Authorization: token $token\"" # All versions you want to run # declare -a all_versions=("8.5.0" "8.6.0" "8.7.0" "8.8.0" "8.9.0" "9.0.1" "9.1.0" "9.2.0" "9.3.0", "9.4.0") -declare -a all_versions=("9.4.0") +declare -a all_versions=("9.5.0-IOFreeze") # DO NOT RERUN IF SQL ALREADY THERE rerun_if_already_there=false diff --git a/ruby/test/epJSON_Test.rb b/ruby/test/epJSON_Test.rb index 0b1f5c69d3..87a4dd6abb 100644 --- a/ruby/test/epJSON_Test.rb +++ b/ruby/test/epJSON_Test.rb @@ -33,28 +33,41 @@ class EpJSON_Test < MiniTest::Unit::TestCase - # def setup - # end + def setup + + @idfFile = OpenStudio::IdfFile.new("EnergyPlus".to_IddFileType) + building = OpenStudio::IdfObject.new("Building".to_IddObjectType) + building.setName("Building 1") + building.setDouble(1, 0.0) # North Axis + @idfFile.addObject(building) + + @ep_version = Gem::Version.new(OpenStudio::energyPlusVersion) + end # def teardown # end - def test_epJSON - # load IdfFile - idfPath = OpenStudio::Path.new(File.join(File.dirname(__FILE__), "../../resources/energyplus/5ZoneAirCooled/in.idf")) - puts idfPath - assert(OpenStudio::exists(idfPath)) + def common_asserts(json, ep_version) + assert(json["Version"]) + assert(Gem::Version.new(json["Version"]["Version 1"]["version_identifier"]) == ep_version) + assert(json["Building"]) + assert(json["Building"]["Building 1"]["north_axis"] == 0.0) + end - oIdfFile = OpenStudio::IdfFile.load(idfPath,"EnergyPlus".to_IddFileType) - assert(oIdfFile.empty? == false) - idfFile = oIdfFile.get - assert(idfFile.objects().size() > 0) + def test_epJSON_String + + json_str = OpenStudio::EPJSON::toJSONString(@idfFile); + json = JSON.parse(json_str) + + common_asserts(json, @ep_version) + end + + def test_epJSON - json = OpenStudio::EPJSON::toJSONString(idfFile); - obj = JSON.parse(json) - #puts(json) - assert(obj["Version"]["Version 1"]["version_identifier"] == "9.4") + # This should directly convert it to a a hash + json = OpenStudio::EPJSON::toJSON(@idfFile); + common_asserts(json, @ep_version) end end diff --git a/src/energyplus/Resources/LCCusePriceEscalationDataSet2011.idf b/src/energyplus/Resources/LCCusePriceEscalationDataSet2011.idf index 6f0ff3f8a9..57785ff26b 100644 --- a/src/energyplus/Resources/LCCusePriceEscalationDataSet2011.idf +++ b/src/energyplus/Resources/LCCusePriceEscalationDataSet2011.idf @@ -23,7 +23,7 @@ ! converted into EnergyPlus objects using a spreadsheet called ConvertENCOSTtoEnergyPlusLifeCycleCost.xls ! which is available upon request. - Version,9.4; + Version,9.5; LifeCycleCost:UsePriceEscalation, NorthEast Residential-Electricity, !- LCC Price Escalation Name diff --git a/src/epjson/test/epJSONTranslator_GTest.cpp b/src/epjson/test/epJSONTranslator_GTest.cpp index bad6b45226..ae6ab97ddb 100644 --- a/src/epjson/test/epJSONTranslator_GTest.cpp +++ b/src/epjson/test/epJSONTranslator_GTest.cpp @@ -30,7 +30,9 @@ #include #include "epJSONFixture.hpp" #include "../epJSONTranslator.hpp" +#include "../../energyplus/ForwardTranslator.hpp" #include "../../utilities/idf/IdfFile.hpp" +#include "../../utilities/idf/Workspace.hpp" #include "../../utilities/core/ApplicationPathHelpers.hpp" #include "../../utilities/core/PathHelpers.hpp" #include "../../model/Model.hpp" @@ -378,8 +380,12 @@ TEST_F(epJSONFixture, toStringUilityWorksAsExpected) { EXPECT_EQ(str1, str2); } -TEST_F(epJSONFixture, canTranslateModelToJSON) { - const auto str1 = openstudio::epJSON::toJSON(openstudio::model::exampleModel()).toStyledString(); +TEST_F(epJSONFixture, canTranslateWorkspaceToJSON) { + auto m = openstudio::model::exampleModel(); + openstudio::energyplus::ForwardTranslator ft; + openstudio::Workspace w = ft.translateModel(m); + + const auto str1 = openstudio::epJSON::toJSON(w).toStyledString(); EXPECT_TRUE(str1.size() > 100); } diff --git a/src/model/ConstructionAirBoundary.hpp b/src/model/ConstructionAirBoundary.hpp index ec9450a1e6..7dc1446096 100644 --- a/src/model/ConstructionAirBoundary.hpp +++ b/src/model/ConstructionAirBoundary.hpp @@ -71,12 +71,16 @@ namespace model { /** @name Getters */ //@{ + // cppcheck-suppress functionStatic OS_DEPRECATED std::string solarAndDaylightingMethod() const; + // cppcheck-suppress functionStatic OS_DEPRECATED bool isSolarAndDaylightingMethodDefaulted() const; + // cppcheck-suppress functionStatic OS_DEPRECATED std::string radiantExchangeMethod() const; + // cppcheck-suppress functionStatic OS_DEPRECATED bool isRadiantExchangeMethodDefaulted() const; std::string airExchangeMethod() const; @@ -93,12 +97,16 @@ namespace model { /** @name Setters */ //@{ + // cppcheck-suppress functionStatic OS_DEPRECATED bool setSolarAndDaylightingMethod(const std::string& solarAndDaylightingMethod); + // cppcheck-suppress functionStatic OS_DEPRECATED void resetSolarAndDaylightingMethod(); + // cppcheck-suppress functionStatic OS_DEPRECATED bool setRadiantExchangeMethod(const std::string& radiantExchangeMethod); + // cppcheck-suppress functionStatic OS_DEPRECATED void resetRadiantExchangeMethod(); bool setAirExchangeMethod(const std::string& airExchangeMethod); diff --git a/src/utilities/idf/Test/WorkspaceObject_GTest.cpp b/src/utilities/idf/Test/WorkspaceObject_GTest.cpp index f87030e71f..99648e55e7 100644 --- a/src/utilities/idf/Test/WorkspaceObject_GTest.cpp +++ b/src/utilities/idf/Test/WorkspaceObject_GTest.cpp @@ -571,12 +571,16 @@ TEST_F(IdfFixture, WorkspaceObject_setString) { ASSERT_TRUE(space1.getString(nameIndex)); EXPECT_EQ("Space 1", space1.getString(nameIndex).get()); + EXPECT_TRUE(space2.setString(nameIndex, "SpaceA")); + EXPECT_EQ("SpaceA", space2.getString(nameIndex).get()); + EXPECT_TRUE(space2.setString(nameIndex, "Space 1")); // Setting works, but it should modify it ASSERT_TRUE(space2.getString(nameIndex)); EXPECT_NE("Space 1", space2.getString(nameIndex).get()); + EXPECT_EQ("Space 2", space2.getString(nameIndex).get()); - // That portion is accepted because the level is Draft, not Final - EXPECT_TRUE(space2.setString(nameIndex, "")); + // That portion is not accepted either, even at Draft level + EXPECT_FALSE(space2.setString(nameIndex, "")); ASSERT_TRUE(space2.getString(nameIndex)); - EXPECT_EQ("", space2.getString(nameIndex).get()); + EXPECT_EQ("Space 2", space2.getString(nameIndex).get()); } diff --git a/src/utilities/sql/Test/SqlFile_GTest.cpp b/src/utilities/sql/Test/SqlFile_GTest.cpp index 43355068ba..52187ed499 100644 --- a/src/utilities/sql/Test/SqlFile_GTest.cpp +++ b/src/utilities/sql/Test/SqlFile_GTest.cpp @@ -301,7 +301,21 @@ TEST_F(SqlFileFixture, AnnualTotalCosts) { // SqlResults ep_910 = {195052539.91, 27600.69, 427.17, 324.04, 782.87, 3256405.15, 191767000.0}; // SqlResults ep_920 = {194898706.43, 27595.94, 426.75, 324.25, 782.28, 3256577.21, 191613000.0}; // SqlResults ep_930 = {194906985.51, 27596.57, 426.75, 324.25, 782.28, 3262855.66, 191615000.0}; - SqlResults ep_940 = {191927299.41, 27898.69, 407.55, 361.09, 776.63, 3322855.45, 188575000.0}; + // SqlResults ep_940 = {191927299.41, 27898.69, 407.55, 361.09, 776.63, 3322855.45, 188575000.0}; + SqlResults ep_950 = {191927299.41, 27898.69, 407.55, 361.09, 776.63, 3322855.45, 188575000.0}; + + // To update, cd build/resources, then in Ruby + /* ```ruby + * sqlFile2 = OpenStudio::SqlFile.new('energyplus/Office_With_Many_HVAC_Types/eplusout.sql') + * vals = [] + * vals << sqlFile2.annualTotalUtilityCost().get + * fuelTypes = ["Electricity", "Gas", "DistrictCooling", "DistrictHeating", "Water", "FuelOil_1"] + * fuelTypes.each do |f| + * vals << sqlFile2.annualTotalCost(f.to_FuelType).get + * end + * vals + * ``` + */ // =========== Check that you are within relatively normal ranges compared to previous versions ================= @@ -323,15 +337,15 @@ TEST_F(SqlFileFixture, AnnualTotalCosts) { // =========== Check that within our development based on the current E+ version we do not make the results vary (at all) ================= // Total annual costs for all fuel types - EXPECT_NEAR(ep_940.annualTotalUtilityCost, sqlFile2.annualTotalUtilityCost().get(), 0.03); + EXPECT_NEAR(ep_950.annualTotalUtilityCost, sqlFile2.annualTotalUtilityCost().get(), 0.03); // Costs by fuel type - EXPECT_DOUBLE_EQ(ep_940.annualTotalCost_Electricity, sqlFile2.annualTotalCost(FuelType::Electricity).get()); - EXPECT_DOUBLE_EQ(ep_940.annualTotalCost_Gas, sqlFile2.annualTotalCost(FuelType::Gas).get()); - EXPECT_DOUBLE_EQ(ep_940.annualTotalCost_DistrictCooling, sqlFile2.annualTotalCost(FuelType::DistrictCooling).get()); - EXPECT_DOUBLE_EQ(ep_940.annualTotalCost_DistrictHeating, sqlFile2.annualTotalCost(FuelType::DistrictHeating).get()); - EXPECT_NEAR(ep_940.annualTotalCost_Water, sqlFile2.annualTotalCost(FuelType::Water).get(), 0.03); - EXPECT_DOUBLE_EQ(ep_940.annualTotalCost_FuelOil_1, sqlFile2.annualTotalCost(FuelType::FuelOil_1).get()); + EXPECT_DOUBLE_EQ(ep_950.annualTotalCost_Electricity, sqlFile2.annualTotalCost(FuelType::Electricity).get()); + EXPECT_DOUBLE_EQ(ep_950.annualTotalCost_Gas, sqlFile2.annualTotalCost(FuelType::Gas).get()); + EXPECT_DOUBLE_EQ(ep_950.annualTotalCost_DistrictCooling, sqlFile2.annualTotalCost(FuelType::DistrictCooling).get()); + EXPECT_DOUBLE_EQ(ep_950.annualTotalCost_DistrictHeating, sqlFile2.annualTotalCost(FuelType::DistrictHeating).get()); + EXPECT_NEAR(ep_950.annualTotalCost_Water, sqlFile2.annualTotalCost(FuelType::Water).get(), 0.03); + EXPECT_DOUBLE_EQ(ep_950.annualTotalCost_FuelOil_1, sqlFile2.annualTotalCost(FuelType::FuelOil_1).get()); // These have a relatively high tolerance and shouldn't fail, and they depend on the above values divided by square footage which shouldn't vary // So it's fine to keep it as is @@ -572,6 +586,7 @@ TEST_F(SqlFileFixture, Regressions) { regressionTestSqlFile("1ZoneEvapCooler-V9-2-0.sql", 43.28, 20, 20); regressionTestSqlFile("1ZoneEvapCooler-V9-3-0.sql", 43.28, 20, 20); regressionTestSqlFile("1ZoneEvapCooler-V9-4-0.sql", 43.28, 20, 20); + regressionTestSqlFile("1ZoneEvapCooler-V9-5-0.sql", 43.28, 20, 20); } TEST_F(SqlFileFixture, SqlFile_LeapYear) {