Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -37807,6 +37807,21 @@ OS:OutputControl:ReportingTolerances,
\minimum 0
\maximum 10

OS:OutputControl:ResilienceSummaries,
\memo Specifies methods for resilience reporting variables
\unique-object
A1, \field Handle
\type handle
\required-field
A2; \field Heat Index Algorithm
\note Whether the simplified or the extended method should be used for heat index
\note Simplified: based on regression analysis carried out by Lans P. Rothfusz
\note Extended: Based on paper by Lu & Romps
\type choice
\key Simplified
\key Extended
\required-field

OS:OutputControl:Table:Style,
\memo default style for the OutputControl:Table:Style is comma -- this works well for
\memo importing into spreadsheet programs such as Excel(tm) but not so well for word
Expand Down
3 changes: 3 additions & 0 deletions src/energyplus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ set(${target_name}_src
ForwardTranslator/ForwardTranslateOutsideSurfaceConvectionAlgorithm.cpp
ForwardTranslator/ForwardTranslateOutputControlFiles.cpp
ForwardTranslator/ForwardTranslateOutputControlReportingTolerances.cpp
ForwardTranslator/ForwardTranslateOutputControlResilienceSummaries.cpp
ForwardTranslator/ForwardTranslateOutputControlTableStyle.cpp
ForwardTranslator/ForwardTranslateOutputControlTimestamp.cpp
ForwardTranslator/ForwardTranslateOutputMeter.cpp
Expand Down Expand Up @@ -553,6 +554,7 @@ set(${target_name}_src
ReverseTranslator/ReverseTranslateOtherEquipment.cpp
ReverseTranslator/ReverseTranslateOutputControlFiles.cpp
ReverseTranslator/ReverseTranslateOutputControlReportingTolerances.cpp
ReverseTranslator/ReverseTranslateOutputControlResilienceSummaries.cpp
ReverseTranslator/ReverseTranslateOutputControlTableStyle.cpp
ReverseTranslator/ReverseTranslateOutputControlTimestamp.cpp
ReverseTranslator/ReverseTranslateOutputDebuggingData.cpp
Expand Down Expand Up @@ -775,6 +777,7 @@ set(${target_name}_test_src
Test/Meter_GTest.cpp
Test/OutputControlFiles_GTest.cpp
Test/OutputControlReportingTolerances_GTest.cpp
Test/OutputControlResilienceSummaries_GTest.cpp
Test/OutputControlTableStyle_GTest.cpp
Test/OutputControlTimestamp_GTest.cpp
Test/OutputDebuggingData_GTest.cpp
Expand Down
6 changes: 6 additions & 0 deletions src/energyplus/ForwardTranslator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2300,6 +2300,11 @@ namespace energyplus {
retVal = translateOutputControlReportingTolerances(outputControlReportingTolerances);
break;
}
case openstudio::IddObjectType::OS_OutputControl_ResilienceSummaries: {
auto outputControlResilienceSummaries = modelObject.cast<OutputControlResilienceSummaries>();
retVal = translateOutputControlResilienceSummaries(outputControlResilienceSummaries);
break;
}
case openstudio::IddObjectType::OS_OutputControl_Table_Style: {
auto outputControlTableStyle = modelObject.cast<OutputControlTableStyle>();
retVal = translateOutputControlTableStyle(outputControlTableStyle);
Expand Down Expand Up @@ -3366,6 +3371,7 @@ namespace energyplus {
IddObjectType::OS_ZoneCapacitanceMultiplier_ResearchSpecial,
IddObjectType::OS_OutputControl_Files,
IddObjectType::OS_OutputControl_ReportingTolerances,
IddObjectType::OS_OutputControl_ResilienceSummaries,
IddObjectType::OS_OutputControl_Table_Style,
IddObjectType::OS_OutputControl_Timestamp,
IddObjectType::OS_Output_Constructions,
Expand Down
3 changes: 3 additions & 0 deletions src/energyplus/ForwardTranslator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@ namespace model {
class OutsideSurfaceConvectionAlgorithm;
class OutputControlFiles;
class OutputControlReportingTolerances;
class OutputControlResilienceSummaries;
class OutputControlTableStyle;
class OutputControlTimestamp;
class OutputDebuggingData;
Expand Down Expand Up @@ -1168,6 +1169,8 @@ namespace energyplus {

boost::optional<IdfObject> translateOutputControlReportingTolerances(model::OutputControlReportingTolerances& modelObject);

boost::optional<IdfObject> translateOutputControlResilienceSummaries(model::OutputControlResilienceSummaries& modelObject);

boost::optional<IdfObject> translateOutputControlTableStyle(model::OutputControlTableStyle& modelObject);

boost::optional<IdfObject> translateOutputControlTimestamp(model::OutputControlTimestamp& modelObject);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/***********************************************************************************************************************
* OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
* See also https://openstudio.net/license
***********************************************************************************************************************/

#include "../ForwardTranslator.hpp"
#include "../../model/Model.hpp"

#include "../../model/OutputControlResilienceSummaries.hpp"

#include <utilities/idd/OutputControl_ResilienceSummaries_FieldEnums.hxx>
#include <utilities/idd/IddEnums.hxx>

using namespace openstudio::model;

namespace openstudio {

namespace energyplus {

boost::optional<IdfObject> ForwardTranslator::translateOutputControlResilienceSummaries(model::OutputControlResilienceSummaries& modelObject) {

IdfObject idfObject = createAndRegisterIdfObject(openstudio::IddObjectType::OutputControl_ResilienceSummaries, modelObject);

idfObject.setString(OutputControl_ResilienceSummariesFields::HeatIndexAlgorithm, modelObject.heatIndexAlgorithm());

return idfObject;
}

} // end namespace energyplus
} // end namespace openstudio
4 changes: 4 additions & 0 deletions src/energyplus/ReverseTranslator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -716,6 +716,10 @@ namespace energyplus {
modelObject = translateOutputControlReportingTolerances(workspaceObject);
break;
}
case openstudio::IddObjectType::OutputControl_ResilienceSummaries: {
modelObject = translateOutputControlResilienceSummaries(workspaceObject);
break;
}
case openstudio::IddObjectType::OutputControl_Table_Style: {
modelObject = translateOutputControlTableStyle(workspaceObject);
break;
Expand Down
2 changes: 2 additions & 0 deletions src/energyplus/ReverseTranslator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,8 @@ namespace energyplus {

boost::optional<model::ModelObject> translateOutputControlReportingTolerances(const WorkspaceObject& workspaceObject);

boost::optional<model::ModelObject> translateOutputControlResilienceSummaries(const WorkspaceObject& workspaceObject);

boost::optional<model::ModelObject> translateOutputControlTableStyle(const WorkspaceObject& workspaceObject);

boost::optional<model::ModelObject> translateOutputControlTimestamp(const WorkspaceObject& workspaceObject);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/***********************************************************************************************************************
* OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
* See also https://openstudio.net/license
***********************************************************************************************************************/

#include "../ReverseTranslator.hpp"

#include "../../model/OutputControlResilienceSummaries.hpp"
#include "../../model/OutputControlResilienceSummaries_Impl.hpp"

#include <utilities/idd/OutputControl_ResilienceSummaries_FieldEnums.hxx>
#include <utilities/idd/IddEnums.hxx>

using namespace openstudio::model;

namespace openstudio {

namespace energyplus {

boost::optional<ModelObject> ReverseTranslator::translateOutputControlResilienceSummaries(const WorkspaceObject& workspaceObject) {
boost::optional<ModelObject> result;

if (boost::optional<std::string> heatIndexAlgorithm_ =
workspaceObject.getString(OutputControl_ResilienceSummariesFields::HeatIndexAlgorithm, false, true)) {
// This is a Unique ModelObject
auto modelObject = m_model.getUniqueModelObject<OutputControlResilienceSummaries>();
modelObject.setHeatIndexAlgorithm(*heatIndexAlgorithm_);
result = modelObject;
}

return result;
}

} // end namespace energyplus
} // end namespace openstudio
104 changes: 104 additions & 0 deletions src/energyplus/Test/OutputControlResilienceSummaries_GTest.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/***********************************************************************************************************************
* OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
* See also https://openstudio.net/license
***********************************************************************************************************************/

#include <gtest/gtest.h>
#include "EnergyPlusFixture.hpp"

#include "../ForwardTranslator.hpp"
#include "../ReverseTranslator.hpp"

#include "../../model/Model.hpp"
#include "../../model/OutputControlResilienceSummaries.hpp"
#include "../../model/OutputControlResilienceSummaries_Impl.hpp"

#include "../../utilities/idf/IdfFile.hpp"
#include "../../utilities/idf/Workspace.hpp"
#include "../../utilities/idf/IdfObject.hpp"
#include "../../utilities/idf/WorkspaceObject.hpp"

#include <utilities/idd/OutputControl_ResilienceSummaries_FieldEnums.hxx>
#include <utilities/idd/IddEnums.hxx>

using namespace openstudio::energyplus;
using namespace openstudio::model;
using namespace openstudio;

TEST_F(EnergyPlusFixture, ForwardTranslator_OutputControlResilienceSummaries) {

ForwardTranslator ft;

// Create a model
Model m;

// Not there: IDF doesn't have it either
{
Workspace w = ft.translateModel(m);

WorkspaceObjectVector idfObjs = w.getObjectsByType(IddObjectType::OutputControl_ResilienceSummaries);
EXPECT_EQ(0, idfObjs.size());
}

// Get the unique object
OutputControlResilienceSummaries outputControlResilienceSummaries = m.getUniqueModelObject<OutputControlResilienceSummaries>();
EXPECT_EQ("Simplified", outputControlResilienceSummaries.heatIndexAlgorithm());
{
Workspace w = ft.translateModel(m);

WorkspaceObjectVector idfObjs = w.getObjectsByType(IddObjectType::OutputControl_ResilienceSummaries);
ASSERT_EQ(1, idfObjs.size());
auto const& idf_rs = idfObjs.front();

EXPECT_EQ("Simplified", idf_rs.getString(OutputControl_ResilienceSummariesFields::HeatIndexAlgorithm).get());
}
{
EXPECT_TRUE(outputControlResilienceSummaries.setHeatIndexAlgorithm("Extended"));
Workspace w = ft.translateModel(m);

WorkspaceObjectVector idfObjs = w.getObjectsByType(IddObjectType::OutputControl_ResilienceSummaries);
ASSERT_EQ(1, idfObjs.size());
auto const& idf_rs = idfObjs.front();

EXPECT_EQ("Extended", idf_rs.getString(OutputControl_ResilienceSummariesFields::HeatIndexAlgorithm).get());
}
}

TEST_F(EnergyPlusFixture, ReverseTranslator_OutputControlResilienceSummaries) {

ReverseTranslator rt;

Workspace w(StrictnessLevel::Minimal, IddFileType::EnergyPlus);

// Not there, Model shouldn't have it either
{
Model m = rt.translateWorkspace(w);
EXPECT_FALSE(m.getOptionalUniqueModelObject<OutputControlResilienceSummaries>());
}

OptionalWorkspaceObject _i_outputControlResilienceSummaries = w.addObject(IdfObject(IddObjectType::OutputControl_ResilienceSummaries));
ASSERT_TRUE(_i_outputControlResilienceSummaries);

// There but no keys, Model shouldn't have it either
{
Model m = rt.translateWorkspace(w);
EXPECT_FALSE(m.getOptionalUniqueModelObject<OutputControlResilienceSummaries>());
}

_i_outputControlResilienceSummaries->setString(OutputControl_ResilienceSummariesFields::HeatIndexAlgorithm, "Simplified");

{
Model m = rt.translateWorkspace(w);
ASSERT_TRUE(m.getOptionalUniqueModelObject<OutputControlResilienceSummaries>());
auto outputControlResilienceSummaries = m.getUniqueModelObject<OutputControlResilienceSummaries>();
EXPECT_EQ("Simplified", outputControlResilienceSummaries.heatIndexAlgorithm());
}

_i_outputControlResilienceSummaries->setString(OutputControl_ResilienceSummariesFields::HeatIndexAlgorithm, "Extended");
{
Model m = rt.translateWorkspace(w);
ASSERT_TRUE(m.getOptionalUniqueModelObject<OutputControlResilienceSummaries>());
auto outputControlResilienceSummaries = m.getUniqueModelObject<OutputControlResilienceSummaries>();
EXPECT_EQ("Extended", outputControlResilienceSummaries.heatIndexAlgorithm());
}
}
4 changes: 4 additions & 0 deletions src/model/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1075,6 +1075,9 @@ set(${target_name}_src
OutputControlReportingTolerances.hpp
OutputControlReportingTolerances_Impl.hpp
OutputControlReportingTolerances.cpp
OutputControlResilienceSummaries.hpp
OutputControlResilienceSummaries_Impl.hpp
OutputControlResilienceSummaries.cpp
OutputControlTableStyle.hpp
OutputControlTableStyle_Impl.hpp
OutputControlTableStyle.cpp
Expand Down Expand Up @@ -2189,6 +2192,7 @@ set(${target_name}_test_src
test/OtherEquipment_GTest.cpp
test/OutputControlFiles_GTest.cpp
test/OutputControlReportingTolerances_GTest.cpp
test/OutputControlResilienceSummaries_GTest.cpp
test/OutputControlTableStyle_GTest.cpp
test/OutputControlTimestamp_GTest.cpp
test/OutputDebuggingData_GTest.cpp
Expand Down
2 changes: 2 additions & 0 deletions src/model/ConcreteModelObjects.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@
#include "OtherEquipmentDefinition.hpp"
#include "OutputControlFiles.hpp"
#include "OutputControlReportingTolerances.hpp"
#include "OutputControlResilienceSummaries.hpp"
#include "OutputControlTableStyle.hpp"
#include "OutputControlTimestamp.hpp"
#include "OutputDebuggingData.hpp"
Expand Down Expand Up @@ -885,6 +886,7 @@
#include "OtherEquipmentDefinition_Impl.hpp"
#include "OutputControlFiles_Impl.hpp"
#include "OutputControlReportingTolerances_Impl.hpp"
#include "OutputControlResilienceSummaries_Impl.hpp"
#include "OutputControlTableStyle_Impl.hpp"
#include "OutputControlTimestamp_Impl.hpp"
#include "OutputDebuggingData_Impl.hpp"
Expand Down
Loading