From 40b5b2a9e80cccd0e9280df9d358f4203f1a3ec9 Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Tue, 29 Dec 2020 20:12:07 -0500 Subject: [PATCH 01/16] Add moisture source object to IDD --- idd/Energy+.idd.in | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/idd/Energy+.idd.in b/idd/Energy+.idd.in index c0f94b3bbde..9d274a9ded4 100644 --- a/idd/Energy+.idd.in +++ b/idd/Energy+.idd.in @@ -8862,6 +8862,64 @@ ConstructionProperty:InternalHeatSource, \note 0.0 means in line with the tubing, 1.0 means at the midpoint between two adjacent pipes \note this field is ignored for 1-D calculations +ConstructionProperty:InternalMoistureSource, + \memo HeatBalanceAlgorithm = CombinedHeatAndMoistureFiniteElement solution algorithm only. + \memo Adds moisture source to selected layer inside the component. + \memo Has no effect with other HeatBalanceAlgorithm solution algorithms + A1, \field Name + \required-field + \type alpha + \reference InternalMoistureSourceNames + A2, \field Construction Name + \type object-list + \object-list ConstructionNames + N1, \field Moisture Source Present In Layer Number + \required-field + \type integer + \minimum 1 + \maximum 10 + \note Layer number to which the moisture source should be applied (from outside to inside) + \note refers to the list of layers specified for the construction applied to the above surface + \note If a source occurs on a layer surface, the layer should be split into two layers (thin where source occurs) and the source added to the thin layer + A3, \field Source Type + \required-field + \type choice + \key UserDefined + \key StackAndOverPressure + \key AirflowNetwork + \note Type of Moisture Source Calculation + \note UserDefined: User defined input of air flow through component + \note StackAndOverPressure: Calculation of dynamic air flow through component due to stack effect and ventilation overpressure (according to Kuenzel, Zirkelbach and Schafazcek 2012) + \note AirflowNetwork: Calculation of dynamic air flow through component with AirflowNetwork model + N2, \field Air Flow Rate + \units m/s + \type real + \minimum -0.001 + \maximum 0.001 + \note Air flux density in m3 per m2 and second. + \note Only required for Source Type UserDefined. + N3, \field Stack Height + \units m + \type real + \minimum 0 + \maximum 100 + \note Height of the connected airspace in the building envelope element + \note Only required for Source Type StackAndOverPressure. + N4, \field Component Air Permeance + \units m/s + \type real + \minimum 0 + \maximum 1 + \note Moisture specific air permeance of the component in m3 per m2, hour and Pascal. + \note Only required for Source Type StackAndOverPressure. + N5; \field Mechanical Ventilation Overpressure + \units Pa + \type real + \minimum 0 + \maximum 100 + \note Constant mechanical ventilation overpressure in Pascal. + \note Only required for Source Type StackAndOverPressure. + Construction:AirBoundary, \memo Indicates an open boundary between two zones. It may be used for base surfaces and fenestration surfaces. \memo The two adjacent zones are grouped together for solar, daylighting and radiant exchange. From 07f618f739c133a2b2df18c7c00094b25f9ec3f2 Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 30 Dec 2020 00:17:11 -0500 Subject: [PATCH 02/16] Add object and input code --- src/EnergyPlus/HeatBalanceHAMTManager.cc | 293 ++++++++++++++++++----- src/EnergyPlus/HeatBalanceHAMTManager.hh | 35 +++ src/EnergyPlus/HeatBalanceManager.cc | 1 + 3 files changed, 269 insertions(+), 60 deletions(-) diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.cc b/src/EnergyPlus/HeatBalanceHAMTManager.cc index 833132e1759..2f447a1222b 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.cc +++ b/src/EnergyPlus/HeatBalanceHAMTManager.cc @@ -176,6 +176,7 @@ namespace HeatBalanceHAMTManager { // Object Data Array1D cells; + Array1D sources; // Functions @@ -246,6 +247,7 @@ namespace HeatBalanceHAMTManager { static std::string const cHAMTObject5("MaterialProperty:HeatAndMoistureTransfer:Diffusion"); static std::string const cHAMTObject6("MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity"); static std::string const cHAMTObject7("SurfaceProperties:VaporCoefficients"); + static std::string const cHAMTObject8("ConstructionProperty:InternalMoistureSource"); // SUBROUTINE LOCAL VARIABLE DECLARATIONS: @@ -375,7 +377,8 @@ namespace HeatBalanceHAMTManager { continue; } if (state.dataMaterial->Material(matid).ROnly) { - ShowWarningError(state, cHAMTObject1 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); + ShowWarningError(state, + cHAMTObject1 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); continue; } @@ -407,7 +410,8 @@ namespace HeatBalanceHAMTManager { continue; } if (state.dataMaterial->Material(matid).ROnly) { - ShowWarningError(state, cHAMTObject2 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); + ShowWarningError(state, + cHAMTObject2 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); continue; } @@ -424,7 +428,8 @@ namespace HeatBalanceHAMTManager { ++state.dataMaterial->Material(matid).niso; state.dataMaterial->Material(matid).isorh(state.dataMaterial->Material(matid).niso) = rhmax; - state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso) = state.dataMaterial->Material(matid).Porosity * wdensity; + state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso) = + state.dataMaterial->Material(matid).Porosity * wdensity; ++state.dataMaterial->Material(matid).niso; state.dataMaterial->Material(matid).isorh(state.dataMaterial->Material(matid).niso) = 0.0; @@ -496,7 +501,8 @@ namespace HeatBalanceHAMTManager { continue; } if (state.dataMaterial->Material(matid).ROnly) { - ShowWarningError(state, cHAMTObject3 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); + ShowWarningError(state, + cHAMTObject3 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); continue; } @@ -511,8 +517,10 @@ namespace HeatBalanceHAMTManager { } ++state.dataMaterial->Material(matid).nsuc; - state.dataMaterial->Material(matid).sucwater(state.dataMaterial->Material(matid).nsuc) = state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); - state.dataMaterial->Material(matid).sucdata(state.dataMaterial->Material(matid).nsuc) = state.dataMaterial->Material(matid).sucdata(state.dataMaterial->Material(matid).nsuc - 1); + state.dataMaterial->Material(matid).sucwater(state.dataMaterial->Material(matid).nsuc) = + state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); + state.dataMaterial->Material(matid).sucdata(state.dataMaterial->Material(matid).nsuc) = + state.dataMaterial->Material(matid).sucdata(state.dataMaterial->Material(matid).nsuc - 1); } HAMTitems = inputProcessor->getNumObjectsFound(state, cHAMTObject4); // MaterialProperty:HeatAndMoistureTransfer:Redistribution @@ -538,7 +546,8 @@ namespace HeatBalanceHAMTManager { continue; } if (state.dataMaterial->Material(matid).ROnly) { - ShowWarningError(state, cHAMTObject4 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); + ShowWarningError(state, + cHAMTObject4 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); continue; } Numid = 1; @@ -552,8 +561,10 @@ namespace HeatBalanceHAMTManager { } ++state.dataMaterial->Material(matid).nred; - state.dataMaterial->Material(matid).redwater(state.dataMaterial->Material(matid).nred) = state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); - state.dataMaterial->Material(matid).reddata(state.dataMaterial->Material(matid).nred) = state.dataMaterial->Material(matid).reddata(state.dataMaterial->Material(matid).nred - 1); + state.dataMaterial->Material(matid).redwater(state.dataMaterial->Material(matid).nred) = + state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); + state.dataMaterial->Material(matid).reddata(state.dataMaterial->Material(matid).nred) = + state.dataMaterial->Material(matid).reddata(state.dataMaterial->Material(matid).nred - 1); } HAMTitems = inputProcessor->getNumObjectsFound(state, cHAMTObject5); // MaterialProperty:HeatAndMoistureTransfer:Diffusion @@ -579,7 +590,8 @@ namespace HeatBalanceHAMTManager { continue; } if (state.dataMaterial->Material(matid).ROnly) { - ShowWarningError(state, cHAMTObject5 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); + ShowWarningError(state, + cHAMTObject5 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); continue; } @@ -595,8 +607,10 @@ namespace HeatBalanceHAMTManager { } ++state.dataMaterial->Material(matid).nmu; - state.dataMaterial->Material(matid).murh(state.dataMaterial->Material(matid).nmu) = state.dataMaterial->Material(matid).isorh(state.dataMaterial->Material(matid).niso); - state.dataMaterial->Material(matid).mudata(state.dataMaterial->Material(matid).nmu) = state.dataMaterial->Material(matid).mudata(state.dataMaterial->Material(matid).nmu - 1); + state.dataMaterial->Material(matid).murh(state.dataMaterial->Material(matid).nmu) = + state.dataMaterial->Material(matid).isorh(state.dataMaterial->Material(matid).niso); + state.dataMaterial->Material(matid).mudata(state.dataMaterial->Material(matid).nmu) = + state.dataMaterial->Material(matid).mudata(state.dataMaterial->Material(matid).nmu - 1); } } @@ -623,7 +637,8 @@ namespace HeatBalanceHAMTManager { continue; } if (state.dataMaterial->Material(matid).ROnly) { - ShowWarningError(state, cHAMTObject6 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); + ShowWarningError(state, + cHAMTObject6 + ' ' + cAlphaFieldNames(1) + "=\"" + AlphaArray(1) + "\" is defined as an R-only value material."); continue; } Numid = 1; @@ -638,8 +653,10 @@ namespace HeatBalanceHAMTManager { } ++state.dataMaterial->Material(matid).ntc; - state.dataMaterial->Material(matid).tcwater(state.dataMaterial->Material(matid).ntc) = state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); - state.dataMaterial->Material(matid).tcdata(state.dataMaterial->Material(matid).ntc) = state.dataMaterial->Material(matid).tcdata(state.dataMaterial->Material(matid).ntc - 1); + state.dataMaterial->Material(matid).tcwater(state.dataMaterial->Material(matid).ntc) = + state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); + state.dataMaterial->Material(matid).tcdata(state.dataMaterial->Material(matid).ntc) = + state.dataMaterial->Material(matid).tcdata(state.dataMaterial->Material(matid).ntc - 1); } } @@ -678,6 +695,105 @@ namespace HeatBalanceHAMTManager { } } + // Internal Moisture Source + auto instances = inputProcessor->epJSON.find(cHAMTObject8); + if (instances != inputProcessor->epJSON.end()) { + int item = 0; + auto &instancesValue = instances.value(); + for (auto instance = instancesValue.begin(); instance != instancesValue.end(); ++instance) { + auto const &fields = instance.value(); + auto const &thisObjectName = UtilityRoutines::MakeUPPERCase(instance.key()); + + std::string construction_name{fields.at("construction_name")}; + int construction_index = UtilityRoutines::FindItemInList(construction_name, state.dataConstruction->Construct); + if (construction_index == 0) { + ShowSevereError(state, + "Did not find matching construction for " + cHAMTObject8 + ' ' + thisObjectName + + ", missing construction = " + construction_name); + ErrorsFound = true; + continue; + } + auto &thisConstruct(state.dataConstruction->Construct(construction_index)); + + int layer_id{fields.at("moisture_source_present_in_layer_number")}; + if ((layer_id >= thisConstruct.TotLayers) || (layer_id <= 0)) { + ShowSevereError(state, "Construction " + thisConstruct.Name + " cannot support a source in layer = " + std::to_string(layer_id)); + ErrorsFound = true; + continue; + } + + Real64 moist_airflow_input{0.0}; + Real64 stack_height{0.0}; + Real64 component_air_permeance{0.0}; + Real64 mechanical_ventilation_overpressure{0.0}; + + std::string source_type{fields.at("source_type")}; + InternalMoistureSource::Type type{InternalMoistureSource::Type::UserDefined}; + if (source_type == "UserDefined") { + auto found = fields.find("air_flow_rate"); + if (found == fields.end()) { + ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Air Flow Rate\" is blank"); + ShowContinueError(state, + "No user defined input for air flow through component found. Internal Moisture Source Type \"UserDefined\" requires this input."); + ErrorsFound = true; + continue; + } else { + moist_airflow_input = found->get(); + } + } else if (source_type == "StackAndOverPressure") { + type = InternalMoistureSource::Type::StackAndOverPressure; + // Stack height + auto found = fields.find("stack_height"); + if (found == fields.end()) { + ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Stack Height\" is blank"); + ShowContinueError(state, + "No user defined input for stack height found. Internal Moisture Source Type \"StackAndOverPressure\" requires this input."); + ErrorsFound = true; + continue; + } else { + stack_height = found->get(); + } + // Component air permeance + found = fields.find("component_air_permeance"); + if (found == fields.end()) { + ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Component Air Permeance\" is blank"); + ShowContinueError(state, + "No user defined input for component air permeance found. Internal Moisture Source Type \"StackAndOverPressure\" requires this input."); + ErrorsFound = true; + continue; + } else { + component_air_permeance = found->get(); + } + // Mechanical ventilation overpressure + found = fields.find("mechanical_ventilation_overpressure"); + if (found == fields.end()) { + ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Mechanical Ventilation Overpressure\" is blank"); + ShowContinueError(state, + "No user defined input for mechanical ventilation overpressure found. Internal Moisture Source Type \"StackAndOverPressure\" requires this input."); + ErrorsFound = true; + continue; + } else { + mechanical_ventilation_overpressure = found->get(); + } + } else if (source_type == "AirflowNetwork") { + type = InternalMoistureSource::Type::AirflowNetwork; + } else { + ShowSevereError(state, cHAMTObject8 + " Source Type = \"" + source_type + "\" is invalid (undefined)."); + ErrorsFound = true; + continue; + } + + // Find all of the surfaces that use a construction + for (int surface_id = 1; surface_id < DataSurfaces::Surface.size(); ++surface_id) { + if (DataSurfaces::Surface[surface_id].Construction == construction_index) { + ++item; + sources.emplace_back(item, surface_id, layer_id, type, moist_airflow_input, stack_height, component_air_permeance, + mechanical_ventilation_overpressure); + } + } + } + } + AlphaArray.deallocate(); cAlphaFieldNames.deallocate(); cNumericFieldNames.deallocate(); @@ -761,7 +877,9 @@ namespace HeatBalanceHAMTManager { for (lid = 1; lid <= state.dataConstruction->Construct(conid).TotLayers; ++lid) { matid = state.dataConstruction->Construct(conid).LayerPoint(lid); if (state.dataMaterial->Material(matid).ROnly) { - ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name + " cannot contain R-only value materials."); + ShowSevereError(state, + RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name + + " cannot contain R-only value materials."); ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + "\"."); ++errorCount; continue; @@ -769,41 +887,49 @@ namespace HeatBalanceHAMTManager { if (state.dataMaterial->Material(matid).nmu < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required Water Vapor Diffusion Resistance Factor (mu) data."); + ShowContinueError(state, + "Reference Material=\"" + state.dataMaterial->Material(matid).Name + + "\" does not have required Water Vapor Diffusion Resistance Factor (mu) data."); ++errorCount; } if (state.dataMaterial->Material(matid).niso < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + "\" does not have required isotherm data."); + ShowContinueError( + state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + "\" does not have required isotherm data."); ++errorCount; } if (state.dataMaterial->Material(matid).nsuc < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required liquid transport coefficient (suction) data."); + ShowContinueError(state, + "Reference Material=\"" + state.dataMaterial->Material(matid).Name + + "\" does not have required liquid transport coefficient (suction) data."); ++errorCount; } if (state.dataMaterial->Material(matid).nred < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required liquid transport coefficient (redistribution) data."); + ShowContinueError(state, + "Reference Material=\"" + state.dataMaterial->Material(matid).Name + + "\" does not have required liquid transport coefficient (redistribution) data."); ++errorCount; } if (state.dataMaterial->Material(matid).ntc < 0) { if (state.dataMaterial->Material(matid).Conductivity > 0) { ShowWarningError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have thermal conductivity data. Using fixed value."); + ShowContinueError(state, + "Reference Material=\"" + state.dataMaterial->Material(matid).Name + + "\" does not have thermal conductivity data. Using fixed value."); state.dataMaterial->Material(matid).ntc = 2; state.dataMaterial->Material(matid).tcwater(1) = 0.0; state.dataMaterial->Material(matid).tcdata(1) = state.dataMaterial->Material(matid).Conductivity; - state.dataMaterial->Material(matid).tcwater(2) = state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); + state.dataMaterial->Material(matid).tcwater(2) = + state.dataMaterial->Material(matid).isodata(state.dataMaterial->Material(matid).niso); state.dataMaterial->Material(matid).tcdata(2) = state.dataMaterial->Material(matid).Conductivity; } else { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + "\" does not have required thermal conductivity data."); + ShowContinueError(state, + "Reference Material=\"" + state.dataMaterial->Material(matid).Name + + "\" does not have required thermal conductivity data."); ++errorCount; } } @@ -811,17 +937,26 @@ namespace HeatBalanceHAMTManager { // convert material water content to RH waterd = state.dataMaterial->Material(matid).iwater * state.dataMaterial->Material(matid).Density; - interp(state.dataMaterial->Material(matid).niso, state.dataMaterial->Material(matid).isodata, state.dataMaterial->Material(matid).isorh, waterd, state.dataMaterial->Material(matid).irh); - - state.dataMaterial->Material(matid).divs = int(state.dataMaterial->Material(matid).Thickness / state.dataMaterial->Material(matid).divsize) + state.dataMaterial->Material(matid).divmin; + interp(state.dataMaterial->Material(matid).niso, + state.dataMaterial->Material(matid).isodata, + state.dataMaterial->Material(matid).isorh, + waterd, + state.dataMaterial->Material(matid).irh); + + state.dataMaterial->Material(matid).divs = + int(state.dataMaterial->Material(matid).Thickness / state.dataMaterial->Material(matid).divsize) + + state.dataMaterial->Material(matid).divmin; if (state.dataMaterial->Material(matid).divs > state.dataMaterial->Material(matid).divmax) { state.dataMaterial->Material(matid).divs = state.dataMaterial->Material(matid).divmax; } // Check length of cell - reduce number of divisions if necessary Real64 const sin_negPIOvr2 = std::sin(-DataGlobalConstants::Pi / 2.0); while (true) { - testlen = - state.dataMaterial->Material(matid).Thickness * ((std::sin(DataGlobalConstants::Pi * (-1.0 / double(state.dataMaterial->Material(matid).divs)) - DataGlobalConstants::Pi / 2.0) / 2.0) - (sin_negPIOvr2 / 2.0)); + testlen = state.dataMaterial->Material(matid).Thickness * + ((std::sin(DataGlobalConstants::Pi * (-1.0 / double(state.dataMaterial->Material(matid).divs)) - + DataGlobalConstants::Pi / 2.0) / + 2.0) - + (sin_negPIOvr2 / 2.0)); if (testlen > adjdist) break; --state.dataMaterial->Material(matid).divs; if (state.dataMaterial->Material(matid).divs < 1) { @@ -923,8 +1058,13 @@ namespace HeatBalanceHAMTManager { // Make cells smaller near the surface cells(cid).length(1) = - state.dataMaterial->Material(matid).Thickness * ((std::sin(DataGlobalConstants::Pi * (-double(did) / double(state.dataMaterial->Material(matid).divs)) - DataGlobalConstants::Pi / 2.0) / 2.0) - - (std::sin(DataGlobalConstants::Pi * (-double(did - 1) / double(state.dataMaterial->Material(matid).divs)) - DataGlobalConstants::Pi / 2.0) / 2.0)); + state.dataMaterial->Material(matid).Thickness * + ((std::sin(DataGlobalConstants::Pi * (-double(did) / double(state.dataMaterial->Material(matid).divs)) - + DataGlobalConstants::Pi / 2.0) / + 2.0) - + (std::sin(DataGlobalConstants::Pi * (-double(did - 1) / double(state.dataMaterial->Material(matid).divs)) - + DataGlobalConstants::Pi / 2.0) / + 2.0)); cells(cid).origin(1) = runor + cells(cid).length(1) / 2.0; runor += cells(cid).length(1); @@ -1005,17 +1145,23 @@ namespace HeatBalanceHAMTManager { surftemp(sid) = 0.0; surfexttemp(sid) = 0.0; surfvp(sid) = 0.0; + SetupOutputVariable( + state, "HAMT Surface Average Water Content Ratio", OutputProcessor::Unit::kg_kg, watertot(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable( + state, "HAMT Surface Inside Face Temperature", OutputProcessor::Unit::C, surftemp(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable( + state, "HAMT Surface Inside Face Relative Humidity", OutputProcessor::Unit::Perc, surfrh(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable( + state, "HAMT Surface Inside Face Vapor Pressure", OutputProcessor::Unit::Pa, surfvp(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable( + state, "HAMT Surface Outside Face Temperature", OutputProcessor::Unit::C, surfexttemp(sid), "Zone", "State", Surface(sid).Name); SetupOutputVariable(state, - "HAMT Surface Average Water Content Ratio", OutputProcessor::Unit::kg_kg, watertot(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable(state, "HAMT Surface Inside Face Temperature", OutputProcessor::Unit::C, surftemp(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable(state, - "HAMT Surface Inside Face Relative Humidity", OutputProcessor::Unit::Perc, surfrh(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable(state, - "HAMT Surface Inside Face Vapor Pressure", OutputProcessor::Unit::Pa, surfvp(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable(state, - "HAMT Surface Outside Face Temperature", OutputProcessor::Unit::C, surfexttemp(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable(state, - "HAMT Surface Outside Face Relative Humidity", OutputProcessor::Unit::Perc, surfextrh(sid), "Zone", "State", Surface(sid).Name); + "HAMT Surface Outside Face Relative Humidity", + OutputProcessor::Unit::Perc, + surfextrh(sid), + "Zone", + "State", + Surface(sid).Name); // write cell origins to initialization output file conid = Surface(sid).Construction; @@ -1213,9 +1359,9 @@ namespace HeatBalanceHAMTManager { cells(IntConcell(sid)).htc = HConvInFD(sid); - cells(Intcell(sid)).Qadds = - Surface(sid).Area * (SurfOpaqQRadSWInAbs(sid) + SurfNetLWRadToSurf(sid) + QHTRadSysSurf(sid) + QCoolingPanelSurf(sid) + QHWBaseboardSurf(sid) + - QSteamBaseboardSurf(sid) + QElecBaseboardSurf(sid) + SurfQRadThermInAbs(sid) + SurfQAdditionalHeatSourceInside(sid)); + cells(Intcell(sid)).Qadds = Surface(sid).Area * (SurfOpaqQRadSWInAbs(sid) + SurfNetLWRadToSurf(sid) + QHTRadSysSurf(sid) + + QCoolingPanelSurf(sid) + QHWBaseboardSurf(sid) + QSteamBaseboardSurf(sid) + + QElecBaseboardSurf(sid) + SurfQRadThermInAbs(sid) + SurfQAdditionalHeatSourceInside(sid)); // Check, Is this per unit area or for the whole wall. // cells(Intcell(sid))%Qadds=QRadSWInAbs(sid)+NetLWRadToSurf(sid)+QHtRadSysSurf(sid)+QRadThermInAbs(sid) @@ -1277,15 +1423,35 @@ namespace HeatBalanceHAMTManager { cells(cid).vpp1 = RHtoVP(state, cells(cid).rhp1, cells(cid).tempp1); cells(cid).vpsat = PsyPsatFnTemp(state, cells(cid).tempp1); if (matid > 0) { - interp( - state.dataMaterial->Material(matid).niso, state.dataMaterial->Material(matid).isorh, state.dataMaterial->Material(matid).isodata, cells(cid).rhp1, cells(cid).water, cells(cid).dwdphi); + interp(state.dataMaterial->Material(matid).niso, + state.dataMaterial->Material(matid).isorh, + state.dataMaterial->Material(matid).isodata, + cells(cid).rhp1, + cells(cid).water, + cells(cid).dwdphi); if (state.dataEnvrn->IsRain && rainswitch) { - interp(state.dataMaterial->Material(matid).nsuc, state.dataMaterial->Material(matid).sucwater, state.dataMaterial->Material(matid).sucdata, cells(cid).water, cells(cid).dw); + interp(state.dataMaterial->Material(matid).nsuc, + state.dataMaterial->Material(matid).sucwater, + state.dataMaterial->Material(matid).sucdata, + cells(cid).water, + cells(cid).dw); } else { - interp(state.dataMaterial->Material(matid).nred, state.dataMaterial->Material(matid).redwater, state.dataMaterial->Material(matid).reddata, cells(cid).water, cells(cid).dw); + interp(state.dataMaterial->Material(matid).nred, + state.dataMaterial->Material(matid).redwater, + state.dataMaterial->Material(matid).reddata, + cells(cid).water, + cells(cid).dw); } - interp(state.dataMaterial->Material(matid).nmu, state.dataMaterial->Material(matid).murh, state.dataMaterial->Material(matid).mudata, cells(cid).rhp1, cells(cid).mu); - interp(state.dataMaterial->Material(matid).ntc, state.dataMaterial->Material(matid).tcwater, state.dataMaterial->Material(matid).tcdata, cells(cid).water, cells(cid).wthermalc); + interp(state.dataMaterial->Material(matid).nmu, + state.dataMaterial->Material(matid).murh, + state.dataMaterial->Material(matid).mudata, + cells(cid).rhp1, + cells(cid).mu); + interp(state.dataMaterial->Material(matid).ntc, + state.dataMaterial->Material(matid).tcwater, + state.dataMaterial->Material(matid).tcdata, + cells(cid).water, + cells(cid).wthermalc); } } @@ -1310,7 +1476,8 @@ namespace HeatBalanceHAMTManager { if (cells(cid).vtc > 0) { vaporr1 = 1.0 / (cells(cid).overlap(ii) * cells(cid).vtc); } else if (cells(cid).matid > 0) { - vaporr1 = (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); + vaporr1 = + (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); } else { vaporr1 = 0.0; } @@ -1326,7 +1493,8 @@ namespace HeatBalanceHAMTManager { if (cells(adj).vtc > 0) { vaporr2 = 1.0 / (cells(cid).overlap(ii) * cells(adj).vtc); } else if (cells(adj).matid > 0) { - vaporr2 = cells(adj).mu * cells(adj).dist(adjl) / (WVDC(cells(adj).tempp1, state.dataEnvrn->OutBaroPress) * cells(cid).overlap(ii)); + vaporr2 = + cells(adj).mu * cells(adj).dist(adjl) / (WVDC(cells(adj).tempp1, state.dataEnvrn->OutBaroPress) * cells(cid).overlap(ii)); } else { vaporr2 = 0.0; } @@ -1374,7 +1542,8 @@ namespace HeatBalanceHAMTManager { format("HAMT: Temperature (high) out of bounds ({:.2R}) for surface={}", tempmax, Surface(sid).Name)); ShowContinueErrorTimeStamp(state, ""); } - ShowRecurringWarningErrorAtEnd(state, "HAMT: Temperature Temperature (high) out of bounds; Surface=" + Surface(sid).Name, + ShowRecurringWarningErrorAtEnd(state, + "HAMT: Temperature Temperature (high) out of bounds; Surface=" + Surface(sid).Name, Surface(sid).HighTempErrCount, tempmax, tempmax, @@ -1397,7 +1566,8 @@ namespace HeatBalanceHAMTManager { ShowSevereMessage(state, format("HAMT: Temperature (low) out of bounds ({:.2R}) for surface={}", tempmin, Surface(sid).Name)); ShowContinueErrorTimeStamp(state, ""); } - ShowRecurringWarningErrorAtEnd(state, "HAMT: Temperature Temperature (high) out of bounds; Surface=" + Surface(sid).Name, + ShowRecurringWarningErrorAtEnd(state, + "HAMT: Temperature Temperature (high) out of bounds; Surface=" + Surface(sid).Name, Surface(sid).HighTempErrCount, tempmin, tempmin, @@ -1430,7 +1600,8 @@ namespace HeatBalanceHAMTManager { if (cells(cid).vtc > 0) { vaporr1 = 1.0 / (cells(cid).overlap(ii) * cells(cid).vtc); } else if (cells(cid).matid > 0) { - vaporr1 = (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); + vaporr1 = + (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); } else { vaporr1 = 0.0; } @@ -1438,7 +1609,8 @@ namespace HeatBalanceHAMTManager { if (cells(adj).vtc > 0) { vaporr2 = 1.0 / (cells(cid).overlap(ii) * cells(adj).vtc); } else if (cells(adj).matid > 0) { - vaporr2 = (cells(adj).dist(adjl) * cells(adj).mu) / (cells(cid).overlap(ii) * WVDC(cells(adj).tempp1, state.dataEnvrn->OutBaroPress)); + vaporr2 = (cells(adj).dist(adjl) * cells(adj).mu) / + (cells(cid).overlap(ii) * WVDC(cells(adj).tempp1, state.dataEnvrn->OutBaroPress)); } else { vaporr2 = 0.0; } @@ -1581,7 +1753,8 @@ namespace HeatBalanceHAMTManager { surfvp(sid) = RHtoVP(state, cells(Intcell(sid)).rh, cells(Intcell(sid)).temp); } - void interp(int const ndata, const Array1D &xx, const Array1D &yy, Real64 const invalue, Real64 &outvalue, Optional outgrad) + void + interp(int const ndata, const Array1D &xx, const Array1D &yy, Real64 const invalue, Real64 &outvalue, Optional outgrad) { // SUBROUTINE INFORMATION: // AUTHOR Phillip Biddulph diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.hh b/src/EnergyPlus/HeatBalanceHAMTManager.hh index b7630f5f7f0..8573e787025 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.hh +++ b/src/EnergyPlus/HeatBalanceHAMTManager.hh @@ -154,8 +154,43 @@ namespace HeatBalanceHAMTManager { } }; + // structure internal moisture source + struct InternalMoistureSource + { + int id; // Internal moisture source id + int surface_id; // Surface id + int layer_id; // Layer id + + //int SourceType; // (1 = air flow input; 2 = infiltration model (Kuenzel); 3 = multi zone air flow model) + enum class Type { UserDefined = 1, StackAndOverPressure, AirflowNetwork}; + Type type; + + // SourceType == 1: Air Flow input + Real64 moist_airflow_input; // moist air flow input for source type 1 in m3 / m2 s + + // Source Type == 2: Air infiltration model + Real64 stack_height; // Stack height in m to create pressure difference for source type 2 + Real64 component_air_permeance; // Component air permeance in + Real64 mechanical_ventilation_overpressure; // Additional mechanical ventilation overpressure in Pa + Real64 delta_pressure; // Pressure difference over component in Pa + + // Source Type == 3: Air flow network + int afn_id; // Id of the component element in the airflow network + + Real64 moist_airflow; + + InternalMoistureSource(int id=-1, int surface_id=-1, int layer_id=-1, Type type=Type::UserDefined, Real64 moist_airflow_input=0.0, Real64 stack_height=0.0, + Real64 component_air_permeance=0.0, Real64 mechanical_ventilation_overpressure=0.0, Real64 delta_pressure=0.0, int afn_id=0, Real64 moist_airflow=0.0) + : id(id), surface_id(surface_id), layer_id(layer_id), type(type), moist_airflow_input(moist_airflow_input), stack_height(stack_height), + component_air_permeance(component_air_permeance), mechanical_ventilation_overpressure(mechanical_ventilation_overpressure), delta_pressure(delta_pressure), + afn_id(afn_id), moist_airflow(moist_airflow) + { + } + }; + // Object Data extern Array1D cells; + extern Array1D sources; // Functions diff --git a/src/EnergyPlus/HeatBalanceManager.cc b/src/EnergyPlus/HeatBalanceManager.cc index 0850eb3ad89..f2e0b0a2205 100644 --- a/src/EnergyPlus/HeatBalanceManager.cc +++ b/src/EnergyPlus/HeatBalanceManager.cc @@ -4480,6 +4480,7 @@ namespace HeatBalanceManager { TotRegConstructs += state.dataBSDFWindow->TotComplexFenStates; } + // Internal heat sources CurrentModuleObject = "ConstructionProperty:InternalHeatSource"; auto instances = inputProcessor->epJSON.find(CurrentModuleObject); From 8bb529d43322d051778fa9d879688d690ff9a41c Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 30 Dec 2020 03:34:29 -0500 Subject: [PATCH 03/16] Test out moving the surface count --- .../include/AirflowNetwork/Elements.hpp | 2 +- .../AirflowNetwork/src/Elements.cpp | 4 +- .../AirflowNetworkBalanceManager.cc | 389 +++++++++--------- .../AirflowNetworkBalanceManager.hh | 304 +++++++------- src/EnergyPlus/HVACManager.cc | 6 +- src/EnergyPlus/SystemAvailabilityManager.cc | 4 +- tst/EnergyPlus/unit/AdvancedAFN.unit.cc | 2 +- .../unit/AirflowNetworkBalanceManager.unit.cc | 56 +-- .../AirflowNetworkSimulationControl.unit.cc | 2 +- .../unit/AirflowNetworkSolver.unit.cc | 2 +- 10 files changed, 393 insertions(+), 378 deletions(-) diff --git a/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp b/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp index 170fa08ecce..0893eec59b0 100644 --- a/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp +++ b/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp @@ -215,7 +215,7 @@ namespace AirflowNetwork { extern int AirflowNetworkNumOfLinks; // Number of links for AirflowNetwork calculation // = NumOfLinksMultiZone+NumOfLinksDistribution // RoomAirManager use - extern int AirflowNetworkNumOfSurfaces; // The number of surfaces for multizone calculation + //extern int AirflowNetworkNumOfSurfaces; // The number of surfaces for multizone calculation extern int AirflowNetworkNumOfZones; // The number of zones for multizone calculation extern bool RollBackFlag; // Roll back flag when system time step down shifting diff --git a/src/EnergyPlus/AirflowNetwork/src/Elements.cpp b/src/EnergyPlus/AirflowNetwork/src/Elements.cpp index a5407ad88db..2a756ab53a9 100644 --- a/src/EnergyPlus/AirflowNetwork/src/Elements.cpp +++ b/src/EnergyPlus/AirflowNetwork/src/Elements.cpp @@ -165,7 +165,7 @@ namespace AirflowNetwork { int AirflowNetworkNumOfLinks(0); // Number of links for AirflowNetwork calculation // = NumOfLinksMultiZone+NumOfLinksDistribution // RoomAirManager use - int AirflowNetworkNumOfSurfaces(0); // The number of surfaces for multizone calculation + //int AirflowNetworkNumOfSurfaces(0); // The number of surfaces for multizone calculation int AirflowNetworkNumOfZones(0); // The number of zones for multizone calculation bool RollBackFlag(false); // Roll back flag when system time step down shifting @@ -3836,7 +3836,7 @@ namespace AirflowNetwork { AirflowNetworkNumOfNodes = 0; AirflowNetworkNumOfComps = 0; AirflowNetworkNumOfLinks = 0; - AirflowNetworkNumOfSurfaces = 0; + //AirflowNetworkNumOfSurfaces = 0; AirflowNetworkNumOfZones = 0; RollBackFlag = false; ANZT.deallocate(); diff --git a/src/EnergyPlus/AirflowNetworkBalanceManager.cc b/src/EnergyPlus/AirflowNetworkBalanceManager.cc index 7c52d6a330d..1e7a74d665c 100644 --- a/src/EnergyPlus/AirflowNetworkBalanceManager.cc +++ b/src/EnergyPlus/AirflowNetworkBalanceManager.cc @@ -104,7 +104,7 @@ namespace EnergyPlus { -namespace AirflowNetworkBalanceManager { +namespace AirflowNetwork { // MODULE INFORMATION: // AUTHOR Lixing Gu, Don Shirey, and Muthusamy V. Swami @@ -2350,10 +2350,10 @@ namespace AirflowNetworkBalanceManager { // *** Read AirflowNetwork simulation surface data CurrentModuleObject = "AirflowNetwork:MultiZone:Surface"; - AirflowNetworkNumOfSurfaces = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); - if (AirflowNetworkNumOfSurfaces > 0) { - MultizoneSurfaceData.allocate(AirflowNetworkNumOfSurfaces); - for (int i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces > 0) { + MultizoneSurfaceData.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces); + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { inputProcessor->getObjectItem(state, CurrentModuleObject, i, @@ -2487,7 +2487,7 @@ namespace AirflowNetworkBalanceManager { if (state.dataGlobal->AnyLocalEnvironmentsInModel && state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfOutAirNode > 0) { for (int i = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfOutAirNode + 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; ++i) { found = false; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (UtilityRoutines::SameString(MultizoneSurfaceData(j).ExternalNodeName, MultizoneExternalNodeData(i).Name)) { found = true; } @@ -2511,7 +2511,7 @@ namespace AirflowNetworkBalanceManager { // ==> Validate AirflowNetwork simulation surface data state.dataAirflowNetworkBalanceManager->NumOfExtNodes = 0; - for (int i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { // Check a valid surface defined earlier MultizoneSurfaceData(i).SurfNum = UtilityRoutines::FindItemInList(MultizoneSurfaceData(i).SurfName, Surface); if (MultizoneSurfaceData(i).SurfNum == 0) { @@ -2757,7 +2757,7 @@ namespace AirflowNetworkBalanceManager { // write outputs in eio file found = true; - for (int i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { if (MultizoneSurfaceData(i).NonRectangular) { if (found) { print(state.files.eio, @@ -2775,7 +2775,7 @@ namespace AirflowNetworkBalanceManager { } // Validate adjacent temperature and Enthalpy control for an interior surface only - for (int i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { if (MultizoneSurfaceData(i).VentSurfCtrNum == VentControlType::AdjTemp) { if (!(Surface(MultizoneSurfaceData(i).SurfNum).ExtBoundCond >= 1)) { ShowSevereError(state, RoutineName + CurrentModuleObject + " object, " + cAlphaFields(1) + " = " + MultizoneSurfaceData(i).SurfName); @@ -2815,7 +2815,7 @@ namespace AirflowNetworkBalanceManager { if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfDetOpenings > 0) { for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfDetOpenings; ++i) { found = false; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (MultizoneCompDetOpeningData(i).name == MultizoneSurfaceData(j).OpeningName) { // MultizoneCompDetOpeningData(i)%Width = Surface(MultizoneSurfaceData(j)%SurfNum)%Width // MultizoneCompDetOpeningData(i)%Height = Surface(MultizoneSurfaceData(j)%SurfNum)%Height @@ -2834,7 +2834,7 @@ namespace AirflowNetworkBalanceManager { // Check status of control level for each surface with an opening j = 0; CurrentModuleObject = "AirflowNetwork:MultiZone:Surface"; - for (int i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { if (MultizoneSurfaceData(i).SurfNum == 0) continue; bool has_Opening{false}; // This is terrible, should not do it this way @@ -2979,7 +2979,7 @@ namespace AirflowNetworkBalanceManager { if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSimOpenings > 0) { for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSimOpenings; ++i) { found = false; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (MultizoneCompSimpleOpeningData(i).name == MultizoneSurfaceData(j).OpeningName) { // MultizoneCompSimpleOpeningData(i)%Width = Surface(MultizoneSurfaceData(j)%SurfNum)%Width // MultizoneCompSimpleOpeningData(i)%Height = Surface(MultizoneSurfaceData(j)%SurfNum)%Height @@ -3029,7 +3029,7 @@ namespace AirflowNetworkBalanceManager { if (UtilityRoutines::SameString(AirflowNetworkSimu.WPCCntr, "SurfaceAverageCalculation") || UtilityRoutines::SameString(AirflowNetworkSimu.HeightOption, "OpeningHeight")) { for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; ++i) { - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (Surface(MultizoneSurfaceData(j).SurfNum).ExtBoundCond == ExternalEnvironment || (Surface(MultizoneSurfaceData(j).SurfNum).ExtBoundCond == OtherSideCoefNoCalcExt && Surface(MultizoneSurfaceData(j).SurfNum).ExtWind)) { @@ -3044,7 +3044,7 @@ namespace AirflowNetworkBalanceManager { // Assign external node azimuth, should consider combining this with the above to avoid the repeated search for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; ++i) { - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (Surface(MultizoneSurfaceData(j).SurfNum).ExtBoundCond == ExternalEnvironment || (Surface(MultizoneSurfaceData(j).SurfNum).ExtBoundCond == OtherSideCoefNoCalcExt && Surface(MultizoneSurfaceData(j).SurfNum).ExtWind)) { @@ -3109,7 +3109,7 @@ namespace AirflowNetworkBalanceManager { ShowFatalError(state, RoutineName + "Errors found getting inputs. Previous error(s) cause program termination."); } // If zone node number =0, exit. - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (MultizoneSurfaceData(j).NodeNums[0] == 0 && ErrorsFound) { ShowFatalError(state, RoutineName + "Errors found getting inputs. Previous error(s) cause program termination."); } @@ -3124,7 +3124,7 @@ namespace AirflowNetworkBalanceManager { ZoneCheck = 0; ZoneBCCheck = 0; CurrentModuleObject = "AirflowNetwork:MultiZone:Surface"; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (MultizoneSurfaceData(j).NodeNums[0] <= AirflowNetworkNumOfZones) { ++ZoneCheck(MultizoneSurfaceData(j).NodeNums[0]); ZoneBCCheck(MultizoneSurfaceData(j).NodeNums[0]) = MultizoneSurfaceData(j).NodeNums[1]; @@ -3149,7 +3149,7 @@ namespace AirflowNetworkBalanceManager { } if (ZoneCheck(i) > 1) { SurfaceFound = false; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (MultizoneSurfaceData(j).NodeNums[0] == i) { if (ZoneBCCheck(i) != MultizoneSurfaceData(j).NodeNums[1]) { SurfaceFound = true; @@ -3198,7 +3198,7 @@ namespace AirflowNetworkBalanceManager { } // Assign occupant ventilation control number from zone to surface - for (int i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { j = MultizoneSurfaceData(i).SurfNum; if (SurfWinOriginalClass(j) == SurfaceClass::Window || SurfWinOriginalClass(j) == SurfaceClass::Door || SurfWinOriginalClass(j) == SurfaceClass::GlassDoor) { @@ -3312,8 +3312,10 @@ namespace AirflowNetworkBalanceManager { // Perform simple test first.The comprehensive input validation will occur later // Check valid surface name IntraZoneLinkageData(i).SurfaceName = Alphas(5); - IntraZoneLinkageData(i).LinkNum = UtilityRoutines::FindItemInList( - Alphas(5), MultizoneSurfaceData, &MultizoneSurfaceProp::SurfName, AirflowNetworkNumOfSurfaces); + IntraZoneLinkageData(i).LinkNum = UtilityRoutines::FindItemInList(Alphas(5), + MultizoneSurfaceData, + &MultizoneSurfaceProp::SurfName, + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces); if (IntraZoneLinkageData(i).LinkNum == 0) { ShowSevereError(state, RoutineName + CurrentModuleObject + "='" + Alphas(1) + "': Invalid " + cAlphaFields(5) + " given = " + Alphas(5) + " in AirflowNetwork:MultiZone:Surface objects"); @@ -3768,7 +3770,7 @@ namespace AirflowNetworkBalanceManager { } else { NumOfNodesMultiZone = AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->NumOfExtNodes; } - NumOfLinksMultiZone = AirflowNetworkNumOfSurfaces; + NumOfLinksMultiZone = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; AirflowNetworkNumOfNodes = NumOfNodesMultiZone; if (NumOfNodesIntraZone > 0) AirflowNetworkNumOfNodes = AirflowNetworkNumOfNodes + NumOfNodesIntraZone; AirflowNetworkNumOfLinks = NumOfLinksMultiZone; @@ -4132,7 +4134,8 @@ namespace AirflowNetworkBalanceManager { state.dataAirflowNetworkBalanceManager->DisSysNumOfLinks = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); if (state.dataAirflowNetworkBalanceManager->DisSysNumOfLinks > 0 && SimulateAirflowNetwork > AirflowNetworkControlMultizone) { // Multizone + Distribution AirflowNetworkNumOfLinks = NumOfLinksMultiZone + state.dataAirflowNetworkBalanceManager->DisSysNumOfLinks; - AirflowNetworkLinkageData.allocate(state.dataAirflowNetworkBalanceManager->DisSysNumOfLinks + AirflowNetworkNumOfSurfaces); + AirflowNetworkLinkageData.allocate(state.dataAirflowNetworkBalanceManager->DisSysNumOfLinks + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces); } else { // Multizone + IntraZone only // AirflowNetworkLinkageData.allocate( AirflowNetworkNumOfSurfaces ); AirflowNetworkLinkageData.allocate(AirflowNetworkNumOfLinks); @@ -4140,7 +4143,7 @@ namespace AirflowNetworkBalanceManager { // Assign Multizone linkage based on surfaces, by assuming every surface has a crack or opening j = 0; - for (count = 1; count <= AirflowNetworkNumOfSurfaces; ++count) { + for (count = 1; count <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++count) { if (MultizoneSurfaceData(count).SurfNum == 0) continue; AirflowNetworkLinkageData(count).Name = MultizoneSurfaceData(count).SurfName; AirflowNetworkLinkageData(count).NodeNums[0] = MultizoneSurfaceData(count).NodeNums[0]; @@ -4286,15 +4289,23 @@ namespace AirflowNetworkBalanceManager { } // Assign intrazone links - for (count = 1 + AirflowNetworkNumOfSurfaces; count <= NumOfLinksIntraZone + AirflowNetworkNumOfSurfaces; ++count) { - AirflowNetworkLinkageData(count).Name = IntraZoneLinkageData(count - AirflowNetworkNumOfSurfaces).Name; - AirflowNetworkLinkageData(count).NodeNums[0] = IntraZoneLinkageData(count - AirflowNetworkNumOfSurfaces).NodeNums[0]; - AirflowNetworkLinkageData(count).NodeNums[1] = IntraZoneLinkageData(count - AirflowNetworkNumOfSurfaces).NodeNums[1]; - AirflowNetworkLinkageData(count).CompName = IntraZoneLinkageData(count - AirflowNetworkNumOfSurfaces).CompName; + for (count = 1 + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; + count <= NumOfLinksIntraZone + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; + ++count) { + AirflowNetworkLinkageData(count).Name = + IntraZoneLinkageData(count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces).Name; + AirflowNetworkLinkageData(count).NodeNums[0] = + IntraZoneLinkageData(count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces).NodeNums[0]; + AirflowNetworkLinkageData(count).NodeNums[1] = + IntraZoneLinkageData(count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces).NodeNums[1]; + AirflowNetworkLinkageData(count).CompName = + IntraZoneLinkageData(count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces).CompName; AirflowNetworkLinkageData(count).ZoneNum = 0; AirflowNetworkLinkageData(count).LinkNum = count; - AirflowNetworkLinkageData(count).NodeHeights[0] = IntraZoneLinkageData(count - AirflowNetworkNumOfSurfaces).NodeHeights[0]; - AirflowNetworkLinkageData(count).NodeHeights[1] = IntraZoneLinkageData(count - AirflowNetworkNumOfSurfaces).NodeHeights[1]; + AirflowNetworkLinkageData(count).NodeHeights[0] = + IntraZoneLinkageData(count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces).NodeHeights[0]; + AirflowNetworkLinkageData(count).NodeHeights[1] = + IntraZoneLinkageData(count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces).NodeHeights[1]; // Find component number auto afe = solver.elements.find(AirflowNetworkLinkageData(count).CompName); if (afe != solver.elements.end()) { @@ -4321,8 +4332,9 @@ namespace AirflowNetworkBalanceManager { } // Reset AirflowNetworkNumOfSurfaces by including NumOfLinksIntraZone - AirflowNetworkNumOfSurfaces = AirflowNetworkNumOfSurfaces + NumOfLinksIntraZone; - if (NumOfLinksIntraZone > 0) NumOfLinksMultiZone = AirflowNetworkNumOfSurfaces; + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces = + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces + NumOfLinksIntraZone; + if (NumOfLinksIntraZone > 0) NumOfLinksMultiZone = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; // Assign AirflowNetwork info in RoomAirflowNetworkZoneInfo if (NumOfNodesIntraZone > 0) { @@ -4331,7 +4343,7 @@ namespace AirflowNetworkBalanceManager { AirflowNetworkNodeData(i).NumOfLinks = 0; if (n > 0 && AirflowNetworkNodeData(i).RAFNNodeNum > 0) { state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(n).Node(AirflowNetworkNodeData(i).RAFNNodeNum).AirflowNetworkNodeID = i; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (AirflowNetworkLinkageData(j).NodeNums[0] == i) { AirflowNetworkNodeData(i).NumOfLinks = AirflowNetworkNodeData(i).NumOfLinks + 1; } else if (AirflowNetworkLinkageData(j).NodeNums[1] == i) { @@ -4346,7 +4358,7 @@ namespace AirflowNetworkBalanceManager { state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(n).Node(j).NumOfAirflowLinks = AirflowNetworkNodeData(i).NumOfLinks; state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(n).Node(j).Link.allocate(AirflowNetworkNodeData(i).NumOfLinks); k = 1; - for (m = 1; m <= AirflowNetworkNumOfSurfaces; ++m) { + for (m = 1; m <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++m) { if (AirflowNetworkLinkageData(m).NodeNums[0] == i) { state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(n).Node(j).Link(k).AirflowNetworkLinkSimuID = m; state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(n).Node(j).Link(k).AirflowNetworkLinkageDataID = m; @@ -4371,11 +4383,11 @@ namespace AirflowNetworkBalanceManager { for (auto &e : AirflowNetworkLinkageData) e.ZoneNum = 0; - for (count = AirflowNetworkNumOfSurfaces + 1; count <= AirflowNetworkNumOfLinks; ++count) { + for (count = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces + 1; count <= AirflowNetworkNumOfLinks; ++count) { inputProcessor->getObjectItem(state, CurrentModuleObject, - count - AirflowNetworkNumOfSurfaces, + count - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces, Alphas, NumAlphas, Numbers, @@ -4539,7 +4551,7 @@ namespace AirflowNetworkBalanceManager { } } if (!NodeFound) { - if (count <= AirflowNetworkNumOfSurfaces) { + if (count <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces) { ShowSevereError(state, RoutineName + AirflowNetworkLinkageData(count).NodeNames[0] + " in AIRFLOWNETWORK:MULTIZONE:SURFACE = " + AirflowNetworkLinkageData(count).Name + " is not found"); } else { @@ -4556,7 +4568,7 @@ namespace AirflowNetworkBalanceManager { } } if (!NodeFound) { - if (count <= AirflowNetworkNumOfSurfaces) { + if (count <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces) { ShowSevereError(state, RoutineName + AirflowNetworkLinkageData(count).NodeNames[0] + " in AIRFLOWNETWORK:MULTIZONE:SURFACE = " + AirflowNetworkLinkageData(count).Name + " is not found"); } else { @@ -4627,7 +4639,7 @@ namespace AirflowNetworkBalanceManager { } if (AirflowNetworkSimu.iWPCCntr == iWPCCntr_Input) { - for (count = 1; count <= AirflowNetworkNumOfSurfaces; ++count) { + for (count = 1; count <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++count) { if (AirflowNetworkLinkageData(count).NodeNums[0] == 0) { ShowSevereError(state, "The surface is not found in AIRFLOWNETWORK:MULTIZONE:SURFACE = " + AirflowNetworkLinkageData(count).Name); ErrorsFound = true; @@ -4690,7 +4702,7 @@ namespace AirflowNetworkBalanceManager { // Check node assignments using AirflowNetwork:Distribution:Component:OutdoorAirFlow or // AirflowNetwork:Distribution:Component:ReliefAirFlow - for (count = AirflowNetworkNumOfSurfaces + 1; count <= AirflowNetworkNumOfLinks; ++count) { + for (count = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces + 1; count <= AirflowNetworkNumOfLinks; ++count) { int i = AirflowNetworkLinkageData(count).CompNum; j = AirflowNetworkLinkageData(count).NodeNums[0]; k = AirflowNetworkLinkageData(count).NodeNums[1]; @@ -4778,7 +4790,7 @@ namespace AirflowNetworkBalanceManager { if (initializeOneTimeFlag) { exchangeData.allocate(state.dataGlobal->NumOfZones); // AirflowNetwork exchange data due to air-forced system for (i = 1; i <= state.dataAirflowNetworkBalanceManager->DisSysNumOfCVFs; i++) { - if (AirflowNetworkBalanceManager::DisSysCompCVFData(i).FanTypeNum == AirflowNetworkBalanceManager::FanType_SimpleOnOff) { + if (AirflowNetwork::DisSysCompCVFData(i).FanTypeNum == AirflowNetwork::FanType_SimpleOnOff) { multiExchangeData.allocate(state.dataGlobal->NumOfZones); break; } @@ -4793,35 +4805,35 @@ namespace AirflowNetworkBalanceManager { exchangeData(i).SumMHr, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Mixing Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).SumMMHr, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Outdoor Air CO2 Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).SumMHrCO, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Mixing CO2 Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).SumMMHrCO, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Total CO2 Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).TotalCO2, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); } } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { @@ -4833,14 +4845,14 @@ namespace AirflowNetworkBalanceManager { exchangeData(i).SumMHr, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Mixing Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).SumMMHr, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); } SetupOutputVariable(state, "AFN Zone Outdoor Air Generic Air Contaminant Mass Flow Rate", @@ -4848,68 +4860,68 @@ namespace AirflowNetworkBalanceManager { exchangeData(i).SumMHrGC, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Mixing Generic Air Contaminant Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).SumMMHrGC, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); SetupOutputVariable(state, "AFN Zone Total Generic Air Contaminant Mass Flow Rate", OutputProcessor::Unit::kg_s, exchangeData(i).TotalGC, "System", "Average", - AirflowNetworkBalanceManager::Zone(i).Name); + AirflowNetwork::Zone(i).Name); } } } if (state.dataGlobal->BeginEnvrnFlag && initializeMyEnvrnFlag) { // Assign node values - for (i = 1; i <= AirflowNetworkBalanceManager::AirflowNetworkNumOfNodes; ++i) { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZ = 23.0; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZ = 0.00084; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).PZ = 0.0; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZlast = AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZ; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZlast = AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZ; + for (i = 1; i <= AirflowNetwork::AirflowNetworkNumOfNodes; ++i) { + AirflowNetwork::AirflowNetworkNodeSimu(i).TZ = 23.0; + AirflowNetwork::AirflowNetworkNodeSimu(i).WZ = 0.00084; + AirflowNetwork::AirflowNetworkNodeSimu(i).PZ = 0.0; + AirflowNetwork::AirflowNetworkNodeSimu(i).TZlast = AirflowNetwork::AirflowNetworkNodeSimu(i).TZ; + AirflowNetwork::AirflowNetworkNodeSimu(i).WZlast = AirflowNetwork::AirflowNetworkNodeSimu(i).WZ; if (state.dataContaminantBalance->Contaminant.CO2Simulation) { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).CO2Z = state.dataContaminantBalance->OutdoorCO2; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).CO2Zlast = AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).CO2Z; + AirflowNetwork::AirflowNetworkNodeSimu(i).CO2Z = state.dataContaminantBalance->OutdoorCO2; + AirflowNetwork::AirflowNetworkNodeSimu(i).CO2Zlast = AirflowNetwork::AirflowNetworkNodeSimu(i).CO2Z; } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).GCZ = state.dataContaminantBalance->OutdoorGC; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).GCZlast = AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).GCZ; + AirflowNetwork::AirflowNetworkNodeSimu(i).GCZ = state.dataContaminantBalance->OutdoorGC; + AirflowNetwork::AirflowNetworkNodeSimu(i).GCZlast = AirflowNetwork::AirflowNetworkNodeSimu(i).GCZ; } - if (AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum > 0) { - ZoneNum = AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum; - state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum).AirTemp = 23.0; - state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum).HumRat = 0.0; + if (AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum > 0) { + ZoneNum = AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum; + state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum).AirTemp = 23.0; + state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum).HumRat = 0.0; } } - for (i = 1; i <= AirflowNetworkBalanceManager::AirflowNetworkNumOfLinks; ++i) { - AirflowNetworkBalanceManager::AirflowNetworkLinkSimu(i).FLOW = 0.0; - AirflowNetworkBalanceManager::AirflowNetworkLinkSimu(i).FLOW2 = 0.0; + for (i = 1; i <= AirflowNetwork::AirflowNetworkNumOfLinks; ++i) { + AirflowNetwork::AirflowNetworkLinkSimu(i).FLOW = 0.0; + AirflowNetwork::AirflowNetworkLinkSimu(i).FLOW2 = 0.0; } for (i = 1; i <= state.dataGlobal->NumOfZones; ++i) { - AirflowNetworkBalanceManager::ANZT(i) = AirflowNetworkBalanceManager::MAT(i); - AirflowNetworkBalanceManager::ANZW(i) = AirflowNetworkBalanceManager::ZoneAirHumRat(i); - if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetworkBalanceManager::ANCO(i) = state.dataContaminantBalance->ZoneAirCO2(i); - if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetworkBalanceManager::ANGC(i) = state.dataContaminantBalance->ZoneAirGC(i); + AirflowNetwork::ANZT(i) = AirflowNetwork::MAT(i); + AirflowNetwork::ANZW(i) = AirflowNetwork::ZoneAirHumRat(i); + if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetwork::ANCO(i) = state.dataContaminantBalance->ZoneAirCO2(i); + if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetwork::ANGC(i) = state.dataContaminantBalance->ZoneAirGC(i); } if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfOccuVentCtrls > 0) { - for (i = 1; i <= AirflowNetworkBalanceManager::AirflowNetworkNumOfSurfaces; ++i) { - if (AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OccupantVentilationControlNum > 0) { - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).PrevOpeningstatus = AirflowNetwork::OpenStatus::FreeOperation; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).CloseElapsedTime = 0.0; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenElapsedTime = 0.0; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningStatus = AirflowNetwork::OpenStatus::FreeOperation; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningProbStatus = AirflowNetwork::ProbabilityCheck::NoAction; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).ClosingProbStatus = 0; + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { + if (AirflowNetwork::MultizoneSurfaceData(i).OccupantVentilationControlNum > 0) { + AirflowNetwork::MultizoneSurfaceData(i).PrevOpeningstatus = AirflowNetwork::OpenStatus::FreeOperation; + AirflowNetwork::MultizoneSurfaceData(i).CloseElapsedTime = 0.0; + AirflowNetwork::MultizoneSurfaceData(i).OpenElapsedTime = 0.0; + AirflowNetwork::MultizoneSurfaceData(i).OpeningStatus = AirflowNetwork::OpenStatus::FreeOperation; + AirflowNetwork::MultizoneSurfaceData(i).OpeningProbStatus = AirflowNetwork::ProbabilityCheck::NoAction; + AirflowNetwork::MultizoneSurfaceData(i).ClosingProbStatus = 0; } } } @@ -4918,49 +4930,49 @@ namespace AirflowNetworkBalanceManager { } if (!state.dataGlobal->BeginEnvrnFlag) { initializeMyEnvrnFlag = true; - if (AirflowNetworkBalanceManager::SimulateAirflowNetwork > AirflowNetworkBalanceManager::AirflowNetworkControlSimple) { - if (AirflowNetworkBalanceManager::RollBackFlag) { + if (AirflowNetwork::SimulateAirflowNetwork > AirflowNetwork::AirflowNetworkControlSimple) { + if (AirflowNetwork::RollBackFlag) { for (i = 1; i <= state.dataGlobal->NumOfZones; ++i) { - AirflowNetworkBalanceManager::ANZT(i) = AirflowNetworkBalanceManager::XMAT(i); - AirflowNetworkBalanceManager::ANZW(i) = AirflowNetworkBalanceManager::WZoneTimeMinus1(i); + AirflowNetwork::ANZT(i) = AirflowNetwork::XMAT(i); + AirflowNetwork::ANZW(i) = AirflowNetwork::WZoneTimeMinus1(i); if (state.dataContaminantBalance->Contaminant.CO2Simulation) - AirflowNetworkBalanceManager::ANCO(i) = state.dataContaminantBalance->CO2ZoneTimeMinus1(i); - if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetworkBalanceManager::ANGC(i) = state.dataContaminantBalance->GCZoneTimeMinus1(i); + AirflowNetwork::ANCO(i) = state.dataContaminantBalance->CO2ZoneTimeMinus1(i); + if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetwork::ANGC(i) = state.dataContaminantBalance->GCZoneTimeMinus1(i); } } else { for (i = 1; i <= state.dataGlobal->NumOfZones; ++i) { - AirflowNetworkBalanceManager::ANZT(i) = AirflowNetworkBalanceManager::MAT(i); - AirflowNetworkBalanceManager::ANZW(i) = AirflowNetworkBalanceManager::ZoneAirHumRat(i); - if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetworkBalanceManager::ANCO(i) = state.dataContaminantBalance->ZoneAirCO2(i); - if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetworkBalanceManager::ANGC(i) = state.dataContaminantBalance->ZoneAirGC(i); + AirflowNetwork::ANZT(i) = AirflowNetwork::MAT(i); + AirflowNetwork::ANZW(i) = AirflowNetwork::ZoneAirHumRat(i); + if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetwork::ANCO(i) = state.dataContaminantBalance->ZoneAirCO2(i); + if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetwork::ANGC(i) = state.dataContaminantBalance->ZoneAirGC(i); } } - for (i = 1; i <= AirflowNetworkBalanceManager::AirflowNetworkNumOfNodes; ++i) { - if (AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum > 0) { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZ = AirflowNetworkBalanceManager::ANZT(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum); - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZ = AirflowNetworkBalanceManager::ANZW(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum); - if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).CO2Z = AirflowNetworkBalanceManager::ANCO(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum); - if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).GCZ = AirflowNetworkBalanceManager::ANGC(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum); + for (i = 1; i <= AirflowNetwork::AirflowNetworkNumOfNodes; ++i) { + if (AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum > 0) { + AirflowNetwork::AirflowNetworkNodeSimu(i).TZ = AirflowNetwork::ANZT(AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum); + AirflowNetwork::AirflowNetworkNodeSimu(i).WZ = AirflowNetwork::ANZW(AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum); + if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetwork::AirflowNetworkNodeSimu(i).CO2Z = AirflowNetwork::ANCO(AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum); + if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetwork::AirflowNetworkNodeSimu(i).GCZ = AirflowNetwork::ANGC(AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum); } - if (AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).ExtNodeNum > 0) { - if (AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).OutAirNodeNum > 0 && AirflowNetworkBalanceManager::Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).OutAirNodeNum).IsLocalNode) { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZ = AirflowNetworkBalanceManager::Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).OutAirNodeNum).OutAirDryBulb; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZ = AirflowNetworkBalanceManager::Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).OutAirNodeNum).HumRat; + if (AirflowNetwork::AirflowNetworkNodeData(i).ExtNodeNum > 0) { + if (AirflowNetwork::AirflowNetworkNodeData(i).OutAirNodeNum > 0 && AirflowNetwork::Node(AirflowNetwork::AirflowNetworkNodeData(i).OutAirNodeNum).IsLocalNode) { + AirflowNetwork::AirflowNetworkNodeSimu(i).TZ = AirflowNetwork::Node(AirflowNetwork::AirflowNetworkNodeData(i).OutAirNodeNum).OutAirDryBulb; + AirflowNetwork::AirflowNetworkNodeSimu(i).WZ = AirflowNetwork::Node(AirflowNetwork::AirflowNetworkNodeData(i).OutAirNodeNum).HumRat; } else { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZ = AirflowNetworkBalanceManager::OutDryBulbTempAt(state, AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).NodeHeight); - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZ = state.dataEnvrn->OutHumRat; + AirflowNetwork::AirflowNetworkNodeSimu(i).TZ = AirflowNetwork::OutDryBulbTempAt(state, AirflowNetwork::AirflowNetworkNodeData(i).NodeHeight); + AirflowNetwork::AirflowNetworkNodeSimu(i).WZ = state.dataEnvrn->OutHumRat; } - if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).CO2Z = state.dataContaminantBalance->OutdoorCO2; - if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).GCZ = state.dataContaminantBalance->OutdoorGC; + if (state.dataContaminantBalance->Contaminant.CO2Simulation) AirflowNetwork::AirflowNetworkNodeSimu(i).CO2Z = state.dataContaminantBalance->OutdoorCO2; + if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) AirflowNetwork::AirflowNetworkNodeSimu(i).GCZ = state.dataContaminantBalance->OutdoorGC; } - if (AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum > 0) { - ZoneNum = AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).EPlusZoneNum; - if (state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum).AirflowNetworkNodeID == i) { - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).TZ = state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum).AirTemp; - AirflowNetworkBalanceManager::AirflowNetworkNodeSimu(i).WZ = state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetworkBalanceManager::AirflowNetworkNodeData(i).RAFNNodeNum).HumRat; + if (AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum > 0) { + ZoneNum = AirflowNetwork::AirflowNetworkNodeData(i).EPlusZoneNum; + if (state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum).AirflowNetworkNodeID == i) { + AirflowNetwork::AirflowNetworkNodeSimu(i).TZ = state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum).AirTemp; + AirflowNetwork::AirflowNetworkNodeSimu(i).WZ = state.dataRoomAirMod->RoomAirflowNetworkZoneInfo(ZoneNum).Node(AirflowNetwork::AirflowNetworkNodeData(i).RAFNNodeNum).HumRat; } } } @@ -4986,34 +4998,34 @@ namespace AirflowNetworkBalanceManager { e.TotalGC = 0.0; // Occupant ventilation control - Real64 CurrentEndTime = state.dataGlobal->CurrentTime + AirflowNetworkBalanceManager::SysTimeElapsed; + Real64 CurrentEndTime = state.dataGlobal->CurrentTime + AirflowNetwork::SysTimeElapsed; if (CurrentEndTime > state.dataAirflowNetworkBalanceManager->CurrentEndTimeLast && TimeStepSys >= state.dataAirflowNetworkBalanceManager->TimeStepSysLast) { - for (i = 1; i <= AirflowNetworkBalanceManager::AirflowNetworkNumOfSurfaces; ++i) { - if (i > AirflowNetworkBalanceManager::AirflowNetworkNumOfSurfaces - AirflowNetworkBalanceManager::NumOfLinksIntraZone) continue; - if (AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OccupantVentilationControlNum > 0) { - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).PrevOpeningstatus = AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningStatus; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenFactorLast = AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenFactor; - if (AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenFactor > 0.0) { - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenElapsedTime += (CurrentEndTime - state.dataAirflowNetworkBalanceManager->CurrentEndTimeLast) * 60.0; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).CloseElapsedTime = 0.0; + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { + if (i > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces - AirflowNetwork::NumOfLinksIntraZone) continue; + if (AirflowNetwork::MultizoneSurfaceData(i).OccupantVentilationControlNum > 0) { + AirflowNetwork::MultizoneSurfaceData(i).PrevOpeningstatus = AirflowNetwork::MultizoneSurfaceData(i).OpeningStatus; + AirflowNetwork::MultizoneSurfaceData(i).OpenFactorLast = AirflowNetwork::MultizoneSurfaceData(i).OpenFactor; + if (AirflowNetwork::MultizoneSurfaceData(i).OpenFactor > 0.0) { + AirflowNetwork::MultizoneSurfaceData(i).OpenElapsedTime += (CurrentEndTime - state.dataAirflowNetworkBalanceManager->CurrentEndTimeLast) * 60.0; + AirflowNetwork::MultizoneSurfaceData(i).CloseElapsedTime = 0.0; } else { - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenElapsedTime = 0.0; - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).CloseElapsedTime += (CurrentEndTime - state.dataAirflowNetworkBalanceManager->CurrentEndTimeLast) * 60.0; + AirflowNetwork::MultizoneSurfaceData(i).OpenElapsedTime = 0.0; + AirflowNetwork::MultizoneSurfaceData(i).CloseElapsedTime += (CurrentEndTime - state.dataAirflowNetworkBalanceManager->CurrentEndTimeLast) * 60.0; } - j = AirflowNetworkBalanceManager::MultizoneSurfaceData(i).SurfNum; - state.dataAirflowNetworkBalanceManager->OccupantVentilationControl(AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OccupantVentilationControlNum) + j = AirflowNetwork::MultizoneSurfaceData(i).SurfNum; + state.dataAirflowNetworkBalanceManager->OccupantVentilationControl(AirflowNetwork::MultizoneSurfaceData(i).OccupantVentilationControlNum) .calc(state, - AirflowNetworkBalanceManager::Surface(j).Zone, - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenElapsedTime, - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).CloseElapsedTime, - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningStatus, - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningProbStatus, - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).ClosingProbStatus); - if (AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningStatus == AirflowNetwork::OpenStatus::MinCheckForceOpen) { - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenFactor = AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenFactorLast; + AirflowNetwork::Surface(j).Zone, + AirflowNetwork::MultizoneSurfaceData(i).OpenElapsedTime, + AirflowNetwork::MultizoneSurfaceData(i).CloseElapsedTime, + AirflowNetwork::MultizoneSurfaceData(i).OpeningStatus, + AirflowNetwork::MultizoneSurfaceData(i).OpeningProbStatus, + AirflowNetwork::MultizoneSurfaceData(i).ClosingProbStatus); + if (AirflowNetwork::MultizoneSurfaceData(i).OpeningStatus == AirflowNetwork::OpenStatus::MinCheckForceOpen) { + AirflowNetwork::MultizoneSurfaceData(i).OpenFactor = AirflowNetwork::MultizoneSurfaceData(i).OpenFactorLast; } - if (AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpeningStatus == AirflowNetwork::OpenStatus::MinCheckForceClose) { - AirflowNetworkBalanceManager::MultizoneSurfaceData(i).OpenFactor = 0.0; + if (AirflowNetwork::MultizoneSurfaceData(i).OpeningStatus == AirflowNetwork::OpenStatus::MinCheckForceClose) { + AirflowNetwork::MultizoneSurfaceData(i).OpenFactor = 0.0; } } } @@ -5022,7 +5034,7 @@ namespace AirflowNetworkBalanceManager { CurrentEndTimeLast = CurrentEndTime; } -namespace AirflowNetworkBalanceManager { +namespace AirflowNetwork { void AllocateAndInitData(EnergyPlusData &state) { @@ -5049,7 +5061,7 @@ namespace AirflowNetworkBalanceManager { for (i = 1; i <= state.dataAirflowNetworkBalanceManager->DisSysNumOfCVFs; i++) { if (DisSysCompCVFData(i).FanTypeNum == FanType_SimpleOnOff) { state.dataAirflowNetworkBalanceManager->nodeReport.allocate(AirflowNetworkNumOfZones); - state.dataAirflowNetworkBalanceManager->linkReport1.allocate(AirflowNetworkNumOfSurfaces); + state.dataAirflowNetworkBalanceManager->linkReport1.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces); break; } } @@ -5125,7 +5137,8 @@ namespace AirflowNetworkBalanceManager { } for (i = 1; i <= AirflowNetworkNumOfLinks; ++i) { - if (!(state.dataAirflowNetworkBalanceManager->SupplyFanType == FanType_SimpleOnOff && i <= AirflowNetworkNumOfSurfaces)) { + if (!(state.dataAirflowNetworkBalanceManager->SupplyFanType == FanType_SimpleOnOff && + i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces)) { SetupOutputVariable(state, "AFN Linkage Node 1 to Node 2 Mass Flow Rate", OutputProcessor::Unit::kg_s, @@ -5164,7 +5177,7 @@ namespace AirflowNetworkBalanceManager { } } - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { if (AirflowNetworkLinkageData(i).element == nullptr) { // This is not great continue; @@ -5623,7 +5636,7 @@ namespace AirflowNetworkBalanceManager { SetupOutputVariable(state, "AFN Zone Off Cycle Pressure", OutputProcessor::Unit::Pa, state.dataAirflowNetworkBalanceManager->nodeReport(i).PZOFF, "System", "Average", Zone(i).Name); } - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { SetupOutputVariable(state, "AFN Linkage Node 1 to 2 Average Mass Flow Rate", OutputProcessor::Unit::kg_s, state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW, @@ -5796,8 +5809,8 @@ namespace AirflowNetworkBalanceManager { } } - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { - if (i > AirflowNetworkNumOfSurfaces - NumOfLinksIntraZone) continue; + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { + if (i > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces - NumOfLinksIntraZone) continue; if (MultizoneSurfaceData(i).OccupantVentilationControlNum == 0) MultizoneSurfaceData(i).OpenFactor = 0.0; j = MultizoneSurfaceData(i).SurfNum; if (SurfWinOriginalClass(j) == SurfaceClass::Window || SurfWinOriginalClass(j) == SurfaceClass::Door || @@ -5866,16 +5879,16 @@ namespace AirflowNetworkBalanceManager { // Check if the global ventilation control is applied or not GlobalOpenFactor = -1.0; - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { - if (i > AirflowNetworkNumOfSurfaces - NumOfLinksIntraZone) continue; + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { + if (i > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces - NumOfLinksIntraZone) continue; if (MultizoneSurfaceData(i).HybridCtrlMaster) { GlobalOpenFactor = MultizoneSurfaceData(i).OpenFactor; break; } } if (GlobalOpenFactor >= 0.0) { - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { - if (i > AirflowNetworkNumOfSurfaces - NumOfLinksIntraZone) continue; + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { + if (i > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces - NumOfLinksIntraZone) continue; j = MultizoneSurfaceData(i).SurfNum; if (SurfWinOriginalClass(j) == SurfaceClass::Window || SurfWinOriginalClass(j) == SurfaceClass::Door || SurfWinOriginalClass(j) == SurfaceClass::GlassDoor) { @@ -6223,32 +6236,32 @@ namespace AirflowNetworkBalanceManager { // Facade azimuth angle for (FacadeNum = 1; FacadeNum <= 4; ++FacadeNum) { - FacadeAng(FacadeNum) = AirflowNetworkBalanceManager::AirflowNetworkSimu.Azimuth + (FacadeNum - 1) * 90.0; + FacadeAng(FacadeNum) = AirflowNetwork::AirflowNetworkSimu.Azimuth + (FacadeNum - 1) * 90.0; if (FacadeAng(FacadeNum) >= 360.0) { FacadeAng(FacadeNum) -= 360.0; } } - FacadeAng(5) = AirflowNetworkBalanceManager::AirflowNetworkSimu.Azimuth + 90.0; + FacadeAng(5) = AirflowNetwork::AirflowNetworkSimu.Azimuth + 90.0; // Create AirflowNetwork external node objects -- one for each of the external surfaces - AirflowNetworkBalanceManager::MultizoneExternalNodeData.allocate(AirflowNetworkNumOfExtSurfaces); + AirflowNetwork::MultizoneExternalNodeData.allocate(AirflowNetworkNumOfExtSurfaces); AirflowNetworkNumOfExtNode = AirflowNetworkNumOfExtSurfaces; NumOfExtNodes = AirflowNetworkNumOfExtSurfaces; for (ExtNum = 1; ExtNum <= NumOfExtNodes; ++ExtNum) { - AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).ExtNum = AirflowNetworkBalanceManager::AirflowNetworkNumOfZones + ExtNum; - AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).Name = format("ExtNode{:4}", ExtNum); + AirflowNetwork::MultizoneExternalNodeData(ExtNum).ExtNum = AirflowNetwork::AirflowNetworkNumOfZones + ExtNum; + AirflowNetwork::MultizoneExternalNodeData(ExtNum).Name = format("ExtNode{:4}", ExtNum); } // Associate each external node with SurfaceData ExtNum = 0; - for (SurfDatNum = 1; SurfDatNum <= AirflowNetworkBalanceManager::AirflowNetworkNumOfSurfaces; ++SurfDatNum) { - if (SurfDatNum > AirflowNetworkBalanceManager::AirflowNetworkNumOfSurfaces - AirflowNetworkBalanceManager::NumOfLinksIntraZone) { + for (SurfDatNum = 1; SurfDatNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++SurfDatNum) { + if (SurfDatNum > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces - AirflowNetwork::NumOfLinksIntraZone) { continue; } - SurfNum = AirflowNetworkBalanceManager::MultizoneSurfaceData(SurfDatNum).SurfNum; + SurfNum = AirflowNetwork::MultizoneSurfaceData(SurfDatNum).SurfNum; if (SurfNum == 0) { continue; // Error caught earlier } @@ -6272,18 +6285,18 @@ namespace AirflowNetworkBalanceManager { FacadeNumThisSurf = FacadeNum; } } - AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).facadeNum = FacadeNumThisSurf; + AirflowNetwork::MultizoneExternalNodeData(ExtNum).facadeNum = FacadeNumThisSurf; } else { // "Roof" surface - AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).facadeNum = 5; + AirflowNetwork::MultizoneExternalNodeData(ExtNum).facadeNum = 5; } - AirflowNetworkBalanceManager::MultizoneSurfaceData(SurfDatNum).NodeNums[1] = AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).ExtNum; - AirflowNetworkBalanceManager::MultizoneSurfaceData(SurfDatNum).ExternalNodeName = AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).Name; + AirflowNetwork::MultizoneSurfaceData(SurfDatNum).NodeNums[1] = AirflowNetwork::MultizoneExternalNodeData(ExtNum).ExtNum; + AirflowNetwork::MultizoneSurfaceData(SurfDatNum).ExternalNodeName = AirflowNetwork::MultizoneExternalNodeData(ExtNum).Name; } } // Check if using the advanced single sided model - for (AFNZnNum = 1; AFNZnNum <= AirflowNetworkBalanceManager::AirflowNetworkNumOfZones; ++AFNZnNum) { - if (AirflowNetworkBalanceManager::MultizoneZoneData(AFNZnNum).SingleSidedCpType == "ADVANCED") { + for (AFNZnNum = 1; AFNZnNum <= AirflowNetwork::AirflowNetworkNumOfZones; ++AFNZnNum) { + if (AirflowNetwork::MultizoneZoneData(AFNZnNum).SingleSidedCpType == "ADVANCED") { ++AirflowNetworkNumOfSingleSideZones; } } @@ -6300,11 +6313,11 @@ namespace AirflowNetworkBalanceManager { // Create a curve for each facade for (FacadeNum = 1; FacadeNum <= 5; ++FacadeNum) { if (FacadeNum == 1 || FacadeNum == 3 || FacadeNum == 5) { - SideRatio = AirflowNetworkBalanceManager::AirflowNetworkSimu.AspectRatio; + SideRatio = AirflowNetwork::AirflowNetworkSimu.AspectRatio; } else { // FacadeNum = 2 or 4 - SideRatio = 1.0 / AirflowNetworkBalanceManager::AirflowNetworkSimu.AspectRatio; + SideRatio = 1.0 / AirflowNetwork::AirflowNetworkSimu.AspectRatio; } - if (UtilityRoutines::SameString(AirflowNetworkBalanceManager::AirflowNetworkSimu.BldgType, "HighRise") && FacadeNum != 5) { + if (UtilityRoutines::SameString(AirflowNetwork::AirflowNetworkSimu.BldgType, "HighRise") && FacadeNum != 5) { SideRatio = 1.0 / SideRatio; } SideRatioFac = std::log(SideRatio); @@ -6319,7 +6332,7 @@ namespace AirflowNetworkBalanceManager { // Wind-pressure coefficients for vertical facades, low-rise building - if (UtilityRoutines::SameString(AirflowNetworkBalanceManager::AirflowNetworkSimu.BldgType, "LowRise") && FacadeNum <= 4) { + if (UtilityRoutines::SameString(AirflowNetwork::AirflowNetworkSimu.BldgType, "LowRise") && FacadeNum <= 4) { IncRad = IncAng * DataGlobalConstants::DegToRadians; Real64 const cos_IncRad_over_2(std::cos(IncRad / 2.0)); vals[windDirNum - 1] = 0.6 * std::log(1.248 - 0.703 * std::sin(IncRad / 2.0) - 1.175 * pow_2(std::sin(IncRad)) + @@ -6329,7 +6342,7 @@ namespace AirflowNetworkBalanceManager { // Wind-pressure coefficients for vertical facades, high-rise building - else if (UtilityRoutines::SameString(AirflowNetworkBalanceManager::AirflowNetworkSimu.BldgType, "HighRise") && FacadeNum <= 4) { + else if (UtilityRoutines::SameString(AirflowNetwork::AirflowNetworkSimu.BldgType, "HighRise") && FacadeNum <= 4) { SR = min(max(SideRatio, 0.25), 4.0); if (SR >= 0.25 && SR < 1.0) { ISR = 1; @@ -6345,8 +6358,8 @@ namespace AirflowNetworkBalanceManager { // Wind-pressure coefficients for roof (assumed same for low-rise and high-rise buildings) - else if ((UtilityRoutines::SameString(AirflowNetworkBalanceManager::AirflowNetworkSimu.BldgType, "HighRise") || - UtilityRoutines::SameString(AirflowNetworkBalanceManager::AirflowNetworkSimu.BldgType, "LowRise")) && + else if ((UtilityRoutines::SameString(AirflowNetwork::AirflowNetworkSimu.BldgType, "HighRise") || + UtilityRoutines::SameString(AirflowNetwork::AirflowNetworkSimu.BldgType, "LowRise")) && FacadeNum == 5) { SR = min(max(SideRatio, 0.25), 1.0); if (SR >= 0.25 && SR < 0.5) { @@ -6364,7 +6377,7 @@ namespace AirflowNetworkBalanceManager { } // End of wind direction loop // Add new table vals[12] = vals[0]; // Enforce periodicity - curveIndex[FacadeNum - 1] = AirflowNetworkBalanceManager::makeTable(state, format("!WPCTABLE{}", FacadeNum), dirs30GridIndex, vals); + curveIndex[FacadeNum - 1] = AirflowNetwork::makeTable(state, format("!WPCTABLE{}", FacadeNum), dirs30GridIndex, vals); } // End of facade number loop } else { //-calculate the advanced single sided wind pressure coefficients @@ -6382,11 +6395,11 @@ namespace AirflowNetworkBalanceManager { valsByFacade[FacadeNum] = std::vector(12); for (FacadeNum = 1; FacadeNum <= 4; ++FacadeNum) { if (FacadeNum == 1 || FacadeNum == 3) { - SideRatio = AirflowNetworkBalanceManager::AirflowNetworkSimu.AspectRatio; + SideRatio = AirflowNetwork::AirflowNetworkSimu.AspectRatio; } else { // FacadeNum = 2 or 4 - SideRatio = 1.0 / AirflowNetworkBalanceManager::AirflowNetworkSimu.AspectRatio; + SideRatio = 1.0 / AirflowNetwork::AirflowNetworkSimu.AspectRatio; } - if (UtilityRoutines::SameString(AirflowNetworkBalanceManager::AirflowNetworkSimu.BldgType, "HighRise") && FacadeNum != 5) { + if (UtilityRoutines::SameString(AirflowNetwork::AirflowNetworkSimu.BldgType, "HighRise") && FacadeNum != 5) { SideRatio = 1.0 / SideRatio; } SideRatioFac = std::log(SideRatio); @@ -6427,7 +6440,7 @@ namespace AirflowNetworkBalanceManager { WtSR * (WtAng * CPHighRiseRoof(ISR, IAng) + (1.0 - WtAng) * CPHighRiseRoof(ISR, IAng + 1)) + (1.0 - WtSR) * (WtAng * CPHighRiseRoof(ISR + 1, IAng) + (1.0 - WtAng) * CPHighRiseRoof(ISR + 1, IAng + 1)); } - AirflowNetworkBalanceManager::CalcSingleSidedCps(state, valsByFacade); // run the advanced single sided subroutine if at least one zone calls for it + AirflowNetwork::CalcSingleSidedCps(state, valsByFacade); // run the advanced single sided subroutine if at least one zone calls for it // Resize the curve index array curveIndex.resize(valsByFacade.size()); // Create the curves @@ -6442,26 +6455,26 @@ namespace AirflowNetworkBalanceManager { for (FacadeNum = 1; FacadeNum <= 4; ++FacadeNum) { valsByFacade[FacadeNum - 1].push_back(valsByFacade[FacadeNum - 1][0]); // Enforce periodicity - curveIndex[FacadeNum - 1] = AirflowNetworkBalanceManager::makeTable( + curveIndex[FacadeNum - 1] = AirflowNetwork::makeTable( state, format("!SSWPCTABLEFACADE{}", FacadeNum), dirs10GridIndex, valsByFacade[FacadeNum - 1]); } FacadeNum = 5; valsByFacade[FacadeNum - 1].push_back(valsByFacade[FacadeNum - 1][0]); // Enforce periodicity - curveIndex[FacadeNum - 1] = AirflowNetworkBalanceManager::makeTable( + curveIndex[FacadeNum - 1] = AirflowNetwork::makeTable( state, format("!SSWPCTABLEFACADE{}", FacadeNum), dirs30GridIndex, valsByFacade[FacadeNum - 1]); for (unsigned facadeNum = 6; facadeNum <= valsByFacade.size(); ++facadeNum) { valsByFacade[facadeNum - 1].push_back(valsByFacade[facadeNum - 1][0]); // Enforce periodicity curveIndex[facadeNum - 1] = - AirflowNetworkBalanceManager::makeTable(state, format("!SSWPCTABLE{}", facadeNum), dirs10GridIndex, valsByFacade[facadeNum - 1]); + AirflowNetwork::makeTable(state, format("!SSWPCTABLE{}", facadeNum), dirs10GridIndex, valsByFacade[facadeNum - 1]); } } // Connect the external nodes to the new curves for (ExtNum = 1; ExtNum <= NumOfExtNodes; ++ExtNum) { - AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).curve = curveIndex[AirflowNetworkBalanceManager::MultizoneExternalNodeData(ExtNum).facadeNum - 1]; + AirflowNetwork::MultizoneExternalNodeData(ExtNum).curve = curveIndex[AirflowNetwork::MultizoneExternalNodeData(ExtNum).facadeNum - 1]; } } -namespace AirflowNetworkBalanceManager { +namespace AirflowNetwork { Real64 CalcWindPressure(EnergyPlusData &state, int const curve, // Curve index, change this to pointer after curve refactor @@ -8022,7 +8035,7 @@ namespace AirflowNetworkBalanceManager { // Calculate sensible and latent loads in each zone from multizone airflows if (SimulateAirflowNetwork == AirflowNetworkControlMultizone || SimulateAirflowNetwork == AirflowNetworkControlMultiADS || (SimulateAirflowNetwork == AirflowNetworkControlSimpleADS && AirflowNetworkFanActivated)) { - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { // Multizone airflow energy + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { // Multizone airflow energy n = AirflowNetworkLinkageData(i).NodeNums[0]; M = AirflowNetworkLinkageData(i).NodeNums[1]; ZN1 = AirflowNetworkNodeData(n).EPlusZoneNum; @@ -8301,7 +8314,7 @@ namespace AirflowNetworkBalanceManager { } // Off Cycle addon onceSurfFlag = false; - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { // Multizone airflow energy + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { // Multizone airflow energy n = AirflowNetworkLinkageData(i).NodeNums[0]; M = AirflowNetworkLinkageData(i).NodeNums[1]; ZN1 = AirflowNetworkNodeData(n).EPlusZoneNum; @@ -8767,7 +8780,7 @@ namespace AirflowNetworkBalanceManager { state.dataAirflowNetworkBalanceManager->nodeReport(i).PZOFF = AirflowNetworkNodeSimu(i).PZ; state.dataAirflowNetworkBalanceManager->nodeReport(i).PZON = 0.0; } - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW = AirflowNetworkLinkSimu(i).FLOW; state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2 = AirflowNetworkLinkSimu(i).FLOW2; state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW = AirflowNetworkLinkSimu(i).VolFLOW; @@ -8787,7 +8800,7 @@ namespace AirflowNetworkBalanceManager { for (i = NumOfNodesMultiZone + NumOfNodesIntraZone + 1; i <= AirflowNetworkNumOfNodes; ++i) { AirflowNetworkNodeSimu(i).PZ = 0.0; } - for (i = AirflowNetworkNumOfSurfaces + 1; i <= AirflowNetworkNumOfLinks; ++i) { + for (i = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces + 1; i <= AirflowNetworkNumOfLinks; ++i) { AirflowNetworkLinkSimu(i).DP = 0.0; state.dataAirflowNetworkBalanceManager->linkReport(i).FLOW = 0.0; state.dataAirflowNetworkBalanceManager->linkReport(i).FLOW2 = 0.0; @@ -8799,7 +8812,7 @@ namespace AirflowNetworkBalanceManager { if (!(AirflowNetworkFanActivated && SimulateAirflowNetwork > AirflowNetworkControlMultizone)) return; if (SimulateAirflowNetwork > AirflowNetworkControlMultizone + 1) { - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { // Multizone airflow energy + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { // Multizone airflow energy n = AirflowNetworkLinkageData(i).NodeNums[0]; M = AirflowNetworkLinkageData(i).NodeNums[1]; ZN1 = AirflowNetworkNodeData(n).EPlusZoneNum; @@ -9162,7 +9175,7 @@ namespace AirflowNetworkBalanceManager { state.dataAirflowNetworkBalanceManager->nodeReport(i).PZON = AirflowNetworkNodeSimu(i).PZ; } } - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { PartLoadRatio = MaxPartLoadRatio; for (j = 1; j <= AirflowNetworkNumOfZones; ++j) { if (MultizoneZoneData(j).ZoneNum == MultizoneSurfaceData(i).ZonePtr) { @@ -9710,7 +9723,7 @@ namespace AirflowNetworkBalanceManager { } } // Air Distribution system - for (i = AirflowNetworkNumOfSurfaces + 1; i <= AirflowNetworkNumOfLinks; ++i) { + for (i = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces + 1; i <= AirflowNetworkNumOfLinks; ++i) { j = AirflowNetworkLinkageData(i).NodeNums[0]; k = AirflowNetworkLinkageData(i).NodeNums[1]; if (AirflowNetworkNodeData(j).AirLoopNum == 0 && AirflowNetworkNodeData(k).AirLoopNum == 0) { @@ -10174,7 +10187,7 @@ namespace AirflowNetworkBalanceManager { } } if (FanModelConstFlag) { - for (i = 1; i <= AirflowNetworkNumOfSurfaces; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { if (state.dataAirflowNetworkBalanceManager->SupplyFanType == FanType_SimpleConstVolume) { SetupOutputVariable(state, "AFN Linkage Node 1 to Node 2 Mass Flow Rate", OutputProcessor::Unit::kg_s, @@ -10367,7 +10380,7 @@ namespace AirflowNetworkBalanceManager { } // Ensure a surface using zone exhaust fan to expose to the same zone found = false; - for (j = 1; j <= AirflowNetworkNumOfSurfaces; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { if (UtilityRoutines::SameString(MultizoneSurfaceData(j).OpeningName, MultizoneCompExhaustFanData(i).name)) { found = true; if (Surface(MultizoneSurfaceData(j).SurfNum).ExtBoundCond != ExternalEnvironment && @@ -10498,7 +10511,7 @@ namespace AirflowNetworkBalanceManager { } } if (ActualZoneNum > 0) { - for (ANSurfaceNum = 1; ANSurfaceNum <= AirflowNetworkNumOfSurfaces; ++ANSurfaceNum) { + for (ANSurfaceNum = 1; ANSurfaceNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++ANSurfaceNum) { SurfNum = MultizoneSurfaceData(ANSurfaceNum).SurfNum; if (Surface(SurfNum).Zone == ActualZoneNum) { if (state.dataAirflowNetworkBalanceManager->VentilationCtrl == HybridVentCtrl_Close) { @@ -10624,7 +10637,7 @@ namespace AirflowNetworkBalanceManager { NumofExtSurfInZone.dimension(AirflowNetworkNumOfZones, 0); for (AFNZnNum = 1; AFNZnNum <= AirflowNetworkNumOfZones; ++AFNZnNum) { if (MultizoneZoneData(AFNZnNum).SingleSidedCpType == "ADVANCED") { - for (SrfNum = 1; SrfNum <= AirflowNetworkNumOfSurfaces; ++SrfNum) { + for (SrfNum = 1; SrfNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++SrfNum) { if (Surface(MultizoneSurfaceData(SrfNum).SurfNum).ExtBoundCond == ExternalEnvironment) { // check if outdoor boundary condition MZDZoneNum = UtilityRoutines::FindItemInList( Surface(MultizoneSurfaceData(SrfNum).SurfNum).ZoneName, MultizoneZoneData, &MultizoneZoneProp::ZoneName); @@ -10687,7 +10700,7 @@ namespace AirflowNetworkBalanceManager { if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSingleSideZones == 0) return; // Bail if no zones call for the advanced single sided model. // Recount the number of detailed and simple exterior openings in zones with "ADVANCED" single sided wind pressure coefficients AFNNumOfExtOpenings = 0; - for (SrfNum = 1; SrfNum <= AirflowNetworkNumOfSurfaces; ++SrfNum) { + for (SrfNum = 1; SrfNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++SrfNum) { MZDZoneNum = UtilityRoutines::FindItemInList( Surface(MultizoneSurfaceData(SrfNum).SurfNum).ZoneName, MultizoneZoneData, &MultizoneZoneProp::ZoneName); if (MultizoneZoneData(MZDZoneNum).SingleSidedCpType == "ADVANCED") { @@ -10708,7 +10721,7 @@ namespace AirflowNetworkBalanceManager { AFNExtSurfaces.allocate(AFNNumOfExtOpenings); // Create array of properties for all the exterior single sided openings ExtOpenNum = 1; - for (SrfNum = 1; SrfNum <= AirflowNetworkNumOfSurfaces; ++SrfNum) { + for (SrfNum = 1; SrfNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++SrfNum) { if (Surface(MultizoneSurfaceData(SrfNum).SurfNum).ExtBoundCond == ExternalEnvironment) { if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfDetOpenings > 0) { DetOpenNum = UtilityRoutines::FindItemInList(MultizoneSurfaceData(SrfNum).OpeningName, MultizoneCompDetOpeningData, @@ -11373,6 +11386,6 @@ namespace AirflowNetworkBalanceManager { } } -} // namespace AirflowNetworkBalanceManager +} // namespace AirflowNetwork } // namespace EnergyPlus diff --git a/src/EnergyPlus/AirflowNetworkBalanceManager.hh b/src/EnergyPlus/AirflowNetworkBalanceManager.hh index e2310272a34..4e4412762b7 100644 --- a/src/EnergyPlus/AirflowNetworkBalanceManager.hh +++ b/src/EnergyPlus/AirflowNetworkBalanceManager.hh @@ -66,7 +66,7 @@ namespace EnergyPlus { // Forward declarations struct EnergyPlusData; -namespace AirflowNetworkBalanceManager { +namespace AirflowNetwork { struct AirflowNetworkReportVars { @@ -220,156 +220,158 @@ namespace AirflowNetworkBalanceManager { bool closingProbability(EnergyPlusData &state, Real64 TimeCloseDuration); // function to perform calculations of closing probability }; -} // namespace AirflowNetworkBalanceManager - - struct AirflowNetworkBalanceManagerData : BaseGlobalStruct { - - void initialize(EnergyPlusData &state); - void calculateWindPressureCoeffs(EnergyPlusData &state); - - Array1D OccupantVentilationControl; - Array1D_int SplitterNodeNumbers; - int AirflowNetworkNumOfExtSurfaces = 0; - // Inverse matrix - Array1D MA; - Array1D MV; - Array1D_int IVEC; - int VentilationCtrl = 0; // Hybrid ventilation control type - int NumOfExhaustFans = 0; // Number of exhaust fans - int NumAirflowNetwork = 0; - int AirflowNetworkNumOfDetOpenings = 0; - int AirflowNetworkNumOfSimOpenings = 0; - int AirflowNetworkNumOfHorOpenings = 0; - int AirflowNetworkNumOfSurCracks = 0; - int AirflowNetworkNumOfSurELA = 0; - int AirflowNetworkNumOfExtNode = 0; - int AirflowNetworkNumOfOutAirNode = 0; - int AirflowNetworkNumOfSingleSideZones = 0; // Total number of zones with advanced single sided wind pressure coefficient calculation - int DisSysNumOfNodes = 0; - int DisSysNumOfLeaks = 0; - int DisSysNumOfELRs = 0; - int DisSysNumOfDucts = 0; - int DisSysNumOfDuctViewFactors = 0; - int DisSysNumOfDampers = 0; - int DisSysNumOfCVFs = 0; - int DisSysNumOfDetFans = 0; - int DisSysNumOfCoils = 0; - int DisSysNumOfHXs = 0; - int DisSysNumOfCPDs = 0; - int DisSysNumOfTermUnits = 0; - int DisSysNumOfLinks = 0; - int NumOfExtNodes = 0; - Real64 IncAng = 0.0; // Wind incidence angle relative to facade normal (deg) - int SupplyFanType = 0; // Supply air fan type - Real64 MaxOnOffFanRunTimeFraction = 0.0; // max Run time fraction for an On/Off fan flow rate among airloops - Real64 CurrentEndTimeLast = 0.0; // last end time - Real64 TimeStepSysLast = 0.0; // last system time step - int AirflowNetworkNumOfOccuVentCtrls = 0; - int IntraZoneNumOfNodes = 0; - int IntraZoneNumOfLinks = 0; - int IntraZoneNumOfZones = 0; - int NumOfPressureControllers = 0; // number of pressure controllers - int NumOfOAFans = 0; // number of OutdoorAir fans - int NumOfReliefFans = 0; // number of OutdoorAir relief fans - bool AirflowNetworkGetInputFlag = true; - bool AssignFanAirLoopNumFlag = true; - bool ValidateDistributionSystemFlag = true; - Array1D FacadeAng = Array1D(5); // Facade azimuth angle (for walls, angle of outward normal to facade measured clockwise from North) (deg) - Array1D LoopPartLoadRatio; - Array1D LoopOnOffFanRunTimeFraction; - Array1D LoopOnOffFlag; - - bool ValidateExhaustFanInputOneTimeFlag = true; - bool initializeOneTimeFlag = true; - bool initializeMyEnvrnFlag = true; - bool CalcAirflowNetworkAirBalanceOneTimeFlag = true; - bool CalcAirflowNetworkAirBalanceErrorsFound = false; - bool UpdateAirflowNetworkMyOneTimeFlag = true; - bool UpdateAirflowNetworkMyOneTimeFlag1 = true; - - // Object Data - Array1D AirflowNetworkZnRpt; - std::unordered_map UniqueAirflowNetworkSurfaceName; - - //AirflowNetwork::Solver solver; - - // Output and reporting - Array1D exchangeData; - Array1D multiExchangeData; - Array1D linkReport; - Array1D nodeReport; - Array1D linkReport1; - - void clear_state() override - { - this->OccupantVentilationControl.deallocate(); - this->SplitterNodeNumbers.deallocate(); - this->AirflowNetworkNumOfExtSurfaces = 0; - this->MA.deallocate(); - this->MV.deallocate(); - this->IVEC.deallocate(); - this->VentilationCtrl = 0; - this->NumOfExhaustFans = 0; - this->NumAirflowNetwork = 0; - this->AirflowNetworkNumOfDetOpenings = 0; - this->AirflowNetworkNumOfSimOpenings = 0; - this->AirflowNetworkNumOfHorOpenings = 0; - this->AirflowNetworkNumOfSurCracks = 0; - this->AirflowNetworkNumOfSurELA = 0; - this->AirflowNetworkNumOfExtNode = 0; - this->AirflowNetworkNumOfOutAirNode = 0; - this->AirflowNetworkNumOfSingleSideZones = 0; - this->DisSysNumOfNodes = 0; - this->DisSysNumOfLeaks = 0; - this->DisSysNumOfELRs = 0; - this->DisSysNumOfDucts = 0; - this->DisSysNumOfDuctViewFactors = 0; - this->DisSysNumOfDampers = 0; - this->DisSysNumOfCVFs = 0; - this->DisSysNumOfDetFans = 0; - this->DisSysNumOfCoils = 0; - this->DisSysNumOfHXs = 0; - this->DisSysNumOfCPDs = 0; - this->DisSysNumOfTermUnits = 0; - this->DisSysNumOfLinks = 0; - this->NumOfExtNodes = 0; - this->IncAng = 0.0; - this->SupplyFanType = 0; - this->MaxOnOffFanRunTimeFraction = 0.0; - this->CurrentEndTimeLast = 0.0; - this->TimeStepSysLast = 0.0; - this->AirflowNetworkNumOfOccuVentCtrls = 0; - this->IntraZoneNumOfNodes = 0; - this->IntraZoneNumOfLinks = 0; - this->IntraZoneNumOfZones = 0; - this->NumOfPressureControllers = 0; - this->NumOfOAFans = 0; - this->NumOfReliefFans = 0; - this->AirflowNetworkGetInputFlag = true; - this->AssignFanAirLoopNumFlag = true; - this->ValidateDistributionSystemFlag = true; - this->FacadeAng = Array1D(5); - this->AirflowNetworkZnRpt.deallocate(); - this->LoopPartLoadRatio.deallocate(); - this->LoopOnOffFanRunTimeFraction.deallocate(); - this->LoopOnOffFlag.deallocate(); - this->UniqueAirflowNetworkSurfaceName.clear(); - this->ValidateExhaustFanInputOneTimeFlag = true; - this->initializeOneTimeFlag = true; - this->initializeMyEnvrnFlag = true; - this->CalcAirflowNetworkAirBalanceOneTimeFlag = true; - this->CalcAirflowNetworkAirBalanceErrorsFound = false; - this->UpdateAirflowNetworkMyOneTimeFlag = true; - this->UpdateAirflowNetworkMyOneTimeFlag1 = true; - this->exchangeData.deallocate(); - this->multiExchangeData.deallocate(); - this->linkReport.deallocate(); - this->nodeReport.deallocate(); - this->linkReport1.deallocate(); - - solver.clear(); - } - }; +} // namespace AirflowNetwork + +struct AirflowNetworkBalanceManagerData : BaseGlobalStruct { + + void initialize(EnergyPlusData &state); + void calculateWindPressureCoeffs(EnergyPlusData &state); + + int AirflowNetworkNumOfSurfaces = 0; // The number of surfaces for multizone calculation + + Array1D OccupantVentilationControl; + Array1D_int SplitterNodeNumbers; + int AirflowNetworkNumOfExtSurfaces = 0; + // Inverse matrix + Array1D MA; + Array1D MV; + Array1D_int IVEC; + int VentilationCtrl = 0; // Hybrid ventilation control type + int NumOfExhaustFans = 0; // Number of exhaust fans + int NumAirflowNetwork = 0; + int AirflowNetworkNumOfDetOpenings = 0; + int AirflowNetworkNumOfSimOpenings = 0; + int AirflowNetworkNumOfHorOpenings = 0; + int AirflowNetworkNumOfSurCracks = 0; + int AirflowNetworkNumOfSurELA = 0; + int AirflowNetworkNumOfExtNode = 0; + int AirflowNetworkNumOfOutAirNode = 0; + int AirflowNetworkNumOfSingleSideZones = 0; // Total number of zones with advanced single sided wind pressure coefficient calculation + int DisSysNumOfNodes = 0; + int DisSysNumOfLeaks = 0; + int DisSysNumOfELRs = 0; + int DisSysNumOfDucts = 0; + int DisSysNumOfDuctViewFactors = 0; + int DisSysNumOfDampers = 0; + int DisSysNumOfCVFs = 0; + int DisSysNumOfDetFans = 0; + int DisSysNumOfCoils = 0; + int DisSysNumOfHXs = 0; + int DisSysNumOfCPDs = 0; + int DisSysNumOfTermUnits = 0; + int DisSysNumOfLinks = 0; + int NumOfExtNodes = 0; + Real64 IncAng = 0.0; // Wind incidence angle relative to facade normal (deg) + int SupplyFanType = 0; // Supply air fan type + Real64 MaxOnOffFanRunTimeFraction = 0.0; // max Run time fraction for an On/Off fan flow rate among airloops + Real64 CurrentEndTimeLast = 0.0; // last end time + Real64 TimeStepSysLast = 0.0; // last system time step + int AirflowNetworkNumOfOccuVentCtrls = 0; + int IntraZoneNumOfNodes = 0; + int IntraZoneNumOfLinks = 0; + int IntraZoneNumOfZones = 0; + int NumOfPressureControllers = 0; // number of pressure controllers + int NumOfOAFans = 0; // number of OutdoorAir fans + int NumOfReliefFans = 0; // number of OutdoorAir relief fans + bool AirflowNetworkGetInputFlag = true; + bool AssignFanAirLoopNumFlag = true; + bool ValidateDistributionSystemFlag = true; + Array1D FacadeAng = Array1D(5); // Facade azimuth angle (for walls, angle of outward normal to facade measured clockwise from North) (deg) + Array1D LoopPartLoadRatio; + Array1D LoopOnOffFanRunTimeFraction; + Array1D LoopOnOffFlag; + + bool ValidateExhaustFanInputOneTimeFlag = true; + bool initializeOneTimeFlag = true; + bool initializeMyEnvrnFlag = true; + bool CalcAirflowNetworkAirBalanceOneTimeFlag = true; + bool CalcAirflowNetworkAirBalanceErrorsFound = false; + bool UpdateAirflowNetworkMyOneTimeFlag = true; + bool UpdateAirflowNetworkMyOneTimeFlag1 = true; + + // Object Data + Array1D AirflowNetworkZnRpt; + std::unordered_map UniqueAirflowNetworkSurfaceName; + + //AirflowNetwork::Solver solver; + + // Output and reporting + Array1D exchangeData; + Array1D multiExchangeData; + Array1D linkReport; + Array1D nodeReport; + Array1D linkReport1; + + void clear_state() override + { + this->OccupantVentilationControl.deallocate(); + this->SplitterNodeNumbers.deallocate(); + this->AirflowNetworkNumOfExtSurfaces = 0; + this->MA.deallocate(); + this->MV.deallocate(); + this->IVEC.deallocate(); + this->VentilationCtrl = 0; + this->NumOfExhaustFans = 0; + this->NumAirflowNetwork = 0; + this->AirflowNetworkNumOfDetOpenings = 0; + this->AirflowNetworkNumOfSimOpenings = 0; + this->AirflowNetworkNumOfHorOpenings = 0; + this->AirflowNetworkNumOfSurCracks = 0; + this->AirflowNetworkNumOfSurELA = 0; + this->AirflowNetworkNumOfExtNode = 0; + this->AirflowNetworkNumOfOutAirNode = 0; + this->AirflowNetworkNumOfSingleSideZones = 0; + this->DisSysNumOfNodes = 0; + this->DisSysNumOfLeaks = 0; + this->DisSysNumOfELRs = 0; + this->DisSysNumOfDucts = 0; + this->DisSysNumOfDuctViewFactors = 0; + this->DisSysNumOfDampers = 0; + this->DisSysNumOfCVFs = 0; + this->DisSysNumOfDetFans = 0; + this->DisSysNumOfCoils = 0; + this->DisSysNumOfHXs = 0; + this->DisSysNumOfCPDs = 0; + this->DisSysNumOfTermUnits = 0; + this->DisSysNumOfLinks = 0; + this->NumOfExtNodes = 0; + this->IncAng = 0.0; + this->SupplyFanType = 0; + this->MaxOnOffFanRunTimeFraction = 0.0; + this->CurrentEndTimeLast = 0.0; + this->TimeStepSysLast = 0.0; + this->AirflowNetworkNumOfOccuVentCtrls = 0; + this->IntraZoneNumOfNodes = 0; + this->IntraZoneNumOfLinks = 0; + this->IntraZoneNumOfZones = 0; + this->NumOfPressureControllers = 0; + this->NumOfOAFans = 0; + this->NumOfReliefFans = 0; + this->AirflowNetworkGetInputFlag = true; + this->AssignFanAirLoopNumFlag = true; + this->ValidateDistributionSystemFlag = true; + this->FacadeAng = Array1D(5); + this->AirflowNetworkZnRpt.deallocate(); + this->LoopPartLoadRatio.deallocate(); + this->LoopOnOffFanRunTimeFraction.deallocate(); + this->LoopOnOffFlag.deallocate(); + this->UniqueAirflowNetworkSurfaceName.clear(); + this->ValidateExhaustFanInputOneTimeFlag = true; + this->initializeOneTimeFlag = true; + this->initializeMyEnvrnFlag = true; + this->CalcAirflowNetworkAirBalanceOneTimeFlag = true; + this->CalcAirflowNetworkAirBalanceErrorsFound = false; + this->UpdateAirflowNetworkMyOneTimeFlag = true; + this->UpdateAirflowNetworkMyOneTimeFlag1 = true; + this->exchangeData.deallocate(); + this->multiExchangeData.deallocate(); + this->linkReport.deallocate(); + this->nodeReport.deallocate(); + this->linkReport1.deallocate(); + + solver.clear(); + } +}; } // namespace EnergyPlus diff --git a/src/EnergyPlus/HVACManager.cc b/src/EnergyPlus/HVACManager.cc index 304e7f765ff..c5925fa6a78 100644 --- a/src/EnergyPlus/HVACManager.cc +++ b/src/EnergyPlus/HVACManager.cc @@ -212,7 +212,7 @@ namespace HVACManager { using ZoneTempPredictorCorrector::DetectOscillatingZoneTemp; using ZoneTempPredictorCorrector::ManageZoneAirUpdates; - using AirflowNetworkBalanceManager::ManageAirflowNetworkBalance; + using AirflowNetwork::ManageAirflowNetworkBalance; using DataHeatBalFanSys::QRadSurfAFNDuct; using DataHeatBalFanSys::SysDepZoneLoads; using DataHeatBalFanSys::SysDepZoneLoadsLagged; @@ -1749,7 +1749,7 @@ namespace HVACManager { // Each flag is checked and the appropriate manager is then called. // Using/Aliasing - using AirflowNetworkBalanceManager::ManageAirflowNetworkBalance; + using AirflowNetwork::ManageAirflowNetworkBalance; using DataPlant::FlowLocked; using DataPlant::FlowUnlocked; using NonZoneEquipmentManager::ManageNonZoneEquipment; @@ -2338,7 +2338,7 @@ namespace HVACManager { using Psychrometrics::PsyHgAirFnWTdb; using Psychrometrics::PsyRhoAirFnPbTdbW; - using AirflowNetworkBalanceManager::ReportAirflowNetwork; + using AirflowNetwork::ReportAirflowNetwork; using DataZoneEquipment::ZoneEquipAvail; using DataZoneEquipment::CrossMixingReportFlag; diff --git a/src/EnergyPlus/SystemAvailabilityManager.cc b/src/EnergyPlus/SystemAvailabilityManager.cc index 32ab59d5ff0..94cea55f1d2 100644 --- a/src/EnergyPlus/SystemAvailabilityManager.cc +++ b/src/EnergyPlus/SystemAvailabilityManager.cc @@ -4489,8 +4489,8 @@ namespace SystemAvailabilityManager { // on and open windows or doors. using namespace DataAirLoop; - using AirflowNetworkBalanceManager::GetZoneInfilAirChangeRate; - using AirflowNetworkBalanceManager::ManageAirflowNetworkBalance; + using AirflowNetwork::GetZoneInfilAirChangeRate; + using AirflowNetwork::ManageAirflowNetworkBalance; using CurveManager::CurveValue; using DataHeatBalance::HybridControlTypeClose; using DataHeatBalance::HybridControlTypeGlobal; diff --git a/tst/EnergyPlus/unit/AdvancedAFN.unit.cc b/tst/EnergyPlus/unit/AdvancedAFN.unit.cc index 46e6973fce9..9fe5ebed6f5 100644 --- a/tst/EnergyPlus/unit/AdvancedAFN.unit.cc +++ b/tst/EnergyPlus/unit/AdvancedAFN.unit.cc @@ -61,7 +61,7 @@ #include "Fixtures/EnergyPlusFixture.hh" using namespace EnergyPlus; -using namespace EnergyPlus::AirflowNetworkBalanceManager; +using namespace EnergyPlus::AirflowNetwork; using namespace ObjexxFCL; using namespace EnergyPlus::DataEnvironment; using DataHeatBalFanSys::MAT; diff --git a/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc b/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc index be48c200e1a..3f20685bc93 100644 --- a/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc +++ b/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc @@ -83,7 +83,7 @@ #include "Fixtures/EnergyPlusFixture.hh" using namespace EnergyPlus; -using namespace AirflowNetworkBalanceManager; +using namespace AirflowNetwork; using namespace DataSurfaces; using namespace DataHeatBalance; using namespace EnergyPlus::DataLoopNode; @@ -98,7 +98,7 @@ TEST_F(EnergyPlusFixture, AirflowNetworkBalanceManager_TestOtherSideCoefficients int i = 2; state->dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtSurfaces = 2; - AirflowNetwork::AirflowNetworkNumOfSurfaces = 2; + state->dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces = 2; AirflowNetwork::MultizoneSurfaceData.allocate(i); Surface.allocate(i); @@ -4655,15 +4655,15 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestWindPressureTable) Real64 azimuth = 0.0; Real64 windDir = state->dataEnvrn->WindDir; Real64 humRat = state->dataEnvrn->OutHumRat; - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, 1, false, false, azimuth, windSpeed, windDir, dryBulb, humRat); + Real64 p = AirflowNetwork::CalcWindPressure(*state, 1, false, false, azimuth, windSpeed, windDir, dryBulb, humRat); EXPECT_DOUBLE_EQ(0.54 * 0.5 * 1.1841123742118911, p); // Test on an east wall, which has a relative angle of 15 (for wind direction 105) azimuth = 90.0; - p = AirflowNetworkBalanceManager::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); + p = AirflowNetwork::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); EXPECT_DOUBLE_EQ(-0.26 * 0.5 * 1.1841123742118911, p); // Test on a wall with azimuth 105, for a zero relative angle azimuth = 105.0; - p = AirflowNetworkBalanceManager::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); + p = AirflowNetwork::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); EXPECT_DOUBLE_EQ(-0.56 * 0.5 * 1.1841123742118911, p); } @@ -4734,15 +4734,15 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestWPCValue) EXPECT_DOUBLE_EQ(1.1841123742118911, rho); // Compute wind pressure with current defaults - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, 1, false, false, azimuth, windSpeed, windDir, dryBulb, humRat); + Real64 p = AirflowNetwork::CalcWindPressure(*state, 1, false, false, azimuth, windSpeed, windDir, dryBulb, humRat); EXPECT_DOUBLE_EQ(-0.56 * 0.5 * 1.1841123742118911, p); // Test on an east wall, which has a relative angle of 15 (for wind direction 105) azimuth = 90.0; - p = AirflowNetworkBalanceManager::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); + p = AirflowNetwork::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); EXPECT_DOUBLE_EQ(0.54 * 0.5 * 1.1841123742118911, p); // Test on a wall with azimuth 105, for a zero relative angle azimuth = 105.0; - p = AirflowNetworkBalanceManager::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); + p = AirflowNetwork::CalcWindPressure(*state, 1, false, true, azimuth, windSpeed, windDir, dryBulb, humRat); EXPECT_DOUBLE_EQ(0.6 * 0.5 * 1.1841123742118911, p); } @@ -5711,7 +5711,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodes) CurveManager::GetCurveInput(*state); EXPECT_EQ(state->dataCurveManager->NumCurves, 2); - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); // Check the airflow elements EXPECT_EQ(2u, AirflowNetwork::MultizoneExternalNodeData.size()); @@ -5741,7 +5741,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodes) // Make sure we can compute the right wind pressure Real64 rho = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, state->dataEnvrn->OutDryBulbTemp, state->dataEnvrn->OutHumRat); EXPECT_DOUBLE_EQ(1.1841123742118911, rho); - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, + Real64 p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, false, false, 0.0, @@ -5757,7 +5757,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodes) EXPECT_EQ(5u, AirflowNetwork::AirflowNetworkNodeSimu.size()); // Run the balance routine, for now only to get the pressure set at the external nodes - AirflowNetworkBalanceManager::CalcAirflowNetworkAirBalance(*state); + AirflowNetwork::CalcAirflowNetworkAirBalance(*state); EXPECT_DOUBLE_EQ(-0.56 * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(4).PZ); EXPECT_DOUBLE_EQ(-0.26 * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(5).PZ); @@ -6415,7 +6415,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithTables) CurveManager::GetCurveInput(*state); EXPECT_EQ(state->dataCurveManager->NumCurves, 2); - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); // Check the airflow elements EXPECT_EQ(2u, AirflowNetwork::MultizoneExternalNodeData.size()); @@ -6445,7 +6445,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithTables) // Make sure we can compute the right wind pressure Real64 rho = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, state->dataEnvrn->OutDryBulbTemp, state->dataEnvrn->OutHumRat); EXPECT_DOUBLE_EQ(1.1841123742118911, rho); - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, + Real64 p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, false, false, 0.0, @@ -6461,7 +6461,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithTables) EXPECT_EQ(5u, AirflowNetwork::AirflowNetworkNodeSimu.size()); // Run the balance routine, for now only to get the pressure set at the external nodes - AirflowNetworkBalanceManager::CalcAirflowNetworkAirBalance(*state); + AirflowNetwork::CalcAirflowNetworkAirBalance(*state); EXPECT_DOUBLE_EQ(-0.56 * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(4).PZ); EXPECT_DOUBLE_EQ(-0.26 * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(5).PZ); @@ -7038,7 +7038,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithNoInput) CurveManager::GetCurveInput(*state); EXPECT_EQ(state->dataCurveManager->NumCurves, 1); - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); EXPECT_EQ(state->dataCurveManager->NumCurves, 6); @@ -7080,7 +7080,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithNoInput) // Make sure we can compute the right wind pressure Real64 rho = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, state->dataEnvrn->OutDryBulbTemp, state->dataEnvrn->OutHumRat); EXPECT_DOUBLE_EQ(1.1841123742118911, rho); - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(2).curve, + Real64 p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(2).curve, false, false, 0.0, @@ -7089,7 +7089,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithNoInput) DataEnvironment::OutDryBulbTempAt(*state, 10.0), state->dataEnvrn->OutHumRat); EXPECT_DOUBLE_EQ(cp105N * 0.5 * 1.1841123742118911, p); - p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, + p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, false, false, 0.0, @@ -7105,7 +7105,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithNoInput) EXPECT_EQ(5u, AirflowNetwork::AirflowNetworkNodeSimu.size()); // Run the balance routine, for now only to get the pressure set at the external nodes - AirflowNetworkBalanceManager::CalcAirflowNetworkAirBalance(*state); + AirflowNetwork::CalcAirflowNetworkAirBalance(*state); EXPECT_DOUBLE_EQ(cp105N * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(5).PZ); EXPECT_DOUBLE_EQ(cp105S * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(4).PZ); @@ -7727,7 +7727,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithSymmetricTable) CurveManager::GetCurveInput(*state); EXPECT_EQ(state->dataCurveManager->NumCurves, 1); - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); // Check the airflow elements EXPECT_EQ(2u, AirflowNetwork::MultizoneExternalNodeData.size()); @@ -7757,7 +7757,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithSymmetricTable) // Make sure we can compute the right wind pressure Real64 rho = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, state->dataEnvrn->OutDryBulbTemp, state->dataEnvrn->OutHumRat); EXPECT_DOUBLE_EQ(1.1841123742118911, rho); - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, + Real64 p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, false, false, 0.0, @@ -7773,7 +7773,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithSymmetricTable) EXPECT_EQ(5u, AirflowNetwork::AirflowNetworkNodeSimu.size()); // Run the balance routine, for now only to get the pressure set at the external nodes - AirflowNetworkBalanceManager::CalcAirflowNetworkAirBalance(*state); + AirflowNetwork::CalcAirflowNetworkAirBalance(*state); EXPECT_DOUBLE_EQ(-0.56 * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(4).PZ); EXPECT_DOUBLE_EQ(-0.26 * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(5).PZ); @@ -8361,7 +8361,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithSymmetricCurve) CurveManager::GetCurveInput(*state); EXPECT_EQ(state->dataCurveManager->NumCurves, 1); - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); // Check the airflow elements EXPECT_EQ(2u, AirflowNetwork::MultizoneExternalNodeData.size()); @@ -8400,7 +8400,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithSymmetricCurve) // Make sure we can compute the right wind pressure Real64 rho = Psychrometrics::PsyRhoAirFnPbTdbW(*state, state->dataEnvrn->OutBaroPress, state->dataEnvrn->OutDryBulbTemp, state->dataEnvrn->OutHumRat); EXPECT_DOUBLE_EQ(1.1841123742118911, rho); - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, + Real64 p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, false, false, 0.0, @@ -8416,7 +8416,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithSymmetricCurve) EXPECT_EQ(5u, AirflowNetwork::AirflowNetworkNodeSimu.size()); // Run the balance routine, for now only to get the pressure set at the external nodes - AirflowNetworkBalanceManager::CalcAirflowNetworkAirBalance(*state); + AirflowNetwork::CalcAirflowNetworkAirBalance(*state); EXPECT_NEAR(cp105N * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(4).PZ, 1e-13); EXPECT_NEAR(cp105S * 0.5 * 118.41123742118911, AirflowNetwork::AirflowNetworkNodeSimu(5).PZ, 1e-13); @@ -9131,7 +9131,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithLocalAirNode) EXPECT_DOUBLE_EQ(1.2252059842834473, rho_1); EXPECT_DOUBLE_EQ(1.1841123742118911, rho_2); - Real64 p = AirflowNetworkBalanceManager::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, + Real64 p = AirflowNetwork::CalcWindPressure(*state, AirflowNetwork::MultizoneExternalNodeData(1).curve, false, false, 0.0, @@ -9143,7 +9143,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestExternalNodesWithLocalAirNode) // Run the balance routine, for now only to get the pressure set at the external nodes - AirflowNetworkBalanceManager::CalcAirflowNetworkAirBalance(*state); + AirflowNetwork::CalcAirflowNetworkAirBalance(*state); // Make sure we set the right temperature EXPECT_DOUBLE_EQ(25.0, AirflowNetwork::AirflowNetworkNodeSimu(4).TZ); EXPECT_DOUBLE_EQ(15.0, AirflowNetwork::AirflowNetworkNodeSimu(5).TZ); @@ -9569,7 +9569,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_BasicAdvancedSingleSided) CurveManager::GetCurveInput(*state); EXPECT_EQ(0, state->dataCurveManager->NumCurves); - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); // Check that the correct number of curves has been generated (5 facade directions + 2 windows) EXPECT_EQ(7, state->dataCurveManager->NumCurves); @@ -13673,7 +13673,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_BasicAdvancedSingleSidedAvoidCrashTest) bool resimu = false; Zone(1).OutDryBulbTemp = state->dataEnvrn->OutDryBulbTemp; - AirflowNetworkBalanceManager::GetAirflowNetworkInput(*state); + AirflowNetwork::GetAirflowNetworkInput(*state); state->dataAirflowNetworkBalanceManager->AirflowNetworkGetInputFlag = false; state->dataAirflowNetworkBalanceManager->exchangeData.allocate(1); ManageAirflowNetworkBalance(*state, First, iter, resimu); diff --git a/tst/EnergyPlus/unit/AirflowNetworkSimulationControl.unit.cc b/tst/EnergyPlus/unit/AirflowNetworkSimulationControl.unit.cc index 1eb9acf5772..a36ec0ee038 100644 --- a/tst/EnergyPlus/unit/AirflowNetworkSimulationControl.unit.cc +++ b/tst/EnergyPlus/unit/AirflowNetworkSimulationControl.unit.cc @@ -72,7 +72,7 @@ #include "Fixtures/EnergyPlusFixture.hh" using namespace EnergyPlus; -using namespace AirflowNetworkBalanceManager; +using namespace AirflowNetwork; using namespace DataSurfaces; using namespace DataHeatBalance; using namespace EnergyPlus::DataLoopNode; diff --git a/tst/EnergyPlus/unit/AirflowNetworkSolver.unit.cc b/tst/EnergyPlus/unit/AirflowNetworkSolver.unit.cc index 33c3ef622ac..6f116511901 100644 --- a/tst/EnergyPlus/unit/AirflowNetworkSolver.unit.cc +++ b/tst/EnergyPlus/unit/AirflowNetworkSolver.unit.cc @@ -60,7 +60,7 @@ #include "Fixtures/EnergyPlusFixture.hh" using namespace EnergyPlus; -using namespace AirflowNetworkBalanceManager; +using namespace AirflowNetwork; using namespace AirflowNetwork; TEST_F(EnergyPlusFixture, AirflowNetwork_SolverTest_HorizontalOpening) From a9e5669c7bff87755f82611916c1c2ad329560a2 Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 30 Dec 2020 05:31:45 -0500 Subject: [PATCH 04/16] Port over the moisture code --- src/EnergyPlus/HeatBalanceHAMTManager.cc | 177 ++++++++++++++++++----- src/EnergyPlus/HeatBalanceHAMTManager.hh | 20 ++- 2 files changed, 156 insertions(+), 41 deletions(-) diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.cc b/src/EnergyPlus/HeatBalanceHAMTManager.cc index 2f447a1222b..011d780d34f 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.cc +++ b/src/EnergyPlus/HeatBalanceHAMTManager.cc @@ -70,6 +70,7 @@ #include #include #include +#include // for internal moisture source type 3 namespace EnergyPlus { @@ -889,28 +890,28 @@ namespace HeatBalanceHAMTManager { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required Water Vapor Diffusion Resistance Factor (mu) data."); + "\" does not have required Water Vapor Diffusion Resistance Factor (mu) data."); ++errorCount; } if (state.dataMaterial->Material(matid).niso < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); - ShowContinueError( - state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + "\" does not have required isotherm data."); + ShowContinueError(state, + "Reference Material=\"" + state.dataMaterial->Material(matid).Name + "\" does not have required isotherm data."); ++errorCount; } if (state.dataMaterial->Material(matid).nsuc < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required liquid transport coefficient (suction) data."); + "\" does not have required liquid transport coefficient (suction) data."); ++errorCount; } if (state.dataMaterial->Material(matid).nred < 0) { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required liquid transport coefficient (redistribution) data."); + "\" does not have required liquid transport coefficient (redistribution) data."); ++errorCount; } if (state.dataMaterial->Material(matid).ntc < 0) { @@ -918,7 +919,7 @@ namespace HeatBalanceHAMTManager { ShowWarningError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have thermal conductivity data. Using fixed value."); + "\" does not have thermal conductivity data. Using fixed value."); state.dataMaterial->Material(matid).ntc = 2; state.dataMaterial->Material(matid).tcwater(1) = 0.0; state.dataMaterial->Material(matid).tcdata(1) = state.dataMaterial->Material(matid).Conductivity; @@ -929,7 +930,7 @@ namespace HeatBalanceHAMTManager { ShowSevereError(state, RoutineName + "Construction=" + state.dataConstruction->Construct(conid).Name); ShowContinueError(state, "Reference Material=\"" + state.dataMaterial->Material(matid).Name + - "\" does not have required thermal conductivity data."); + "\" does not have required thermal conductivity data."); ++errorCount; } } @@ -940,8 +941,7 @@ namespace HeatBalanceHAMTManager { interp(state.dataMaterial->Material(matid).niso, state.dataMaterial->Material(matid).isodata, state.dataMaterial->Material(matid).isorh, - waterd, - state.dataMaterial->Material(matid).irh); + waterd, state.dataMaterial->Material(matid).irh); state.dataMaterial->Material(matid).divs = int(state.dataMaterial->Material(matid).Thickness / state.dataMaterial->Material(matid).divsize) + @@ -954,8 +954,7 @@ namespace HeatBalanceHAMTManager { while (true) { testlen = state.dataMaterial->Material(matid).Thickness * ((std::sin(DataGlobalConstants::Pi * (-1.0 / double(state.dataMaterial->Material(matid).divs)) - - DataGlobalConstants::Pi / 2.0) / - 2.0) - + DataGlobalConstants::Pi / 2.0) / 2.0) - (sin_negPIOvr2 / 2.0)); if (testlen > adjdist) break; --state.dataMaterial->Material(matid).divs; @@ -1044,6 +1043,7 @@ namespace HeatBalanceHAMTManager { cells(cid).matid = matid; cells(cid).sid = sid; + cells(cid).layer_id = lid; // layer Id to cell info for internal moisture source cells(cid).temp = state.dataMaterial->Material(matid).itemp; cells(cid).tempp1 = state.dataMaterial->Material(matid).itemp; @@ -1060,16 +1060,21 @@ namespace HeatBalanceHAMTManager { cells(cid).length(1) = state.dataMaterial->Material(matid).Thickness * ((std::sin(DataGlobalConstants::Pi * (-double(did) / double(state.dataMaterial->Material(matid).divs)) - - DataGlobalConstants::Pi / 2.0) / - 2.0) - + DataGlobalConstants::Pi / 2.0) / 2.0) - (std::sin(DataGlobalConstants::Pi * (-double(did - 1) / double(state.dataMaterial->Material(matid).divs)) - - DataGlobalConstants::Pi / 2.0) / - 2.0)); + DataGlobalConstants::Pi / 2.0) / 2.0)); cells(cid).origin(1) = runor + cells(cid).length(1) / 2.0; runor += cells(cid).length(1); cells(cid).volume = cells(cid).length(1) * Surface(sid).Area; + + // connect internal moisture source with cell + for (int imsid = 1; imsid <= sources.size(); ++imsid) { + if ((cells(cid).sid == sources(imsid).surface_id) && (cells(cid).layer_id == sources(imsid).layer_id)) { + cells(cid).source_id = imsid; + } + } } } @@ -1145,16 +1150,15 @@ namespace HeatBalanceHAMTManager { surftemp(sid) = 0.0; surfexttemp(sid) = 0.0; surfvp(sid) = 0.0; - SetupOutputVariable( - state, "HAMT Surface Average Water Content Ratio", OutputProcessor::Unit::kg_kg, watertot(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable( - state, "HAMT Surface Inside Face Temperature", OutputProcessor::Unit::C, surftemp(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable( - state, "HAMT Surface Inside Face Relative Humidity", OutputProcessor::Unit::Perc, surfrh(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable( - state, "HAMT Surface Inside Face Vapor Pressure", OutputProcessor::Unit::Pa, surfvp(sid), "Zone", "State", Surface(sid).Name); - SetupOutputVariable( - state, "HAMT Surface Outside Face Temperature", OutputProcessor::Unit::C, surfexttemp(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable(state, + "HAMT Surface Average Water Content Ratio", OutputProcessor::Unit::kg_kg, watertot(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable(state, "HAMT Surface Inside Face Temperature", OutputProcessor::Unit::C, surftemp(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable(state, + "HAMT Surface Inside Face Relative Humidity", OutputProcessor::Unit::Perc, surfrh(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable(state, + "HAMT Surface Inside Face Vapor Pressure", OutputProcessor::Unit::Pa, surfvp(sid), "Zone", "State", Surface(sid).Name); + SetupOutputVariable(state, + "HAMT Surface Outside Face Temperature", OutputProcessor::Unit::C, surfexttemp(sid), "Zone", "State", Surface(sid).Name); SetupOutputVariable(state, "HAMT Surface Outside Face Relative Humidity", OutputProcessor::Unit::Perc, @@ -1278,6 +1282,8 @@ namespace HeatBalanceHAMTManager { Real64 tempmax; Real64 tempmin; + Real64 internal_moisture_source; + int ii; int matid; int itter; @@ -1319,7 +1325,24 @@ namespace HeatBalanceHAMTManager { cells(cid).rh = state.dataMaterial->Material(matid).irh; cells(cid).rhp1 = state.dataMaterial->Material(matid).irh; cells(cid).rhp2 = state.dataMaterial->Material(matid).irh; + + if (cells(cid).source_id) { + if (sources(cells(cid).source_id).type == InternalMoistureSource::Type::AirflowNetwork) { + if (!sources(cells(cid).source_id).afn_id) { + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces) { + for (ii = 1; ii <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++ii) { + if (Surface(sources(cells(cid).source_id).surface_id).Name.compare(AirflowNetworkLinkageData(ii).Name) == 0) { + // assign network link to cell with internal moisture source type 3 + sources(cells(cid).source_id).afn_id = AirflowNetworkLinkageData(ii).LinkNum; + break; + } + } + } + } + } + } } + MyEnvrnFlag(sid) = false; } if (!state.dataGlobal->BeginEnvrnFlag) { @@ -1453,6 +1476,46 @@ namespace HeatBalanceHAMTManager { cells(cid).water, cells(cid).wthermalc); } + + // calc Wadds + if (cells(cid).source_id > 0) { + matid = cells(cid).matid; + int imsid = cells(cid).source_id; + + if (sources(imsid).type == InternalMoistureSource::Type::UserDefined) { // user defined input of the air flow + sources(imsid).moist_airflow = sources(imsid).moist_airflow_input; + } else if (sources(imsid).type == InternalMoistureSource::Type::StackAndOverPressure) { // infiltration model according to Kuenzel, extended with ventilation pressure + sources(imsid).delta_pressure = cells(Extcell(sid)).density * + ((cells(Extcell(sid)).temp - cells(Intcell(sid)).temp) / cells(Intcell(sid)).temp) * + DataGlobalConstants::GravityConstant * (sources(imsid).stack_height / 2) - sources(imsid).mechanical_ventilation_overpressure; + sources(imsid).moist_airflow = std::abs(sources(imsid).delta_pressure) * (sources(imsid).component_air_permeance) / 3600; + } else if (sources(imsid).type == InternalMoistureSource::Type::AirflowNetwork) { // air flow through component from multizone airflow network + if (sources(imsid).afn_id) { + sources(imsid).moist_airflow = AirflowNetworkLinkSimu(sources(imsid).afn_id).VolFLOW / Surface(sources(imsid).surface_id).Area; + } else { + sources(imsid).moist_airflow = 0; + } + } else { + sources(imsid).moist_airflow = 0.0; + } + + + if (sources(imsid).moist_airflow >= 0) { + internal_moisture_source = sources(imsid).moist_airflow * + (cells(IntConcell(sid)).rh * SatAbsHum(state, cells(IntConcell(sid)).temp) - SatAbsHum(state, cells(cid).temp)); + } else { + internal_moisture_source = -sources(imsid).moist_airflow * + (cells(IntConcell(sid)).rh * SatAbsHum(state, cells(IntConcell(sid)).temp) - SatAbsHum(state, cells(cid).temp)); + } + + if (internal_moisture_source > 0) { + cells(cid).Wadds = Surface(sid).Area * (cells(cid).length(1) / Material(matid).Thickness) * internal_moisture_source; + } else { + cells(cid).Wadds = 0; + } + } else { + cells(cid).Wadds = 0; + } } // Calculate Heat and Vapor resistances, @@ -1476,8 +1539,7 @@ namespace HeatBalanceHAMTManager { if (cells(cid).vtc > 0) { vaporr1 = 1.0 / (cells(cid).overlap(ii) * cells(cid).vtc); } else if (cells(cid).matid > 0) { - vaporr1 = - (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); + vaporr1 = (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); } else { vaporr1 = 0.0; } @@ -1493,8 +1555,7 @@ namespace HeatBalanceHAMTManager { if (cells(adj).vtc > 0) { vaporr2 = 1.0 / (cells(cid).overlap(ii) * cells(adj).vtc); } else if (cells(adj).matid > 0) { - vaporr2 = - cells(adj).mu * cells(adj).dist(adjl) / (WVDC(cells(adj).tempp1, state.dataEnvrn->OutBaroPress) * cells(cid).overlap(ii)); + vaporr2 = cells(adj).mu * cells(adj).dist(adjl) / (WVDC(cells(adj).tempp1, state.dataEnvrn->OutBaroPress) * cells(cid).overlap(ii)); } else { vaporr2 = 0.0; } @@ -1600,8 +1661,7 @@ namespace HeatBalanceHAMTManager { if (cells(cid).vtc > 0) { vaporr1 = 1.0 / (cells(cid).overlap(ii) * cells(cid).vtc); } else if (cells(cid).matid > 0) { - vaporr1 = - (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); + vaporr1 = (cells(cid).dist(ii) * cells(cid).mu) / (cells(cid).overlap(ii) * WVDC(cells(cid).tempp1, state.dataEnvrn->OutBaroPress)); } else { vaporr1 = 0.0; } @@ -1647,7 +1707,7 @@ namespace HeatBalanceHAMTManager { // Calculate the RH for the next time step denominator = (phioosum + vpoosum * cells(cid).vpsat + wcap / deltat); if (denominator != 0.0) { - cells(cid).rhp1 = (phiorsum + vporsum + (wcap * cells(cid).rh) / deltat) / denominator; + cells(cid).rhp1 = (phiorsum + vporsum + cells(cid).Wadds + (wcap * cells(cid).rh) / deltat) / denominator; } else { ShowSevereError(state, "CalcHeatBalHAMT: demoninator in calculating RH is zero. Check material properties for accuracy."); ShowContinueError(state, "...Problem occurs in Material=\"" + state.dataMaterial->Material(cells(cid).matid).Name + "\"."); @@ -1753,8 +1813,7 @@ namespace HeatBalanceHAMTManager { surfvp(sid) = RHtoVP(state, cells(Intcell(sid)).rh, cells(Intcell(sid)).temp); } - void - interp(int const ndata, const Array1D &xx, const Array1D &yy, Real64 const invalue, Real64 &outvalue, Optional outgrad) + void interp(int const ndata, const Array1D &xx, const Array1D &yy, Real64 const invalue, Real64 &outvalue, Optional outgrad) { // SUBROUTINE INFORMATION: // AUTHOR Phillip Biddulph @@ -1920,6 +1979,56 @@ namespace HeatBalanceHAMTManager { return WVDC; } + Real64 SatAbsHum(EnergyPlusData &state, Real64 const Temperature) + { + // FUNCTION INFORMATION: + // AUTHOR Florian Antretter + // DATE WRITTEN March 2018 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // Compute Absolute Humidity in kg/m3 from Temperature + + // METHODOLOGY EMPLOYED: + // na + + // REFERENCES: + // Vaisala: Humidity conversion formulas (2013), eq (17) + + // USE STATEMENTS: + // na + + // Return value + Real64 SatAbsHum; + + // Locals + // FUNCTION ARGUMENT DEFINITIONS: + + // FUNCTION PARAMETER DEFINITIONS: + // na + + // INTERFACE BLOCK SPECIFICATIONS: + // na + + // DERIVED TYPE DEFINITIONS: + // na + + // FUNCTION LOCAL VARIABLE DECLARATIONS: + + Real64 VPSat; + + VPSat = PsyPsatFnTemp(state, Temperature); + + Real64 IdealGasConst; + + IdealGasConst = 2.16679; + + SatAbsHum = (IdealGasConst * VPSat) / (Temperature + 273.15) / 1000; + + return SatAbsHum; + } + // COPYRIGHT NOTICE // Portions Copyright (c) University College London 2007. All rights diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.hh b/src/EnergyPlus/HeatBalanceHAMTManager.hh index 8573e787025..d96ddd1c53f 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.hh +++ b/src/EnergyPlus/HeatBalanceHAMTManager.hh @@ -116,7 +116,10 @@ namespace HeatBalanceHAMTManager { // Members int matid; // Material Id Number int sid; // Surface Id Number + int layer_id; // Layer Id Number + int source_id; // Internal moisture source ID Number Real64 Qadds; // Additional sources of heat + Real64 Wadds; // Additional sources of water Real64 density; // Density Real64 wthermalc; // Moisture Dependant Thermal Conductivity Real64 spech; // Specific Heat capacity @@ -147,9 +150,10 @@ namespace HeatBalanceHAMTManager { // Default Constructor subcell() - : matid(-1), sid(-1), Qadds(0.0), density(-1.0), wthermalc(0.0), spech(0.0), htc(-1.0), vtc(-1.0), mu(-1.0), volume(0.0), temp(0.0), - tempp1(0.0), tempp2(0.0), wreport(0.0), water(0.0), vp(0.0), vpp1(0.0), vpsat(0.0), rh(0.1), rhp1(0.1), rhp2(0.1), rhp(10.0), - dwdphi(-1.0), dw(-1.0), origin(3, 0.0), length(3, 0.0), overlap(6, 0.0), dist(6, 0.0), adjs(6, 0), adjsl(6, 0) + : matid(-1), sid(-1), layer_id(-1), source_id(-1), Qadds(0.0), Wadds(0.0), density(-1.0), wthermalc(0.0), spech(0.0), htc(-1.0), vtc(-1.0), + mu(-1.0), volume(0.0), temp(0.0), tempp1(0.0), tempp2(0.0), wreport(0.0), water(0.0), vp(0.0), vpp1(0.0), vpsat(0.0), rh(0.1), + rhp1(0.1), rhp2(0.1), rhp(10.0), dwdphi(-1.0), dw(-1.0), origin(3, 0.0), length(3, 0.0), overlap(6, 0.0), dist(6, 0.0), adjs(6, 0), + adjsl(6, 0) { } }; @@ -157,8 +161,8 @@ namespace HeatBalanceHAMTManager { // structure internal moisture source struct InternalMoistureSource { - int id; // Internal moisture source id - int surface_id; // Surface id + int id; // Internal moisture source id + int surface_id; // Surface id int layer_id; // Layer id //int SourceType; // (1 = air flow input; 2 = infiltration model (Kuenzel); 3 = multi zone air flow model) @@ -169,10 +173,10 @@ namespace HeatBalanceHAMTManager { Real64 moist_airflow_input; // moist air flow input for source type 1 in m3 / m2 s // Source Type == 2: Air infiltration model - Real64 stack_height; // Stack height in m to create pressure difference for source type 2 + Real64 stack_height; // Stack height in m to create pressure difference for source type 2 Real64 component_air_permeance; // Component air permeance in Real64 mechanical_ventilation_overpressure; // Additional mechanical ventilation overpressure in Pa - Real64 delta_pressure; // Pressure difference over component in Pa + Real64 delta_pressure; // Pressure difference over component in Pa // Source Type == 3: Air flow network int afn_id; // Id of the component element in the airflow network @@ -211,6 +215,8 @@ namespace HeatBalanceHAMTManager { Real64 WVDC(Real64 const Temperature, Real64 const ambp); + Real64 SatAbsHum(EnergyPlusData &state, Real64 const Temperature); + // COPYRIGHT NOTICE // Portions Copyright (c) University College London 2007. All rights From f6ae40d7e90cb6b563b248128cb20b7718cca11c Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 30 Dec 2020 07:58:54 -0500 Subject: [PATCH 05/16] Move an object array --- .../include/AirflowNetwork/Elements.hpp | 4 +- .../AirflowNetwork/src/Elements.cpp | 8 +- src/EnergyPlus/AirflowNetwork/src/Solver.cpp | 31 +- .../AirflowNetworkBalanceManager.cc | 736 +++++++++--------- .../AirflowNetworkBalanceManager.hh | 7 + src/EnergyPlus/CrossVentMgr.cc | 24 +- src/EnergyPlus/DisplacementVentMgr.cc | 8 +- src/EnergyPlus/RoomAirModelAirflowNetwork.cc | 5 +- .../unit/AirflowNetworkBalanceManager.unit.cc | 29 +- tst/EnergyPlus/unit/CrossVentMgr.unit.cc | 4 +- .../unit/RoomAirflowNetwork.unit.cc | 22 +- 11 files changed, 463 insertions(+), 415 deletions(-) diff --git a/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp b/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp index 0893eec59b0..3a8d453c8a9 100644 --- a/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp +++ b/src/EnergyPlus/AirflowNetwork/include/AirflowNetwork/Elements.hpp @@ -216,7 +216,7 @@ namespace AirflowNetwork { // = NumOfLinksMultiZone+NumOfLinksDistribution // RoomAirManager use //extern int AirflowNetworkNumOfSurfaces; // The number of surfaces for multizone calculation - extern int AirflowNetworkNumOfZones; // The number of zones for multizone calculation + //extern int AirflowNetworkNumOfZones; // The number of zones for multizone calculation extern bool RollBackFlag; // Roll back flag when system time step down shifting extern Array1D ANZT; // Local zone air temperature for roll back use @@ -1637,7 +1637,7 @@ namespace AirflowNetwork { // Object Data extern Array1D AirflowNetworkNodeSimu; - extern Array1D AirflowNetworkLinkSimu; + //extern Array1D AirflowNetworkLinkSimu; extern AirflowNetworkSimuProp AirflowNetworkSimu; // unique object name | AirflowNetwork control | Wind pressure coefficient input control | Integer equivalent for WPCCntr diff --git a/src/EnergyPlus/AirflowNetwork/src/Elements.cpp b/src/EnergyPlus/AirflowNetwork/src/Elements.cpp index 2a756ab53a9..2efdcf80b3c 100644 --- a/src/EnergyPlus/AirflowNetwork/src/Elements.cpp +++ b/src/EnergyPlus/AirflowNetwork/src/Elements.cpp @@ -166,7 +166,7 @@ namespace AirflowNetwork { // = NumOfLinksMultiZone+NumOfLinksDistribution // RoomAirManager use //int AirflowNetworkNumOfSurfaces(0); // The number of surfaces for multizone calculation - int AirflowNetworkNumOfZones(0); // The number of zones for multizone calculation + //int AirflowNetworkNumOfZones(0); // The number of zones for multizone calculation bool RollBackFlag(false); // Roll back flag when system time step down shifting Array1D ANZT; // Local zone air temperature for roll back use @@ -188,7 +188,7 @@ namespace AirflowNetwork { // Object Data Array1D AirflowNetworkNodeSimu; - Array1D AirflowNetworkLinkSimu; + //Array1D AirflowNetworkLinkSimu; //Array1D AirflowNetworkExchangeData; //Array1D AirflowNetworkMultiExchangeData; //Array1D AirflowNetworkLinkReport; @@ -3837,7 +3837,7 @@ namespace AirflowNetwork { AirflowNetworkNumOfComps = 0; AirflowNetworkNumOfLinks = 0; //AirflowNetworkNumOfSurfaces = 0; - AirflowNetworkNumOfZones = 0; + //AirflowNetworkNumOfZones = 0; RollBackFlag = false; ANZT.deallocate(); ANZW.deallocate(); @@ -3851,7 +3851,7 @@ namespace AirflowNetwork { VAVTerminalRatio = 0.0; VAVSystem = false; AirflowNetworkNodeSimu.deallocate(); - AirflowNetworkLinkSimu.deallocate(); + //AirflowNetworkLinkSimu.deallocate(); //AirflowNetworkExchangeData.deallocate(); //AirflowNetworkMultiExchangeData.deallocate(); //AirflowNetworkLinkReport.deallocate(); diff --git a/src/EnergyPlus/AirflowNetwork/src/Solver.cpp b/src/EnergyPlus/AirflowNetwork/src/Solver.cpp index 5de8cfb462c..e2657fdbbaa 100644 --- a/src/EnergyPlus/AirflowNetwork/src/Solver.cpp +++ b/src/EnergyPlus/AirflowNetwork/src/Solver.cpp @@ -56,6 +56,7 @@ #include #include #include +#include #include "../../Data/EnergyPlusData.hh" @@ -569,34 +570,34 @@ namespace AirflowNetwork { if (AFLOW2(i) != 0.0) { } if (AFLOW(i) > 0.0) { - AirflowNetworkLinkSimu(i).FLOW = AFLOW(i); - AirflowNetworkLinkSimu(i).FLOW2 = 0.0; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = AFLOW(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = 0.0; } else { - AirflowNetworkLinkSimu(i).FLOW = 0.0; - AirflowNetworkLinkSimu(i).FLOW2 = -AFLOW(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = 0.0; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = -AFLOW(i); } if (AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_HOP) { if (AFLOW(i) > 0.0) { - AirflowNetworkLinkSimu(i).FLOW = AFLOW(i) + AFLOW2(i); - AirflowNetworkLinkSimu(i).FLOW2 = AFLOW2(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = AFLOW(i) + AFLOW2(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = AFLOW2(i); } else { - AirflowNetworkLinkSimu(i).FLOW = AFLOW2(i); - AirflowNetworkLinkSimu(i).FLOW2 = -AFLOW(i) + AFLOW2(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = AFLOW2(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = -AFLOW(i) + AFLOW2(i); } } if (AirflowNetworkLinkageData(i).DetOpenNum > 0) { if (AFLOW2(i) != 0.0) { - AirflowNetworkLinkSimu(i).FLOW = AFLOW(i) + AFLOW2(i); - AirflowNetworkLinkSimu(i).FLOW2 = AFLOW2(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = AFLOW(i) + AFLOW2(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = AFLOW2(i); } } if (AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_SOP && AFLOW2(i) != 0.0) { if (AFLOW(i) >= 0.0) { - AirflowNetworkLinkSimu(i).FLOW = AFLOW(i); - AirflowNetworkLinkSimu(i).FLOW2 = std::abs(AFLOW2(i)); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = AFLOW(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = std::abs(AFLOW2(i)); } else { - AirflowNetworkLinkSimu(i).FLOW = std::abs(AFLOW2(i)); - AirflowNetworkLinkSimu(i).FLOW2 = -AFLOW(i); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = std::abs(AFLOW2(i)); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = -AFLOW(i); } } } @@ -913,7 +914,7 @@ namespace AirflowNetwork { DP = DisSysCompCPDData(AirflowNetworkCompData(j).TypeNum).DP; } - AirflowNetworkLinkSimu(i).DP = DP; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP = DP; AFLOW(i) = F[0]; AFLOW2(i) = 0.0; if (AirflowNetworkCompData(j).CompTypeNum == CompTypeNum_DOP) { diff --git a/src/EnergyPlus/AirflowNetworkBalanceManager.cc b/src/EnergyPlus/AirflowNetworkBalanceManager.cc index 1e7a74d665c..84dcc17df99 100644 --- a/src/EnergyPlus/AirflowNetworkBalanceManager.cc +++ b/src/EnergyPlus/AirflowNetworkBalanceManager.cc @@ -2008,11 +2008,11 @@ namespace AirflowNetwork { // *** Read AirflowNetwork simulation zone data CurrentModuleObject = "AirflowNetwork:MultiZone:Zone"; - AirflowNetworkNumOfZones = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); - if (AirflowNetworkNumOfZones > 0) { - MultizoneZoneData.allocate(AirflowNetworkNumOfZones); + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones = inputProcessor->getNumObjectsFound(state, CurrentModuleObject); + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones > 0) { + MultizoneZoneData.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); AirflowNetworkZoneFlag.dimension(state.dataGlobal->NumOfZones, false); // AirflowNetwork zone flag - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { inputProcessor->getObjectItem(state, CurrentModuleObject, i, @@ -2088,7 +2088,7 @@ namespace AirflowNetwork { } // ==> Zone data validation - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { // Zone name validation MultizoneZoneData(i).ZoneNum = UtilityRoutines::FindItemInList(MultizoneZoneData(i).ZoneName, Zone); if (MultizoneZoneData(i).ZoneNum == 0) { @@ -2253,7 +2253,8 @@ namespace AirflowNetwork { " is required, but a blank is found."); ShowContinueError(state, format("The default value is assigned as {:.1R}", Numbers(1))); } - MultizoneExternalNodeData(i).ExtNum = AirflowNetworkNumOfZones + i; // External node number + MultizoneExternalNodeData(i).ExtNum = + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + i; // External node number MultizoneExternalNodeData(i).curve = CurveManager::GetCurveIndex(state, Alphas(2)); // Wind pressure curve if (MultizoneExternalNodeData(i).curve == 0) { ShowSevereError(state, RoutineName + "Invalid " + cAlphaFields(2) + "=" + Alphas(2)); @@ -2335,7 +2336,8 @@ namespace AirflowNetwork { ObjectIsParent); MultizoneExternalNodeData(i).OutAirNodeNum = NodeNum; // Name of outdoor air node MultizoneExternalNodeData(i).height = Node(NodeNum).Height; // Nodal height - MultizoneExternalNodeData(i).ExtNum = AirflowNetworkNumOfZones + i; // External node number + MultizoneExternalNodeData(i).ExtNum = + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + i; // External node number } } } else { @@ -2550,7 +2552,7 @@ namespace AirflowNetwork { // Ensure zones defined in inside and outside environment are used in the object of AIRFLOWNETWORK:MULTIZONE:ZONE found = false; n = Surface(MultizoneSurfaceData(i).SurfNum).Zone; - for (j = 1; j <= AirflowNetworkNumOfZones; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++j) { if (MultizoneZoneData(j).ZoneNum == n) { found = true; break; @@ -2705,7 +2707,7 @@ namespace AirflowNetwork { } } found = false; - for (j = 1; j <= AirflowNetworkNumOfZones; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++j) { if (MultizoneZoneData(j).ZoneNum == Surface(n).Zone) { found = true; break; @@ -2726,7 +2728,7 @@ namespace AirflowNetwork { n = Surface(MultizoneSurfaceData(i).SurfNum).ExtBoundCond; if (n >= 1) { // exterior boundary condition is a surface found = false; - for (j = 1; j <= AirflowNetworkNumOfZones; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++j) { if (MultizoneZoneData(j).ZoneNum == Surface(n).Zone) { found = true; break; @@ -3091,7 +3093,7 @@ namespace AirflowNetwork { } if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSingleSideZones > 0) { - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { if (MultizoneZoneData(i).SingleSidedCpType == "ADVANCED") { print(state.files.eio, "AirflowNetwork: Advanced Single-Sided Model: Difference in Opening Wind Pressure Coefficients (DeltaCP), "); @@ -3105,7 +3107,7 @@ namespace AirflowNetwork { } // If no zone object, exit - if (AirflowNetworkNumOfZones == 0) { + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones == 0) { ShowFatalError(state, RoutineName + "Errors found getting inputs. Previous error(s) cause program termination."); } // If zone node number =0, exit. @@ -3119,22 +3121,22 @@ namespace AirflowNetwork { } // Ensure at least two surfaces are exposed to a zone - ZoneCheck.allocate(AirflowNetworkNumOfZones); - ZoneBCCheck.allocate(AirflowNetworkNumOfZones); + ZoneCheck.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); + ZoneBCCheck.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); ZoneCheck = 0; ZoneBCCheck = 0; CurrentModuleObject = "AirflowNetwork:MultiZone:Surface"; for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++j) { - if (MultizoneSurfaceData(j).NodeNums[0] <= AirflowNetworkNumOfZones) { + if (MultizoneSurfaceData(j).NodeNums[0] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) { ++ZoneCheck(MultizoneSurfaceData(j).NodeNums[0]); ZoneBCCheck(MultizoneSurfaceData(j).NodeNums[0]) = MultizoneSurfaceData(j).NodeNums[1]; } - if (MultizoneSurfaceData(j).NodeNums[1] <= AirflowNetworkNumOfZones) { + if (MultizoneSurfaceData(j).NodeNums[1] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) { ++ZoneCheck(MultizoneSurfaceData(j).NodeNums[1]); ZoneBCCheck(MultizoneSurfaceData(j).NodeNums[1]) = MultizoneSurfaceData(j).NodeNums[0]; } } - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { if (ZoneCheck(i) == 0) { ShowSevereError(state, RoutineName + "AirflowNetwork:Multizone:Zone = " + MultizoneZoneData(i).ZoneName); ShowContinueError(state, " does not have any surfaces defined in " + CurrentModuleObject); @@ -3202,7 +3204,7 @@ namespace AirflowNetwork { j = MultizoneSurfaceData(i).SurfNum; if (SurfWinOriginalClass(j) == SurfaceClass::Window || SurfWinOriginalClass(j) == SurfaceClass::Door || SurfWinOriginalClass(j) == SurfaceClass::GlassDoor) { - for (n = 1; n <= AirflowNetworkNumOfZones; ++n) { + for (n = 1; n <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++n) { if (MultizoneZoneData(n).ZoneNum == Surface(j).Zone) { if (MultizoneZoneData(n).OccupantVentilationControlNum > 0 && MultizoneSurfaceData(i).OccupantVentilationControlNum == 0) { MultizoneSurfaceData(i).OccupantVentilationControlNum = MultizoneZoneData(n).OccupantVentilationControlNum; @@ -3241,8 +3243,8 @@ namespace AirflowNetwork { ShowSevereError(state, RoutineName + CurrentModuleObject + "='" + Alphas(1) + "' invalid name " + cAlphaFields(2) + "='" + Alphas(2)); ErrorsFound = true; } - IntraZoneNodeData(i).AFNZoneNum = - UtilityRoutines::FindItemInList(Alphas(3), MultizoneZoneData, &MultizoneZoneProp::ZoneName, AirflowNetworkNumOfZones); + IntraZoneNodeData(i).AFNZoneNum = UtilityRoutines::FindItemInList( + Alphas(3), MultizoneZoneData, &MultizoneZoneProp::ZoneName, state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); if (MultizoneZoneData(IntraZoneNodeData(i).AFNZoneNum).RAFNNodeNum == 0) { GetRAFNNodeNum(state, MultizoneZoneData(IntraZoneNodeData(i).AFNZoneNum).ZoneName, @@ -3274,7 +3276,7 @@ namespace AirflowNetwork { NumOfNodesIntraZone = state.dataAirflowNetworkBalanceManager->IntraZoneNumOfNodes; // check zone node state.dataAirflowNetworkBalanceManager->IntraZoneNumOfZones = 0; - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { if (MultizoneZoneData(i).RAFNNodeNum > 0) { state.dataAirflowNetworkBalanceManager->IntraZoneNumOfZones += 1; } @@ -3332,8 +3334,8 @@ namespace AirflowNetwork { // Check valid node names IntraZoneLinkageData(i).NodeNums[0] = UtilityRoutines::FindItemInList(Alphas(2), IntraZoneNodeData, state.dataAirflowNetworkBalanceManager->IntraZoneNumOfNodes); if (IntraZoneLinkageData(i).NodeNums[0] == 0) { - IntraZoneLinkageData(i).NodeNums[0] = - UtilityRoutines::FindItemInList(Alphas(2), MultizoneZoneData, &MultizoneZoneProp::ZoneName, AirflowNetworkNumOfZones); + IntraZoneLinkageData(i).NodeNums[0] = UtilityRoutines::FindItemInList( + Alphas(2), MultizoneZoneData, &MultizoneZoneProp::ZoneName, state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); IntraZoneLinkageData(i).NodeHeights[0] = Zone(MultizoneZoneData(IntraZoneLinkageData(i).NodeNums[0]).ZoneNum).Centroid.z; if (IntraZoneLinkageData(i).NodeNums[0] == 0) { ShowSevereError(state, RoutineName + CurrentModuleObject + "='" + Alphas(1) + "': Invalid " + cAlphaFields(2) + @@ -3342,12 +3344,14 @@ namespace AirflowNetwork { } } else { IntraZoneLinkageData(i).NodeHeights[0] = IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[0]).Height; - IntraZoneLinkageData(i).NodeNums[0] = IntraZoneLinkageData(i).NodeNums[0] + AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; + IntraZoneLinkageData(i).NodeNums[0] = IntraZoneLinkageData(i).NodeNums[0] + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; } IntraZoneLinkageData(i).NodeNums[1] = UtilityRoutines::FindItemInList(Alphas(3), IntraZoneNodeData, state.dataAirflowNetworkBalanceManager->IntraZoneNumOfNodes); if (IntraZoneLinkageData(i).NodeNums[1] == 0) { - IntraZoneLinkageData(i).NodeNums[1] = - UtilityRoutines::FindItemInList(Alphas(3), MultizoneZoneData, &MultizoneZoneProp::ZoneName, AirflowNetworkNumOfZones); + IntraZoneLinkageData(i).NodeNums[1] = UtilityRoutines::FindItemInList( + Alphas(3), MultizoneZoneData, &MultizoneZoneProp::ZoneName, state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); if (IntraZoneLinkageData(i).NodeNums[1] > 0) { IntraZoneLinkageData(i).NodeHeights[1] = Zone(MultizoneZoneData(IntraZoneLinkageData(i).NodeNums[1]).ZoneNum).Centroid.z; } else { @@ -3373,29 +3377,39 @@ namespace AirflowNetwork { } } else { IntraZoneLinkageData(i).NodeHeights[1] = IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[1]).Height; - IntraZoneLinkageData(i).NodeNums[1] = IntraZoneLinkageData(i).NodeNums[1] + AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; + IntraZoneLinkageData(i).NodeNums[1] = IntraZoneLinkageData(i).NodeNums[1] + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; } // Ensure the both linked nodes for a surface are not zone nodes.One of nodes has to be an intrazone node - if (IntraZoneLinkageData(i).NodeNums[1] <= AirflowNetworkNumOfZones && - IntraZoneLinkageData(i).NodeNums[0] <= AirflowNetworkNumOfZones) { + if (IntraZoneLinkageData(i).NodeNums[1] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones && + IntraZoneLinkageData(i).NodeNums[0] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) { ShowSevereError(state, RoutineName + CurrentModuleObject + "='" + Alphas(1) + "': Invalid node inputs " + Alphas(2) + " and " + Alphas(3) + " are zone nodes"); ErrorsFound = true; } - if (IntraZoneLinkageData(i).NodeNums[0] <= AirflowNetworkNumOfZones && - IntraZoneLinkageData(i).NodeNums[1] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode && lAlphaBlanks(5)) { + if (IntraZoneLinkageData(i).NodeNums[0] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones && + IntraZoneLinkageData(i).NodeNums[1] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode && + lAlphaBlanks(5)) { if (IntraZoneLinkageData(i).NodeNums[0] != - IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[1] - AirflowNetworkNumOfZones - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode).ZoneNum) { + IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[1] - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) + .ZoneNum) { ShowSevereError(state, RoutineName + CurrentModuleObject + "='" + Alphas(1) + ": Invalid zone inputs between Node and Link " + Alphas(2) + " and " + MultizoneZoneData(IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[0]).ZoneNum).ZoneName); ErrorsFound = true; } } - if (IntraZoneLinkageData(i).NodeNums[1] <= AirflowNetworkNumOfZones && - IntraZoneLinkageData(i).NodeNums[0] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode && lAlphaBlanks(5)) { + if (IntraZoneLinkageData(i).NodeNums[1] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones && + IntraZoneLinkageData(i).NodeNums[0] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode && + lAlphaBlanks(5)) { if (IntraZoneLinkageData(i).NodeNums[1] != - IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[0] - AirflowNetworkNumOfZones - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode).ZoneNum) { + IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[0] - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) + .ZoneNum) { ShowSevereError(state, RoutineName + CurrentModuleObject + "='" + Alphas(1) + ": Invalid zone inputs between Node and Link " + Alphas(3) + " and " + MultizoneZoneData(IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[1]).ZoneNum).ZoneName); @@ -3413,11 +3427,13 @@ namespace AirflowNetwork { NumOfLinksIntraZone = NumOfLinksIntraZone - 1; if (Surface(MultizoneSurfaceData(j).SurfNum).ExtBoundCond == 0) { // Exterior surface NodeNums[1] should be equal - if (IntraZoneLinkageData(i).NodeNums[0] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { + if (IntraZoneLinkageData(i).NodeNums[0] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { MultizoneSurfaceData(j).RAFNflag = true; MultizoneSurfaceData(j).ZonePtr = MultizoneSurfaceData(j).NodeNums[0]; MultizoneSurfaceData(j).NodeNums[0] = IntraZoneLinkageData(i).NodeNums[0]; - } else if (IntraZoneLinkageData(i).NodeNums[1] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { + } else if (IntraZoneLinkageData(i).NodeNums[1] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { MultizoneSurfaceData(j).RAFNflag = true; MultizoneSurfaceData(j).ZonePtr = MultizoneSurfaceData(j).NodeNums[0]; MultizoneSurfaceData(j).NodeNums[0] = IntraZoneLinkageData(i).NodeNums[1]; @@ -3429,11 +3445,15 @@ namespace AirflowNetwork { } } else { // Interior surface - if (IntraZoneLinkageData(i).NodeNums[0] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode && - IntraZoneLinkageData(i).NodeNums[1] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { + if (IntraZoneLinkageData(i).NodeNums[0] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode && + IntraZoneLinkageData(i).NodeNums[1] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { MultizoneSurfaceData(j).RAFNflag = true; if (MultizoneZoneData(MultizoneSurfaceData(j).NodeNums[0]).ZoneNum == - IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[0] - AirflowNetworkNumOfZones - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) + IntraZoneNodeData(IntraZoneLinkageData(i).NodeNums[0] - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) .ZoneNum) { MultizoneSurfaceData(j).ZonePtr = MultizoneSurfaceData(j).NodeNums[0]; MultizoneSurfaceData(j).NodeNums[0] = IntraZoneLinkageData(i).NodeNums[0]; @@ -3443,7 +3463,8 @@ namespace AirflowNetwork { MultizoneSurfaceData(j).NodeNums[0] = IntraZoneLinkageData(i).NodeNums[1]; MultizoneSurfaceData(j).NodeNums[1] = IntraZoneLinkageData(i).NodeNums[0]; } - } else if (IntraZoneLinkageData(i).NodeNums[0] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { + } else if (IntraZoneLinkageData(i).NodeNums[0] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { MultizoneSurfaceData(j).RAFNflag = true; if (IntraZoneLinkageData(i).NodeNums[1] == MultizoneSurfaceData(j).NodeNums[0]) { MultizoneSurfaceData(j).NodeNums[1] = IntraZoneLinkageData(i).NodeNums[0]; @@ -3456,7 +3477,8 @@ namespace AirflowNetwork { " and AirflowNetwork:Multizone:Surface = " + MultizoneSurfaceData(j).SurfName); ErrorsFound = true; } - } else if (IntraZoneLinkageData(i).NodeNums[1] > AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { + } else if (IntraZoneLinkageData(i).NodeNums[1] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode) { MultizoneSurfaceData(j).RAFNflag = true; if (IntraZoneLinkageData(i).NodeNums[0] == MultizoneSurfaceData(j).NodeNums[0]) { MultizoneSurfaceData(j).NodeNums[1] = IntraZoneLinkageData(i).NodeNums[1]; @@ -3689,8 +3711,8 @@ namespace AirflowNetwork { PressureControllerData(i).Name = Alphas(1); // Object Name PressureControllerData(i).ZoneName = Alphas(2); // Zone name PressureControllerData(i).ZoneNum = UtilityRoutines::FindItemInList(Alphas(2), Zone); - PressureControllerData(i).AFNNodeNum = - UtilityRoutines::FindItemInList(Alphas(2), MultizoneZoneData, &MultizoneZoneProp::ZoneName, AirflowNetworkNumOfZones); + PressureControllerData(i).AFNNodeNum = UtilityRoutines::FindItemInList( + Alphas(2), MultizoneZoneData, &MultizoneZoneProp::ZoneName, state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); if (PressureControllerData(i).ZoneNum == 0) { ShowSevereError(state, RoutineName + CurrentModuleObject + " object, invalid " + cAlphaFields(2) + " given."); ShowContinueError(state, "..invalid " + cAlphaFields(2) + " = \"" + PressureControllerData(i).ZoneName + "\""); @@ -3766,9 +3788,11 @@ namespace AirflowNetwork { // Assign numbers of nodes and linkages if (SimulateAirflowNetwork > AirflowNetworkControlSimple) { if (AirflowNetworkSimu.iWPCCntr == iWPCCntr_Input) { - NumOfNodesMultiZone = AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; + NumOfNodesMultiZone = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfExtNode; } else { - NumOfNodesMultiZone = AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->NumOfExtNodes; + NumOfNodesMultiZone = + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + state.dataAirflowNetworkBalanceManager->NumOfExtNodes; } NumOfLinksMultiZone = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; AirflowNetworkNumOfNodes = NumOfNodesMultiZone; @@ -3783,7 +3807,7 @@ namespace AirflowNetwork { // Assign node data AirflowNetworkNodeData.allocate(AirflowNetworkNumOfNodes); // Zone node - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { AirflowNetworkNodeData(i).Name = MultizoneZoneData(i).ZoneName; AirflowNetworkNodeData(i).NodeTypeNum = 0; AirflowNetworkNodeData(i).EPlusZoneNum = MultizoneZoneData(i).ZoneNum; @@ -3791,17 +3815,19 @@ namespace AirflowNetwork { } // External node if (AirflowNetworkSimu.iWPCCntr == iWPCCntr_Input) { - for (int i = AirflowNetworkNumOfZones + 1; i <= NumOfNodesMultiZone; ++i) { - AirflowNetworkNodeData(i).Name = MultizoneExternalNodeData(i - AirflowNetworkNumOfZones).Name; + for (int i = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + 1; i <= NumOfNodesMultiZone; ++i) { + AirflowNetworkNodeData(i).Name = MultizoneExternalNodeData(i - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones).Name; AirflowNetworkNodeData(i).NodeTypeNum = 1; AirflowNetworkNodeData(i).EPlusZoneNum = 0; - AirflowNetworkNodeData(i).NodeHeight = MultizoneExternalNodeData(i - AirflowNetworkNumOfZones).height; - AirflowNetworkNodeData(i).ExtNodeNum = i - AirflowNetworkNumOfZones; - AirflowNetworkNodeData(i).OutAirNodeNum = MultizoneExternalNodeData(i - AirflowNetworkNumOfZones).OutAirNodeNum; + AirflowNetworkNodeData(i).NodeHeight = + MultizoneExternalNodeData(i - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones).height; + AirflowNetworkNodeData(i).ExtNodeNum = i - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; + AirflowNetworkNodeData(i).OutAirNodeNum = + MultizoneExternalNodeData(i - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones).OutAirNodeNum; } } else { // Surface-Average input - for (int i = AirflowNetworkNumOfZones + 1; i <= NumOfNodesMultiZone; ++i) { - n = i - AirflowNetworkNumOfZones; + for (int i = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + 1; i <= NumOfNodesMultiZone; ++i) { + n = i - state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; AirflowNetworkNodeData(i).Name = MultizoneExternalNodeData(n).Name; AirflowNetworkNodeData(i).NodeTypeNum = 1; AirflowNetworkNodeData(i).EPlusZoneNum = 0; @@ -3819,7 +3845,7 @@ namespace AirflowNetwork { AirflowNetworkNodeData(i).NodeHeight = IntraZoneNodeData(n).Height; AirflowNetworkNodeData(i).RAFNNodeNum = IntraZoneNodeData(n).RAFNNodeNum; } - for (int i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { if (MultizoneZoneData(i).RAFNNodeNum > 0) { AirflowNetworkNodeData(i).RAFNNodeNum = MultizoneZoneData(i).RAFNNodeNum; } @@ -4239,13 +4265,13 @@ namespace AirflowNetwork { AirflowNetworkLinkageData(count).NodeHeights[0] = Zone(MultizoneZoneData(AirflowNetworkLinkageData(count).NodeNums[0]).ZoneNum).Centroid.z; } - if (AirflowNetworkLinkageData(count).NodeNums[1] <= AirflowNetworkNumOfZones) { + if (AirflowNetworkLinkageData(count).NodeNums[1] <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) { if (MultizoneZoneData(AirflowNetworkLinkageData(count).NodeNums[1]).ZoneNum > 0) { AirflowNetworkLinkageData(count).NodeHeights[1] = Zone(MultizoneZoneData(AirflowNetworkLinkageData(count).NodeNums[1]).ZoneNum).Centroid.z; } } - if (AirflowNetworkLinkageData(count).NodeNums[1] > AirflowNetworkNumOfZones) { + if (AirflowNetworkLinkageData(count).NodeNums[1] > state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) { ShowSevereError(state, RoutineName + "AirflowNetworkComponent: The horizontal opening must be located between two thermal zones at " + AirflowNetworkLinkageData(count).Name); @@ -4903,8 +4929,8 @@ namespace AirflowNetwork { } for (i = 1; i <= AirflowNetwork::AirflowNetworkNumOfLinks; ++i) { - AirflowNetwork::AirflowNetworkLinkSimu(i).FLOW = 0.0; - AirflowNetwork::AirflowNetworkLinkSimu(i).FLOW2 = 0.0; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW = 0.0; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 = 0.0; } for (i = 1; i <= state.dataGlobal->NumOfZones; ++i) { @@ -5055,12 +5081,12 @@ namespace AirflowNetwork { int SurfNum; AirflowNetworkNodeSimu.allocate(AirflowNetworkNumOfNodes); // Node simulation variable in air distribution system - AirflowNetworkLinkSimu.allocate(AirflowNetworkNumOfLinks); // Link simulation variable in air distribution system + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu.allocate(AirflowNetworkNumOfLinks); // Link simulation variable in air distribution system state.dataAirflowNetworkBalanceManager->linkReport.allocate(AirflowNetworkNumOfLinks); // Report link simulation variable in air distribution system for (i = 1; i <= state.dataAirflowNetworkBalanceManager->DisSysNumOfCVFs; i++) { if (DisSysCompCVFData(i).FanTypeNum == FanType_SimpleOnOff) { - state.dataAirflowNetworkBalanceManager->nodeReport.allocate(AirflowNetworkNumOfZones); + state.dataAirflowNetworkBalanceManager->nodeReport.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); state.dataAirflowNetworkBalanceManager->linkReport1.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces); break; } @@ -5116,7 +5142,8 @@ namespace AirflowNetwork { "Average", AirflowNetworkNodeData(i).Name); } - if (!(state.dataAirflowNetworkBalanceManager->SupplyFanType == FanType_SimpleOnOff && i <= AirflowNetworkNumOfZones)) { + if (!(state.dataAirflowNetworkBalanceManager->SupplyFanType == FanType_SimpleOnOff && + i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones)) { SetupOutputVariable(state, "AFN Node Total Pressure", OutputProcessor::Unit::Pa, @@ -5170,7 +5197,7 @@ namespace AirflowNetwork { SetupOutputVariable(state, "AFN Linkage Node 1 to Node 2 Pressure Difference", OutputProcessor::Unit::Pa, - AirflowNetworkLinkSimu(i).DP, + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP, "System", "Average", AirflowNetworkLinkageData(i).Name); @@ -5628,7 +5655,7 @@ namespace AirflowNetwork { } if (OnOffFanFlag) { - for (i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { SetupOutputVariable(state, "AFN Zone Average Pressure", OutputProcessor::Unit::Pa, state.dataAirflowNetworkBalanceManager->nodeReport(i).PZ, "System", "Average", Zone(i).Name); SetupOutputVariable(state, @@ -6250,7 +6277,7 @@ namespace AirflowNetwork { AirflowNetworkNumOfExtNode = AirflowNetworkNumOfExtSurfaces; NumOfExtNodes = AirflowNetworkNumOfExtSurfaces; for (ExtNum = 1; ExtNum <= NumOfExtNodes; ++ExtNum) { - AirflowNetwork::MultizoneExternalNodeData(ExtNum).ExtNum = AirflowNetwork::AirflowNetworkNumOfZones + ExtNum; + AirflowNetwork::MultizoneExternalNodeData(ExtNum).ExtNum = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones + ExtNum; AirflowNetwork::MultizoneExternalNodeData(ExtNum).Name = format("ExtNode{:4}", ExtNum); } @@ -6295,7 +6322,7 @@ namespace AirflowNetwork { } // Check if using the advanced single sided model - for (AFNZnNum = 1; AFNZnNum <= AirflowNetwork::AirflowNetworkNumOfZones; ++AFNZnNum) { + for (AFNZnNum = 1; AFNZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++AFNZnNum) { if (AirflowNetwork::MultizoneZoneData(AFNZnNum).SingleSidedCpType == "ADVANCED") { ++AirflowNetworkNumOfSingleSideZones; } @@ -6717,7 +6744,7 @@ namespace AirflowNetwork { // Calculate duct conduction loss if (CompTypeNum == CompTypeNum_DWC && CompName == std::string()) { // Duct element only TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -6727,7 +6754,8 @@ namespace AirflowNetwork { DirSign = -1.0; } // Fatal error when return flow is opposite to the desired direction - if (AirflowNetworkLinkSimu(i).FLOW == 0.0 && AirflowNetworkLinkSimu(i).FLOW2 > 0.0) { + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW == 0.0 && + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0) { if (state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) { ShowSevereError(state, "AirflowNetwork: The airflow direction is opposite to the intended direction (from node 1 to node 2) in " "AirflowNetwork:Distribution:Linkage = " + @@ -6779,7 +6807,7 @@ namespace AirflowNetwork { UThermal_iter = UThermal; Real64 RThermConvIn = CalcDuctInsideConvResist(Tin, - AirflowNetworkLinkSimu(i).FLOW, + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW, DisSysCompDuctData(TypeNum).hydraulicDiameter, DisSysCompDuctData(TypeNum).InsideConvCoeff); Real64 RThermConvOut = CalcDuctOutsideConvResist(state, @@ -6795,14 +6823,14 @@ namespace AirflowNetwork { UThermal = pow(RThermTotal, -1); // Duct conduction, assuming effectiveness = 1 - exp(-NTU) - Ei = General::epexp(-UThermal * DuctSurfArea, (DirSign * AirflowNetworkLinkSimu(i).FLOW * CpAir)); - Real64 QCondDuct = std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir * (Tamb - Tin) * (1 - Ei); + Ei = General::epexp(-UThermal * DuctSurfArea, (DirSign * state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir)); + Real64 QCondDuct = std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir * (Tamb - Tin) * (1 - Ei); TDuctSurf = Tamb - QCondDuct * RThermConvOut / DuctSurfArea; } } else { // Air-to-air only. U and h values are all known Real64 RThermConvIn = CalcDuctInsideConvResist(Tin, - AirflowNetworkLinkSimu(i).FLOW, + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW, DisSysCompDuctData(TypeNum).hydraulicDiameter, DisSysCompDuctData(TypeNum).InsideConvCoeff); Real64 RThermConvOut = CalcDuctOutsideConvResist(state, @@ -6833,7 +6861,7 @@ namespace AirflowNetwork { UThermal_iter = UThermal; Real64 RThermConvIn = CalcDuctInsideConvResist(Tin_ave, - AirflowNetworkLinkSimu(i).FLOW, + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW, DisSysCompDuctData(TypeNum).hydraulicDiameter, DisSysCompDuctData(TypeNum).InsideConvCoeff); Real64 RThermConvOut = CalcDuctOutsideConvResist(state, @@ -6888,7 +6916,7 @@ namespace AirflowNetwork { Real64 RThermTotal = RThermConvIn + RThermConduct + 1 / (hOut + hrj_sum); UThermal = pow(RThermTotal, -1); - Real64 NTU = UThermal * DuctSurfArea / (DirSign * AirflowNetworkLinkSimu(i).FLOW * CpAir); + Real64 NTU = UThermal * DuctSurfArea / (DirSign * state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir); Tin_ave = Tsurr + (Tin - Tsurr) * (1 / NTU) * (1 - exp(-NTU)); TDuctSurf = Tin_ave - UThermal * (RThermConvIn + RThermConduct) * (Tin_ave - Tsurr); @@ -6912,21 +6940,21 @@ namespace AirflowNetwork { UThermal = (VFObj.QRad + VFObj.QConv) / (DuctSurfArea * std::abs(Tsurr - Tin)); } - if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && AirflowNetworkLinkSimu(i).FLOW <= 0.0) { - Ei = General::epexp(-UThermal * DuctSurfArea, (AirflowNetworkLinkSimu(i).FLOW2 * CpAir)); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * Tsurr * (1.0 - Ei) * CpAir; + if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW <= 0.0) { + Ei = General::epexp(-UThermal * DuctSurfArea, (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir)); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * Tsurr * (1.0 - Ei) * CpAir; } else { - Ei = General::epexp(-UThermal * DuctSurfArea, (DirSign * AirflowNetworkLinkSimu(i).FLOW * CpAir)); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * Tsurr * (1.0 - Ei) * CpAir; + Ei = General::epexp(-UThermal * DuctSurfArea, (DirSign * state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir)); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * Tsurr * (1.0 - Ei) * CpAir; } } if (CompTypeNum == CompTypeNum_TMU) { // Reheat unit: SINGLE DUCT:CONST VOLUME:REHEAT TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -6936,23 +6964,23 @@ namespace AirflowNetwork { DirSign = -1.0; } Ei = General::epexp(-0.001 * DisSysCompTermUnitData(TypeNum).L * DisSysCompTermUnitData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, - (DirSign * AirflowNetworkLinkSimu(i).FLOW * CpAir)); + (DirSign * state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir)); Tamb = AirflowNetworkNodeSimu(LT).TZ; - if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && AirflowNetworkLinkSimu(i).FLOW <= 0.0) { + if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW <= 0.0) { Ei = General::epexp(-0.001 * DisSysCompTermUnitData(TypeNum).L * DisSysCompTermUnitData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir)); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * Tamb * (1.0 - Ei) * CpAir; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir)); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * Tamb * (1.0 - Ei) * CpAir; } else { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * Tamb * (1.0 - Ei) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * Tamb * (1.0 - Ei) * CpAir; } } if (CompTypeNum == CompTypeNum_COI) { // heating or cooling coil TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -6964,19 +6992,19 @@ namespace AirflowNetwork { } // Calculate temp in a constant pressure drop element if (CompTypeNum == CompTypeNum_CPD && CompName == std::string()) { // constant pressure element only - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; } else { // flow direction is the opposite as input from node 2 to node 1 LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; } - if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && AirflowNetworkLinkSimu(i).FLOW <= 0.0) { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW <= 0.0) { + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; } else { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; } state.dataAirflowNetworkBalanceManager->MV(LT) = 0.0; } @@ -6984,32 +7012,32 @@ namespace AirflowNetwork { if ((CompTypeNum == CompTypeNum_PLR || CompTypeNum == CompTypeNum_ELR) && CompName == std::string()) { // Return leak element only if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * CpAir; } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir; } } // Check reheat unit or coil @@ -7026,7 +7054,7 @@ namespace AirflowNetwork { ShowFatalError(state, "Node number in the primary air loop is not found in AIRFLOWNETWORK:DISTRIBUTION:NODE = " + AirflowNetworkLinkageData(i).Name); } - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; load = Node(NT).Temp - Node(NF).Temp; @@ -7036,7 +7064,7 @@ namespace AirflowNetwork { load = Node(NF).Temp - Node(NT).Temp; } CpAir = PsyCpAirFnW(Node(NT).HumRat); - state.dataAirflowNetworkBalanceManager->MV(LT) += AirflowNetworkLinkSimu(i).FLOW * CpAir * load; + state.dataAirflowNetworkBalanceManager->MV(LT) += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * load; } } @@ -7187,7 +7215,7 @@ namespace AirflowNetwork { // Calculate duct moisture diffusion loss if (CompTypeNum == CompTypeNum_DWC && CompName == std::string()) { // Duct component only TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7197,7 +7225,7 @@ namespace AirflowNetwork { DirSign = -1.0; } Ei = General::epexp(-DisSysCompDuctData(TypeNum).UMoisture * DisSysCompDuctData(TypeNum).L * - DisSysCompDuctData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, (DirSign * AirflowNetworkLinkSimu(i).FLOW)); + DisSysCompDuctData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, (DirSign * state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW)); if (AirflowNetworkLinkageData(i).ZoneNum < 0) { Wamb = state.dataEnvrn->OutHumRat; } else if (AirflowNetworkLinkageData(i).ZoneNum == 0) { @@ -7205,21 +7233,21 @@ namespace AirflowNetwork { } else { Wamb = ANZW(AirflowNetworkLinkageData(i).ZoneNum); } - if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && AirflowNetworkLinkSimu(i).FLOW <= 0.0) { + if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW <= 0.0) { Ei = General::epexp(-DisSysCompDuctData(TypeNum).UMoisture * DisSysCompDuctData(TypeNum).L * - DisSysCompDuctData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, (AirflowNetworkLinkSimu(i).FLOW2)); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * Wamb * (1.0 - Ei); + DisSysCompDuctData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2)); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * Wamb * (1.0 - Ei); } else { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * Wamb * (1.0 - Ei); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * Wamb * (1.0 - Ei); } } if (CompTypeNum == CompTypeNum_TMU) { // Reheat unit: SINGLE DUCT:CONST VOLUME:REHEAT TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7229,24 +7257,25 @@ namespace AirflowNetwork { DirSign = -1.0; } Ei = General::epexp(-0.0001 * DisSysCompTermUnitData(TypeNum).L * DisSysCompTermUnitData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, - (DirSign * AirflowNetworkLinkSimu(i).FLOW)); + (DirSign * state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW)); Wamb = AirflowNetworkNodeSimu(LT).WZ; - if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && AirflowNetworkLinkSimu(i).FLOW <= 0.0) { + if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW <= 0.0) { Ei = General::epexp(-0.0001 * DisSysCompTermUnitData(TypeNum).L * DisSysCompTermUnitData(TypeNum).hydraulicDiameter * DataGlobalConstants::Pi, - (AirflowNetworkLinkSimu(i).FLOW2)); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2) * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * Wamb * (1.0 - Ei); + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2)); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * Wamb * (1.0 - Ei); } else { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW) * Ei; - state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW) * Wamb * (1.0 - Ei); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * Ei; + state.dataAirflowNetworkBalanceManager->MV(LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW) * Wamb * (1.0 - Ei); } } if (CompTypeNum == CompTypeNum_COI) { // heating or cooling coil TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7258,19 +7287,19 @@ namespace AirflowNetwork { } // Calculate temp in a constant pressure drop component if (CompTypeNum == CompTypeNum_CPD && CompName == std::string()) { // constant pressure element only - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; } else { // flow direction is the opposite as input from node 2 to node 1 LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; } - if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && AirflowNetworkLinkSimu(i).FLOW <= 0.0) { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum) && state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW <= 0.0) { + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } else { - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } state.dataAirflowNetworkBalanceManager->MV(LT) = 0.0; } @@ -7278,32 +7307,32 @@ namespace AirflowNetwork { if ((CompTypeNum == CompTypeNum_PLR || CompTypeNum == CompTypeNum_ELR) && CompName == std::string()) { // Return leak component only if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } } // Check reheat unit @@ -7320,7 +7349,7 @@ namespace AirflowNetwork { ShowFatalError(state, "Node number in the primary air loop is not found in AIRFLOWNETWORK:DISTRIBUTION:NODE = " + AirflowNetworkLinkageData(i).Name); } - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; load = Node(NT).HumRat - Node(NF).HumRat; @@ -7329,7 +7358,7 @@ namespace AirflowNetwork { LT = AirflowNetworkLinkageData(i).NodeNums[0]; load = Node(NF).HumRat - Node(NT).HumRat; } - state.dataAirflowNetworkBalanceManager->MV(LT) += AirflowNetworkLinkSimu(i).FLOW * load; + state.dataAirflowNetworkBalanceManager->MV(LT) += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * load; } } @@ -7465,7 +7494,7 @@ namespace AirflowNetwork { // Calculate duct moisture diffusion loss if (CompTypeNum == CompTypeNum_DWC && CompName == std::string()) { // Duct component only TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7474,12 +7503,12 @@ namespace AirflowNetwork { LT = AirflowNetworkLinkageData(i).NodeNums[0]; DirSign = -1.0; } - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if (CompTypeNum == CompTypeNum_TMU) { // Reheat unit: SINGLE DUCT:CONST VOLUME:REHEAT TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7488,12 +7517,12 @@ namespace AirflowNetwork { LT = AirflowNetworkLinkageData(i).NodeNums[0]; DirSign = -1.0; } - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if (CompTypeNum == CompTypeNum_COI) { // heating or cooling coil TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7505,47 +7534,47 @@ namespace AirflowNetwork { } // Calculate temp in a constant pressure drop component if (CompTypeNum == CompTypeNum_CPD && CompName == std::string()) { // constant pressure element only - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; } else { // flow direction is the opposite as input from node 2 to node 1 LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; } - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); state.dataAirflowNetworkBalanceManager->MV(LT) = 0.0; } // Calculate return leak if ((CompTypeNum == CompTypeNum_PLR || CompTypeNum == CompTypeNum_ELR) && CompName == std::string()) { // Return leak component only if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } } } @@ -7675,7 +7704,7 @@ namespace AirflowNetwork { // Calculate duct moisture diffusion loss if (CompTypeNum == CompTypeNum_DWC && CompName == std::string()) { // Duct component only TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7684,12 +7713,12 @@ namespace AirflowNetwork { LT = AirflowNetworkLinkageData(i).NodeNums[0]; DirSign = -1.0; } - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if (CompTypeNum == CompTypeNum_TMU) { // Reheat unit: SINGLE DUCT:CONST VOLUME:REHEAT TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7698,12 +7727,12 @@ namespace AirflowNetwork { LT = AirflowNetworkLinkageData(i).NodeNums[0]; DirSign = -1.0; } - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if (CompTypeNum == CompTypeNum_COI) { // heating or cooling coil TypeNum = AirflowNetworkCompData(CompNum).TypeNum; - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; DirSign = 1.0; @@ -7715,47 +7744,47 @@ namespace AirflowNetwork { } // Calculate temp in a constant pressure drop component if (CompTypeNum == CompTypeNum_CPD && CompName == std::string()) { // constant pressure element only - if (AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0) { // flow direction is the same as input from node 1 to node 2 LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; } else { // flow direction is the opposite as input from node 2 to node 1 LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; } - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); state.dataAirflowNetworkBalanceManager->MV(LT) = 0.0; } // Calculate return leak if ((CompTypeNum == CompTypeNum_PLR || CompTypeNum == CompTypeNum_ELR) && CompName == std::string()) { // Return leak component only if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[0]; LT = AirflowNetworkLinkageData(i).NodeNums[1]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).EPlusZoneNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } if ((AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[1]).ExtNodeNum > 0) && - (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (AirflowNetworkNodeData(AirflowNetworkLinkageData(i).NodeNums[0]).EPlusZoneNum == 0) && (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { LF = AirflowNetworkLinkageData(i).NodeNums[1]; LT = AirflowNetworkLinkageData(i).NodeNums[0]; - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(AirflowNetworkLinkSimu(i).FLOW2); - state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LT) += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); + state.dataAirflowNetworkBalanceManager->MA((LT - 1) * AirflowNetworkNumOfNodes + LF) = -std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2); } } } @@ -8055,45 +8084,45 @@ namespace AirflowNetwork { if (AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_SCR || AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_SEL) { if (Tamb > MAT(ZN1)) { - AirflowNetworkReportData(ZN1).MultiZoneInfiSenGainW += (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))); + AirflowNetworkReportData(ZN1).MultiZoneInfiSenGainW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))); AirflowNetworkReportData(ZN1).MultiZoneInfiSenGainJ += - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))) * ReportingConstant; } else { - AirflowNetworkReportData(ZN1).MultiZoneInfiSenLossW += (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)); + AirflowNetworkReportData(ZN1).MultiZoneInfiSenLossW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)); AirflowNetworkReportData(ZN1).MultiZoneInfiSenLossJ += - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)) * ReportingConstant; } if (state.dataEnvrn->OutHumRat > ZoneAirHumRat(ZN1)) { AirflowNetworkReportData(ZN1).MultiZoneInfiLatGainW += - (AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg; AirflowNetworkReportData(ZN1).MultiZoneInfiLatGainJ += - (AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; } else { AirflowNetworkReportData(ZN1).MultiZoneInfiLatLossW += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg; AirflowNetworkReportData(ZN1).MultiZoneInfiLatLossJ += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; } } else { if (Tamb > MAT(ZN1)) { - AirflowNetworkReportData(ZN1).MultiZoneVentSenGainW += (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))); + AirflowNetworkReportData(ZN1).MultiZoneVentSenGainW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))); AirflowNetworkReportData(ZN1).MultiZoneVentSenGainJ += - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - MAT(ZN1))) * ReportingConstant; } else { - AirflowNetworkReportData(ZN1).MultiZoneVentSenLossW += (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)); + AirflowNetworkReportData(ZN1).MultiZoneVentSenLossW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)); AirflowNetworkReportData(ZN1).MultiZoneVentSenLossJ += - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - Tamb)) * ReportingConstant; } if (state.dataEnvrn->OutHumRat > ZoneAirHumRat(ZN1)) { AirflowNetworkReportData(ZN1).MultiZoneVentLatGainW += - (AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg; AirflowNetworkReportData(ZN1).MultiZoneVentLatGainJ += - (AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; } else { AirflowNetworkReportData(ZN1).MultiZoneVentLatLossW += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg; AirflowNetworkReportData(ZN1).MultiZoneVentLatLossJ += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; } } } @@ -8111,45 +8140,45 @@ namespace AirflowNetwork { if (AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_SCR || AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_SEL) { if (Tamb > MAT(ZN2)) { - AirflowNetworkReportData(ZN2).MultiZoneInfiSenGainW += (AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))); + AirflowNetworkReportData(ZN2).MultiZoneInfiSenGainW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))); AirflowNetworkReportData(ZN2).MultiZoneInfiSenGainJ += - (AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))) * ReportingConstant; } else { - AirflowNetworkReportData(ZN2).MultiZoneInfiSenLossW += (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)); + AirflowNetworkReportData(ZN2).MultiZoneInfiSenLossW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)); AirflowNetworkReportData(ZN2).MultiZoneInfiSenLossJ += - (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)) * ReportingConstant; } if (state.dataEnvrn->OutHumRat > ZoneAirHumRat(ZN2)) { AirflowNetworkReportData(ZN2).MultiZoneInfiLatGainW += - (AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg; AirflowNetworkReportData(ZN2).MultiZoneInfiLatGainJ += - (AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; } else { AirflowNetworkReportData(ZN2).MultiZoneInfiLatLossW += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg; AirflowNetworkReportData(ZN2).MultiZoneInfiLatLossJ += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; } } else { if (Tamb > MAT(ZN2)) { - AirflowNetworkReportData(ZN2).MultiZoneVentSenGainW += (AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))); + AirflowNetworkReportData(ZN2).MultiZoneVentSenGainW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))); AirflowNetworkReportData(ZN2).MultiZoneVentSenGainJ += - (AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - MAT(ZN2))) * ReportingConstant; } else { - AirflowNetworkReportData(ZN2).MultiZoneVentSenLossW += (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)); + AirflowNetworkReportData(ZN2).MultiZoneVentSenLossW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)); AirflowNetworkReportData(ZN2).MultiZoneVentSenLossJ += - (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - Tamb)) * ReportingConstant; } if (state.dataEnvrn->OutHumRat > ZoneAirHumRat(ZN2)) { AirflowNetworkReportData(ZN2).MultiZoneVentLatGainW += - (AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg; AirflowNetworkReportData(ZN2).MultiZoneVentLatGainJ += - (AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; } else { AirflowNetworkReportData(ZN2).MultiZoneVentLatLossW += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg; AirflowNetworkReportData(ZN2).MultiZoneVentLatLossJ += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - state.dataEnvrn->OutHumRat)) * hg * ReportingConstant; } } } @@ -8158,44 +8187,44 @@ namespace AirflowNetwork { CpAir = PsyCpAirFnW((ZoneAirHumRat(ZN1) + ZoneAirHumRat(ZN2))/2.0); hg = Psychrometrics::PsyHgAirFnWTdb((ZoneAirHumRat(ZN1) + ZoneAirHumRat(ZN2)) / 2.0, (MAT(ZN1) + MAT(ZN2)) / 2.0); if (MAT(ZN1) > MAT(ZN2)) { - AirflowNetworkReportData(ZN2).MultiZoneMixSenGainW += (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN1) - MAT(ZN2))); + AirflowNetworkReportData(ZN2).MultiZoneMixSenGainW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN1) - MAT(ZN2))); AirflowNetworkReportData(ZN2).MultiZoneMixSenGainJ += - (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN1) - MAT(ZN2))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN1) - MAT(ZN2))) * ReportingConstant; } else { - AirflowNetworkReportData(ZN2).MultiZoneMixSenLossW += (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - MAT(ZN1))); + AirflowNetworkReportData(ZN2).MultiZoneMixSenLossW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - MAT(ZN1))); AirflowNetworkReportData(ZN2).MultiZoneMixSenLossJ += - (AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - MAT(ZN1))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (MAT(ZN2) - MAT(ZN1))) * ReportingConstant; } if (ZoneAirHumRat(ZN1) > ZoneAirHumRat(ZN2)) { AirflowNetworkReportData(ZN2).MultiZoneMixLatGainW += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg; AirflowNetworkReportData(ZN2).MultiZoneMixLatGainJ += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; } else { AirflowNetworkReportData(ZN2).MultiZoneMixLatLossW += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg; AirflowNetworkReportData(ZN2).MultiZoneMixLatLossJ += - (AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; } if (MAT(ZN2) > MAT(ZN1)) { - AirflowNetworkReportData(ZN1).MultiZoneMixSenGainW += (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN2) - MAT(ZN1))); + AirflowNetworkReportData(ZN1).MultiZoneMixSenGainW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN2) - MAT(ZN1))); AirflowNetworkReportData(ZN1).MultiZoneMixSenGainJ += - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN2) - MAT(ZN1))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN2) - MAT(ZN1))) * ReportingConstant; } else { - AirflowNetworkReportData(ZN1).MultiZoneMixSenLossW += (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - MAT(ZN2))); + AirflowNetworkReportData(ZN1).MultiZoneMixSenLossW += (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - MAT(ZN2))); AirflowNetworkReportData(ZN1).MultiZoneMixSenLossJ += - (AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - MAT(ZN2))) * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (MAT(ZN1) - MAT(ZN2))) * ReportingConstant; } if (ZoneAirHumRat(ZN2) > ZoneAirHumRat(ZN1)) { AirflowNetworkReportData(ZN1).MultiZoneMixLatGainW += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg; AirflowNetworkReportData(ZN1).MultiZoneMixLatGainJ += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN2) - ZoneAirHumRat(ZN1))) * hg * ReportingConstant; } else { AirflowNetworkReportData(ZN1).MultiZoneMixLatLossW += - std::abs(AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg; + std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg; AirflowNetworkReportData(ZN1).MultiZoneMixLatLossJ += - (AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (ZoneAirHumRat(ZN1) - ZoneAirHumRat(ZN2))) * hg * ReportingConstant; } } } @@ -8681,55 +8710,55 @@ namespace AirflowNetwork { // Find a linkage from outdoors to this zone Tamb = Zone(ZN1).OutDryBulbTemp; CpAir = PsyCpAirFnW(state.dataEnvrn->OutHumRat); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMCp += AirflowNetworkLinkSimu(i).FLOW2 * CpAir; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMCpT += AirflowNetworkLinkSimu(i).FLOW2 * CpAir * Tamb; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHr += AirflowNetworkLinkSimu(i).FLOW2; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHrW += AirflowNetworkLinkSimu(i).FLOW2 * state.dataEnvrn->OutHumRat; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMCp += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMCpT += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * Tamb; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHr += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHrW += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * state.dataEnvrn->OutHumRat; if (state.dataContaminantBalance->Contaminant.CO2Simulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHrCO += AirflowNetworkLinkSimu(i).FLOW2 * state.dataContaminantBalance->OutdoorCO2; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHrCO += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * state.dataContaminantBalance->OutdoorCO2; } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHrGC += AirflowNetworkLinkSimu(i).FLOW2 * state.dataContaminantBalance->OutdoorGC; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMHrGC += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * state.dataContaminantBalance->OutdoorGC; } } if (ZN1 == 0 && ZN2 > 0) { // Find a linkage from outdoors to this zone Tamb = Zone(ZN2).OutDryBulbTemp; CpAir = PsyCpAirFnW(state.dataEnvrn->OutHumRat); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMCp += AirflowNetworkLinkSimu(i).FLOW * CpAir; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMCpT += AirflowNetworkLinkSimu(i).FLOW * CpAir * Tamb; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHr += AirflowNetworkLinkSimu(i).FLOW; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHrW += AirflowNetworkLinkSimu(i).FLOW * state.dataEnvrn->OutHumRat; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMCp += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMCpT += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * Tamb; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHr += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHrW += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataEnvrn->OutHumRat; if (state.dataContaminantBalance->Contaminant.CO2Simulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHrCO += AirflowNetworkLinkSimu(i).FLOW * state.dataContaminantBalance->OutdoorCO2; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHrCO += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataContaminantBalance->OutdoorCO2; } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHrGC += AirflowNetworkLinkSimu(i).FLOW * state.dataContaminantBalance->OutdoorGC; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMHrGC += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataContaminantBalance->OutdoorGC; } } if (ZN1 > 0 && ZN2 > 0) { // Find a linkage from outdoors to this zone CpAir = PsyCpAirFnW(ANZW(ZN1)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMCp += AirflowNetworkLinkSimu(i).FLOW * CpAir; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMCpT += AirflowNetworkLinkSimu(i).FLOW * CpAir * ANZT(ZN1); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHr += AirflowNetworkLinkSimu(i).FLOW; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHrW += AirflowNetworkLinkSimu(i).FLOW * ANZW(ZN1); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMCp += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMCpT += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * ANZT(ZN1); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHr += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHrW += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * ANZW(ZN1); if (state.dataContaminantBalance->Contaminant.CO2Simulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHrCO += AirflowNetworkLinkSimu(i).FLOW * ANCO(ZN1); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHrCO += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * ANCO(ZN1); } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHrGC += AirflowNetworkLinkSimu(i).FLOW * ANGC(ZN1); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).SumMMHrGC += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * ANGC(ZN1); } CpAir = PsyCpAirFnW(ANZW(ZN2)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMCp += AirflowNetworkLinkSimu(i).FLOW2 * CpAir; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMCpT += AirflowNetworkLinkSimu(i).FLOW2 * CpAir * ANZT(ZN2); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHr += AirflowNetworkLinkSimu(i).FLOW2; - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHrW += AirflowNetworkLinkSimu(i).FLOW2 * ANZW(ZN2); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMCp += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMCpT += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * ANZT(ZN2); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHr += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2; + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHrW += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * ANZW(ZN2); if (state.dataContaminantBalance->Contaminant.CO2Simulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHrCO += AirflowNetworkLinkSimu(i).FLOW2 * ANCO(ZN2); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHrCO += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * ANCO(ZN2); } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHrGC += AirflowNetworkLinkSimu(i).FLOW2 * ANGC(ZN2); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).SumMMHrGC += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * ANGC(ZN2); } } } @@ -8751,13 +8780,13 @@ namespace AirflowNetwork { for (i = 1; i <= NumOfLinksMultiZone; ++i) { Tamb = OutDryBulbTempAt(state, AirflowNetworkLinkageData(i).NodeHeights[0]); AirDensity = PsyRhoAirFnPbTdbW(state, state.dataEnvrn->OutBaroPress, Tamb, state.dataEnvrn->OutHumRat); - AirflowNetworkLinkSimu(i).VolFLOW = AirflowNetworkLinkSimu(i).FLOW / AirDensity; - AirflowNetworkLinkSimu(i).VolFLOW2 = AirflowNetworkLinkSimu(i).FLOW2 / AirDensity; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW / AirDensity; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW2 = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 / AirDensity; } for (std::size_t i = 0; i < state.dataAirflowNetworkBalanceManager->linkReport.size(); ++i) { auto &r(state.dataAirflowNetworkBalanceManager->linkReport[i]); - auto &s(AirflowNetworkLinkSimu[i]); + auto &s(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu[i]); r.FLOW = s.FLOW; r.FLOW2 = s.FLOW2; r.VolFLOW = s.VolFLOW; @@ -8775,22 +8804,22 @@ namespace AirflowNetwork { if (present(FirstHVACIteration)) { if (FirstHVACIteration && OnOffFanFlag) { state.dataAirflowNetworkBalanceManager->multiExchangeData = state.dataAirflowNetworkBalanceManager->exchangeData; - for (i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { state.dataAirflowNetworkBalanceManager->nodeReport(i).PZ = AirflowNetworkNodeSimu(i).PZ; state.dataAirflowNetworkBalanceManager->nodeReport(i).PZOFF = AirflowNetworkNodeSimu(i).PZ; state.dataAirflowNetworkBalanceManager->nodeReport(i).PZON = 0.0; } for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { - state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW = AirflowNetworkLinkSimu(i).FLOW; - state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2 = AirflowNetworkLinkSimu(i).FLOW2; - state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW = AirflowNetworkLinkSimu(i).VolFLOW; - state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2 = AirflowNetworkLinkSimu(i).VolFLOW2; - state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOWOFF = AirflowNetworkLinkSimu(i).FLOW; - state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2OFF = AirflowNetworkLinkSimu(i).FLOW2; - state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOWOFF = AirflowNetworkLinkSimu(i).VolFLOW; - state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2OFF = AirflowNetworkLinkSimu(i).VolFLOW2; - state.dataAirflowNetworkBalanceManager->linkReport1(i).DP = AirflowNetworkLinkSimu(i).DP; - state.dataAirflowNetworkBalanceManager->linkReport1(i).DPOFF = AirflowNetworkLinkSimu(i).DP; + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2 = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2; + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW; + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2 = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW2; + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOWOFF = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2OFF = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2; + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOWOFF = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW; + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2OFF = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW2; + state.dataAirflowNetworkBalanceManager->linkReport1(i).DP = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP; + state.dataAirflowNetworkBalanceManager->linkReport1(i).DPOFF = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP; state.dataAirflowNetworkBalanceManager->linkReport1(i).DPON = 0.0; } } @@ -8801,7 +8830,7 @@ namespace AirflowNetwork { AirflowNetworkNodeSimu(i).PZ = 0.0; } for (i = state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces + 1; i <= AirflowNetworkNumOfLinks; ++i) { - AirflowNetworkLinkSimu(i).DP = 0.0; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP = 0.0; state.dataAirflowNetworkBalanceManager->linkReport(i).FLOW = 0.0; state.dataAirflowNetworkBalanceManager->linkReport(i).FLOW2 = 0.0; state.dataAirflowNetworkBalanceManager->linkReport(i).VolFLOW = 0.0; @@ -8821,28 +8850,28 @@ namespace AirflowNetwork { if (ZN1 > 0 && ZN2 == 0) { Tamb = Zone(ZN1).OutDryBulbTemp; CpAir = PsyCpAirFnW(state.dataEnvrn->OutHumRat); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneSen += AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - ANZT(ZN1)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneLat += AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ANZW(ZN1)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneSen += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (Tamb - ANZT(ZN1)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneLat += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (state.dataEnvrn->OutHumRat - ANZW(ZN1)); } if (ZN1 == 0 && ZN2 > 0) { Tamb = Zone(ZN2).OutDryBulbTemp; CpAir = PsyCpAirFnW(state.dataEnvrn->OutHumRat); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneSen += AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - ANZT(ZN2)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneLat += AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ANZW(ZN2)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneSen += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (Tamb - ANZT(ZN2)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneLat += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (state.dataEnvrn->OutHumRat - ANZW(ZN2)); } if (ZN1 > 0 && ZN2 > 0) { - if (AirflowNetworkLinkSimu(i).FLOW > 0) { // Flow from ZN1 to ZN2 + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0) { // Flow from ZN1 to ZN2 CpAir = PsyCpAirFnW(ANZW(ZN1)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneSen += AirflowNetworkLinkSimu(i).FLOW * CpAir * (ANZT(ZN1) - ANZT(ZN2)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneLat += AirflowNetworkLinkSimu(i).FLOW * (ANZW(ZN1) - ANZW(ZN2)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneSen += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (ANZT(ZN1) - ANZT(ZN2)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).MultiZoneLat += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (ANZW(ZN1) - ANZW(ZN2)); CpAir = PsyCpAirFnW(ANZW(ZN2)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneSen += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir * (ANZT(ZN2) - ANZT(ZN1)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneLat += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * (ANZW(ZN2) - ANZW(ZN1)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneSen += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir * (ANZT(ZN2) - ANZT(ZN1)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneLat += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * (ANZW(ZN2) - ANZW(ZN1)); } else { CpAir = PsyCpAirFnW(ANZW(ZN2)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneSen += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * CpAir * (ANZT(ZN2) - ANZT(ZN1)); - state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneLat += std::abs(AirflowNetworkLinkSimu(i).FLOW2) * (ANZW(ZN2) - ANZW(ZN1)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneSen += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * CpAir * (ANZT(ZN2) - ANZT(ZN1)); + state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).MultiZoneLat += std::abs(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2) * (ANZW(ZN2) - ANZW(ZN1)); } } } @@ -8884,7 +8913,7 @@ namespace AirflowNetwork { if (DisSysCompCVFData(FanNum).FanTypeNum == FanType_SimpleOnOff && state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirLoopNum) < 1.0) { for (std::size_t i = 0; i < state.dataAirflowNetworkBalanceManager->linkReport.size(); ++i) { auto &r(state.dataAirflowNetworkBalanceManager->linkReport[i]); - auto &s(AirflowNetworkLinkSimu[i]); + auto &s(state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu[i]); auto &t(AirflowNetworkLinkageData[i]); if (t.AirLoopNum == AirLoopNum) { r.FLOW = s.FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirLoopNum); @@ -8948,7 +8977,7 @@ namespace AirflowNetwork { if (AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).EPlusTypeNum == 0) continue; } NodeMass = Node(AirflowNetworkNodeData(Node3).EPlusNodeNum).MassFlowRate; - AFNMass = AirflowNetworkLinkSimu(i).FLOW; + AFNMass = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; if (NodeMass > 0.0 && AFNMass > NodeMass + 0.01) { ShowWarningError(state, "The mass flow rate difference is found between System Node = '" + NodeID(AirflowNetworkNodeData(Node3).EPlusNodeNum) + "' and AFN Link = '" + @@ -8980,23 +9009,23 @@ namespace AirflowNetwork { j = AirflowNetworkNodeData(Node1).EPlusNodeNum; if (j > 0 && AirflowNetworkNodeData(Node1).EPlusZoneNum == 0) { - Node(j).MassFlowRate = AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node1).AirLoopNum); + Node(j).MassFlowRate = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node1).AirLoopNum); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Node(j).MassFlowRate = 0.0; if (!(AirflowNetworkNodeData(Node1).EPlusTypeNum == EPlusTypeNum_DIN || AirflowNetworkNodeData(Node1).EPlusTypeNum == EPlusTypeNum_DOU)) { - Node(j).MassFlowRateMaxAvail = AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node1).AirLoopNum); - Node(j).MassFlowRateMax = AirflowNetworkLinkSimu(i).FLOW; + Node(j).MassFlowRateMaxAvail = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node1).AirLoopNum); + Node(j).MassFlowRateMax = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; } } j = AirflowNetworkNodeData(Node2).EPlusNodeNum; if (j > 0) { - Node(j).MassFlowRate = AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node2).AirLoopNum); + Node(j).MassFlowRate = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node2).AirLoopNum); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Node(j).MassFlowRate = 0.0; if (!(AirflowNetworkNodeData(Node2).EPlusTypeNum == EPlusTypeNum_DIN || AirflowNetworkNodeData(Node2).EPlusTypeNum == EPlusTypeNum_DOU)) { - Node(j).MassFlowRateMaxAvail = AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node2).AirLoopNum); - Node(j).MassFlowRateMax = AirflowNetworkLinkSimu(i).FLOW; + Node(j).MassFlowRateMaxAvail = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirflowNetworkNodeData(Node2).AirLoopNum); + Node(j).MassFlowRateMax = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW; } } } @@ -9026,7 +9055,7 @@ namespace AirflowNetwork { // Calculate sensible loads from duct conduction losses and loads from duct radiation if (AirflowNetworkLinkageData(i).ZoneNum > 0 && AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_DWC) { - Qsen = AirflowNetworkLinkSimu(i).FLOW * CpAir * (AirflowNetworkNodeSimu(Node2).TZ - AirflowNetworkNodeSimu(Node1).TZ); + Qsen = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (AirflowNetworkNodeSimu(Node2).TZ - AirflowNetworkNodeSimu(Node1).TZ); if (AirflowNetworkLinkageData(i).LinkageViewFactorObjectNum != 0) { auto &DuctRadObj(AirflowNetworkLinkageViewFactorData(AirflowNetworkLinkageData(i).LinkageViewFactorObjectNum)); Qsen -= DuctRadObj.QRad; @@ -9041,16 +9070,16 @@ namespace AirflowNetwork { AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_ELR) { // Calculate supply leak sensible losses if ((AirflowNetworkNodeData(Node2).EPlusZoneNum > 0) && (AirflowNetworkNodeData(Node1).EPlusNodeNum == 0) && - (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { ZN2 = AirflowNetworkNodeData(Node2).EPlusZoneNum; - Qsen = AirflowNetworkLinkSimu(i).FLOW * CpAir * (AirflowNetworkNodeSimu(Node1).TZ - AirflowNetworkNodeSimu(Node2).TZ); + Qsen = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * CpAir * (AirflowNetworkNodeSimu(Node1).TZ - AirflowNetworkNodeSimu(Node2).TZ); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Qsen = 0.0; state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).LeakSen += Qsen; } if ((AirflowNetworkNodeData(Node1).EPlusZoneNum > 0) && (AirflowNetworkNodeData(Node2).EPlusNodeNum == 0) && - (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { ZN1 = AirflowNetworkNodeData(Node1).EPlusZoneNum; - Qsen = AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (AirflowNetworkNodeSimu(Node2).TZ - AirflowNetworkNodeSimu(Node1).TZ); + Qsen = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * CpAir * (AirflowNetworkNodeSimu(Node2).TZ - AirflowNetworkNodeSimu(Node1).TZ); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Qsen = 0.0; state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).LeakSen += Qsen; } @@ -9064,7 +9093,7 @@ namespace AirflowNetwork { // Calculate latent loads from duct conduction losses if (AirflowNetworkLinkageData(i).ZoneNum > 0 && AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_DWC) { - Qlat = AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node2).WZ - AirflowNetworkNodeSimu(Node1).WZ); + Qlat = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node2).WZ - AirflowNetworkNodeSimu(Node1).WZ); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Qlat = 0.0; state.dataAirflowNetworkBalanceManager->exchangeData(AirflowNetworkLinkageData(i).ZoneNum).DiffLat -= Qlat; } @@ -9073,33 +9102,33 @@ namespace AirflowNetwork { AirflowNetworkCompData(AirflowNetworkLinkageData(i).CompNum).CompTypeNum == CompTypeNum_ELR) { // Calculate supply leak latent losses if ((AirflowNetworkNodeData(Node2).EPlusZoneNum > 0) && (AirflowNetworkNodeData(Node1).EPlusNodeNum == 0) && - (AirflowNetworkLinkSimu(i).FLOW > 0.0)) { + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW > 0.0)) { ZN2 = AirflowNetworkNodeData(Node2).EPlusZoneNum; - Qlat = AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node1).WZ - AirflowNetworkNodeSimu(Node2).WZ); + Qlat = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node1).WZ - AirflowNetworkNodeSimu(Node2).WZ); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Qlat = 0.0; state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).LeakLat += Qlat; if (state.dataContaminantBalance->Contaminant.CO2Simulation) { state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).TotalCO2 += - AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node1).CO2Z - AirflowNetworkNodeSimu(Node2).CO2Z); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node1).CO2Z - AirflowNetworkNodeSimu(Node2).CO2Z); } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { state.dataAirflowNetworkBalanceManager->exchangeData(ZN2).TotalGC += - AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node1).GCZ - AirflowNetworkNodeSimu(Node2).GCZ); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * (AirflowNetworkNodeSimu(Node1).GCZ - AirflowNetworkNodeSimu(Node2).GCZ); } } if ((AirflowNetworkNodeData(Node1).EPlusZoneNum > 0) && (AirflowNetworkNodeData(Node2).EPlusNodeNum == 0) && - (AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { + (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 > 0.0)) { ZN1 = AirflowNetworkNodeData(Node1).EPlusZoneNum; - Qlat = AirflowNetworkLinkSimu(i).FLOW2 * (AirflowNetworkNodeSimu(Node2).WZ - AirflowNetworkNodeSimu(Node1).WZ); + Qlat = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (AirflowNetworkNodeSimu(Node2).WZ - AirflowNetworkNodeSimu(Node1).WZ); if (!state.dataAirflowNetworkBalanceManager->LoopOnOffFlag(AirflowNetworkLinkageData(i).AirLoopNum)) Qlat = 0.0; state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).LeakLat += Qlat; if (state.dataContaminantBalance->Contaminant.CO2Simulation) { state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).TotalCO2 += - AirflowNetworkLinkSimu(i).FLOW2 * (AirflowNetworkNodeSimu(Node2).CO2Z - AirflowNetworkNodeSimu(Node1).CO2Z); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (AirflowNetworkNodeSimu(Node2).CO2Z - AirflowNetworkNodeSimu(Node1).CO2Z); } if (state.dataContaminantBalance->Contaminant.GenericContamSimulation) { state.dataAirflowNetworkBalanceManager->exchangeData(ZN1).TotalGC += - AirflowNetworkLinkSimu(i).FLOW2 * (AirflowNetworkNodeSimu(Node2).GCZ - AirflowNetworkNodeSimu(Node1).GCZ); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * (AirflowNetworkNodeSimu(Node2).GCZ - AirflowNetworkNodeSimu(Node1).GCZ); } } } @@ -9168,7 +9197,7 @@ namespace AirflowNetwork { } if (DisSysCompCVFData(FanNum).FanTypeNum == FanType_SimpleOnOff) { - for (i = 1; i <= AirflowNetworkNumOfZones; ++i) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++i) { if (AirflowNetworkNodeData(i).AirLoopNum == AirLoopNum) { state.dataAirflowNetworkBalanceManager->nodeReport(i).PZ = AirflowNetworkNodeSimu(i).PZ * state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirLoopNum) + state.dataAirflowNetworkBalanceManager->nodeReport(i).PZOFF * (1.0 - state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirLoopNum)); @@ -9177,7 +9206,7 @@ namespace AirflowNetwork { } for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++i) { PartLoadRatio = MaxPartLoadRatio; - for (j = 1; j <= AirflowNetworkNumOfZones; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++j) { if (MultizoneZoneData(j).ZoneNum == MultizoneSurfaceData(i).ZonePtr) { if (AirflowNetworkNodeData(j).AirLoopNum == AirLoopNum) { PartLoadRatio = state.dataAirflowNetworkBalanceManager->LoopPartLoadRatio(AirLoopNum); @@ -9186,16 +9215,16 @@ namespace AirflowNetwork { } } state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW = - AirflowNetworkLinkSimu(i).FLOW * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOWOFF * (1.0 - PartLoadRatio); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOWOFF * (1.0 - PartLoadRatio); state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2 = - AirflowNetworkLinkSimu(i).FLOW2 * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2OFF * (1.0 - PartLoadRatio); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).FLOW2 * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).FLOW2OFF * (1.0 - PartLoadRatio); state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW = - AirflowNetworkLinkSimu(i).VolFLOW * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOWOFF * (1.0 - PartLoadRatio); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOWOFF * (1.0 - PartLoadRatio); state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2 = - AirflowNetworkLinkSimu(i).VolFLOW2 * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2OFF * (1.0 - PartLoadRatio); + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).VolFLOW2 * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).VolFLOW2OFF * (1.0 - PartLoadRatio); state.dataAirflowNetworkBalanceManager->linkReport1(i).DP = - AirflowNetworkLinkSimu(i).DP * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).DPOFF * (1.0 - PartLoadRatio); - state.dataAirflowNetworkBalanceManager->linkReport1(i).DPON = AirflowNetworkLinkSimu(i).DP; + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP * PartLoadRatio + state.dataAirflowNetworkBalanceManager->linkReport1(i).DPOFF * (1.0 - PartLoadRatio); + state.dataAirflowNetworkBalanceManager->linkReport1(i).DPON = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP; } } } @@ -9448,7 +9477,7 @@ namespace AirflowNetwork { { // Assign the system Fan AirLoop Number based on the zone inlet node - for (int i = 1; i <= AirflowNetworkNumOfZones; i++) { + for (int i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; i++) { for (int j = 1; j <= state.dataGlobal->NumOfZones; j++) { if (!ZoneEquipConfig(j).IsControlled) continue; if ((MultizoneZoneData(i).ZoneNum == j) && (ZoneEquipConfig(j).NumInletNodes > 0)) { @@ -9713,7 +9742,7 @@ namespace AirflowNetwork { // Assign AirLoop Number to every node and linkage // Zone first - for (i = 1; i <= AirflowNetworkNumOfZones; i++) { + for (i = 1; i <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; i++) { for (j = 1; j <= state.dataGlobal->NumOfZones; j++) { if (!ZoneEquipConfig(j).IsControlled) continue; if ((MultizoneZoneData(i).ZoneNum == j) && (ZoneEquipConfig(j).NumInletNodes > 0)) { @@ -10120,7 +10149,7 @@ namespace AirflowNetwork { } } if (OnOffFanFlag) { - for (j = 1; j <= AirflowNetworkNumOfZones; ++j) { + for (j = 1; j <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++j) { if (!ZoneEquipConfig(AirflowNetworkNodeData(j).EPlusZoneNum).IsControlled) continue; for (i = 1; i <= state.dataAirflowNetworkBalanceManager->DisSysNumOfCVFs; i++) { if (DisSysCompCVFData(i).AirLoopNum == AirflowNetworkNodeData(j).AirLoopNum && @@ -10165,7 +10194,7 @@ namespace AirflowNetwork { AirflowNetworkLinkageData(i).Name); SetupOutputVariable(state, "AFN Linkage Node 1 to Node 2 Pressure Difference", OutputProcessor::Unit::Pa, - AirflowNetworkLinkSimu(i).DP, + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP, "System", "Average", AirflowNetworkLinkageData(i).Name); @@ -10215,7 +10244,7 @@ namespace AirflowNetwork { AirflowNetworkLinkageData(i).Name); SetupOutputVariable(state, "AFN Linkage Node 1 to Node 2 Pressure Difference", OutputProcessor::Unit::Pa, - AirflowNetworkLinkSimu(i).DP, + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(i).DP, "System", "Average", AirflowNetworkLinkageData(i).Name); @@ -10634,8 +10663,8 @@ namespace AirflowNetwork { // Count the total number of exterior simple and detailed openings and the number in each zone // Verify that each zone with "ADVANCED" single sided wind pressure coefficients has exactly two openings. // If it doesn't have two openings, change "ADVANCED" to "STANDARD" - NumofExtSurfInZone.dimension(AirflowNetworkNumOfZones, 0); - for (AFNZnNum = 1; AFNZnNum <= AirflowNetworkNumOfZones; ++AFNZnNum) { + NumofExtSurfInZone.dimension(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones, 0); + for (AFNZnNum = 1; AFNZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++AFNZnNum) { if (MultizoneZoneData(AFNZnNum).SingleSidedCpType == "ADVANCED") { for (SrfNum = 1; SrfNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++SrfNum) { if (Surface(MultizoneSurfaceData(SrfNum).SurfNum).ExtBoundCond == ExternalEnvironment) { // check if outdoor boundary condition @@ -10692,7 +10721,7 @@ namespace AirflowNetwork { if (AFNNumOfExtOpenings == 0) return; // Recount the number of single sided zones state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSingleSideZones = 0; - for (AFNZnNum = 1; AFNZnNum <= AirflowNetworkNumOfZones; ++AFNZnNum) { + for (AFNZnNum = 1; AFNZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++AFNZnNum) { if (MultizoneZoneData(AFNZnNum).SingleSidedCpType == "ADVANCED") { ++state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSingleSideZones; } @@ -10745,9 +10774,13 @@ namespace AirflowNetwork { MultizoneSurfaceData(SrfNum).Width * MultizoneSurfaceData(SrfNum).Height * MultizoneSurfaceData(SrfNum).OpenFactor; AFNExtSurfaces(ExtOpenNum).ExtNodeNum = MultizoneSurfaceData(ExtOpenNum).NodeNums[1]; AFNExtSurfaces(ExtOpenNum).facadeNum = - MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - AirflowNetworkNumOfZones).facadeNum; + MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) + .facadeNum; AFNExtSurfaces(ExtOpenNum).curve = - MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - AirflowNetworkNumOfZones).curve; + MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) + .curve; AFNExtSurfaces(ExtOpenNum).DischCoeff = MultizoneCompDetOpeningData(DetOpenNum).DischCoeff2; ++ExtOpenNum; } @@ -10769,8 +10802,9 @@ namespace AirflowNetwork { AFNExtSurfaces(ExtOpenNum).OpeningArea = MultizoneSurfaceData(SrfNum).Width * MultizoneSurfaceData(SrfNum).Height * MultizoneSurfaceData(SrfNum).OpenFactor; AFNExtSurfaces(ExtOpenNum).ExtNodeNum = MultizoneSurfaceData(ExtOpenNum).NodeNums[1]; - AFNExtSurfaces(ExtOpenNum).curve = - MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - AirflowNetworkNumOfZones).curve; + AFNExtSurfaces(ExtOpenNum).curve = MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) + .curve; AFNExtSurfaces(ExtOpenNum).DischCoeff = MultizoneCompSimpleOpeningData(SimOpenNum).DischCoeff; ++ExtOpenNum; } @@ -10781,11 +10815,11 @@ namespace AirflowNetwork { // Calculate Sprime and DeltaCp for each zone. PiFormula.allocate(numWindDir); SigmaFormula.allocate(numWindDir); - DeltaCp.allocate(AirflowNetworkNumOfZones); - EPDeltaCP.allocate(AirflowNetworkNumOfZones); - Sprime.allocate(AirflowNetworkNumOfZones); - ZoneAng.allocate(AirflowNetworkNumOfZones); - for (ZnNum = 1; ZnNum <= AirflowNetworkNumOfZones; ++ZnNum) { + DeltaCp.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); + EPDeltaCP.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); + Sprime.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); + ZoneAng.allocate(state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones); + for (ZnNum = 1; ZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++ZnNum) { DeltaCp(ZnNum).WindDir.allocate(numWindDir); EPDeltaCP(ZnNum).WindDir.allocate(numWindDir); for (windDirNum = 1; windDirNum <= numWindDir; ++windDirNum) { @@ -10795,7 +10829,7 @@ namespace AirflowNetwork { } Sprime = 0.0; ZoneAng = 0.0; - for (ZnNum = 1; ZnNum <= AirflowNetworkNumOfZones; ++ZnNum) { + for (ZnNum = 1; ZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++ZnNum) { if (MultizoneZoneData(ZnNum).SingleSidedCpType == "ADVANCED") { OpenNuminZone = 1; for (ExtOpenNum = 1; ExtOpenNum <= AFNNumOfExtOpenings; ++ExtOpenNum) { @@ -10848,7 +10882,7 @@ namespace AirflowNetwork { CPV1 = 0.0; CPV2 = 0.0; SrfNum = 6; - for (ZnNum = 1; ZnNum <= AirflowNetworkNumOfZones; ++ZnNum) { + for (ZnNum = 1; ZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++ZnNum) { if (MultizoneZoneData(ZnNum).SingleSidedCpType == "ADVANCED") { OpenNuminZone = 1; for (ExtOpenNum = 1; ExtOpenNum <= AFNNumOfExtOpenings; ++ExtOpenNum) { @@ -10864,7 +10898,9 @@ namespace AirflowNetwork { cpvalues[windDirNum - 1] = CPV1(windDirNum) = VelRatio_2 * unmodifiedValue; } valsByFacade.push_back(cpvalues); - MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - AirflowNetworkNumOfZones).facadeNum = SrfNum; + MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) + .facadeNum = SrfNum; ++OpenNuminZone; ++SrfNum; } else if (OpenNuminZone == 2) { @@ -10876,7 +10912,9 @@ namespace AirflowNetwork { EPDeltaCP(ZnNum).WindDir(windDirNum) = std::abs(CPV2(windDirNum) - CPV1(windDirNum)); } valsByFacade.push_back(cpvalues); - MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - AirflowNetworkNumOfZones).facadeNum = SrfNum; + MultizoneExternalNodeData(AFNExtSurfaces(ExtOpenNum).ExtNodeNum - + state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones) + .facadeNum = SrfNum; ++OpenNuminZone; ++SrfNum; } @@ -10886,7 +10924,7 @@ namespace AirflowNetwork { } // Rewrite the CPVNum for all nodes that correspond with a simple or detailed opening // Does this loop really do anything? - for (ZnNum = 1; ZnNum <= AirflowNetworkNumOfZones; ++ZnNum) { + for (ZnNum = 1; ZnNum <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones; ++ZnNum) { OpenNuminZone = 1; for (ExtOpenNum = 1; ExtOpenNum <= AFNNumOfExtOpenings; ++ExtOpenNum) { if (AFNExtSurfaces(ExtOpenNum).MZDZoneNum == ZnNum) { diff --git a/src/EnergyPlus/AirflowNetworkBalanceManager.hh b/src/EnergyPlus/AirflowNetworkBalanceManager.hh index 4e4412762b7..532304898aa 100644 --- a/src/EnergyPlus/AirflowNetworkBalanceManager.hh +++ b/src/EnergyPlus/AirflowNetworkBalanceManager.hh @@ -228,6 +228,7 @@ struct AirflowNetworkBalanceManagerData : BaseGlobalStruct { void calculateWindPressureCoeffs(EnergyPlusData &state); int AirflowNetworkNumOfSurfaces = 0; // The number of surfaces for multizone calculation + int AirflowNetworkNumOfZones = 0; // The number of zones for multizone calculation Array1D OccupantVentilationControl; Array1D_int SplitterNodeNumbers; @@ -293,6 +294,8 @@ struct AirflowNetworkBalanceManagerData : BaseGlobalStruct { Array1D AirflowNetworkZnRpt; std::unordered_map UniqueAirflowNetworkSurfaceName; + Array1D AirflowNetworkLinkSimu; + //AirflowNetwork::Solver solver; // Output and reporting @@ -304,6 +307,10 @@ struct AirflowNetworkBalanceManagerData : BaseGlobalStruct { void clear_state() override { + this->AirflowNetworkNumOfSurfaces = 0; + this->AirflowNetworkNumOfZones = 0; + this->AirflowNetworkLinkSimu.deallocate(); + this->OccupantVentilationControl.deallocate(); this->SplitterNodeNumbers.deallocate(); this->AirflowNetworkNumOfExtSurfaces = 0; diff --git a/src/EnergyPlus/CrossVentMgr.cc b/src/EnergyPlus/CrossVentMgr.cc index 9ce94b2873c..f0cfd1fbf1d 100644 --- a/src/EnergyPlus/CrossVentMgr.cc +++ b/src/EnergyPlus/CrossVentMgr.cc @@ -355,27 +355,27 @@ namespace CrossVentMgr { MaxSurf = state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum); if (Surface(AirflowNetwork::MultizoneSurfaceData(MaxSurf).SurfNum).Zone == ZoneNum) { // this is a direct airflow network aperture - SumToZone = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW2; - MaxFlux = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW2; + SumToZone = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW2; + MaxFlux = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW2; } else { // this is an indirect airflow network aperture - SumToZone = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW; - MaxFlux = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW; + SumToZone = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW; + MaxFlux = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(1, ZoneNum)).VolFLOW; } for (Ctd2 = 2; Ctd2 <= state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(0, ZoneNum); ++Ctd2) { if (Surface(AirflowNetwork::MultizoneSurfaceData(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).SurfNum).Zone == ZoneNum) { - if (AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW2 > MaxFlux) { - MaxFlux = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW2; + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW2 > MaxFlux) { + MaxFlux = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW2; MaxSurf = state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum); } - SumToZone += AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW2; + SumToZone += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW2; } else { - if (AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW > MaxFlux) { - MaxFlux = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW; + if (state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW > MaxFlux) { + MaxFlux = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW; MaxSurf = state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum); } - SumToZone += AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW; + SumToZone += state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd2, ZoneNum)).VolFLOW; } } @@ -493,10 +493,10 @@ namespace CrossVentMgr { for (Ctd = 1; Ctd <= state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(0, ZoneNum); ++Ctd) { if (Surface(AirflowNetwork::MultizoneSurfaceData(Ctd).SurfNum).Zone == ZoneNum) { // this is a direct airflow network aperture - state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Fin = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd, ZoneNum)).VolFLOW2; + state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Fin = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd, ZoneNum)).VolFLOW2; } else { // this is an indirect airflow network aperture - state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Fin = AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd, ZoneNum)).VolFLOW; + state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Fin = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Ctd, ZoneNum)).VolFLOW; } if (state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Area != 0) { state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Uin = state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Fin / state.dataRoomAirMod->CVJetRecFlows(Ctd, ZoneNum).Area; diff --git a/src/EnergyPlus/DisplacementVentMgr.cc b/src/EnergyPlus/DisplacementVentMgr.cc index 8d499718e50..19b38e586fe 100644 --- a/src/EnergyPlus/DisplacementVentMgr.cc +++ b/src/EnergyPlus/DisplacementVentMgr.cc @@ -774,12 +774,12 @@ namespace DisplacementVentMgr { if (Surface(AirflowNetwork::MultizoneSurfaceData(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).SurfNum).Zone == ZoneNum) { if ((state.dataRoomAirMod->SurfParametersCVDV(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).Zmax < 0.8 && - AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW > 0)) { + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW > 0)) { FlagApertures = 0; break; } if (state.dataRoomAirMod->SurfParametersCVDV(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).Zmin > 1.8 && - AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW2 > 0) { + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW2 > 0) { FlagApertures = 0; break; } @@ -798,7 +798,7 @@ namespace DisplacementVentMgr { Zone(Surface(AirflowNetwork::MultizoneSurfaceData(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).SurfNum).Zone).OriginZ - Zone(ZoneNum).OriginZ < 0.8 && - AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW2 > 0) { + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW2 > 0) { FlagApertures = 0; break; } @@ -806,7 +806,7 @@ namespace DisplacementVentMgr { Zone(Surface(AirflowNetwork::MultizoneSurfaceData(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).SurfNum).Zone).OriginZ - Zone(ZoneNum).OriginZ > 1.8 && - AirflowNetwork::AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW > 0) { + state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(state.dataRoomAirMod->AirflowNetworkSurfaceUCSDCV(Loop, ZoneNum)).VolFLOW > 0) { FlagApertures = 0; break; } diff --git a/src/EnergyPlus/RoomAirModelAirflowNetwork.cc b/src/EnergyPlus/RoomAirModelAirflowNetwork.cc index 0e26e60e946..41ea685c338 100644 --- a/src/EnergyPlus/RoomAirModelAirflowNetwork.cc +++ b/src/EnergyPlus/RoomAirModelAirflowNetwork.cc @@ -52,6 +52,7 @@ // EnergyPlus Headers #include +#include #include #include #include @@ -589,13 +590,13 @@ namespace RoomAirModelAirflowNetwork { NodeIn = AirflowNetwork::AirflowNetworkLinkageData(Link).NodeNums[1]; ThisRAFNNode.Link(linkNum).TempIn = AirflowNetwork::AirflowNetworkNodeSimu(NodeIn).TZ; ThisRAFNNode.Link(linkNum).HumRatIn = AirflowNetwork::AirflowNetworkNodeSimu(NodeIn).WZ; - ThisRAFNNode.Link(linkNum).MdotIn = AirflowNetwork::AirflowNetworkLinkSimu(Link).FLOW2; + ThisRAFNNode.Link(linkNum).MdotIn = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(Link).FLOW2; } if (AirflowNetwork::AirflowNetworkLinkageData(Link).NodeNums[1] == NodeNum) { // outgoing flow NodeIn = AirflowNetwork::AirflowNetworkLinkageData(Link).NodeNums[0]; ThisRAFNNode.Link(linkNum).TempIn = AirflowNetwork::AirflowNetworkNodeSimu(NodeIn).TZ; ThisRAFNNode.Link(linkNum).HumRatIn = AirflowNetwork::AirflowNetworkNodeSimu(NodeIn).WZ; - ThisRAFNNode.Link(linkNum).MdotIn = AirflowNetwork::AirflowNetworkLinkSimu(Link).FLOW; + ThisRAFNNode.Link(linkNum).MdotIn = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(Link).FLOW; } } diff --git a/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc b/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc index 3f20685bc93..31ad855edac 100644 --- a/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc +++ b/tst/EnergyPlus/unit/AirflowNetworkBalanceManager.unit.cc @@ -2368,9 +2368,9 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestPressureStat) DataZoneEquipment::ZoneEquipConfig(4).IsControlled = false; DataHVACGlobals::TimeStepSys = 0.1; - AirflowNetwork::AirflowNetworkLinkSimu(1).FLOW2 = 0.1; - AirflowNetwork::AirflowNetworkLinkSimu(10).FLOW2 = 0.15; - AirflowNetwork::AirflowNetworkLinkSimu(13).FLOW2 = 0.1; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(1).FLOW2 = 0.1; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(10).FLOW2 = 0.15; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(13).FLOW2 = 0.1; ReportAirflowNetwork(*state); @@ -2386,12 +2386,13 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestPressureStat) Real64 hg = Psychrometrics::PsyHgAirFnWTdb(DataHeatBalFanSys::ZoneAirHumRat(1), DataHeatBalFanSys::MAT(1)); Real64 hzone = Psychrometrics::PsyHFnTdbW(DataHeatBalFanSys::MAT(1), DataHeatBalFanSys::ZoneAirHumRat(1)); Real64 hamb = Psychrometrics::PsyHFnTdbW(0.0, state->dataEnvrn->OutHumRat); - Real64 hdiff = AirflowNetwork::AirflowNetworkLinkSimu(1).FLOW2 * (hzone - hamb); + Real64 hdiff = state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(1).FLOW2 * (hzone - hamb); Real64 sum = AirflowNetwork::AirflowNetworkReportData(1).MultiZoneInfiSenLossW - AirflowNetwork::AirflowNetworkReportData(1).MultiZoneInfiLatGainW; // Existing code uses T_average to calculate hg, get close results EXPECT_NEAR(hdiff, sum, 0.4); - Real64 dhlatent = AirflowNetwork::AirflowNetworkLinkSimu(1).FLOW2 * hg * (DataHeatBalFanSys::ZoneAirHumRat(1) - state->dataEnvrn->OutHumRat); + Real64 dhlatent = state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(1).FLOW2 * hg * + (DataHeatBalFanSys::ZoneAirHumRat(1) - state->dataEnvrn->OutHumRat); // when hg is calculated with indoor temperature, get exact results sum = AirflowNetwork::AirflowNetworkReportData(1).MultiZoneInfiSenLossW + dhlatent; EXPECT_NEAR(hdiff, sum, 0.001); @@ -13174,11 +13175,11 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_MultiAirLoopTest) CalcAirflowNetworkAirBalance(*state); // Check mass flow rate - EXPECT_NEAR(1.40, AirflowNetwork::AirflowNetworkLinkSimu(42).FLOW, 0.0001); - EXPECT_NEAR(0.52, AirflowNetwork::AirflowNetworkLinkSimu(67).FLOW, 0.0001); - EXPECT_NEAR(0.2795108, AirflowNetwork::AirflowNetworkLinkSimu(51).FLOW, 0.0001); - EXPECT_NEAR(0.1095108, AirflowNetwork::AirflowNetworkLinkSimu(66).FLOW, 0.0001); - EXPECT_NEAR(0.1005046, AirflowNetwork::AirflowNetworkLinkSimu(15).FLOW, 0.0001); + EXPECT_NEAR(1.40, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(42).FLOW, 0.0001); + EXPECT_NEAR(0.52, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(67).FLOW, 0.0001); + EXPECT_NEAR(0.2795108, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(51).FLOW, 0.0001); + EXPECT_NEAR(0.1095108, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(66).FLOW, 0.0001); + EXPECT_NEAR(0.1005046, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(15).FLOW, 0.0001); AirflowNetwork::AirflowNetworkFanActivated = false; // #7977 @@ -13201,7 +13202,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_MultiAirLoopTest) DataZoneEquipment::ZoneEquipConfig(4).IsControlled = false; DataZoneEquipment::ZoneEquipConfig(5).IsControlled = false; state->dataAirflowNetworkBalanceManager->exchangeData.allocate(5); - AirflowNetwork::AirflowNetworkLinkSimu(3).FLOW2 = 0.002364988; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(3).FLOW2 = 0.002364988; ReportAirflowNetwork(*state); EXPECT_NEAR(AirflowNetwork::AirflowNetworkReportData(1).MultiZoneInfiSenLossW, 95.89575, 0.001); @@ -15627,7 +15628,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestFanModel) CalcAirflowNetworkAirBalance(*state); // Fan:SystemModel - EXPECT_NEAR(1.23, AirflowNetwork::AirflowNetworkLinkSimu(20).FLOW, 0.0001); + EXPECT_NEAR(1.23, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(20).FLOW, 0.0001); EXPECT_TRUE(AirflowNetwork::DisSysCompCVFData(1).FanModelFlag); for (i = 1; i <= 21; ++i) { @@ -15642,7 +15643,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_TestFanModel) // Fan:OnOff AirflowNetwork::DisSysCompCVFData(1).FanModelFlag = false; CalcAirflowNetworkAirBalance(*state); - EXPECT_NEAR(1.23, AirflowNetwork::AirflowNetworkLinkSimu(20).FLOW, 0.0001); + EXPECT_NEAR(1.23, state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(20).FLOW, 0.0001); state->dataAirLoop->AirLoopAFNInfo.deallocate(); } @@ -15769,7 +15770,7 @@ TEST_F(EnergyPlusFixture, AirflowNetwork_CheckMultiZoneNodes_NoInletNode) DataZoneEquipment::ZoneEquipConfig(1).IsControlled = true; // One AirflowNetwork:MultiZone:Zone object - AirflowNetwork::AirflowNetworkNumOfZones = 1; + state->dataAirflowNetworkBalanceManager->AirflowNetworkNumOfZones = 1; AirflowNetwork::MultizoneZoneData.allocate(1); AirflowNetwork::MultizoneZoneData(1).ZoneNum = 1; AirflowNetwork::MultizoneZoneData(1).ZoneName = "ATTIC ZONE"; diff --git a/tst/EnergyPlus/unit/CrossVentMgr.unit.cc b/tst/EnergyPlus/unit/CrossVentMgr.unit.cc index 1d4d31e6dcf..e31e3c61145 100644 --- a/tst/EnergyPlus/unit/CrossVentMgr.unit.cc +++ b/tst/EnergyPlus/unit/CrossVentMgr.unit.cc @@ -116,8 +116,8 @@ TEST_F(EnergyPlusFixture, CrossVentMgr_EvolveParaUCSDCV_Test) EnergyPlus::DataHeatBalance::Zone(1).Volume = 996.75300003839993; EnergyPlus::DataHeatBalance::Zone(1).FloorArea = 297.28972800000003; - EnergyPlus::AirflowNetwork::AirflowNetworkLinkSimu.allocate(1); - EnergyPlus::AirflowNetwork::AirflowNetworkLinkSimu(1).VolFLOW2 = 27.142934345451458; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu.allocate(1); + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(1).VolFLOW2 = 27.142934345451458; state->dataEnvrn->WindDir = 271.66666666666669; diff --git a/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc b/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc index 5b1e462d94b..ba559d6401b 100644 --- a/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc +++ b/tst/EnergyPlus/unit/RoomAirflowNetwork.unit.cc @@ -125,7 +125,7 @@ class RoomAirflowNetworkTest : public EnergyPlusFixture ZoneAirHumRat.allocate(1); AirflowNetwork::AirflowNetworkLinkageData.allocate(5); AirflowNetwork::AirflowNetworkNodeSimu.allocate(6); - AirflowNetwork::AirflowNetworkLinkSimu.allocate(5); + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu.allocate(5); RAFN.allocate(state->dataGlobal->NumOfZones); } @@ -222,16 +222,16 @@ TEST_F(RoomAirflowNetworkTest, RAFNTest) AirflowNetwork::AirflowNetworkNodeSimu(5).WZ = 0.0015; AirflowNetwork::AirflowNetworkNodeSimu(6).TZ = 20.0; AirflowNetwork::AirflowNetworkNodeSimu(6).WZ = 0.002; - AirflowNetwork::AirflowNetworkLinkSimu(1).FLOW = 0.0; - AirflowNetwork::AirflowNetworkLinkSimu(1).FLOW2 = 0.01; - AirflowNetwork::AirflowNetworkLinkSimu(2).FLOW = 0.0; - AirflowNetwork::AirflowNetworkLinkSimu(2).FLOW2 = 0.02; - AirflowNetwork::AirflowNetworkLinkSimu(3).FLOW = 0.01; - AirflowNetwork::AirflowNetworkLinkSimu(3).FLOW2 = 0.0; - AirflowNetwork::AirflowNetworkLinkSimu(4).FLOW = 0.0; - AirflowNetwork::AirflowNetworkLinkSimu(4).FLOW2 = 0.01; - AirflowNetwork::AirflowNetworkLinkSimu(5).FLOW = 0.01; - AirflowNetwork::AirflowNetworkLinkSimu(5).FLOW2 = 0.0; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(1).FLOW = 0.0; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(1).FLOW2 = 0.01; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(2).FLOW = 0.0; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(2).FLOW2 = 0.02; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(3).FLOW = 0.01; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(3).FLOW2 = 0.0; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(4).FLOW = 0.0; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(4).FLOW2 = 0.01; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(5).FLOW = 0.01; + state->dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(5).FLOW2 = 0.0; ZoneEquipList(ZoneNum).NumOfEquipTypes = 1; ZoneEquipList(ZoneNum).EquipName.allocate(1); From a604f1a69246e7ffec4deccc82b298d96182d81e Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 30 Dec 2020 08:00:40 -0500 Subject: [PATCH 06/16] Minor prep for repairs --- src/EnergyPlus/AirflowNetworkBalanceManager.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EnergyPlus/AirflowNetworkBalanceManager.cc b/src/EnergyPlus/AirflowNetworkBalanceManager.cc index 1e7a74d665c..c807442162f 100644 --- a/src/EnergyPlus/AirflowNetworkBalanceManager.cc +++ b/src/EnergyPlus/AirflowNetworkBalanceManager.cc @@ -57,8 +57,8 @@ #include // EnergyPlus Headers -#include -#include +#include +#include #include #include #include From 6376a3a12507213f29eec1db30100d8c3c6f8052 Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 30 Dec 2020 17:26:35 -0500 Subject: [PATCH 07/16] Port original implementation over to new objects --- src/EnergyPlus/HeatBalanceHAMTManager.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.cc b/src/EnergyPlus/HeatBalanceHAMTManager.cc index 011d780d34f..605116356e7 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.cc +++ b/src/EnergyPlus/HeatBalanceHAMTManager.cc @@ -1331,9 +1331,9 @@ namespace HeatBalanceHAMTManager { if (!sources(cells(cid).source_id).afn_id) { if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces) { for (ii = 1; ii <= state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces; ++ii) { - if (Surface(sources(cells(cid).source_id).surface_id).Name.compare(AirflowNetworkLinkageData(ii).Name) == 0) { + if (Surface(sources(cells(cid).source_id).surface_id).Name.compare(AirflowNetwork::AirflowNetworkLinkageData(ii).Name) == 0) { // assign network link to cell with internal moisture source type 3 - sources(cells(cid).source_id).afn_id = AirflowNetworkLinkageData(ii).LinkNum; + sources(cells(cid).source_id).afn_id = AirflowNetwork::AirflowNetworkLinkageData(ii).LinkNum; break; } } @@ -1491,7 +1491,7 @@ namespace HeatBalanceHAMTManager { sources(imsid).moist_airflow = std::abs(sources(imsid).delta_pressure) * (sources(imsid).component_air_permeance) / 3600; } else if (sources(imsid).type == InternalMoistureSource::Type::AirflowNetwork) { // air flow through component from multizone airflow network if (sources(imsid).afn_id) { - sources(imsid).moist_airflow = AirflowNetworkLinkSimu(sources(imsid).afn_id).VolFLOW / Surface(sources(imsid).surface_id).Area; + sources(imsid).moist_airflow = state.dataAirflowNetworkBalanceManager->AirflowNetworkLinkSimu(sources(imsid).afn_id).VolFLOW / Surface(sources(imsid).surface_id).Area; } else { sources(imsid).moist_airflow = 0; } @@ -1509,7 +1509,7 @@ namespace HeatBalanceHAMTManager { } if (internal_moisture_source > 0) { - cells(cid).Wadds = Surface(sid).Area * (cells(cid).length(1) / Material(matid).Thickness) * internal_moisture_source; + cells(cid).Wadds = Surface(sid).Area * (cells(cid).length(1) / state.dataMaterial->Material(matid).Thickness) * internal_moisture_source; } else { cells(cid).Wadds = 0; } From 9265a144d4738dd8fce47fd2bb65692885ac97f1 Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 3 Mar 2021 16:42:06 -0500 Subject: [PATCH 08/16] Add draft example file for type 1 --- ...ofileReport_UserDefined_MoistureSource.idf | 1514 +++++++++++++++++ 1 file changed, 1514 insertions(+) create mode 100644 testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf diff --git a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf new file mode 100644 index 00000000000..5942aab7c3e --- /dev/null +++ b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf @@ -0,0 +1,1514 @@ +!-Generator IDFEditor 1.34 +!-Option SortedOrder 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. +!- =========== ALL OBJECTS IN CLASS: VERSION =========== +! Name of file: HAMT_HourlyProfileReport.idf +! +! Basic file description: +! Single zone single story lightweight building. +! The building is orientated with its long axis east-west. Windows are on the south wall. +! +! Highlights: +! To demonstrate the use of the HAMT solution algorithm, +! including the use of fixed vapor transfer coefficients +! +! Simulation Location/Run: +! autosizing using Denver winter & summer design days; +! simulation; 1 winter, 1 summer day. +! +! Location: Chicago, IL +! Run Period (Weather File): 1 months, USA_IL_Chicago-OHare_TMY2 +! Timestep: 20 per hour. +! +! Building: +! ______________________ +! |\ /| +! | \ / | NORTH +! | \________________/ | ^ +! | | | | /|\ +! | | | | | +! | | | |6 m | +! | | | | | +! | | | | | +! | |________________| | +! | / ____ ____ \ | +! | / /____\ /____\ \ | +! |/____________________\| +! 8 m +! ______________________ +! | _____ _____ | +! | | | | | | 2.7m +! | |_____| |_____| | +! |______________________| +! +! Both windows are 2m high and 3m wide, +! separated by 1m, 0.5m from the roof +! and 0.5m from either side of the building. +! +! Floor area: 48 m2 +! Dimensions: 8 m x 6 m +! Floor height: 2.7 m +! conditioned floor. No basement +! Number of Stories: 1 +! +! Shell characteristics: +! Roof construction: Flat roof, plywood, insulation, spruce panel +! Wall construction: spruce siding, conctete, cellulose insulation, spruce panel +! Floor construction: Glass fibre insulation, spruce flooring +! +! Windows +! The area of each window is 6 m2 , giving a total glazed area of 12 m2 +! The windows were double glazed with an air gap: +! +! Glass: +! Pane Thickness: 0.003175 m +! Solar Transmittance at normal incidence: 0.86156 +! Solar reflectance at normal incidence: Front side: 0.07846 +! Solar reflectance at normal incidence: Back side: 0.07846 +! Visible transmittance at normal incidence: 0.91325 +! Visible reflectance at normal incidence: Front side: 0.082 +! Visible reflectance at normal incidence: Back side: 0.082 +! IR Transmittance at Normal Incidence: 0 +! IR Hemispherical Emissivity: Front Side 0.84 +! IR Hemishpherical Emissivity: Back Side 0.84 +! Conductivity 1.06 W/mK +! +! Air Gap: +! Air Gap thickness: 0.013 m +! +! All other material properties are set to use the HAMT solutions algorithm +! +! Infiltration: +! All hours: 0.5 ACH +! +! Internal Loads: +! The same internal load schedule is used for every day of the simulation year: +! Sensible: +! 800 watts all day +! Latent: +! 0 watts between 0 and 0900 hours and between 1700 and 2400 hours +! 352.6 watts between 0900 hours and 1700 hours. +! +! System controls are: +! Heating 20.0 C +! Cooling 27.0 C +! +! HVAC: +! 100% convective air system, thermostat on room temperature, no latent load, +! Compact FanCoil system is used. System is autosized. +! +! Reporting: +! Outdoor Dry Bulb, daily; +! Outdoor Relative Humidity, daily; +! Zone Mean Air Temperature, daily; +! Zone Air Relative Humidity, daily; +! Zone/Sys Sensible Heating Rate, daily; +! Zone/Sys Sensible Cooling Rate, daily; +! +! The following report variables are selected as an example for +! east wall only +! HAMT-Surface Water Content , daily; +! +! HAMT-Profile Construction 1 Cell 1 Temperature, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Temperature, daily; +! +! HAMT-Profile Construction 1 Cell 1 Water, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Water, daily; +! +! HAMT-Profile Construction 1 Cell 1 RH, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 RH, daily; +! +! + + Version,9.4; + +!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL =========== + + SimulationControl, + Yes, !- Do Zone Sizing Calculation + Yes, !- 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 + +!- =========== ALL OBJECTS IN CLASS: BUILDING =========== + + Building, + HAMT test 1, !- Name + 0, !- North Axis {deg} + , !- Terrain + 0.04, !- Loads Convergence Tolerance Value {W} + 0.4, !- Temperature Convergence Tolerance Value {deltaC} + MinimalShadowing, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + +!- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== + + HeatBalanceAlgorithm,CombinedHeatAndMoistureFiniteElement,200; + +!- =========== ALL OBJECTS IN CLASS: TIMESTEP =========== + + Timestep,20; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE =========== + + SurfaceConvectionAlgorithm:Inside,TARP; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:OUTSIDE =========== + + SurfaceConvectionAlgorithm:Outside,DOE-2; + +!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY =========== + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -17.3, !- 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 + -17.3, !- 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.0; !- Sky Clearness + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.5, !- 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 + 23.0, !- 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.0; !- Sky Clearness + +!- =========== ALL OBJECTS IN CLASS: RUNPERIOD =========== + + RunPeriod, + Run Period 1, !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 1, !- End Month + 31, !- End Day of Month + , !- End Year + , !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + Yes, !- Apply Weekend Holiday Rule + No, !- Use Weather File Rain Indicators + No; !- Use Weather File Snow Indicators + +!- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE =========== + + Site:GroundTemperature:BuildingSurface,18,18,18,18,18,18,18,18,18,18,18,18; + +!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS =========== + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS, !- Numeric Type + Temperature; !- Unit Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + FlowRate, !- Name + 0.0, !- Lower Limit Value + 10, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY =========== + + Schedule:Day:Hourly, + On, !- Name + Fraction, !- Schedule Type Limits Name + 1, !- Hour 1 + 1, !- Hour 2 + 1, !- Hour 3 + 1, !- Hour 4 + 1, !- Hour 5 + 1, !- Hour 6 + 1, !- Hour 7 + 1, !- Hour 8 + 1, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 1, !- Hour 18 + 1, !- Hour 19 + 1, !- Hour 20 + 1, !- Hour 21 + 1, !- Hour 22 + 1, !- Hour 23 + 1; !- Hour 24 + + Schedule:Day:Hourly, + Moisture annex 41, !- Name + Fraction, !- Schedule Type Limits Name + 0, !- Hour 1 + 0, !- Hour 2 + 0, !- Hour 3 + 0, !- Hour 4 + 0, !- Hour 5 + 0, !- Hour 6 + 0, !- Hour 7 + 0, !- Hour 8 + 0, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 0, !- Hour 18 + 0, !- Hour 19 + 0, !- Hour 20 + 0, !- Hour 21 + 0, !- Hour 22 + 0, !- Hour 23 + 0; !- Hour 24 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:DAILY =========== + + Schedule:Week:Daily, + WeekOn, !- Name + On, !- Sunday Schedule:Day Name + On, !- Monday Schedule:Day Name + On, !- Tuesday Schedule:Day Name + On, !- Wednesday Schedule:Day Name + On, !- Thursday Schedule:Day Name + On, !- Friday Schedule:Day Name + On, !- Saturday Schedule:Day Name + On, !- Holiday Schedule:Day Name + On, !- SummerDesignDay Schedule:Day Name + On, !- WinterDesignDay Schedule:Day Name + On, !- CustomDay1 Schedule:Day Name + On; !- CustomDay2 Schedule:Day Name + + Schedule:Week:Daily, + Weekon moisture, !- Name + Moisture annex 41, !- Sunday Schedule:Day Name + Moisture annex 41, !- Monday Schedule:Day Name + Moisture annex 41, !- Tuesday Schedule:Day Name + Moisture annex 41, !- Wednesday Schedule:Day Name + Moisture annex 41, !- Thursday Schedule:Day Name + Moisture annex 41, !- Friday Schedule:Day Name + Moisture annex 41, !- Saturday Schedule:Day Name + Moisture annex 41, !- Holiday Schedule:Day Name + Moisture annex 41, !- SummerDesignDay Schedule:Day Name + Moisture annex 41, !- WinterDesignDay Schedule:Day Name + Moisture annex 41, !- CustomDay1 Schedule:Day Name + Moisture annex 41; !- CustomDay2 Schedule:Day Name + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR =========== + + Schedule:Year, + On, !- Name + Fraction, !- Schedule Type Limits Name + WeekOn, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + + Schedule:Year, + Moisture on, !- Name + Fraction, !- Schedule Type Limits Name + Weekon moisture, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT =========== + + Schedule:Compact, + Htg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + Clg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + FanAvailSched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,1; !- Field 3 + +!- =========== ALL OBJECTS IN CLASS: MATERIAL =========== + + Material, + Concrete, !- Name + Rough, !- Roughness + 0.1, !- Thickness {m} + 1.6, !- Conductivity {W/m-K} + 2300, !- Density {kg/m3} + 850, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Spruce, !- Name + Rough, !- Roughness + 0.012, !- Thickness {m} + 0.09, !- Conductivity {W/m-K} + 455, !- Density {kg/m3} + 1500, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Plywood, !- Name + Rough, !- Roughness + 0.025, !- Thickness {m} + 0.14, !- Conductivity {W/m-K} + 530, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Cellulose ins, !- Name + Rough, !- Roughness + 0.066, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 55, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Glass Fibre ins, !- Name + Rough, !- Roughness + 1.003, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 80, !- Density {kg/m3} + 840, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING =========== + + WindowMaterial:Glazing, + Glass, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + 0.003175, !- Thickness {m} + 0.86156, !- Solar Transmittance at Normal Incidence + 0.07846, !- Front Side Solar Reflectance at Normal Incidence + 0.07846, !- Back Side Solar Reflectance at Normal Incidence + 0.91325, !- Visible Transmittance at Normal Incidence + 0.082, !- Front Side Visible Reflectance at Normal Incidence + 0.082, !- Back Side Visible Reflectance at Normal Incidence + 0, !- Infrared Transmittance at Normal Incidence + 0.84, !- Front Side Infrared Hemispherical Emissivity + 0.84, !- Back Side Infrared Hemispherical Emissivity + 1.06; !- Conductivity {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GAS =========== + + WindowMaterial:Gas, + Air, !- Name + Air, !- Gas Type + 0.013; !- Thickness {m} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SETTINGS =========== + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Concrete, !- Material Name + 0.76, !- Porosity {m3/m3} + 0.01; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Spruce, !- Material Name + 0.73, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Plywood, !- Material Name + 0.5, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Cellulose ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.001; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Glass Fibre ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.1; !- Initial Water Content Ratio {kg/kg} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SORPTIONISOTHERM =========== + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Cellulose ins, !- Material Name + 5, !- Number of Isotherm Coordinates + 0.25, !- Relative Humidity Fraction 1 {dimensionless} + 2.365, !- Moisture Content 1 {kg/m3} + 0.44, !- Relative Humidity Fraction 2 {dimensionless} + 4.62, !- Moisture Content 2 {kg/m3} + 0.66, !- Relative Humidity Fraction 3 {dimensionless} + 6.655, !- Moisture Content 3 {kg/m3} + 0.86, !- Relative Humidity Fraction 4 {dimensionless} + 11.4125, !- Moisture Content 4 {kg/m3} + 1, !- Relative Humidity Fraction 5 {dimensionless} + 13; !- Moisture Content 5 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Glass Fibre ins, !- Material Name + 6, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 0.748, !- Moisture Content 1 {kg/m3} + 0.4325, !- Relative Humidity Fraction 2 {dimensionless} + 1.04, !- Moisture Content 2 {kg/m3} + 0.6465, !- Relative Humidity Fraction 3 {dimensionless} + 1.24, !- Moisture Content 3 {kg/m3} + 0.8465, !- Relative Humidity Fraction 4 {dimensionless} + 1.56, !- Moisture Content 4 {kg/m3} + 0.948, !- Relative Humidity Fraction 5 {dimensionless} + 1.92, !- Moisture Content 5 {kg/m3} + 0.978, !- Relative Humidity Fraction 6 {dimensionless} + 2.72; !- Moisture Content 6 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Spruce, !- Material Name + 7, !- Number of Isotherm Coordinates + 0.205, !- Relative Humidity Fraction 1 {dimensionless} + 25.935, !- Moisture Content 1 {kg/m3} + 0.4465, !- Relative Humidity Fraction 2 {dimensionless} + 44.3625, !- Moisture Content 2 {kg/m3} + 0.6515, !- Relative Humidity Fraction 3 {dimensionless} + 61.99375, !- Moisture Content 3 {kg/m3} + 0.6545, !- Relative Humidity Fraction 4 {dimensionless} + 61.99375, !- Moisture Content 4 {kg/m3} + 0.83, !- Relative Humidity Fraction 5 {dimensionless} + 87.1325, !- Moisture Content 5 {kg/m3} + 0.9525, !- Relative Humidity Fraction 6 {dimensionless} + 119.665, !- Moisture Content 6 {kg/m3} + 0.956, !- Relative Humidity Fraction 7 {dimensionless} + 120.12; !- Moisture Content 7 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Plywood, !- Material Name + 12, !- Number of Isotherm Coordinates + 0.2015, !- Relative Humidity Fraction 1 {dimensionless} + 3.7125, !- Moisture Content 1 {kg/m3} + 0.203, !- Relative Humidity Fraction 2 {dimensionless} + 3.74, !- Moisture Content 2 {kg/m3} + 0.435, !- Relative Humidity Fraction 3 {dimensionless} + 5.8025, !- Moisture Content 3 {kg/m3} + 0.439, !- Relative Humidity Fraction 4 {dimensionless} + 5.83, !- Moisture Content 4 {kg/m3} + 0.6495, !- Relative Humidity Fraction 5 {dimensionless} + 7.7825, !- Moisture Content 5 {kg/m3} + 0.6515, !- Relative Humidity Fraction 6 {dimensionless} + 7.81, !- Moisture Content 6 {kg/m3} + 0.8215, !- Relative Humidity Fraction 7 {dimensionless} + 10.3675, !- Moisture Content 7 {kg/m3} + 0.825, !- Relative Humidity Fraction 8 {dimensionless} + 10.3675, !- Moisture Content 8 {kg/m3} + 0.9215, !- Relative Humidity Fraction 9 {dimensionless} + 13.1175, !- Moisture Content 9 {kg/m3} + 0.925, !- Relative Humidity Fraction 10 {dimensionless} + 13.1175, !- Moisture Content 10 {kg/m3} + 0.9575, !- Relative Humidity Fraction 11 {dimensionless} + 14.7125, !- Moisture Content 11 {kg/m3} + 0.9605, !- Relative Humidity Fraction 12 {dimensionless} + 15.345; !- Moisture Content 12 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Concrete, !- Material Name + 10, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 19.665, !- Moisture Content 1 {kg/m3} + 0.2205, !- Relative Humidity Fraction 2 {dimensionless} + 22.31, !- Moisture Content 2 {kg/m3} + 0.449, !- Relative Humidity Fraction 3 {dimensionless} + 38.4675, !- Moisture Content 3 {kg/m3} + 0.454, !- Relative Humidity Fraction 4 {dimensionless} + 38.4675, !- Moisture Content 4 {kg/m3} + 0.6506, !- Relative Humidity Fraction 5 {dimensionless} + 54.165, !- Moisture Content 5 {kg/m3} + 0.655, !- Relative Humidity Fraction 6 {dimensionless} + 54.165, !- Moisture Content 6 {kg/m3} + 0.824, !- Relative Humidity Fraction 7 {dimensionless} + 72.565, !- Moisture Content 7 {kg/m3} + 0.8725, !- Relative Humidity Fraction 8 {dimensionless} + 85.1, !- Moisture Content 8 {kg/m3} + 0.924, !- Relative Humidity Fraction 9 {dimensionless} + 91.08, !- Moisture Content 9 {kg/m3} + 0.964, !- Relative Humidity Fraction 10 {dimensionless} + 100.28; !- Moisture Content 10 {kg/m3} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SUCTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Concrete, !- Material Name + 5, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.0000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.00000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.00000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Spruce, !- Material Name + 3, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Plywood, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Cellulose ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Glass Fibre ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:REDISTRIBUTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Concrete, !- Material Name + 5, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.00000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.0000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.000000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.000000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Spruce, !- Material Name + 3, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Plywood, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Cellulose ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Glass Fibre ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:DIFFUSION =========== + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Concrete, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 180; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Spruce, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 130; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Plywood, !- Material Name + 3, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 700, !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + 0.5, !- Relative Humidity Fraction 2 {dimensionless} + 200, !- Water Vapor Diffusion Resistance Factor 2 {dimensionless} + 1, !- Relative Humidity Fraction 3 {dimensionless} + 20; !- Water Vapor Diffusion Resistance Factor 3 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Cellulose ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.5; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Glass Fibre ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.2543; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:THERMALCONDUCTIVITY =========== + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Concrete, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 1.6, !- Thermal Conductivity 1 {W/m-K} + 180, !- Moisture Content 2 {kg/m3} + 2.602; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Spruce, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.09, !- Thermal Conductivity 1 {W/m-K} + 730, !- Moisture Content 2 {kg/m3} + 0.278; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Plywood, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.1, !- Thermal Conductivity 1 {W/m-K} + 500, !- Moisture Content 2 {kg/m3} + 0.25; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Cellulose ins, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04, !- Thermal Conductivity 1 {W/m-K} + 950, !- Moisture Content 2 {kg/m3} + 0.583; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Glass Fibre ins, !- Material Name + 1, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04; !- Thermal Conductivity 1 {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION =========== + + Construction, + Exterior wall, !- Name + Spruce, !- Outside Layer + Concrete, !- Layer 2 + Cellulose ins, !- Layer 3 + Spruce; !- Layer 4 + + Construction, + Floor, !- Name + Glass Fibre ins, !- Outside Layer + Spruce; !- Layer 2 + + Construction, + Roof, !- Name + Plywood, !- Outside Layer + Cellulose ins, !- Layer 2 + Spruce; !- Layer 3 + + Construction, + Window, !- Name + Glass, !- Outside Layer + Air, !- Layer 2 + Glass; !- Layer 3 + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + East wall, !- Surface Name + 3, !- Source Present In Layer Number + UserDefined, !- Source Type + 0.0001; !- Air Flow Rate {m/s} + +!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + +!- =========== ALL OBJECTS IN CLASS: ZONE =========== + + Zone, + Test room, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.7, !- Ceiling Height {m} + 129.6; !- Volume {m3} + +!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED =========== + + BuildingSurface:Detailed, + South wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,0,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + East wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + North wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + West wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Floor, !- Name + FLOOR, !- Surface Type + Floor, !- Construction Name + Test room, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,0, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Roof, !- Name + ROOF, !- Surface Type + Roof, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,2.7, !- X,Y,Z ==> Vertex 2 {m} + 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== + + FenestrationSurface:Detailed, + South window_west, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 0.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 0.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 3.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 3.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + South window_east, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 4.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 4.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 7.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 7.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTY:CONVECTIONCOEFFICIENTS =========== + + SurfaceProperty:ConvectionCoefficients, + South wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + East wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + North wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + West wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Roof, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Floor, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTIES:VAPORCOEFFICIENTS =========== + + SurfaceProperties:VaporCoefficients, + South wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + East wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + North wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + West wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Floor, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Roof, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + +!- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== + + OtherEquipment, + latent, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + Moisture on, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 352.6, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 1, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + + OtherEquipment, + Other, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 800, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 0, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + +!- =========== ALL OBJECTS IN CLASS: ZONEINFILTRATION:DESIGNFLOWRATE =========== + + ZoneInfiltration:DesignFlowRate, + Infiltrate, !- Name + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + AirChanges/Hour, !- Design Flow Rate Calculation Method + 0, !- Design Flow Rate {m3/s} + 0, !- Flow per Zone Floor Area {m3/s-m2} + 0, !- Flow per Exterior Surface Area {m3/s-m2} + 0.5, !- Air Changes per Hour {1/hr} + 1, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:THERMOSTAT =========== + + HVACTemplate:Thermostat, + All Zones, !- Name + Htg-SetP-Sch, !- Heating Setpoint Schedule Name + , !- Constant Heating Setpoint {C} + Clg-SetP-Sch, !- Cooling Setpoint Schedule Name + ; !- Constant Cooling Setpoint {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:ZONE:FANCOIL =========== + + HVACTemplate:Zone:FanCoil, + Test room, !- Zone Name + All Zones, !- Template Thermostat Name + autosize, !- Supply Air Maximum Flow Rate {m3/s} + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + flow/zone, !- Outdoor Air Method + 0, !- Outdoor Air Flow Rate per Person {m3/s} + 0.00944, !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2} + 0, !- Outdoor Air Flow Rate per Zone {m3/s} + FanAvailSched, !- System Availability Schedule Name + 0.7, !- Supply Fan Total Efficiency + 75, !- Supply Fan Delta Pressure {Pa} + 0.9, !- Supply Fan Motor Efficiency + 1, !- Supply Fan Motor in Air Stream Fraction + ChilledWater, !- Cooling Coil Type + , !- Cooling Coil Availability Schedule Name + 14, !- Cooling Coil Design Setpoint {C} + HotWater, !- Heating Coil Type + , !- Heating Coil Availability Schedule Name + 50, !- Heating Coil Design Setpoint {C} + , !- Dedicated Outdoor Air System Name + , !- Zone Cooling Design Supply Air Temperature Input Method + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + , !- Zone Heating Design Supply Air Temperature Input Method + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + , !- Design Specification Outdoor Air Object Name + , !- Design Specification Zone Air Distribution Object Name + , !- Capacity Control Method + , !- Low Speed Supply Air Flow Ratio + , !- Medium Speed Supply Air Flow Ratio + , !- Outdoor Air Schedule Name + , !- Baseboard Heating Type + , !- Baseboard Heating Availability Schedule Name + ; !- Baseboard Heating Capacity {W} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLEDWATERLOOP =========== + + HVACTemplate:Plant:ChilledWaterLoop, + Chilled Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Chiller Plant Operation Scheme Type + , !- Chiller Plant Equipment Operation Schemes Name + , !- Chilled Water Setpoint Schedule Name + 7.22, !- Chilled Water Design Setpoint {C} + ConstantPrimaryNoSecondary, !- Chilled Water Pump Configuration + 179352, !- Primary Chilled Water Pump Rated Head {Pa} + 179352, !- Secondary Chilled Water Pump Rated Head {Pa} + Default, !- Condenser Plant Operation Scheme Type + , !- Condenser Equipment Operation Schemes Name + , !- Condenser Water Temperature Control Type + , !- Condenser Water Setpoint Schedule Name + 29.4, !- Condenser Water Design Setpoint {C} + 179352, !- Condenser Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Chilled Water Setpoint Reset Type + 12.2, !- Chilled Water Setpoint at Outdoor Dry-Bulb Low {C} + 15.6, !- Chilled Water Reset Outdoor Dry-Bulb Low {C} + 6.7, !- Chilled Water Setpoint at Outdoor Dry-Bulb High {C} + 26.7; !- Chilled Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLER =========== + + HVACTemplate:Plant:Chiller, + Main Chiller, !- Name + ElectricReciprocatingChiller, !- Chiller Type + autosize, !- Capacity {W} + 3.2, !- Nominal COP {W/W} + WaterCooled, !- Condenser Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:TOWER =========== + + HVACTemplate:Plant:Tower, + Main Tower, !- Name + SingleSpeed, !- Tower Type + autosize, !- High Speed Nominal Capacity {W} + autosize, !- High Speed Fan Power {W} + autosize, !- Low Speed Nominal Capacity {W} + autosize, !- Low Speed Fan Power {W} + autosize, !- Free Convection Capacity {W} + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:HOTWATERLOOP =========== + + HVACTemplate:Plant:HotWaterLoop, + Hot Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Hot Water Plant Operation Scheme Type + , !- Hot Water Plant Equipment Operation Schemes Name + , !- Hot Water Setpoint Schedule Name + 82, !- Hot Water Design Setpoint {C} + ConstantFlow, !- Hot Water Pump Configuration + 179352, !- Hot Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Hot Water Setpoint Reset Type + 82.2, !- Hot Water Setpoint at Outdoor Dry-Bulb Low {C} + -6.7, !- Hot Water Reset Outdoor Dry-Bulb Low {C} + 65.6, !- Hot Water Setpoint at Outdoor Dry-Bulb High {C} + 10; !- Hot Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:BOILER =========== + + HVACTemplate:Plant:Boiler, + Main Boiler, !- Name + HotWaterBoiler, !- Boiler Type + autosize, !- Capacity {W} + 0.8, !- Efficiency + NaturalGas, !- Fuel Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: SIZING:PARAMETERS =========== + + Sizing:Parameters, + 1, !- Heating Sizing Factor + 1; !- Cooling Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY =========== + + Output:VariableDictionary,Regular; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE =========== + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + + Output:Variable,*,Zone Mean Air Temperature,hourly; + + Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; + + Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; + + Output:Variable,*,HAMT Surface Average Water Content Ratio,hourly; + + Output:Variable,*,Zone Air Relative Humidity,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 32,hourly; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:METER:METERFILEONLY =========== + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Plant,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,runperiod; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + From e9220b747c60a31ddc8c97b0666b6d4760d82c5b Mon Sep 17 00:00:00 2001 From: yli Date: Thu, 4 Mar 2021 13:43:58 -0500 Subject: [PATCH 09/16] update idf for ConstructionProperty:InternalMoistureSource using +.idd format --- ...ofileReport_UserDefined_MoistureSource.idf | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf index 5942aab7c3e..532d8432a8b 100644 --- a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf +++ b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf @@ -814,14 +814,6 @@ Air, !- Layer 2 Glass; !- Layer 3 -!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== - - ConstructionProperty:InternalMoistureSource, - InternalMoistureSourceEast, !- Name - East wall, !- Surface Name - 3, !- Source Present In Layer Number - UserDefined, !- Source Type - 0.0001; !- Air Flow Rate {m/s} !- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== @@ -877,6 +869,18 @@ 8,6,0, !- X,Y,Z ==> Vertex 3 {m} 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + East wall, !- Construction Name + 3, !- Moisture Source Present In Layer Number + UserDefined, !- Source Type + 0.0001, !- Air Flow Rate {m/s} + 0.1, !- Stack Height {m} + 0.001, !- Component Air Permeance + 0.01; !- Mechanical Ventilation Overpressure + BuildingSurface:Detailed, North wall, !- Name WALL, !- Surface Type @@ -1097,6 +1101,10 @@ Yes, !- Constant Internal vapor Transfer Coefficient 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + + + !- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== OtherEquipment, From ae4c0a270b83a2d60efe0e3027541f1a34f4a267 Mon Sep 17 00:00:00 2001 From: yli Date: Thu, 4 Mar 2021 13:49:23 -0500 Subject: [PATCH 10/16] update idf for ConstructionProperty:InternalMoistureSource using +.idd format --- .../HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf index 532d8432a8b..92f2414ea01 100644 --- a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf +++ b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf @@ -873,7 +873,7 @@ ConstructionProperty:InternalMoistureSource, InternalMoistureSourceEast, !- Name - East wall, !- Construction Name + Exterior wall, !- Construction Name 3, !- Moisture Source Present In Layer Number UserDefined, !- Source Type 0.0001, !- Air Flow Rate {m/s} From 49c84314c9479201a2ab25bdd1435dfb94a83ec9 Mon Sep 17 00:00:00 2001 From: yli Date: Tue, 9 Mar 2021 09:26:16 -0500 Subject: [PATCH 11/16] type1-UserDefined, is finished for CosntructionProperty:InternalMoistureSource module --- src/EnergyPlus/HeatBalanceHAMTManager.cc | 22 +- src/EnergyPlus/UtilityRoutines.cc | 4 +- ...ofileReport_UserDefined_MoistureSource.idf | 22 +- testfiles/eplusout.audit | 0 testfiles/eplusout.bnd | 0 testfiles/eplusout.dbg | 0 testfiles/eplusout.eio | 83 + testfiles/eplusout.end | 1 + testfiles/eplusout.err | 0 testfiles/eplusout.eso | 63 + testfiles/eplusout.expidf | 2510 +++++++++++++++++ testfiles/eplusout.mtd | 0 testfiles/eplusout.mtr | 0 testfiles/eplusout.shd | 46 + testfiles/epluszsz.csv | 0 15 files changed, 2735 insertions(+), 16 deletions(-) create mode 100644 testfiles/eplusout.audit create mode 100644 testfiles/eplusout.bnd create mode 100644 testfiles/eplusout.dbg create mode 100644 testfiles/eplusout.eio create mode 100644 testfiles/eplusout.end create mode 100644 testfiles/eplusout.err create mode 100644 testfiles/eplusout.eso create mode 100644 testfiles/eplusout.expidf create mode 100644 testfiles/eplusout.mtd create mode 100644 testfiles/eplusout.mtr create mode 100644 testfiles/eplusout.shd create mode 100644 testfiles/epluszsz.csv diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.cc b/src/EnergyPlus/HeatBalanceHAMTManager.cc index 500ac2b8915..1a983a374e0 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.cc +++ b/src/EnergyPlus/HeatBalanceHAMTManager.cc @@ -48,7 +48,7 @@ // C++ Headers #include #include - +#include // ObjexxFCL Headers #include #include @@ -344,6 +344,9 @@ namespace HeatBalanceHAMTManager { inputProcessor->getObjectDefMaxArgs(state, cHAMTObject7, NumParams, NumAlphas, NumNums); MaxAlphas = max(MaxAlphas, NumAlphas); MaxNums = max(MaxNums, NumNums); + //inputProcessor->getObjectDefMaxArgs(state, cHAMTObject8, NumParams, NumAlphas, NumNums); + //MaxAlphas = max(MaxAlphas, NumAlphas); + //MaxNums = max(MaxNums, NumNums); ErrorsFound = false; @@ -698,15 +701,24 @@ namespace HeatBalanceHAMTManager { // Internal Moisture Source auto instances = inputProcessor->epJSON.find(cHAMTObject8); + + if (instances != inputProcessor->epJSON.end()) { int item = 0; auto &instancesValue = instances.value(); + for (auto instance = instancesValue.begin(); instance != instancesValue.end(); ++instance) { auto const &fields = instance.value(); auto const &thisObjectName = UtilityRoutines::MakeUPPERCase(instance.key()); - - std::string construction_name{fields.at("construction_name")}; - int construction_index = UtilityRoutines::FindItemInList(construction_name, state.dataConstruction->Construct); + //std::cout << "Yanfei001: " << fields << std::endl; + //std::cout << "Yanfei002: " << thisObjectName << std::endl; + std::string construction_name{UtilityRoutines::MakeUPPERCase(fields.at("construction_name"))}; + //std::cout << "Yanfei 003: " << construction_name << std::endl; + // std::cout << "Yanfei 004: " << state.dataConstruction->Construct << std::endl; + + int construction_index = UtilityRoutines::FindItemInList(construction_name, + state.dataConstruction->Construct); + //std::cout << "Yanfei 005: " << construction_index << std::endl; if (construction_index == 0) { ShowSevereError(state, "Did not find matching construction for " + cHAMTObject8 + ' ' + thisObjectName + @@ -1326,7 +1338,7 @@ namespace HeatBalanceHAMTManager { cells(cid).rhp1 = state.dataMaterial->Material(matid).irh; cells(cid).rhp2 = state.dataMaterial->Material(matid).irh; - if (cells(cid).source_id) { + if (cells(cid).source_id!=-1) { if (sources(cells(cid).source_id).type == InternalMoistureSource::Type::AirflowNetwork) { if (!sources(cells(cid).source_id).afn_id) { if (state.dataAirflowNetworkBalanceManager->AirflowNetworkNumOfSurfaces) { diff --git a/src/EnergyPlus/UtilityRoutines.cc b/src/EnergyPlus/UtilityRoutines.cc index b2f760fdee1..d1770a53d51 100644 --- a/src/EnergyPlus/UtilityRoutines.cc +++ b/src/EnergyPlus/UtilityRoutines.cc @@ -169,7 +169,7 @@ namespace UtilityRoutines { // If you need case insensitivity use FindItem. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - + for (int Count = 1; Count <= NumItems; ++Count) { if (String == ListOfItems(Count)) return Count; } @@ -193,7 +193,7 @@ namespace UtilityRoutines { // If you need case insensitivity use FindItem. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - + for (int Count = 1; Count <= NumItems; ++Count) { if (String == ListOfItems(Count)) return Count; } diff --git a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf index 92f2414ea01..af25b20f2db 100644 --- a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf +++ b/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf @@ -871,15 +871,7 @@ !- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== - ConstructionProperty:InternalMoistureSource, - InternalMoistureSourceEast, !- Name - Exterior wall, !- Construction Name - 3, !- Moisture Source Present In Layer Number - UserDefined, !- Source Type - 0.0001, !- Air Flow Rate {m/s} - 0.1, !- Stack Height {m} - 0.001, !- Component Air Permeance - 0.01; !- Mechanical Ventilation Overpressure + BuildingSurface:Detailed, North wall, !- Name @@ -945,6 +937,18 @@ 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + Exterior wall, !- Construction Name + 3, !- Moisture Source Present In Layer Number + UserDefined, !- Source Type + 0.0001, !- Air Flow Rate {m/s} + 0.1, !- Stack Height {m} + 0.001, !- Component Air Permeance + 0.01; !- Mechanical Ventilation Overpressure + + !- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== FenestrationSurface:Detailed, diff --git a/testfiles/eplusout.audit b/testfiles/eplusout.audit new file mode 100644 index 00000000000..e69de29bb2d diff --git a/testfiles/eplusout.bnd b/testfiles/eplusout.bnd new file mode 100644 index 00000000000..e69de29bb2d diff --git a/testfiles/eplusout.dbg b/testfiles/eplusout.dbg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/testfiles/eplusout.eio b/testfiles/eplusout.eio new file mode 100644 index 00000000000..a4d55730555 --- /dev/null +++ b/testfiles/eplusout.eio @@ -0,0 +1,83 @@ +Program Version,EnergyPlus, Version 9.4.0-9265a144d4, YMD=2021.03.08 15:55 +! , Version ID + Version, 9.4 +! , #TimeSteps, Minutes per TimeStep {minutes} + Timesteps per Hour, 20, 3 +! , Minimum System TimeStep {minutes}, Max HVAC Iterations, Minimum Plant Iterations, Maximum Plant Iterations + System Convergence Limits, 1, 20, 2, 8 +! , Do Zone Sizing, Do System Sizing, Do Plant Sizing, Do Design Days, Do Weather Simulation, Do HVAC Sizing Simulation + Simulation Control, Yes, Yes, No, Yes, Yes, No +! , Use Coil Direct Simulation, Zone Radiant Exchange Algorithm, Override Mode, Number of Timestep In Hour, Force Euler Method, Minimum Number of Warmup Days, Force Suppress All Begin Environment Resets, Minimum System Timestep, MaxZoneTempDiff, MaxAllowedDelTemp + Performance Precision Tradeoffs, No, ScriptF, Normal, 20, No, 1, No, 1.0, 0.300, 2.0000E-003 +! , Tolerance for Time Heating Setpoint Not Met, Tolerance for Zone Cooling Setpoint Not Met Time + Output Reporting Tolerances, 0.200, 0.200, +! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} + Site:GroundTemperature:BuildingSurface, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00 +! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} + Site:GroundTemperature:FCfactorMethod, -1.89, -3.06, -0.99, 2.23, 10.68, 17.20, 21.60, 22.94, 20.66, 15.60, 8.83, 2.56 +! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} + Site:GroundTemperature:Shallow, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00 +! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} + Site:GroundTemperature:Deep, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00 +! ,Jan{dimensionless},Feb{dimensionless},Mar{dimensionless},Apr{dimensionless},May{dimensionless},Jun{dimensionless},Jul{dimensionless},Aug{dimensionless},Sep{dimensionless},Oct{dimensionless},Nov{dimensionless},Dec{dimensionless} + Site:GroundReflectance, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20 +! , Normal, Daylighting {dimensionless} + Site:GroundReflectance:SnowModifier, 1.000, 1.000 +! ,Jan{dimensionless},Feb{dimensionless},Mar{dimensionless},Apr{dimensionless},May{dimensionless},Jun{dimensionless},Jul{dimensionless},Aug{dimensionless},Sep{dimensionless},Oct{dimensionless},Nov{dimensionless},Dec{dimensionless} + Site:GroundReflectance:Snow, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20 +! ,Jan{dimensionless},Feb{dimensionless},Mar{dimensionless},Apr{dimensionless},May{dimensionless},Jun{dimensionless},Jul{dimensionless},Aug{dimensionless},Sep{dimensionless},Oct{dimensionless},Nov{dimensionless},Dec{dimensionless} + Site:GroundReflectance:Snow:Daylighting, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20 +! ,Wind Sensor Height Above Ground {m},Wind Speed Profile Exponent {},Wind Speed Profile Boundary Layer Thickness {m},Air Temperature Sensor Height Above Ground {m},Wind Speed Modifier Coefficient-Internal,Temperature Modifier Coefficient-Internal +Environment:Weather Station,10.000,0.140,270.000,1.500,1.586,9.750E-003 +! , Location Name, Latitude {N+/S- Deg}, Longitude {E+/W- Deg}, Time Zone Number {GMT+/-}, Elevation {m}, Standard Pressure at Elevation {Pa}, Standard RhoAir at Elevation +Site:Location,Chicago Ohare Intl Ap IL USA TMY3 WMO#=725300,41.98,-87.92,-6.00,201.00,98934,1.1759 +! ,Calculation Method{},Water Mains Temperature Schedule Name{},Annual Average Outdoor Air Temperature{C},Maximum Difference In Monthly Average Outdoor Air Temperatures{deltaC},Fixed Default Water Mains Temperature{C} +Site Water Mains Temperature Information,FixedDefault,NA,NA,NA,10.0 +! , Building Name,North Axis {deg},Terrain, Loads Convergence Tolerance Value,Temperature Convergence Tolerance Value, Solar Distribution,Maximum Number of Warmup Days,Minimum Number of Warmup Days + Building Information,HAMT test 1,0.000,Suburbs,4.00000E-002,0.40000,MinimalShadowing,25,6 +! , Algorithm {Simple | TARP | CeilingDiffuser | AdaptiveConvectionAlgorithm} +Inside Convection Algorithm,TARP +! , Algorithm {SimpleCombined | TARP | MoWitt | DOE-2 | AdaptiveConvectionAlgorithm} +Outside Convection Algorithm,DOE-2 +! , Value {Anisotropic} +Sky Radiance Distribution,Anisotropic +! , Value {ThirdOrderBackwardDifference | AnalyticalSolution | EulerMethod} + Zone Air Solution Algorithm, ThirdOrderBackwardDifference +! , Simulation {Yes/No}, Carbon Dioxide Concentration + Zone Air Carbon Dioxide Balance Simulation, No,N/A +! , Simulation {Yes/No}, Generic Contaminant Concentration + Zone Air Generic Contaminant Balance Simulation, No,N/A +! , Enforce Mass Balance, Adjust Zone Mixing, Adjust Zone Infiltration {AddInfiltration | AdjustInfiltration | None}, Infiltration Zones {MixingSourceZonesOnly | AllZones} + Zone Air Mass Flow Balance Simulation, No,N/A,N/A,N/A +! , Value {RegulaFalsi | Bisection | BisectionThenRegulaFalsi | RegulaFalsiThenBisection} + HVACSystemRootFindingAlgorithm, RegulaFalsi +! ,Wind Speed Profile Exponent {},Wind Speed Profile Boundary Layer Thickness {m},Air Temperature Gradient Coefficient {K/m} +Environment:Site Atmospheric Variation,0.220,370.000,6.500000E-003 +! ,Starting Corner,Vertex Input Direction,Coordinate System,Daylight Reference Point Coordinate System,Rectangular (Simple) Surface Coordinate System + Surface Geometry,UpperLeftCorner,Counterclockwise,WorldCoordinateSystem,RelativeCoordinateSystem,RelativeToZoneOrigin +! , Value {CTF - ConductionTransferFunction | EMPD - MoisturePenetrationDepthConductionTransferFunction | CondFD - ConductionFiniteDifference | HAMT - CombinedHeatAndMoistureFiniteElement} - Description,Inside Surface Max Temperature Limit{C}, Surface Convection Coefficient Lower Limit {W/m2-K}, Surface Convection Coefficient Upper Limit {W/m2-K} +Surface Heat Transfer Algorithm, HAMT - CombinedHeatAndMoistureFiniteElement,200,0.10,1000.0 +! , Number of Fixed Detached Shades, Number of Building Detached Shades, Number of Attached Shades + Shading Summary,0,0,0 +! , Number of Zones, Number of Zone Surfaces, Number of SubSurfaces + Zone Summary,1,8,2 +! ,Zone Name,North Axis {deg},Origin X-Coordinate {m},Origin Y-Coordinate {m},Origin Z-Coordinate {m},Centroid X-Coordinate {m},Centroid Y-Coordinate {m},Centroid Z-Coordinate {m},Type,Zone Multiplier,Zone List Multiplier,Minimum X {m},Maximum X {m},Minimum Y {m},Maximum Y {m},Minimum Z {m},Maximum Z {m},Ceiling Height {m},Volume {m3},Zone Inside Convection Algorithm {Simple-Detailed-CeilingDiffuser-TrombeWall},Zone Outside Convection Algorithm {Simple-Detailed-Tarp-MoWitt-DOE-2-BLAST}, Floor Area {m2},Exterior Gross Wall Area {m2},Exterior Net Wall Area {m2},Exterior Window Area {m2}, Number of Surfaces, Number of SubSurfaces, Number of Shading SubSurfaces, Part of Total Building Area + Zone Information, TEST ROOM,0.0,0.00,0.00,0.00,4.00,3.00,1.35,1,1,1,0.00,8.00,0.00,6.00,0.00,2.70,2.70,129.60,TARP,DOE-2,48.00,75.60,63.60,12.00,6,2,0,Yes +! ,Zone Name, Floor Area {m2},# Occupants,Area per Occupant {m2/person},Occupant per Area {person/m2},Interior Lighting {W/m2},Electric Load {W/m2},Gas Load {W/m2},Other Load {W/m2},Hot Water Eq {W/m2},Steam Equipment {W/m2},Sum Loads per Area {W/m2},Outdoor Controlled Baseboard Heat + Zone Internal Gains Nominal, TEST ROOM,48.00,0.0,N/A,0.000,0.000,0.000,0.000,24.013,0.000,0.000,24.013,No +! ,Name,Schedule Name,Zone Name,Zone Floor Area {m2},# Zone Occupants,Equipment Level {W},Equipment/Floor Area {W/m2},Equipment per person {W/person},Fraction Latent,Fraction Radiant,Fraction Lost,Fraction Convected,Nominal Minimum Equipment Level {W},Nominal Maximum Equipment Level {W} + OtherEquipment Internal Gains Nominal, LATENT,MOISTURE ON,TEST ROOM,48.00,0.0,352.600,7.346,N/A,1.000,0.000,0.000,0.000,0.000,352.600 + OtherEquipment Internal Gains Nominal, OTHER,ON,TEST ROOM,48.00,0.0,800.000,16.667,N/A,0.000,0.000,0.000,1.000,800.000,800.000 +! , Shading Calculation Method, Shading Calculation Update Frequency Method, Shading Calculation Update Frequency {days}, Maximum Figures in Shadow Overlap Calculations {}, Polygon Clipping Algorithm, Pixel Counting Resolution, Sky Diffuse Modeling Algorithm, Output External Shading Calculation Results, Disable Self-Shading Within Shading Zone Groups, Disable Self-Shading From Shading Zone Groups to Other Zones +Shadowing/Sun Position Calculations Annual Simulations,PolygonClipping,Periodic,20,15000,SutherlandHodgman,512,SimpleSkyDiffuseModeling,No,No,No +! , Surface Name, Construction Name, Cell Numbers +! , Surface Name, Construction Name, Cell origins (m) +HAMT cells, SOUTH WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 +HAMT origins,SOUTH WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 +HAMT cells, EAST WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 +HAMT origins,EAST WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 +HAMT cells, NORTH WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 +HAMT origins,NORTH WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 +HAMT cells, WEST WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 +HAMT origins,WEST WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 +HAMT cells, FLOOR,FLOOR, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 \ No newline at end of file diff --git a/testfiles/eplusout.end b/testfiles/eplusout.end new file mode 100644 index 00000000000..41d549f6d55 --- /dev/null +++ b/testfiles/eplusout.end @@ -0,0 +1 @@ +EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 7 Severe Errors; Elapsed Time=00hr 00min 10.07sec diff --git a/testfiles/eplusout.err b/testfiles/eplusout.err new file mode 100644 index 00000000000..e69de29bb2d diff --git a/testfiles/eplusout.eso b/testfiles/eplusout.eso new file mode 100644 index 00000000000..e61fb84c409 --- /dev/null +++ b/testfiles/eplusout.eso @@ -0,0 +1,63 @@ +Program Version,EnergyPlus, Version 9.4.0-9265a144d4, YMD=2021.03.08 15:55 +1,5,Environment Title[],Latitude[deg],Longitude[deg],Time Zone[],Elevation[m] +2,8,Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],Hour[],StartMinute[],EndMinute[],DayType +3,5,Cumulative Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],DayType ! When Daily Report Variables Requested +4,2,Cumulative Days of Simulation[],Month[] ! When Monthly Report Variables Requested +5,1,Cumulative Days of Simulation[] ! When Run Period Report Variables Requested +6,1,Calendar Year of Simulation[] ! When Annual Report Variables Requested +7,1,Environment,Site Outdoor Air Drybulb Temperature [C] !Hourly +8,1,Environment,Site Outdoor Air Relative Humidity [%] !Hourly +9,1,SOUTH WALL,HAMT Surface Average Water Content Ratio [kg/kg] !Hourly +10,1,EAST WALL,HAMT Surface Average Water Content Ratio [kg/kg] !Hourly +11,1,EAST WALL,HAMT Surface Temperature Cell 1 [C] !Hourly +12,1,EAST WALL,HAMT Surface Temperature Cell 2 [C] !Hourly +13,1,EAST WALL,HAMT Surface Temperature Cell 3 [C] !Hourly +14,1,EAST WALL,HAMT Surface Temperature Cell 4 [C] !Hourly +15,1,EAST WALL,HAMT Surface Temperature Cell 5 [C] !Hourly +16,1,EAST WALL,HAMT Surface Temperature Cell 6 [C] !Hourly +17,1,EAST WALL,HAMT Surface Temperature Cell 7 [C] !Hourly +18,1,EAST WALL,HAMT Surface Temperature Cell 8 [C] !Hourly +19,1,EAST WALL,HAMT Surface Temperature Cell 9 [C] !Hourly +20,1,EAST WALL,HAMT Surface Temperature Cell 10 [C] !Hourly +21,1,EAST WALL,HAMT Surface Temperature Cell 11 [C] !Hourly +22,1,EAST WALL,HAMT Surface Temperature Cell 12 [C] !Hourly +23,1,EAST WALL,HAMT Surface Temperature Cell 13 [C] !Hourly +24,1,EAST WALL,HAMT Surface Temperature Cell 14 [C] !Hourly +25,1,EAST WALL,HAMT Surface Temperature Cell 15 [C] !Hourly +26,1,EAST WALL,HAMT Surface Temperature Cell 16 [C] !Hourly +27,1,EAST WALL,HAMT Surface Temperature Cell 17 [C] !Hourly +28,1,EAST WALL,HAMT Surface Temperature Cell 18 [C] !Hourly +29,1,EAST WALL,HAMT Surface Temperature Cell 19 [C] !Hourly +30,1,EAST WALL,HAMT Surface Temperature Cell 20 [C] !Hourly +31,1,EAST WALL,HAMT Surface Temperature Cell 21 [C] !Hourly +32,1,EAST WALL,HAMT Surface Temperature Cell 22 [C] !Hourly +33,1,EAST WALL,HAMT Surface Temperature Cell 23 [C] !Hourly +34,1,EAST WALL,HAMT Surface Temperature Cell 24 [C] !Hourly +35,1,EAST WALL,HAMT Surface Temperature Cell 25 [C] !Hourly +36,1,EAST WALL,HAMT Surface Temperature Cell 26 [C] !Hourly +37,1,EAST WALL,HAMT Surface Temperature Cell 27 [C] !Hourly +38,1,EAST WALL,HAMT Surface Temperature Cell 28 [C] !Hourly +39,1,EAST WALL,HAMT Surface Temperature Cell 29 [C] !Hourly +40,1,EAST WALL,HAMT Surface Temperature Cell 30 [C] !Hourly +41,1,EAST WALL,HAMT Surface Temperature Cell 31 [C] !Hourly +42,1,EAST WALL,HAMT Surface Temperature Cell 32 [C] !Hourly +43,1,EAST WALL,HAMT Surface Water Content Cell 1 [kg/kg] !Hourly +44,1,EAST WALL,HAMT Surface Water Content Cell 2 [kg/kg] !Hourly +45,1,EAST WALL,HAMT Surface Water Content Cell 3 [kg/kg] !Hourly +46,1,EAST WALL,HAMT Surface Water Content Cell 4 [kg/kg] !Hourly +47,1,EAST WALL,HAMT Surface Water Content Cell 5 [kg/kg] !Hourly +48,1,EAST WALL,HAMT Surface Water Content Cell 6 [kg/kg] !Hourly +49,1,EAST WALL,HAMT Surface Water Content Cell 7 [kg/kg] !Hourly +50,1,EAST WALL,HAMT Surface Water Content Cell 8 [kg/kg] !Hourly +51,1,EAST WALL,HAMT Surface Water Content Cell 9 [kg/kg] !Hourly +52,1,EAST WALL,HAMT Surface Water Content Cell 10 [kg/kg] !Hourly +53,1,EAST WALL,HAMT Surface Water Content Cell 11 [kg/kg] !Hourly +54,1,EAST WALL,HAMT Surface Water Content Cell 12 [kg/kg] !Hourly +55,1,EAST WALL,HAMT Surface Water Content Cell 13 [kg/kg] !Hourly +56,1,EAST WALL,HAMT Surface Water Content Cell 14 [kg/kg] !Hourly +57,1,EAST WALL,HAMT Surface Water Content Cell 15 [kg/kg] !Hourly +58,1,EAST WALL,HAMT Surface Water Content Cell 16 [kg/kg] !Hourly +59,1,EAST WALL,HAMT Surface Water Content Cell 17 [kg/kg] !Hourly +60,1,EAST WALL,HAMT Surface Water Content Cell 18 [kg/kg] !Hourly +61,1,EAST WALL,HAMT Surface Water Content Cell 19 [kg/kg] !Hourly +62,1,EAST WALL,HAMT Surfa \ No newline at end of file diff --git a/testfiles/eplusout.expidf b/testfiles/eplusout.expidf new file mode 100644 index 00000000000..5d701a0b373 --- /dev/null +++ b/testfiles/eplusout.expidf @@ -0,0 +1,2510 @@ +!-Generator IDFEditor 1.34 +!-Option SortedOrder 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. +!- =========== ALL OBJECTS IN CLASS: VERSION =========== +! Name of file: HAMT_HourlyProfileReport.idf +! +! Basic file description: +! Single zone single story lightweight building. +! The building is orientated with its long axis east-west. Windows are on the south wall. +! +! Highlights: +! To demonstrate the use of the HAMT solution algorithm, +! including the use of fixed vapor transfer coefficients +! +! Simulation Location/Run: +! autosizing using Denver winter & summer design days; +! simulation; 1 winter, 1 summer day. +! +! Location: Chicago, IL +! Run Period (Weather File): 1 months, USA_IL_Chicago-OHare_TMY2 +! Timestep: 20 per hour. +! +! Building: +! ______________________ +! |\ /| +! | \ / | NORTH +! | \________________/ | ^ +! | | | | /|\ +! | | | | | +! | | | |6 m | +! | | | | | +! | | | | | +! | |________________| | +! | / ____ ____ \ | +! | / /____\ /____\ \ | +! |/____________________\| +! 8 m +! ______________________ +! | _____ _____ | +! | | | | | | 2.7m +! | |_____| |_____| | +! |______________________| +! +! Both windows are 2m high and 3m wide, +! separated by 1m, 0.5m from the roof +! and 0.5m from either side of the building. +! +! Floor area: 48 m2 +! Dimensions: 8 m x 6 m +! Floor height: 2.7 m +! conditioned floor. No basement +! Number of Stories: 1 +! +! Shell characteristics: +! Roof construction: Flat roof, plywood, insulation, spruce panel +! Wall construction: spruce siding, conctete, cellulose insulation, spruce panel +! Floor construction: Glass fibre insulation, spruce flooring +! +! Windows +! The area of each window is 6 m2 , giving a total glazed area of 12 m2 +! The windows were double glazed with an air gap: +! +! Glass: +! Pane Thickness: 0.003175 m +! Solar Transmittance at normal incidence: 0.86156 +! Solar reflectance at normal incidence: Front side: 0.07846 +! Solar reflectance at normal incidence: Back side: 0.07846 +! Visible transmittance at normal incidence: 0.91325 +! Visible reflectance at normal incidence: Front side: 0.082 +! Visible reflectance at normal incidence: Back side: 0.082 +! IR Transmittance at Normal Incidence: 0 +! IR Hemispherical Emissivity: Front Side 0.84 +! IR Hemishpherical Emissivity: Back Side 0.84 +! Conductivity 1.06 W/mK +! +! Air Gap: +! Air Gap thickness: 0.013 m +! +! All other material properties are set to use the HAMT solutions algorithm +! +! Infiltration: +! All hours: 0.5 ACH +! +! Internal Loads: +! The same internal load schedule is used for every day of the simulation year: +! Sensible: +! 800 watts all day +! Latent: +! 0 watts between 0 and 0900 hours and between 1700 and 2400 hours +! 352.6 watts between 0900 hours and 1700 hours. +! +! System controls are: +! Heating 20.0 C +! Cooling 27.0 C +! +! HVAC: +! 100% convective air system, thermostat on room temperature, no latent load, +! Compact FanCoil system is used. System is autosized. +! +! Reporting: +! Outdoor Dry Bulb, daily; +! Outdoor Relative Humidity, daily; +! Zone Mean Air Temperature, daily; +! Zone Air Relative Humidity, daily; +! Zone/Sys Sensible Heating Rate, daily; +! Zone/Sys Sensible Cooling Rate, daily; +! +! The following report variables are selected as an example for +! east wall only +! HAMT-Surface Water Content , daily; +! +! HAMT-Profile Construction 1 Cell 1 Temperature, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Temperature, daily; +! +! HAMT-Profile Construction 1 Cell 1 Water, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Water, daily; +! +! HAMT-Profile Construction 1 Cell 1 RH, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 RH, daily; +! +! + + Version,9.4; + +!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL =========== + + SimulationControl, + Yes, !- Do Zone Sizing Calculation + Yes, !- 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 + +!- =========== ALL OBJECTS IN CLASS: BUILDING =========== + + Building, + HAMT test 1, !- Name + 0, !- North Axis {deg} + , !- Terrain + 0.04, !- Loads Convergence Tolerance Value {W} + 0.4, !- Temperature Convergence Tolerance Value {deltaC} + MinimalShadowing, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + +!- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== + + HeatBalanceAlgorithm,CombinedHeatAndMoistureFiniteElement,200; + +!- =========== ALL OBJECTS IN CLASS: TIMESTEP =========== + + Timestep,20; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE =========== + + SurfaceConvectionAlgorithm:Inside,TARP; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:OUTSIDE =========== + + SurfaceConvectionAlgorithm:Outside,DOE-2; + +!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY =========== + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -17.3, !- 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 + -17.3, !- 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.0; !- Sky Clearness + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.5, !- 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 + 23.0, !- 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.0; !- Sky Clearness + +!- =========== ALL OBJECTS IN CLASS: RUNPERIOD =========== + + RunPeriod, + Run Period 1, !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 1, !- End Month + 31, !- End Day of Month + , !- End Year + , !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + Yes, !- Apply Weekend Holiday Rule + No, !- Use Weather File Rain Indicators + No; !- Use Weather File Snow Indicators +! +!- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE =========== +! +! Site:GroundTemperature:BuildingSurface,18,18,18,18,18,18,18,18,18,18,18,18; + +!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS =========== + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS, !- Numeric Type + Temperature; !- Unit Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + FlowRate, !- Name + 0.0, !- Lower Limit Value + 10, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY =========== + + Schedule:Day:Hourly, + On, !- Name + Fraction, !- Schedule Type Limits Name + 1, !- Hour 1 + 1, !- Hour 2 + 1, !- Hour 3 + 1, !- Hour 4 + 1, !- Hour 5 + 1, !- Hour 6 + 1, !- Hour 7 + 1, !- Hour 8 + 1, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 1, !- Hour 18 + 1, !- Hour 19 + 1, !- Hour 20 + 1, !- Hour 21 + 1, !- Hour 22 + 1, !- Hour 23 + 1; !- Hour 24 + + Schedule:Day:Hourly, + Moisture annex 41, !- Name + Fraction, !- Schedule Type Limits Name + 0, !- Hour 1 + 0, !- Hour 2 + 0, !- Hour 3 + 0, !- Hour 4 + 0, !- Hour 5 + 0, !- Hour 6 + 0, !- Hour 7 + 0, !- Hour 8 + 0, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 0, !- Hour 18 + 0, !- Hour 19 + 0, !- Hour 20 + 0, !- Hour 21 + 0, !- Hour 22 + 0, !- Hour 23 + 0; !- Hour 24 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:DAILY =========== + + Schedule:Week:Daily, + WeekOn, !- Name + On, !- Sunday Schedule:Day Name + On, !- Monday Schedule:Day Name + On, !- Tuesday Schedule:Day Name + On, !- Wednesday Schedule:Day Name + On, !- Thursday Schedule:Day Name + On, !- Friday Schedule:Day Name + On, !- Saturday Schedule:Day Name + On, !- Holiday Schedule:Day Name + On, !- SummerDesignDay Schedule:Day Name + On, !- WinterDesignDay Schedule:Day Name + On, !- CustomDay1 Schedule:Day Name + On; !- CustomDay2 Schedule:Day Name + + Schedule:Week:Daily, + Weekon moisture, !- Name + Moisture annex 41, !- Sunday Schedule:Day Name + Moisture annex 41, !- Monday Schedule:Day Name + Moisture annex 41, !- Tuesday Schedule:Day Name + Moisture annex 41, !- Wednesday Schedule:Day Name + Moisture annex 41, !- Thursday Schedule:Day Name + Moisture annex 41, !- Friday Schedule:Day Name + Moisture annex 41, !- Saturday Schedule:Day Name + Moisture annex 41, !- Holiday Schedule:Day Name + Moisture annex 41, !- SummerDesignDay Schedule:Day Name + Moisture annex 41, !- WinterDesignDay Schedule:Day Name + Moisture annex 41, !- CustomDay1 Schedule:Day Name + Moisture annex 41; !- CustomDay2 Schedule:Day Name + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR =========== + + Schedule:Year, + On, !- Name + Fraction, !- Schedule Type Limits Name + WeekOn, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + + Schedule:Year, + Moisture on, !- Name + Fraction, !- Schedule Type Limits Name + Weekon moisture, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT =========== + + Schedule:Compact, + Htg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + Clg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + FanAvailSched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,1; !- Field 3 + +!- =========== ALL OBJECTS IN CLASS: MATERIAL =========== + + Material, + Concrete, !- Name + Rough, !- Roughness + 0.1, !- Thickness {m} + 1.6, !- Conductivity {W/m-K} + 2300, !- Density {kg/m3} + 850, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Spruce, !- Name + Rough, !- Roughness + 0.012, !- Thickness {m} + 0.09, !- Conductivity {W/m-K} + 455, !- Density {kg/m3} + 1500, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Plywood, !- Name + Rough, !- Roughness + 0.025, !- Thickness {m} + 0.14, !- Conductivity {W/m-K} + 530, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Cellulose ins, !- Name + Rough, !- Roughness + 0.066, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 55, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Glass Fibre ins, !- Name + Rough, !- Roughness + 1.003, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 80, !- Density {kg/m3} + 840, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING =========== + + WindowMaterial:Glazing, + Glass, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + 0.003175, !- Thickness {m} + 0.86156, !- Solar Transmittance at Normal Incidence + 0.07846, !- Front Side Solar Reflectance at Normal Incidence + 0.07846, !- Back Side Solar Reflectance at Normal Incidence + 0.91325, !- Visible Transmittance at Normal Incidence + 0.082, !- Front Side Visible Reflectance at Normal Incidence + 0.082, !- Back Side Visible Reflectance at Normal Incidence + 0, !- Infrared Transmittance at Normal Incidence + 0.84, !- Front Side Infrared Hemispherical Emissivity + 0.84, !- Back Side Infrared Hemispherical Emissivity + 1.06; !- Conductivity {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GAS =========== + + WindowMaterial:Gas, + Air, !- Name + Air, !- Gas Type + 0.013; !- Thickness {m} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SETTINGS =========== + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Concrete, !- Material Name + 0.76, !- Porosity {m3/m3} + 0.01; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Spruce, !- Material Name + 0.73, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Plywood, !- Material Name + 0.5, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Cellulose ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.001; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Glass Fibre ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.1; !- Initial Water Content Ratio {kg/kg} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SORPTIONISOTHERM =========== + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Cellulose ins, !- Material Name + 5, !- Number of Isotherm Coordinates + 0.25, !- Relative Humidity Fraction 1 {dimensionless} + 2.365, !- Moisture Content 1 {kg/m3} + 0.44, !- Relative Humidity Fraction 2 {dimensionless} + 4.62, !- Moisture Content 2 {kg/m3} + 0.66, !- Relative Humidity Fraction 3 {dimensionless} + 6.655, !- Moisture Content 3 {kg/m3} + 0.86, !- Relative Humidity Fraction 4 {dimensionless} + 11.4125, !- Moisture Content 4 {kg/m3} + 1, !- Relative Humidity Fraction 5 {dimensionless} + 13; !- Moisture Content 5 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Glass Fibre ins, !- Material Name + 6, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 0.748, !- Moisture Content 1 {kg/m3} + 0.4325, !- Relative Humidity Fraction 2 {dimensionless} + 1.04, !- Moisture Content 2 {kg/m3} + 0.6465, !- Relative Humidity Fraction 3 {dimensionless} + 1.24, !- Moisture Content 3 {kg/m3} + 0.8465, !- Relative Humidity Fraction 4 {dimensionless} + 1.56, !- Moisture Content 4 {kg/m3} + 0.948, !- Relative Humidity Fraction 5 {dimensionless} + 1.92, !- Moisture Content 5 {kg/m3} + 0.978, !- Relative Humidity Fraction 6 {dimensionless} + 2.72; !- Moisture Content 6 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Spruce, !- Material Name + 7, !- Number of Isotherm Coordinates + 0.205, !- Relative Humidity Fraction 1 {dimensionless} + 25.935, !- Moisture Content 1 {kg/m3} + 0.4465, !- Relative Humidity Fraction 2 {dimensionless} + 44.3625, !- Moisture Content 2 {kg/m3} + 0.6515, !- Relative Humidity Fraction 3 {dimensionless} + 61.99375, !- Moisture Content 3 {kg/m3} + 0.6545, !- Relative Humidity Fraction 4 {dimensionless} + 61.99375, !- Moisture Content 4 {kg/m3} + 0.83, !- Relative Humidity Fraction 5 {dimensionless} + 87.1325, !- Moisture Content 5 {kg/m3} + 0.9525, !- Relative Humidity Fraction 6 {dimensionless} + 119.665, !- Moisture Content 6 {kg/m3} + 0.956, !- Relative Humidity Fraction 7 {dimensionless} + 120.12; !- Moisture Content 7 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Plywood, !- Material Name + 12, !- Number of Isotherm Coordinates + 0.2015, !- Relative Humidity Fraction 1 {dimensionless} + 3.7125, !- Moisture Content 1 {kg/m3} + 0.203, !- Relative Humidity Fraction 2 {dimensionless} + 3.74, !- Moisture Content 2 {kg/m3} + 0.435, !- Relative Humidity Fraction 3 {dimensionless} + 5.8025, !- Moisture Content 3 {kg/m3} + 0.439, !- Relative Humidity Fraction 4 {dimensionless} + 5.83, !- Moisture Content 4 {kg/m3} + 0.6495, !- Relative Humidity Fraction 5 {dimensionless} + 7.7825, !- Moisture Content 5 {kg/m3} + 0.6515, !- Relative Humidity Fraction 6 {dimensionless} + 7.81, !- Moisture Content 6 {kg/m3} + 0.8215, !- Relative Humidity Fraction 7 {dimensionless} + 10.3675, !- Moisture Content 7 {kg/m3} + 0.825, !- Relative Humidity Fraction 8 {dimensionless} + 10.3675, !- Moisture Content 8 {kg/m3} + 0.9215, !- Relative Humidity Fraction 9 {dimensionless} + 13.1175, !- Moisture Content 9 {kg/m3} + 0.925, !- Relative Humidity Fraction 10 {dimensionless} + 13.1175, !- Moisture Content 10 {kg/m3} + 0.9575, !- Relative Humidity Fraction 11 {dimensionless} + 14.7125, !- Moisture Content 11 {kg/m3} + 0.9605, !- Relative Humidity Fraction 12 {dimensionless} + 15.345; !- Moisture Content 12 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Concrete, !- Material Name + 10, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 19.665, !- Moisture Content 1 {kg/m3} + 0.2205, !- Relative Humidity Fraction 2 {dimensionless} + 22.31, !- Moisture Content 2 {kg/m3} + 0.449, !- Relative Humidity Fraction 3 {dimensionless} + 38.4675, !- Moisture Content 3 {kg/m3} + 0.454, !- Relative Humidity Fraction 4 {dimensionless} + 38.4675, !- Moisture Content 4 {kg/m3} + 0.6506, !- Relative Humidity Fraction 5 {dimensionless} + 54.165, !- Moisture Content 5 {kg/m3} + 0.655, !- Relative Humidity Fraction 6 {dimensionless} + 54.165, !- Moisture Content 6 {kg/m3} + 0.824, !- Relative Humidity Fraction 7 {dimensionless} + 72.565, !- Moisture Content 7 {kg/m3} + 0.8725, !- Relative Humidity Fraction 8 {dimensionless} + 85.1, !- Moisture Content 8 {kg/m3} + 0.924, !- Relative Humidity Fraction 9 {dimensionless} + 91.08, !- Moisture Content 9 {kg/m3} + 0.964, !- Relative Humidity Fraction 10 {dimensionless} + 100.28; !- Moisture Content 10 {kg/m3} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SUCTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Concrete, !- Material Name + 5, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.0000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.00000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.00000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Spruce, !- Material Name + 3, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Plywood, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Cellulose ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Glass Fibre ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:REDISTRIBUTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Concrete, !- Material Name + 5, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.00000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.0000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.000000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.000000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Spruce, !- Material Name + 3, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Plywood, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Cellulose ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Glass Fibre ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:DIFFUSION =========== + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Concrete, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 180; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Spruce, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 130; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Plywood, !- Material Name + 3, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 700, !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + 0.5, !- Relative Humidity Fraction 2 {dimensionless} + 200, !- Water Vapor Diffusion Resistance Factor 2 {dimensionless} + 1, !- Relative Humidity Fraction 3 {dimensionless} + 20; !- Water Vapor Diffusion Resistance Factor 3 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Cellulose ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.5; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Glass Fibre ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.2543; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:THERMALCONDUCTIVITY =========== + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Concrete, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 1.6, !- Thermal Conductivity 1 {W/m-K} + 180, !- Moisture Content 2 {kg/m3} + 2.602; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Spruce, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.09, !- Thermal Conductivity 1 {W/m-K} + 730, !- Moisture Content 2 {kg/m3} + 0.278; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Plywood, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.1, !- Thermal Conductivity 1 {W/m-K} + 500, !- Moisture Content 2 {kg/m3} + 0.25; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Cellulose ins, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04, !- Thermal Conductivity 1 {W/m-K} + 950, !- Moisture Content 2 {kg/m3} + 0.583; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Glass Fibre ins, !- Material Name + 1, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04; !- Thermal Conductivity 1 {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION =========== + + Construction, + Exterior wall, !- Name + Spruce, !- Outside Layer + Concrete, !- Layer 2 + Cellulose ins, !- Layer 3 + Spruce; !- Layer 4 + + Construction, + Floor, !- Name + Glass Fibre ins, !- Outside Layer + Spruce; !- Layer 2 + + Construction, + Roof, !- Name + Plywood, !- Outside Layer + Cellulose ins, !- Layer 2 + Spruce; !- Layer 3 + + Construction, + Window, !- Name + Glass, !- Outside Layer + Air, !- Layer 2 + Glass; !- Layer 3 + + +!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + +!- =========== ALL OBJECTS IN CLASS: ZONE =========== + + Zone, + Test room, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.7, !- Ceiling Height {m} + 129.6; !- Volume {m3} + +!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED =========== + + BuildingSurface:Detailed, + South wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,0,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + East wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + Exterior wall, !- Construction Name + 3, !- Moisture Source Present In Layer Number + UserDefined, !- Source Type + 0.0001, !- Air Flow Rate {m/s} + 0.1, !- Stack Height {m} + 0.001, !- Component Air Permeance + 0.01; !- Mechanical Ventilation Overpressure + + BuildingSurface:Detailed, + North wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + West wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Floor, !- Name + FLOOR, !- Surface Type + Floor, !- Construction Name + Test room, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,0, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Roof, !- Name + ROOF, !- Surface Type + Roof, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,2.7, !- X,Y,Z ==> Vertex 2 {m} + 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== + + FenestrationSurface:Detailed, + South window_west, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 0.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 0.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 3.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 3.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + South window_east, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 4.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 4.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 7.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 7.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTY:CONVECTIONCOEFFICIENTS =========== + + SurfaceProperty:ConvectionCoefficients, + South wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + East wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + North wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + West wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Roof, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Floor, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTIES:VAPORCOEFFICIENTS =========== + + SurfaceProperties:VaporCoefficients, + South wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + East wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + North wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + West wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Floor, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Roof, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + + + + +!- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== + + OtherEquipment, + latent, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + Moisture on, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 352.6, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 1, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + + OtherEquipment, + Other, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 800, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 0, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + +!- =========== ALL OBJECTS IN CLASS: ZONEINFILTRATION:DESIGNFLOWRATE =========== + + ZoneInfiltration:DesignFlowRate, + Infiltrate, !- Name + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + AirChanges/Hour, !- Design Flow Rate Calculation Method + 0, !- Design Flow Rate {m3/s} + 0, !- Flow per Zone Floor Area {m3/s-m2} + 0, !- Flow per Exterior Surface Area {m3/s-m2} + 0.5, !- Air Changes per Hour {1/hr} + 1, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:THERMOSTAT =========== +! +! HVACTemplate:Thermostat, +! All Zones, !- Name +! Htg-SetP-Sch, !- Heating Setpoint Schedule Name +! , !- Constant Heating Setpoint {C} +! Clg-SetP-Sch, !- Cooling Setpoint Schedule Name +! ; !- Constant Cooling Setpoint {C} +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:ZONE:FANCOIL =========== +! +! HVACTemplate:Zone:FanCoil, +! Test room, !- Zone Name +! All Zones, !- Template Thermostat Name +! autosize, !- Supply Air Maximum Flow Rate {m3/s} +! , !- Zone Heating Sizing Factor +! , !- Zone Cooling Sizing Factor +! flow/zone, !- Outdoor Air Method +! 0, !- Outdoor Air Flow Rate per Person {m3/s} +! 0.00944, !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2} +! 0, !- Outdoor Air Flow Rate per Zone {m3/s} +! FanAvailSched, !- System Availability Schedule Name +! 0.7, !- Supply Fan Total Efficiency +! 75, !- Supply Fan Delta Pressure {Pa} +! 0.9, !- Supply Fan Motor Efficiency +! 1, !- Supply Fan Motor in Air Stream Fraction +! ChilledWater, !- Cooling Coil Type +! , !- Cooling Coil Availability Schedule Name +! 14, !- Cooling Coil Design Setpoint {C} +! HotWater, !- Heating Coil Type +! , !- Heating Coil Availability Schedule Name +! 50, !- Heating Coil Design Setpoint {C} +! , !- Dedicated Outdoor Air System Name +! , !- Zone Cooling Design Supply Air Temperature Input Method +! , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} +! , !- Zone Heating Design Supply Air Temperature Input Method +! , !- Zone Heating Design Supply Air Temperature Difference {deltaC} +! , !- Design Specification Outdoor Air Object Name +! , !- Design Specification Zone Air Distribution Object Name +! , !- Capacity Control Method +! , !- Low Speed Supply Air Flow Ratio +! , !- Medium Speed Supply Air Flow Ratio +! , !- Outdoor Air Schedule Name +! , !- Baseboard Heating Type +! , !- Baseboard Heating Availability Schedule Name +! ; !- Baseboard Heating Capacity {W} +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLEDWATERLOOP =========== +! +! HVACTemplate:Plant:ChilledWaterLoop, +! Chilled Water Loop, !- Name +! , !- Pump Schedule Name +! INTERMITTENT, !- Pump Control Type +! Default, !- Chiller Plant Operation Scheme Type +! , !- Chiller Plant Equipment Operation Schemes Name +! , !- Chilled Water Setpoint Schedule Name +! 7.22, !- Chilled Water Design Setpoint {C} +! ConstantPrimaryNoSecondary, !- Chilled Water Pump Configuration +! 179352, !- Primary Chilled Water Pump Rated Head {Pa} +! 179352, !- Secondary Chilled Water Pump Rated Head {Pa} +! Default, !- Condenser Plant Operation Scheme Type +! , !- Condenser Equipment Operation Schemes Name +! , !- Condenser Water Temperature Control Type +! , !- Condenser Water Setpoint Schedule Name +! 29.4, !- Condenser Water Design Setpoint {C} +! 179352, !- Condenser Water Pump Rated Head {Pa} +! OutdoorAirTemperatureReset, !- Chilled Water Setpoint Reset Type +! 12.2, !- Chilled Water Setpoint at Outdoor Dry-Bulb Low {C} +! 15.6, !- Chilled Water Reset Outdoor Dry-Bulb Low {C} +! 6.7, !- Chilled Water Setpoint at Outdoor Dry-Bulb High {C} +! 26.7; !- Chilled Water Reset Outdoor Dry-Bulb High {C} +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLER =========== +! +! HVACTemplate:Plant:Chiller, +! Main Chiller, !- Name +! ElectricReciprocatingChiller, !- Chiller Type +! autosize, !- Capacity {W} +! 3.2, !- Nominal COP {W/W} +! WaterCooled, !- Condenser Type +! 1, !- Priority +! ; !- Sizing Factor +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:TOWER =========== +! +! HVACTemplate:Plant:Tower, +! Main Tower, !- Name +! SingleSpeed, !- Tower Type +! autosize, !- High Speed Nominal Capacity {W} +! autosize, !- High Speed Fan Power {W} +! autosize, !- Low Speed Nominal Capacity {W} +! autosize, !- Low Speed Fan Power {W} +! autosize, !- Free Convection Capacity {W} +! 1, !- Priority +! ; !- Sizing Factor +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:HOTWATERLOOP =========== +! +! HVACTemplate:Plant:HotWaterLoop, +! Hot Water Loop, !- Name +! , !- Pump Schedule Name +! INTERMITTENT, !- Pump Control Type +! Default, !- Hot Water Plant Operation Scheme Type +! , !- Hot Water Plant Equipment Operation Schemes Name +! , !- Hot Water Setpoint Schedule Name +! 82, !- Hot Water Design Setpoint {C} +! ConstantFlow, !- Hot Water Pump Configuration +! 179352, !- Hot Water Pump Rated Head {Pa} +! OutdoorAirTemperatureReset, !- Hot Water Setpoint Reset Type +! 82.2, !- Hot Water Setpoint at Outdoor Dry-Bulb Low {C} +! -6.7, !- Hot Water Reset Outdoor Dry-Bulb Low {C} +! 65.6, !- Hot Water Setpoint at Outdoor Dry-Bulb High {C} +! 10; !- Hot Water Reset Outdoor Dry-Bulb High {C} +! +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:BOILER =========== +! +! HVACTemplate:Plant:Boiler, +! Main Boiler, !- Name +! HotWaterBoiler, !- Boiler Type +! autosize, !- Capacity {W} +! 0.8, !- Efficiency +! NaturalGas, !- Fuel Type +! 1, !- Priority +! ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: SIZING:PARAMETERS =========== + + Sizing:Parameters, + 1, !- Heating Sizing Factor + 1; !- Cooling Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY =========== + + Output:VariableDictionary,Regular; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE =========== + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + + Output:Variable,*,Zone Mean Air Temperature,hourly; + + Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; + + Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; + + Output:Variable,*,HAMT Surface Average Water Content Ratio,hourly; + + Output:Variable,*,Zone Air Relative Humidity,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 32,hourly; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:METER:METERFILEONLY =========== + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Plant,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,runperiod; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name +! +! ------------------------------------------------------------- +! New objects created from ExpandObjects +! ------------------------------------------------------------- +! + +ThermostatSetpoint:DualSetpoint, + All Zones Dual SP Control, !- Name + Htg-SetP-Sch, !- Heating Setpoint Temperature Schedule Name + Clg-SetP-Sch; !- Cooling Setpoint Temperature Schedule Name + +ScheduleTypeLimits, + HVACTemplate Any Number; !- Name + +Schedule:Compact, + HVACTemplate-Always 4, !- Name + HVACTemplate Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, !- Field 3 + 4; !- Field 4 + +ZoneControl:Thermostat, + Test room Thermostat, !- Name + Test room, !- Zone or ZoneList Name + HVACTemplate-Always 4, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control Object Type + All Zones Dual SP Control; !- Control Name + +DesignSpecification:OutdoorAir, + SZ DSOA Test room, !- Name + flow/zone, !- Outdoor Air Method + 0, !- Outdoor Air Flow per Person {m3/s} + 0.00944, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} + 0; !- Outdoor Air Flow per Zone {m3/s} + +Sizing:Zone, + Test room, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14, !- Zone Cooling Design Supply Air Temperature {C} + 11.11, !- Zone Cooling Design Supply Air Temperature Difference {delta C} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50, !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {delta C} + 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kg-H20/kg-air} + 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air} + SZ DSOA Test room, !- Design Specification Outdoor Air Object Name + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + 0, !- Cooling Minimum Air Flow Fraction {} + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + 0, !- Heating Maximum Air Flow Fraction {} + SZ DSZAD Test room; !- Design Specification Zone Air Distribution Object Name + +DesignSpecification:ZoneAirDistribution, + SZ DSZAD Test room, !- Name + 1, !- Zone Air Distribution Effectiveness in Cooling Mode {} + 1; !- Zone Air Distribution Effectiveness in Heating Mode {} + +ZoneHVAC:EquipmentConnections, + Test room, !- Zone Name + Test room Equipment, !- Zone Conditioning Equipment List Name + Test room Supply Inlet, !- Zone Air Inlet Node or NodeList Name + Test room Fan Coil Return, !- Zone Air Exhaust Node or NodeList Name + Test room Zone Air Node, !- Zone Air Node Name + Test room Return Outlet; !- Zone Return Air Node Name + +ZoneHVAC:EquipmentList, + Test room Equipment, !- Name + SequentialLoad, !- Load Distribution Scheme + ZoneHVAC:FourPipeFanCoil, !- Zone Equipment Object Type + Test room Fan Coil, !- Zone Equipment Name + 1, !- Zone Equipment Cooling Sequence + 1, !- Zone Equipment Heating or No-Load Sequence + , !- Zone Equipment Sequential Cooling Fraction Schedule Name + ; !- Zone Equipment Sequential Heating Fraction Schedule Name +! Capacity Control Method was blank, defaulted to ConstantFanVariableFlow + +ZoneHVAC:FourPipeFanCoil, + Test room Fan Coil, !- Name + FanAvailSched, !- Availability Schedule Name + ConstantFanVariableFlow, !- Capacity Control Method + autosize, !- Maximum Supply Air Flow Rate {m3/s} + 0.33, !- Low Speed Supply Air Flow Ratio + 0.66, !- Medium Speed Supply Air Flow Ratio + autosize, !- Maximum Outdoor Air Flow Rate {m3/s} + , !- Outdoor Air Schedule Name + Test room Fan Coil Return, !- Air Inlet Node Name + Test room Supply Inlet, !- Air Outlet Node Name + OutdoorAir:Mixer, !- Outdoor Air Mixer Object Type + Test room OA Mixing Box, !- Outdoor Air Mixer Name + Fan:SystemModel, !- Supply Air Fan Object Type + Test room Supply Fan, !- Fan Name + Coil:Cooling:Water, !- Cooling Coil Object Type + Test room Cooling Coil, !- Cooling Coil Name + autosize, !- Maximum Cold Water Flow Rate {m3/s} + 0, !- Minimum Cold Water Flow Rate {m3/s} + 0.001, !- Cooling Convergence Tolerance + Coil:Heating:Water, !- Heating Coil Object Type + Test room Heating Coil, !- Heating Coil Name + autosize, !- Maximum Hot Water Flow Rate {m3/s} + 0, !- Minimum Hot Water Flow Rate{m3/s} + 0.001; !- Heating Convergence Tolerance + +Fan:SystemModel, + Test room Supply Fan, !- Name + FanAvailSched, !- Availability Schedule Name + Test room Mixed Air Outlet, !- Air Inlet Node Name + Test room Supply Fan Outlet, !- Air Outlet Node Name + autosize, !- Design Maximum Air Flow Rate {m3/s} + Discrete, !- Speed Control Method + 0.0, !- Electric Power Minimum Flow Rate Fraction + 75, !- Design Pressure Rise {Pa} + 0.9, !- Motor Efficiency + 1, !- Motor in Airstream Fraction + autosize, !- Design Electric Power Consumption {W} + TotalEfficiencyAndPressure, !- Design Power Sizing Method + , !- Electric Power Per Unit Flow Rate {W/(m3/s)} + , !- Electric Power Per Unit Flow Rate Per Unit Pressure {W/((m3/s)-Pa)} + 0.7, !- Fan Total Efficiency + , !- Electric Power Function of Flow Fraction Curve Name + , !- Night Ventilation Mode Pressure Rise {Pa} + , !- Night Ventilation Mode Flow Fraction + , !- Motor Loss Zone Name + , !- Motor Loss Radiative Fraction + General, !- End-Use Subcategory + 1, !- Number of Speeds + 1.0, !- Speed 1 Flow Fraction + 1.0; !- Speed 1 Electric Power Fraction + +OutdoorAir:Mixer, + Test room OA Mixing Box, !- Name + Test room Mixed Air Outlet, !- Mixed Air Node Name + Test room Outside Air Inlet, !- Outside Air Stream Node Name + Test room Relief Air Outlet, !- Relief Air Stream Node Name + Test room Fan Coil Return; !- Return Air Stream Node Name + +OutdoorAir:NodeList, + Test room Outside Air Inlet; !- Node or NodeList Name 1 + +Coil:Cooling:Water, + Test room Cooling Coil, !- Name + , !- 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 {kg-H2O/kg-air} + autosize, !- Design Outlet Air Humidity Ratio {kg-H2O/kg-air} + Test room Cooling Coil ChW Inlet, !- Water Inlet Node Name + Test room Cooling Coil ChW Outlet, !- Water Outlet Node Name + Test room Supply Fan Outlet, !- Air Inlet Node Name + Test room Cooling Coil Outlet, !- Air Outlet Node Name + DetailedAnalysis, !- Type of Analysis + CrossFlow; !- Heat Exchanger Configuration + +Branch, + Test room Cooling Coil ChW Branch, !- Name + , !- Pressure Drop Curve Name + Coil:Cooling:Water, !- Cooling Coil Object Type + Test room Cooling Coil, !- Component Name + Test room Cooling Coil ChW Inlet, !- Component Inlet Node Name + Test room Cooling Coil ChW Outlet; !- Component Outlet Node Name + +Coil:Heating:Water, + Test room Heating Coil, !- Name + , !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + Test room Heating Coil HW Inlet, !- Water Inlet Node Name + Test room Heating Coil HW Outlet, !- Water Outlet Node Name + Test room Cooling Coil Outlet, !- Air Inlet Node Name + Test room Supply Inlet, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity + 82.2, !- Rated Inlet Water Temperature + 16.6, !- Rated Inlet Air Temperature + 71.1, !- Rated Outlet Water Temperature + 32.2, !- Rated Outlet Air Temperature + 0.5; !- Rated Ratio for Air and Water Convection + +Branch, + Test room Heating Coil HW Branch, !- Name + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component Object Type + Test room Heating Coil, !- Component Name + Test room Heating Coil HW Inlet, !- Component Inlet Node Name + Test room Heating Coil HW Outlet; !- Component Outlet Node Name + +Boiler:HotWater, + Main Boiler, !- Name + NaturalGas, !- Fuel Type + autosize, !- Nominal Capacity {W} + 0.8, !- Nominal Thermal Efficiency + LeavingBoiler, !- Efficiency Curve Temperature Evaluation Variable + Main Boiler Efficiency Curve, !- Normalized Boiler Efficiency Curve Name + autosize, !- Max Design Boiler Water Flow Rate {m3/s} + 0.0, !- Minimum Part Load Ratio + 1.1, !- Maximum Part Load Ratio + 1.0, !- Optimum Part Load Ratio + Main Boiler HW Inlet, !- Water Inlet Node Name + Main Boiler HW Outlet, !- Water Outlet Node Name + 100.0, !- Temp Upper Limit Water Outlet {C} + ConstantFlow, !- Boiler Flow Mode + 0, !- Parasitic Electric Load {W} + 1.0; !- Sizing Factor + +Curve:Quadratic, + Main Boiler Efficiency Curve, !- Name + 0.97, !- Coefficient1 Constant + 0.0633, !- Coefficient2 x + -0.0333, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + +Branch, + Main Boiler HW Branch, !- Name + , !- Pressure Drop Curve Name + Boiler:HotWater, !- Component Object Type + Main Boiler, !- Component Name + Main Boiler HW Inlet, !- Component Inlet Node Name + Main Boiler HW Outlet; !- Component Outlet Node Name + +Chiller:Electric:EIR, + Main Chiller, !- Name + autosize, !- Reference Capacity {W} + 3.2, !- Reference COP {W/W} + 6.67, !- Reference Leaving Chilled Water Temperature {C} + 29.4, !- Reference Entering Condenser Fluid Temperature {C} + autosize, !- Reference Evaporator Volumetric Water Flow Rate {m3/s} + autosize, !- Reference Condenser Volumetric Water Flow Rate {m3/s} + Main Chiller RecipCapFT, !- Cooling Capacity Function of Temperature Curve Name + Main Chiller RecipEIRFT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name + Main Chiller RecipEIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name + 0.0, !- Minimum Part Load Ratio + 1.0, !- Maximum Part Load Ratio + 1.0, !- Optimum Part Load Ratio + 0.25, !- Minimum Unloading Ratio + Main Chiller ChW Inlet, !- Chilled Water Inlet Node Name + Main Chiller ChW Outlet, !- Chilled Water Outlet Node Name + Main Chiller Cnd Inlet, !- Condenser Inlet Node Name + Main Chiller Cnd Outlet, !- Condenser Outlet Node Name + WaterCooled, !- Condenser Type + , !- Condenser Fan Power Ratio {W/W} + 1, !- Compressor Motor Efficiency + 5.0, !- Leaving Chilled Water Lower Temperature Limit {C} + ConstantFlow, !- Chiller Flow Mode + 0, !- Design Heat Recovery Water Flow Rate {m3/s} + , !- Heat Recovery Inlet Node Name + , !- Heat Recovery Outlet Node Name + 1.0; !- Sizing Factor + +Branch, + Main Chiller ChW Branch, !- Name + , !- Pressure Drop Curve Name + Chiller:Electric:EIR, !- Component Object Type + Main Chiller, !- Component Name + Main Chiller ChW Inlet, !- Component Inlet Node Name + Main Chiller ChW Outlet; !- Component Outlet Node Name + +Branch, + Main Chiller CndW Branch, !- Name + , !- Pressure Drop Curve Name + Chiller:Electric:EIR, !- Component Object Type + Main Chiller, !- Component Name + Main Chiller Cnd Inlet, !- Component Inlet Node Name + Main Chiller Cnd Outlet; !- Component Outlet Node Name + +Curve:Biquadratic, +! Cooling Capacity Function of Temperature Curve for open or hermetic water-cooled reciprocating chillers +! Same as DOE-2.1E HERM-REC-CAP-FT (CCAPT4) and OPEN-REC-CAP-FT (CCAPT2) + Main Chiller RecipCapFT, !- Name + 0.507883, !- Coefficient1 Constant + 0.145228, !- Coefficient2 x + -0.00625644, !- Coefficient3 x**2 + -0.0011178, !- Coefficient4 y + -0.0001296, !- Coefficient5 y**2 + -0.00028188, !- Coefficient6 x*y + 5, !- Minimum Value of x + 10, !- Maximum Value of x + 24, !- Minimum Value of y + 35; !- Maximum Value of y + +Curve:Biquadratic, +! Energy Input to Cooling Output Ratio Function of Temperature Curve for open or hermetic water-cooled reciprocating chillers +! Same as DOE-2.1E HERM-REC-EIR-FT (EIRT4) and OPEN-REC-EIR-FT (EIRT2) + Main Chiller RecipEIRFT, !- Name + 1.03076, !- Coefficient1 Constant + -0.103536, !- Coefficient2 x + 0.00710208, !- Coefficient3 x**2 + 0.0093186, !- Coefficient4 y + 0.00031752, !- Coefficient5 y**2 + -0.00104328, !- Coefficient6 x*y + 5, !- Minimum Value of x + 10, !- Maximum Value of x + 24, !- Minimum Value of y + 35; !- Maximum Value of y + +Curve:Quadratic, +! Energy Input to Cooling Output Ratio Function of Part Load Ratio Curve for open or hermetic water-cooled reciprocating chillers +! Same as DOE-2.1E HERM-REC-EIR-FPLR (EIRPLR4) and OPEN-REC-EIR-FPLR (EIRPLR2) + Main Chiller RecipEIRFPLR, !- Name + 0.088065, !- Coefficient1 Constant + 1.137742, !- Coefficient2 x + -0.225806, !- Coefficient3 x**2 + 0, !- Minimum Value of x + 1; !- Maximum Value of x + +CoolingTower:SingleSpeed, + Main Tower, !- Name + Main Tower CndW Inlet, !- Water Inlet Node Name + Main Tower CndW Outlet, !- 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 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} + autocalculate, !- Free Convection Capacity {W} + , !- Free Convection Nominal Capacity Sizing Factor + , !- Design Inlet Air Dry-Bulb Temperature {C} + , !- Design Inlet Air Wet-Bulb Temperature {C} + , !- Design Approach Temperature {deltaT} + , !- Design Range Temperature {deltaT} + , !- 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.008, !- Drift Loss Percent {percent} + ConcentrationRatio, !- Blowdown Calculation Mode + 3, !- Blowdown Concentration Ratio + , !- Blowdown Makeup Water Usage Schedule Name + , !- Supply Water Storage Tank Name + Main Tower Cooling Tower Outdoor Air Inlet 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.0; !- Sizing Factor + +OutdoorAir:Node, + Main Tower Cooling Tower Outdoor Air Inlet Node, !- Name + -1; !- Height Above Ground + +Branch, + Main Tower CndW Branch, !- Name + , !- Pressure Drop Curve Name + CoolingTower:SingleSpeed, !- Component Object Type + Main Tower, !- Component Name + Main Tower CndW Inlet, !- Component Inlet Node Name + Main Tower CndW Outlet; !- Component Outlet Node Name + +Sizing:Plant, + Hot Water Loop Hot Water Loop, !- Plant or Condenser Loop Name + Heating, !- Loop Type + 82, !- Design loop exit temperature {C} + 11.0; !- Design loop delta T {deltaC} + +PlantLoop, + Hot Water Loop Hot Water Loop, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + Hot Water Loop Operation, !- PlantEquipmentOperationSchemes Name + Hot Water Loop HW Supply Outlet, !- Loop Temperature Setpoint Node Name + 100, !- Maximum Loop Temperature {C} + 10, !- Minimum Loop Temperature {C} + autosize, !- Maximum Loop Volumetric Flow Rate {m3/s} + 0, !- Minimum Loop Volumetric Flow Rate {m3/s} + autosize, !- volume of the plant loop {m3} + Hot Water Loop HW Supply Inlet, !- Plant Side Inlet Node Name + Hot Water Loop HW Supply Outlet, !- Plant Side Outlet Node Name + Hot Water Loop HW Supply Side Branches, !- Plant Side Branch List Name + Hot Water Loop HW Supply Side Connectors, !- Plant Side Connector List Name + Hot Water Loop HW Demand Inlet, !- Demand Side Inlet Node Name + Hot Water Loop HW Demand Outlet, !- Demand Side Outlet Node Name + Hot Water Loop HW Demand Side Branches, !- Demand Side Branch List Name + Hot Water Loop HW Demand Side Connectors, !- Demand Side Connector List Name + SequentialLoad, !- Load Distribution Scheme + , !- AvailabilityManagerAssignmentList + SingleSetpoint; !- Plant Loop Demand Calculation Scheme + +PlantEquipmentOperationSchemes, + Hot Water Loop Operation, !- Name + PlantEquipmentOperation:HeatingLoad, !- Control Scheme Object Type + Hot Water Loop Operation All Hours, !- Control Scheme Name + HVACTemplate-Always 1; !- Control Scheme Schedule Name + +Schedule:Compact, + HVACTemplate-Always 1, !- Name + HVACTemplate Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, !- Field 3 + 1; !- Field 4 + +PlantEquipmentOperation:HeatingLoad, + Hot Water Loop Operation All Hours, !- Name + 0, !- Load Range Lower Limit 1 {W} + 1000000000000000, !- Load Range Upper Limit 1 {W} + Hot Water Loop All Equipment; !- Priority Control 1 Equipment List Name + +PlantEquipmentList, + Hot Water Loop All Equipment, !- Name + Boiler:HotWater, !- Equipment Object Type + Main Boiler; !- Equipment Name + +NodeList, + Hot Water Loop HW Supply Setpoint Nodes, !- Name + Main Boiler HW Outlet, !- Node Name + Hot Water Loop HW Supply Outlet; !- Node Name + +SetpointManager:OutdoorAirReset, + Hot Water Loop HW Temp Manager, !- Name + Temperature, !- Control Variable + 82.2, !- Set point at outside low {C} + -6.7, !- Outside low {C} + 65.6, !- Set point at outside high {C} + 10, !- Outside high {C} + Hot Water Loop HW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name + +BranchList, + Hot Water Loop HW Supply Side Branches, !- Name + Hot Water Loop HW Supply Inlet Branch, !- Name + Main Boiler HW Branch, !- Branch Name + Hot Water Loop HW Supply Bypass Branch, !- Name + Hot Water Loop HW Supply Outlet Branch; !- Name + +ConnectorList, + Hot Water Loop HW Supply Side Connectors, !- Name + Connector:Splitter, !- Connector Object Type + Hot Water Loop HW Supply Splitter, !- Connector Name + Connector:Mixer, !- Connector Object Type + Hot Water Loop HW Supply Mixer; !- Connector Name + +Connector:Splitter, + Hot Water Loop HW Supply Splitter, !- Name + Hot Water Loop HW Supply Inlet Branch, !- Inlet Branch Name + Main Boiler HW Branch, !- Outlet Branch Name + Hot Water Loop HW Supply Bypass Branch; !- Outlet Branch Name + +Connector:Mixer, + Hot Water Loop HW Supply Mixer, !- Name + Hot Water Loop HW Supply Outlet Branch, !- Outlet Branch Name + Main Boiler HW Branch, !- Outlet Branch Name + Hot Water Loop HW Supply Bypass Branch; !- Inlet Branch Name + +Branch, + Hot Water Loop HW Supply Bypass Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Hot Water Loop HW Supply Side Bypass Pipe, !- Component Name + Hot Water Loop HW Supply Bypass Inlet, !- Component Inlet Node Name + Hot Water Loop HW Supply Bypass Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Hot Water Loop HW Supply Side Bypass Pipe, !- Name + Hot Water Loop HW Supply Bypass Inlet, !- Inlet Node Name + Hot Water Loop HW Supply Bypass Outlet; !- Outlet Node Name + +Pump:ConstantSpeed, + Hot Water Loop HW Supply Pump, !- Name + Hot Water Loop HW Supply Inlet, !- Inlet Node Name + Hot Water Loop HW Pump Outlet, !- Outlet Node Name + autosize, !- Rated Volumetric Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + autosize, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0, !- Fraction of Motor Inefficiencies to Fluid Stream + INTERMITTENT, !- Pump Control Type + ; !- Pump Flow Rate Schedule Name + +Branch, + Hot Water Loop HW Supply Inlet Branch, !- Name + , !- Pressure Drop Curve Name + Pump:ConstantSpeed, !- Component Object Type + Hot Water Loop HW Supply Pump, !- Component Name + Hot Water Loop HW Supply Inlet, !- Component Inlet Node Name + Hot Water Loop HW Pump Outlet; !- Component Outlet Node Name + +Branch, + Hot Water Loop HW Supply Outlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Hot Water Loop HW Supply Outlet Pipe, !- Component Name + Hot Water Loop HW Supply Outlet Pipe Inlet, !- Component Inlet Node Name + Hot Water Loop HW Supply Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Hot Water Loop HW Supply Outlet Pipe, !- Name + Hot Water Loop HW Supply Outlet Pipe Inlet, !- Inlet Node Name + Hot Water Loop HW Supply Outlet; !- Outlet Node Name + +BranchList, + Hot Water Loop HW Demand Side Branches, !- Name + Hot Water Loop HW Demand Inlet Branch, !- Name + Test room Heating Coil HW Branch, !- Name + Hot Water Loop HW Demand Bypass Branch, !- Name + Hot Water Loop HW Demand Outlet Branch; !- Name + +ConnectorList, + Hot Water Loop HW Demand Side Connectors, !- Name + Connector:Splitter, !- Connector Object Type + Hot Water Loop HW Demand Splitter, !- Connector Name + Connector:Mixer, !- Connector Object Type + Hot Water Loop HW Demand Mixer; !- Connector Name + +Connector:Splitter, + Hot Water Loop HW Demand Splitter, !- Name + Hot Water Loop HW Demand Inlet Branch, !- Inlet Branch Name + Hot Water Loop HW Demand Bypass Branch, !- Outlet Branch Name + Test room Heating Coil HW Branch; !- Name + +Connector:Mixer, + Hot Water Loop HW Demand Mixer, !- Name + Hot Water Loop HW Demand Outlet Branch, !- Outlet Branch Name + Hot Water Loop HW Demand Bypass Branch, !- Inlet Branch Name + Test room Heating Coil HW Branch; !- Name + +Branch, + Hot Water Loop HW Demand Inlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Hot Water Loop HW Demand Inlet Pipe, !- Component Name + Hot Water Loop HW Demand Inlet, !- Component Inlet Node Name + Hot Water Loop HW Demand Inlet Pipe Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Hot Water Loop HW Demand Inlet Pipe, !- Name + Hot Water Loop HW Demand Inlet, !- Inlet Node Name + Hot Water Loop HW Demand Inlet Pipe Outlet; !- Outlet Node Name + +Branch, + Hot Water Loop HW Demand Bypass Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Hot Water Loop HW Demand Side Bypass Pipe, !- Component Name + Hot Water Loop HW Demand Bypass Inlet, !- Component Inlet Node Name + Hot Water Loop HW Demand Bypass Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Hot Water Loop HW Demand Side Bypass Pipe, !- Name + Hot Water Loop HW Demand Bypass Inlet, !- Inlet Node Name + Hot Water Loop HW Demand Bypass Outlet; !- Outlet Node Name + +Branch, + Hot Water Loop HW Demand Outlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Hot Water Loop HW Demand Outlet Pipe, !- Component Name + Hot Water Loop HW Demand Outlet Pipe Inlet, !- Component Inlet Node Name + Hot Water Loop HW Demand Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Hot Water Loop HW Demand Outlet Pipe, !- Name + Hot Water Loop HW Demand Outlet Pipe Inlet, !- Inlet Node Name + Hot Water Loop HW Demand Outlet; !- Outlet Node Name + +Sizing:Plant, + Chilled Water Loop Chilled Water Loop, !- Plant or Condenser Loop Name + Cooling, !- Loop Type + 7.22, !- Design loop exit temperature {C} + 6.67; !- Design loop delta T {deltaC} + +PlantLoop, + Chilled Water Loop Chilled Water Loop, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + Chilled Water Loop Chiller Operation, !- PlantEquipmentOperationSchemes Name + Chilled Water Loop ChW Supply Outlet, !- Loop Temperature Setpoint Node Name + 98, !- Maximum Loop Temperature {C} + 1, !- Minimum Loop Temperature {C} + autosize, !- Maximum Loop Volumetric Flow Rate {m3/s} + 0, !- Minimum Loop Volumetric Flow Rate {m3/s} + autosize, !- volume of the plant loop {m3} + Chilled Water Loop ChW Supply Inlet, !- Plant Side Inlet Node Name + Chilled Water Loop ChW Supply Outlet, !- Plant Side Outlet Node Name + Chilled Water Loop ChW Supply Side Branches, !- Plant Side Branch List Name + Chilled Water Loop ChW Supply Side Connectors, !- Plant Side Connector List Name + Chilled Water Loop ChW Demand Inlet, !- Demand Side Inlet Node Name + Chilled Water Loop ChW Demand Outlet, !- Demand Side Outlet Node Name + Chilled Water Loop ChW Demand Side Branches, !- Demand Side Branch List Name + Chilled Water Loop ChW Demand Side Connectors, !- Demand Side Connector List Name + SequentialLoad, !- Load Distribution Scheme + , !- AvailabilityManagerAssignmentList + SingleSetpoint, !- Plant Loop Demand Calculation Scheme + None; !- Common Pipe Simulation + +PlantEquipmentOperationSchemes, + Chilled Water Loop Chiller Operation, !- Name + PlantEquipmentOperation:CoolingLoad, !- Control Scheme Object Type + Chilled Water Loop Chiller Operation All Hours, !- Control Scheme Name + HVACTemplate-Always 1; !- Control Scheme Schedule Name + +PlantEquipmentOperation:CoolingLoad, + Chilled Water Loop Chiller Operation All Hours, !- Name + 0, !- Load Range Lower Limit 1 {W} + 1000000000000000, !- Load Range Upper Limit 1 {W} + Chilled Water Loop All Chillers; !- Priority Control 1 Equipment List Name + +PlantEquipmentList, + Chilled Water Loop All Chillers, !- Name + Chiller:Electric:EIR, !- Equipment Object Type + Main Chiller; !- Equipment Name + +NodeList, + Chilled Water Loop ChW Supply Setpoint Nodes, !- Name + Main Chiller ChW Outlet, !- Node Name + Chilled Water Loop ChW Supply Outlet; !- Node Name + +SetpointManager:OutdoorAirReset, + Chilled Water Loop ChW Temp Manager, !- Name + Temperature, !- Control Variable + 12.2, !- Set point at outside low {C} + 15.6, !- Outside low {C} + 6.7, !- Set point at outside high {C} + 26.7, !- Outside high {C} + Chilled Water Loop ChW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name + +BranchList, + Chilled Water Loop ChW Supply Side Branches, !- Name + Chilled Water Loop ChW Supply Inlet Branch, !- Name + Main Chiller ChW Branch, !- Name + Chilled Water Loop ChW Supply Bypass Branch, !- Name + Chilled Water Loop ChW Supply Outlet Branch; !- Name + +ConnectorList, + Chilled Water Loop ChW Supply Side Connectors, !- Name + Connector:Splitter, !- Connector Object Type + Chilled Water Loop ChW Supply Splitter, !- Connector Name + Connector:Mixer, !- Connector Object Type + Chilled Water Loop ChW Supply Mixer; !- Connector Name + +Connector:Splitter, + Chilled Water Loop ChW Supply Splitter, !- Name + Chilled Water Loop ChW Supply Inlet Branch, !- Inlet Branch Name + Chilled Water Loop ChW Supply Bypass Branch, !- Outlet Branch Name + Main Chiller ChW Branch; !- Outlet Branch Name + +Connector:Mixer, + Chilled Water Loop ChW Supply Mixer, !- Name + Chilled Water Loop ChW Supply Outlet Branch, !- Outlet Branch Name + Chilled Water Loop ChW Supply Bypass Branch, !- Inlet Branch Name + Main Chiller ChW Branch; !- Inlet Branch Name + +Branch, + Chilled Water Loop ChW Supply Bypass Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop ChW Supply Side Bypass Pipe, !- Component Name + Chilled Water Loop ChW Supply Bypass Inlet, !- Component Inlet Node Name + Chilled Water Loop ChW Supply Bypass Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop ChW Supply Side Bypass Pipe, !- Name + Chilled Water Loop ChW Supply Bypass Inlet, !- Inlet Node Name + Chilled Water Loop ChW Supply Bypass Outlet; !- Outlet Node Name + +Pump:ConstantSpeed, + Chilled Water Loop ChW Supply Pump, !- Name + Chilled Water Loop ChW Supply Inlet, !- Inlet Node Name + Chilled Water Loop ChW Pump Outlet, !- Outlet Node Name + autosize, !- Rated Volumetric Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + autosize, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0, !- Fraction of Motor Inefficiencies to Fluid Stream + INTERMITTENT, !- Pump Control Type + ; !- Pump Flow Rate Schedule Name + +Branch, + Chilled Water Loop ChW Supply Inlet Branch, !- Name + , !- Pressure Drop Curve Name + Pump:ConstantSpeed, !- Component Object Type + Chilled Water Loop ChW Supply Pump, !- Component Name + Chilled Water Loop ChW Supply Inlet, !- Component Inlet Node Name + Chilled Water Loop ChW Pump Outlet; !- Component Outlet Node Name + +Branch, + Chilled Water Loop ChW Supply Outlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop ChW Supply Outlet Pipe, !- Component Name + Chilled Water Loop ChW Supply Outlet Pipe Inlet, !- Component Inlet Node Name + Chilled Water Loop ChW Supply Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop ChW Supply Outlet Pipe, !- Name + Chilled Water Loop ChW Supply Outlet Pipe Inlet, !- Inlet Node Name + Chilled Water Loop ChW Supply Outlet; !- Outlet Node Name + +BranchList, + Chilled Water Loop ChW Demand Side Branches, !- Name + Chilled Water Loop ChW Demand Inlet Branch, !- Name + Test room Cooling Coil ChW Branch, !- Name + Chilled Water Loop ChW Demand Bypass Branch, !- Name + Chilled Water Loop ChW Demand Outlet Branch; !- Name + +ConnectorList, + Chilled Water Loop ChW Demand Side Connectors, !- Name + Connector:Splitter, !- Connector Object Type + Chilled Water Loop ChW Demand Splitter, !- Connector Name + Connector:Mixer, !- Connector Object Type + Chilled Water Loop ChW Demand Mixer; !- Connector Name + +Connector:Splitter, + Chilled Water Loop ChW Demand Splitter, !- Name + Chilled Water Loop ChW Demand Inlet Branch, !- Inlet Branch Name + Chilled Water Loop ChW Demand Bypass Branch, !- Outlet Branch Name + Test room Cooling Coil ChW Branch; !- Outlet Branch Name + +Connector:Mixer, + Chilled Water Loop ChW Demand Mixer, !- Name + Chilled Water Loop ChW Demand Outlet Branch, !- Outlet Branch Name + Chilled Water Loop ChW Demand Bypass Branch, !- Inlet Branch Name + Test room Cooling Coil ChW Branch; !- Inlet Branch Name + +Branch, + Chilled Water Loop ChW Demand Inlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop ChW Demand Inlet Pipe, !- Component Name + Chilled Water Loop ChW Demand Inlet, !- Component Inlet Node Name + Chilled Water Loop ChW Demand Inlet Pipe Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop ChW Demand Inlet Pipe, !- Name + Chilled Water Loop ChW Demand Inlet, !- Inlet Node Name + Chilled Water Loop ChW Demand Inlet Pipe Outlet; !- Outlet Node Name + +Branch, + Chilled Water Loop ChW Demand Bypass Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop ChW Demand Side Bypass Pipe, !- Component Name + Chilled Water Loop ChW Demand Bypass Inlet, !- Component Inlet Node Name + Chilled Water Loop ChW Demand Bypass Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop ChW Demand Side Bypass Pipe, !- Name + Chilled Water Loop ChW Demand Bypass Inlet, !- Inlet Node Name + Chilled Water Loop ChW Demand Bypass Outlet; !- Outlet Node Name + +Branch, + Chilled Water Loop ChW Demand Outlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop ChW Demand Outlet Pipe, !- Component Name + Chilled Water Loop ChW Demand Outlet Pipe Inlet, !- Component Inlet Node Name + Chilled Water Loop ChW Demand Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop ChW Demand Outlet Pipe, !- Name + Chilled Water Loop ChW Demand Outlet Pipe Inlet, !- Inlet Node Name + Chilled Water Loop ChW Demand Outlet; !- Outlet Node Name + +Sizing:Plant, + Chilled Water Loop Condenser Water Loop, !- Plant or Condenser Loop Name + Condenser, !- Loop Type + 29.4, !- Design loop exit temperature {C} + 5.6; !- Design loop delta T {deltaC} + +CondenserLoop, + Chilled Water Loop Condenser Water Loop, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + Chilled Water Loop Condenser Operation, !- Condenser Operation Scheme List Name + Chilled Water Loop CndW Supply Outlet, !- Condenser Loop Temperature Setpoint Node Name or Reference + 80, !- Maximum Loop Temperature {C} + 5, !- Minimum Loop Temperature {C} + autosize, !- Maximum Loop Volumetric Flow Rate {m3/s} + 0, !- Minimum Loop Volumetric Flow Rate {m3/s} + autosize, !- volume of the plant loop {m3} + Chilled Water Loop CndW Supply Inlet, !- Condenser Side Inlet Node Name + Chilled Water Loop CndW Supply Outlet, !- Condenser Side Outlet Node Name + Chilled Water Loop CndW Supply Side Branches, !- Condenser Side Branch List Name + Chilled Water Loop CndW Supply Side Connectors, !- Condenser Side Connector List Name + Chilled Water Loop CndW Demand Inlet, !- Demand Side Inlet Node Name + Chilled Water Loop CndW Demand Outlet, !- Demand Side Outlet Node Name + Chilled Water Loop CndW Demand Side Branches, !- Condenser Demand Side Branch List Name + Chilled Water Loop CndW Demand Side Connectors, !- Condenser Demand Side Connector List Name + SequentialLoad; !- Load Distribution Scheme + +CondenserEquipmentOperationSchemes, + Chilled Water Loop Condenser Operation, !- Name + PlantEquipmentOperation:CoolingLoad, !- Control Scheme Object Type + Chilled Water Loop Condenser Operation All Hours, !- Control Scheme Name + HVACTemplate-Always 1; !- Control Scheme Schedule Name + +PlantEquipmentOperation:CoolingLoad, + Chilled Water Loop Condenser Operation All Hours, !- Name + 0, !- Load Range Lower Limit 1 {W} + 1000000000000000, !- Load Range Upper Limit 1 {W} + Chilled Water Loop All Condensers; !- Priority Control 1 Equipment List Name + +CondenserEquipmentList, + Chilled Water Loop All Condensers, !- Name + CoolingTower:SingleSpeed, !- Equipment Object Type + Main Tower; !- Equipment Name + +NodeList, + Chilled Water Loop CndW Supply Setpoint Nodes, !- Name + Main Tower CndW Outlet, !- Node Name + Chilled Water Loop CndW Supply Outlet; !- Node Name + +Schedule:Compact, + HVACTemplate-Always 29.4, !- Name + HVACTemplate Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00, !- Field 3 + 29.4; !- Field 4 + +SetpointManager:Scheduled, + Chilled Water Loop CndW Temp Manager, !- Name + Temperature, !- Control Variable + HVACTemplate-Always 29.4, !- Schedule Name + Chilled Water Loop CndW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name + +BranchList, + Chilled Water Loop CndW Supply Side Branches, !- Name + Chilled Water Loop CndW Supply Inlet Branch, !- Name + Main Tower CndW Branch, !- Name + Chilled Water Loop CndW Supply Bypass Branch, !- Name + Chilled Water Loop CndW Supply Outlet Branch; !- Name + +ConnectorList, + Chilled Water Loop CndW Supply Side Connectors, !- Name + Connector:Splitter, !- Connector Object Type + Chilled Water Loop CndW Supply Splitter, !- Connector Name + Connector:Mixer, !- Connector Object Type + Chilled Water Loop CndW Supply Mixer; !- Connector Name + +Connector:Splitter, + Chilled Water Loop CndW Supply Splitter, !- Name + Chilled Water Loop CndW Supply Inlet Branch, !- Inlet Branch Name + Chilled Water Loop CndW Supply Bypass Branch, !- Outlet Branch Name + Main Tower CndW Branch; !- Outlet Branch Name + +Connector:Mixer, + Chilled Water Loop CndW Supply Mixer, !- Name + Chilled Water Loop CndW Supply Outlet Branch, !- Outlet Branch Name + Chilled Water Loop CndW Supply Bypass Branch, !- Inlet Branch Name + Main Tower CndW Branch; !- Inlet Branch Name +! Pump part load coefficients are linear to represent condenser pumps dedicated to each chiller. + +Pump:VariableSpeed, + Chilled Water Loop CndW Supply Pump, !- Name + Chilled Water Loop CndW Supply Inlet, !- Inlet Node Name + Chilled Water Loop CndW Pump Outlet, !- Outlet Node Name + autosize, !- Rated Volumetric Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + autosize, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 0, !- Coefficient 2 of the Part Load Performance Curve + 1, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0, !- Min Flow Rate while operating in variable flow capacity {m3/s} + INTERMITTENT, !- Pump Control Type + ; !- Pump Flow Rate Schedule Name + +Branch, + Chilled Water Loop CndW Supply Inlet Branch, !- Name + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component Object Type + Chilled Water Loop CndW Supply Pump, !- Component Name + Chilled Water Loop CndW Supply Inlet, !- Component Inlet Node Name + Chilled Water Loop CndW Pump Outlet; !- Component Outlet Node Name + +Branch, + Chilled Water Loop CndW Supply Outlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop CndW Supply Outlet Pipe, !- Component Name + Chilled Water Loop CndW Supply Outlet Pipe Inlet, !- Component Inlet Node Name + Chilled Water Loop CndW Supply Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop CndW Supply Outlet Pipe, !- Name + Chilled Water Loop CndW Supply Outlet Pipe Inlet, !- Inlet Node Name + Chilled Water Loop CndW Supply Outlet; !- Outlet Node Name + +Branch, + Chilled Water Loop CndW Supply Bypass Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop CndW Supply Side Bypass Pipe, !- Component Name + Chilled Water Loop CndW Supply Bypass Inlet, !- Component Inlet Node Name + Chilled Water Loop CndW Supply Bypass Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop CndW Supply Side Bypass Pipe, !- Name + Chilled Water Loop CndW Supply Bypass Inlet, !- Inlet Node Name + Chilled Water Loop CndW Supply Bypass Outlet; !- Outlet Node Name + +BranchList, + Chilled Water Loop CndW Demand Side Branches, !- Name + Chilled Water Loop CndW Demand Inlet Branch, !- Name + Main Chiller CndW Branch, !- Name + Chilled Water Loop CndW Demand Bypass Branch, !- Name + Chilled Water Loop CndW Demand Outlet Branch; !- Name + +ConnectorList, + Chilled Water Loop CndW Demand Side Connectors, !- Name + Connector:Splitter, !- Connector Object Type + Chilled Water Loop CndW Demand Splitter, !- Connector Name + Connector:Mixer, !- Connector Object Type + Chilled Water Loop CndW Demand Mixer; !- Connector Name + +Connector:Splitter, + Chilled Water Loop CndW Demand Splitter, !- Name + Chilled Water Loop CndW Demand Inlet Branch, !- Inlet Branch Name + Chilled Water Loop CndW Demand Bypass Branch, !- Outlet Branch Name + Main Chiller CndW Branch; !- Outlet Branch Name + +Connector:Mixer, + Chilled Water Loop CndW Demand Mixer, !- Name + Chilled Water Loop CndW Demand Outlet Branch, !- Outlet Branch Name + Chilled Water Loop CndW Demand Bypass Branch, !- Inlet Branch Name + Main Chiller CndW Branch; !- Inlet Branch Name + +Branch, + Chilled Water Loop CndW Demand Inlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop CndW Demand Inlet Pipe, !- Component Name + Chilled Water Loop CndW Demand Inlet, !- Component Inlet Node Name + Chilled Water Loop CndW Demand Inlet Pipe Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop CndW Demand Inlet Pipe, !- Name + Chilled Water Loop CndW Demand Inlet, !- Inlet Node Name + Chilled Water Loop CndW Demand Inlet Pipe Outlet; !- Outlet Node Name + +Branch, + Chilled Water Loop CndW Demand Bypass Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop CndW Demand Side Bypass Pipe, !- Component Name + Chilled Water Loop CndW Demand Bypass Inlet, !- Component Inlet Node Name + Chilled Water Loop CndW Demand Bypass Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop CndW Demand Side Bypass Pipe, !- Name + Chilled Water Loop CndW Demand Bypass Inlet, !- Inlet Node Name + Chilled Water Loop CndW Demand Bypass Outlet; !- Outlet Node Name + +Branch, + Chilled Water Loop CndW Demand Outlet Branch, !- Name + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component Object Type + Chilled Water Loop CndW Demand Outlet Pipe, !- Component Name + Chilled Water Loop CndW Demand Outlet Pipe Inlet, !- Component Inlet Node Name + Chilled Water Loop CndW Demand Outlet; !- Component Outlet Node Name + +Pipe:Adiabatic, + Chilled Water Loop CndW Demand Outlet Pipe, !- Name + Chilled Water Loop CndW Demand Outlet Pipe Inlet, !- Inlet Node Name + Chilled Water Loop CndW Demand Outlet; !- Outlet Node Name + +Site:GroundTemperature:BuildingSurface, + 18, !- January Ground Temperature + 18, !- February Ground Temperature + 18, !- March Ground Temperature + 18, !- April Ground Temperature + 18, !- May Ground Temperature + 18, !- June Ground Temperature + 18, !- July Ground Temperature + 18, !- August Ground Temperature + 18, !- September Ground Temperature + 18, !- October Ground Temperature + 18, !- November Ground Temperature + 18; !- December Ground Temperature diff --git a/testfiles/eplusout.mtd b/testfiles/eplusout.mtd new file mode 100644 index 00000000000..e69de29bb2d diff --git a/testfiles/eplusout.mtr b/testfiles/eplusout.mtr new file mode 100644 index 00000000000..e69de29bb2d diff --git a/testfiles/eplusout.shd b/testfiles/eplusout.shd new file mode 100644 index 00000000000..a204b2f5011 --- /dev/null +++ b/testfiles/eplusout.shd @@ -0,0 +1,46 @@ +Shadowing Combinations +..Solar Distribution=Minimal Shadowing, Detached Shading will not be used in shadowing calculations +..In the following, only the first 10 reference surfaces will be shown. +..But all surfaces are used in the calculations. +================================== +Surface=SOUTH WALL is used as Receiving Surface in calculations and is convex. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=2 +....Surface=SOUTH WINDOW_WEST +....Surface=SOUTH WINDOW_EAST +================================== +Surface=SOUTH WINDOW_WEST is not used as Receiving Surface in calculations. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 +================================== +Surface=SOUTH WINDOW_EAST is not used as Receiving Surface in calculations. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 +================================== +Surface=EAST WALL is used as Receiving Surface in calculations and is convex. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 +================================== +Surface=NORTH WALL is used as Receiving Surface in calculations and is convex. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 +================================== +Surface=WEST WALL is used as Receiving Surface in calculations and is convex. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 +================================== +Surface=FLOOR is not used as Receiving Surface in calculations. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 +================================== +Surface=ROOF is used as Receiving Surface in calculations and is convex. +Number of general casting surfaces=0 +Number of back surfaces=0 +Number of receiving sub surfaces=0 diff --git a/testfiles/epluszsz.csv b/testfiles/epluszsz.csv new file mode 100644 index 00000000000..e69de29bb2d From 3a5211d92cec8edbb3697902648ffbc056c7cd93 Mon Sep 17 00:00:00 2001 From: yli Date: Tue, 9 Mar 2021 10:09:30 -0500 Subject: [PATCH 12/16] add type2-StackAndOverPressure for ConstructionProperty:InternalMoistureSource for example idf files. --- ...rt_StackAndOverPressure_MoistureSource.idf | 1528 +++++++++++++++++ 1 file changed, 1528 insertions(+) create mode 100644 testfiles/HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf diff --git a/testfiles/HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf new file mode 100644 index 00000000000..148bbf2f2a8 --- /dev/null +++ b/testfiles/HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf @@ -0,0 +1,1528 @@ +!-Generator IDFEditor 1.34 +!-Option SortedOrder 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. +!- =========== ALL OBJECTS IN CLASS: VERSION =========== +! Name of file: HAMT_HourlyProfileReport.idf +! +! Basic file description: +! Single zone single story lightweight building. +! The building is orientated with its long axis east-west. Windows are on the south wall. +! +! Highlights: +! To demonstrate the use of the HAMT solution algorithm, +! including the use of fixed vapor transfer coefficients +! +! Simulation Location/Run: +! autosizing using Denver winter & summer design days; +! simulation; 1 winter, 1 summer day. +! +! Location: Chicago, IL +! Run Period (Weather File): 1 months, USA_IL_Chicago-OHare_TMY2 +! Timestep: 20 per hour. +! +! Building: +! ______________________ +! |\ /| +! | \ / | NORTH +! | \________________/ | ^ +! | | | | /|\ +! | | | | | +! | | | |6 m | +! | | | | | +! | | | | | +! | |________________| | +! | / ____ ____ \ | +! | / /____\ /____\ \ | +! |/____________________\| +! 8 m +! ______________________ +! | _____ _____ | +! | | | | | | 2.7m +! | |_____| |_____| | +! |______________________| +! +! Both windows are 2m high and 3m wide, +! separated by 1m, 0.5m from the roof +! and 0.5m from either side of the building. +! +! Floor area: 48 m2 +! Dimensions: 8 m x 6 m +! Floor height: 2.7 m +! conditioned floor. No basement +! Number of Stories: 1 +! +! Shell characteristics: +! Roof construction: Flat roof, plywood, insulation, spruce panel +! Wall construction: spruce siding, conctete, cellulose insulation, spruce panel +! Floor construction: Glass fibre insulation, spruce flooring +! +! Windows +! The area of each window is 6 m2 , giving a total glazed area of 12 m2 +! The windows were double glazed with an air gap: +! +! Glass: +! Pane Thickness: 0.003175 m +! Solar Transmittance at normal incidence: 0.86156 +! Solar reflectance at normal incidence: Front side: 0.07846 +! Solar reflectance at normal incidence: Back side: 0.07846 +! Visible transmittance at normal incidence: 0.91325 +! Visible reflectance at normal incidence: Front side: 0.082 +! Visible reflectance at normal incidence: Back side: 0.082 +! IR Transmittance at Normal Incidence: 0 +! IR Hemispherical Emissivity: Front Side 0.84 +! IR Hemishpherical Emissivity: Back Side 0.84 +! Conductivity 1.06 W/mK +! +! Air Gap: +! Air Gap thickness: 0.013 m +! +! All other material properties are set to use the HAMT solutions algorithm +! +! Infiltration: +! All hours: 0.5 ACH +! +! Internal Loads: +! The same internal load schedule is used for every day of the simulation year: +! Sensible: +! 800 watts all day +! Latent: +! 0 watts between 0 and 0900 hours and between 1700 and 2400 hours +! 352.6 watts between 0900 hours and 1700 hours. +! +! System controls are: +! Heating 20.0 C +! Cooling 27.0 C +! +! HVAC: +! 100% convective air system, thermostat on room temperature, no latent load, +! Compact FanCoil system is used. System is autosized. +! +! Reporting: +! Outdoor Dry Bulb, daily; +! Outdoor Relative Humidity, daily; +! Zone Mean Air Temperature, daily; +! Zone Air Relative Humidity, daily; +! Zone/Sys Sensible Heating Rate, daily; +! Zone/Sys Sensible Cooling Rate, daily; +! +! The following report variables are selected as an example for +! east wall only +! HAMT-Surface Water Content , daily; +! +! HAMT-Profile Construction 1 Cell 1 Temperature, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Temperature, daily; +! +! HAMT-Profile Construction 1 Cell 1 Water, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Water, daily; +! +! HAMT-Profile Construction 1 Cell 1 RH, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 RH, daily; +! +! + + Version,9.4; + +!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL =========== + + SimulationControl, + Yes, !- Do Zone Sizing Calculation + Yes, !- 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 + +!- =========== ALL OBJECTS IN CLASS: BUILDING =========== + + Building, + HAMT test 1, !- Name + 0, !- North Axis {deg} + , !- Terrain + 0.04, !- Loads Convergence Tolerance Value {W} + 0.4, !- Temperature Convergence Tolerance Value {deltaC} + MinimalShadowing, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + +!- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== + + HeatBalanceAlgorithm,CombinedHeatAndMoistureFiniteElement,200; + +!- =========== ALL OBJECTS IN CLASS: TIMESTEP =========== + + Timestep,20; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE =========== + + SurfaceConvectionAlgorithm:Inside,TARP; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:OUTSIDE =========== + + SurfaceConvectionAlgorithm:Outside,DOE-2; + +!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY =========== + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -17.3, !- 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 + -17.3, !- 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.0; !- Sky Clearness + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.5, !- 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 + 23.0, !- 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.0; !- Sky Clearness + +!- =========== ALL OBJECTS IN CLASS: RUNPERIOD =========== + + RunPeriod, + Run Period 1, !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 1, !- End Month + 31, !- End Day of Month + , !- End Year + , !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + Yes, !- Apply Weekend Holiday Rule + No, !- Use Weather File Rain Indicators + No; !- Use Weather File Snow Indicators + +!- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE =========== + + Site:GroundTemperature:BuildingSurface,18,18,18,18,18,18,18,18,18,18,18,18; + +!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS =========== + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS, !- Numeric Type + Temperature; !- Unit Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + FlowRate, !- Name + 0.0, !- Lower Limit Value + 10, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY =========== + + Schedule:Day:Hourly, + On, !- Name + Fraction, !- Schedule Type Limits Name + 1, !- Hour 1 + 1, !- Hour 2 + 1, !- Hour 3 + 1, !- Hour 4 + 1, !- Hour 5 + 1, !- Hour 6 + 1, !- Hour 7 + 1, !- Hour 8 + 1, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 1, !- Hour 18 + 1, !- Hour 19 + 1, !- Hour 20 + 1, !- Hour 21 + 1, !- Hour 22 + 1, !- Hour 23 + 1; !- Hour 24 + + Schedule:Day:Hourly, + Moisture annex 41, !- Name + Fraction, !- Schedule Type Limits Name + 0, !- Hour 1 + 0, !- Hour 2 + 0, !- Hour 3 + 0, !- Hour 4 + 0, !- Hour 5 + 0, !- Hour 6 + 0, !- Hour 7 + 0, !- Hour 8 + 0, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 0, !- Hour 18 + 0, !- Hour 19 + 0, !- Hour 20 + 0, !- Hour 21 + 0, !- Hour 22 + 0, !- Hour 23 + 0; !- Hour 24 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:DAILY =========== + + Schedule:Week:Daily, + WeekOn, !- Name + On, !- Sunday Schedule:Day Name + On, !- Monday Schedule:Day Name + On, !- Tuesday Schedule:Day Name + On, !- Wednesday Schedule:Day Name + On, !- Thursday Schedule:Day Name + On, !- Friday Schedule:Day Name + On, !- Saturday Schedule:Day Name + On, !- Holiday Schedule:Day Name + On, !- SummerDesignDay Schedule:Day Name + On, !- WinterDesignDay Schedule:Day Name + On, !- CustomDay1 Schedule:Day Name + On; !- CustomDay2 Schedule:Day Name + + Schedule:Week:Daily, + Weekon moisture, !- Name + Moisture annex 41, !- Sunday Schedule:Day Name + Moisture annex 41, !- Monday Schedule:Day Name + Moisture annex 41, !- Tuesday Schedule:Day Name + Moisture annex 41, !- Wednesday Schedule:Day Name + Moisture annex 41, !- Thursday Schedule:Day Name + Moisture annex 41, !- Friday Schedule:Day Name + Moisture annex 41, !- Saturday Schedule:Day Name + Moisture annex 41, !- Holiday Schedule:Day Name + Moisture annex 41, !- SummerDesignDay Schedule:Day Name + Moisture annex 41, !- WinterDesignDay Schedule:Day Name + Moisture annex 41, !- CustomDay1 Schedule:Day Name + Moisture annex 41; !- CustomDay2 Schedule:Day Name + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR =========== + + Schedule:Year, + On, !- Name + Fraction, !- Schedule Type Limits Name + WeekOn, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + + Schedule:Year, + Moisture on, !- Name + Fraction, !- Schedule Type Limits Name + Weekon moisture, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT =========== + + Schedule:Compact, + Htg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + Clg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + FanAvailSched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,1; !- Field 3 + +!- =========== ALL OBJECTS IN CLASS: MATERIAL =========== + + Material, + Concrete, !- Name + Rough, !- Roughness + 0.1, !- Thickness {m} + 1.6, !- Conductivity {W/m-K} + 2300, !- Density {kg/m3} + 850, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Spruce, !- Name + Rough, !- Roughness + 0.012, !- Thickness {m} + 0.09, !- Conductivity {W/m-K} + 455, !- Density {kg/m3} + 1500, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Plywood, !- Name + Rough, !- Roughness + 0.025, !- Thickness {m} + 0.14, !- Conductivity {W/m-K} + 530, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Cellulose ins, !- Name + Rough, !- Roughness + 0.066, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 55, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Glass Fibre ins, !- Name + Rough, !- Roughness + 1.003, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 80, !- Density {kg/m3} + 840, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING =========== + + WindowMaterial:Glazing, + Glass, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + 0.003175, !- Thickness {m} + 0.86156, !- Solar Transmittance at Normal Incidence + 0.07846, !- Front Side Solar Reflectance at Normal Incidence + 0.07846, !- Back Side Solar Reflectance at Normal Incidence + 0.91325, !- Visible Transmittance at Normal Incidence + 0.082, !- Front Side Visible Reflectance at Normal Incidence + 0.082, !- Back Side Visible Reflectance at Normal Incidence + 0, !- Infrared Transmittance at Normal Incidence + 0.84, !- Front Side Infrared Hemispherical Emissivity + 0.84, !- Back Side Infrared Hemispherical Emissivity + 1.06; !- Conductivity {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GAS =========== + + WindowMaterial:Gas, + Air, !- Name + Air, !- Gas Type + 0.013; !- Thickness {m} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SETTINGS =========== + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Concrete, !- Material Name + 0.76, !- Porosity {m3/m3} + 0.01; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Spruce, !- Material Name + 0.73, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Plywood, !- Material Name + 0.5, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Cellulose ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.001; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Glass Fibre ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.1; !- Initial Water Content Ratio {kg/kg} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SORPTIONISOTHERM =========== + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Cellulose ins, !- Material Name + 5, !- Number of Isotherm Coordinates + 0.25, !- Relative Humidity Fraction 1 {dimensionless} + 2.365, !- Moisture Content 1 {kg/m3} + 0.44, !- Relative Humidity Fraction 2 {dimensionless} + 4.62, !- Moisture Content 2 {kg/m3} + 0.66, !- Relative Humidity Fraction 3 {dimensionless} + 6.655, !- Moisture Content 3 {kg/m3} + 0.86, !- Relative Humidity Fraction 4 {dimensionless} + 11.4125, !- Moisture Content 4 {kg/m3} + 1, !- Relative Humidity Fraction 5 {dimensionless} + 13; !- Moisture Content 5 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Glass Fibre ins, !- Material Name + 6, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 0.748, !- Moisture Content 1 {kg/m3} + 0.4325, !- Relative Humidity Fraction 2 {dimensionless} + 1.04, !- Moisture Content 2 {kg/m3} + 0.6465, !- Relative Humidity Fraction 3 {dimensionless} + 1.24, !- Moisture Content 3 {kg/m3} + 0.8465, !- Relative Humidity Fraction 4 {dimensionless} + 1.56, !- Moisture Content 4 {kg/m3} + 0.948, !- Relative Humidity Fraction 5 {dimensionless} + 1.92, !- Moisture Content 5 {kg/m3} + 0.978, !- Relative Humidity Fraction 6 {dimensionless} + 2.72; !- Moisture Content 6 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Spruce, !- Material Name + 7, !- Number of Isotherm Coordinates + 0.205, !- Relative Humidity Fraction 1 {dimensionless} + 25.935, !- Moisture Content 1 {kg/m3} + 0.4465, !- Relative Humidity Fraction 2 {dimensionless} + 44.3625, !- Moisture Content 2 {kg/m3} + 0.6515, !- Relative Humidity Fraction 3 {dimensionless} + 61.99375, !- Moisture Content 3 {kg/m3} + 0.6545, !- Relative Humidity Fraction 4 {dimensionless} + 61.99375, !- Moisture Content 4 {kg/m3} + 0.83, !- Relative Humidity Fraction 5 {dimensionless} + 87.1325, !- Moisture Content 5 {kg/m3} + 0.9525, !- Relative Humidity Fraction 6 {dimensionless} + 119.665, !- Moisture Content 6 {kg/m3} + 0.956, !- Relative Humidity Fraction 7 {dimensionless} + 120.12; !- Moisture Content 7 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Plywood, !- Material Name + 12, !- Number of Isotherm Coordinates + 0.2015, !- Relative Humidity Fraction 1 {dimensionless} + 3.7125, !- Moisture Content 1 {kg/m3} + 0.203, !- Relative Humidity Fraction 2 {dimensionless} + 3.74, !- Moisture Content 2 {kg/m3} + 0.435, !- Relative Humidity Fraction 3 {dimensionless} + 5.8025, !- Moisture Content 3 {kg/m3} + 0.439, !- Relative Humidity Fraction 4 {dimensionless} + 5.83, !- Moisture Content 4 {kg/m3} + 0.6495, !- Relative Humidity Fraction 5 {dimensionless} + 7.7825, !- Moisture Content 5 {kg/m3} + 0.6515, !- Relative Humidity Fraction 6 {dimensionless} + 7.81, !- Moisture Content 6 {kg/m3} + 0.8215, !- Relative Humidity Fraction 7 {dimensionless} + 10.3675, !- Moisture Content 7 {kg/m3} + 0.825, !- Relative Humidity Fraction 8 {dimensionless} + 10.3675, !- Moisture Content 8 {kg/m3} + 0.9215, !- Relative Humidity Fraction 9 {dimensionless} + 13.1175, !- Moisture Content 9 {kg/m3} + 0.925, !- Relative Humidity Fraction 10 {dimensionless} + 13.1175, !- Moisture Content 10 {kg/m3} + 0.9575, !- Relative Humidity Fraction 11 {dimensionless} + 14.7125, !- Moisture Content 11 {kg/m3} + 0.9605, !- Relative Humidity Fraction 12 {dimensionless} + 15.345; !- Moisture Content 12 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Concrete, !- Material Name + 10, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 19.665, !- Moisture Content 1 {kg/m3} + 0.2205, !- Relative Humidity Fraction 2 {dimensionless} + 22.31, !- Moisture Content 2 {kg/m3} + 0.449, !- Relative Humidity Fraction 3 {dimensionless} + 38.4675, !- Moisture Content 3 {kg/m3} + 0.454, !- Relative Humidity Fraction 4 {dimensionless} + 38.4675, !- Moisture Content 4 {kg/m3} + 0.6506, !- Relative Humidity Fraction 5 {dimensionless} + 54.165, !- Moisture Content 5 {kg/m3} + 0.655, !- Relative Humidity Fraction 6 {dimensionless} + 54.165, !- Moisture Content 6 {kg/m3} + 0.824, !- Relative Humidity Fraction 7 {dimensionless} + 72.565, !- Moisture Content 7 {kg/m3} + 0.8725, !- Relative Humidity Fraction 8 {dimensionless} + 85.1, !- Moisture Content 8 {kg/m3} + 0.924, !- Relative Humidity Fraction 9 {dimensionless} + 91.08, !- Moisture Content 9 {kg/m3} + 0.964, !- Relative Humidity Fraction 10 {dimensionless} + 100.28; !- Moisture Content 10 {kg/m3} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SUCTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Concrete, !- Material Name + 5, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.0000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.00000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.00000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Spruce, !- Material Name + 3, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Plywood, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Cellulose ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Glass Fibre ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:REDISTRIBUTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Concrete, !- Material Name + 5, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.00000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.0000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.000000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.000000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Spruce, !- Material Name + 3, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Plywood, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Cellulose ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Glass Fibre ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:DIFFUSION =========== + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Concrete, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 180; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Spruce, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 130; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Plywood, !- Material Name + 3, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 700, !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + 0.5, !- Relative Humidity Fraction 2 {dimensionless} + 200, !- Water Vapor Diffusion Resistance Factor 2 {dimensionless} + 1, !- Relative Humidity Fraction 3 {dimensionless} + 20; !- Water Vapor Diffusion Resistance Factor 3 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Cellulose ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.5; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Glass Fibre ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.2543; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:THERMALCONDUCTIVITY =========== + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Concrete, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 1.6, !- Thermal Conductivity 1 {W/m-K} + 180, !- Moisture Content 2 {kg/m3} + 2.602; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Spruce, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.09, !- Thermal Conductivity 1 {W/m-K} + 730, !- Moisture Content 2 {kg/m3} + 0.278; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Plywood, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.1, !- Thermal Conductivity 1 {W/m-K} + 500, !- Moisture Content 2 {kg/m3} + 0.25; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Cellulose ins, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04, !- Thermal Conductivity 1 {W/m-K} + 950, !- Moisture Content 2 {kg/m3} + 0.583; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Glass Fibre ins, !- Material Name + 1, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04; !- Thermal Conductivity 1 {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION =========== + + Construction, + Exterior wall, !- Name + Spruce, !- Outside Layer + Concrete, !- Layer 2 + Cellulose ins, !- Layer 3 + Spruce; !- Layer 4 + + Construction, + Floor, !- Name + Glass Fibre ins, !- Outside Layer + Spruce; !- Layer 2 + + Construction, + Roof, !- Name + Plywood, !- Outside Layer + Cellulose ins, !- Layer 2 + Spruce; !- Layer 3 + + Construction, + Window, !- Name + Glass, !- Outside Layer + Air, !- Layer 2 + Glass; !- Layer 3 + + +!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + +!- =========== ALL OBJECTS IN CLASS: ZONE =========== + + Zone, + Test room, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.7, !- Ceiling Height {m} + 129.6; !- Volume {m3} + +!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED =========== + + BuildingSurface:Detailed, + South wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,0,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + East wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== + + + + BuildingSurface:Detailed, + North wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + West wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Floor, !- Name + FLOOR, !- Surface Type + Floor, !- Construction Name + Test room, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,0, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Roof, !- Name + ROOF, !- Surface Type + Roof, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,2.7, !- X,Y,Z ==> Vertex 2 {m} + 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + Exterior wall, !- Construction Name + 3, !- Moisture Source Present In Layer Number + StackAndOverPressure, !- Source Type + , !- Air Flow Rate {m/s} + 6, !- Stack Height {m} + 0.1, !- Component Air Permeance + 4; !- Mechanical Ventilation Overpressure + + + + +!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== + + FenestrationSurface:Detailed, + South window_west, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 0.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 0.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 3.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 3.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + South window_east, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 4.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 4.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 7.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 7.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTY:CONVECTIONCOEFFICIENTS =========== + + SurfaceProperty:ConvectionCoefficients, + South wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + East wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + North wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + West wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Roof, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Floor, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTIES:VAPORCOEFFICIENTS =========== + + SurfaceProperties:VaporCoefficients, + South wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + East wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + North wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + West wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Floor, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Roof, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + + + + +!- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== + + OtherEquipment, + latent, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + Moisture on, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 352.6, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 1, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + + OtherEquipment, + Other, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 800, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 0, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + +!- =========== ALL OBJECTS IN CLASS: ZONEINFILTRATION:DESIGNFLOWRATE =========== + + ZoneInfiltration:DesignFlowRate, + Infiltrate, !- Name + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + AirChanges/Hour, !- Design Flow Rate Calculation Method + 0, !- Design Flow Rate {m3/s} + 0, !- Flow per Zone Floor Area {m3/s-m2} + 0, !- Flow per Exterior Surface Area {m3/s-m2} + 0.5, !- Air Changes per Hour {1/hr} + 1, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:THERMOSTAT =========== + + HVACTemplate:Thermostat, + All Zones, !- Name + Htg-SetP-Sch, !- Heating Setpoint Schedule Name + , !- Constant Heating Setpoint {C} + Clg-SetP-Sch, !- Cooling Setpoint Schedule Name + ; !- Constant Cooling Setpoint {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:ZONE:FANCOIL =========== + + HVACTemplate:Zone:FanCoil, + Test room, !- Zone Name + All Zones, !- Template Thermostat Name + autosize, !- Supply Air Maximum Flow Rate {m3/s} + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + flow/zone, !- Outdoor Air Method + 0, !- Outdoor Air Flow Rate per Person {m3/s} + 0.00944, !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2} + 0, !- Outdoor Air Flow Rate per Zone {m3/s} + FanAvailSched, !- System Availability Schedule Name + 0.7, !- Supply Fan Total Efficiency + 75, !- Supply Fan Delta Pressure {Pa} + 0.9, !- Supply Fan Motor Efficiency + 1, !- Supply Fan Motor in Air Stream Fraction + ChilledWater, !- Cooling Coil Type + , !- Cooling Coil Availability Schedule Name + 14, !- Cooling Coil Design Setpoint {C} + HotWater, !- Heating Coil Type + , !- Heating Coil Availability Schedule Name + 50, !- Heating Coil Design Setpoint {C} + , !- Dedicated Outdoor Air System Name + , !- Zone Cooling Design Supply Air Temperature Input Method + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + , !- Zone Heating Design Supply Air Temperature Input Method + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + , !- Design Specification Outdoor Air Object Name + , !- Design Specification Zone Air Distribution Object Name + , !- Capacity Control Method + , !- Low Speed Supply Air Flow Ratio + , !- Medium Speed Supply Air Flow Ratio + , !- Outdoor Air Schedule Name + , !- Baseboard Heating Type + , !- Baseboard Heating Availability Schedule Name + ; !- Baseboard Heating Capacity {W} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLEDWATERLOOP =========== + + HVACTemplate:Plant:ChilledWaterLoop, + Chilled Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Chiller Plant Operation Scheme Type + , !- Chiller Plant Equipment Operation Schemes Name + , !- Chilled Water Setpoint Schedule Name + 7.22, !- Chilled Water Design Setpoint {C} + ConstantPrimaryNoSecondary, !- Chilled Water Pump Configuration + 179352, !- Primary Chilled Water Pump Rated Head {Pa} + 179352, !- Secondary Chilled Water Pump Rated Head {Pa} + Default, !- Condenser Plant Operation Scheme Type + , !- Condenser Equipment Operation Schemes Name + , !- Condenser Water Temperature Control Type + , !- Condenser Water Setpoint Schedule Name + 29.4, !- Condenser Water Design Setpoint {C} + 179352, !- Condenser Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Chilled Water Setpoint Reset Type + 12.2, !- Chilled Water Setpoint at Outdoor Dry-Bulb Low {C} + 15.6, !- Chilled Water Reset Outdoor Dry-Bulb Low {C} + 6.7, !- Chilled Water Setpoint at Outdoor Dry-Bulb High {C} + 26.7; !- Chilled Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLER =========== + + HVACTemplate:Plant:Chiller, + Main Chiller, !- Name + ElectricReciprocatingChiller, !- Chiller Type + autosize, !- Capacity {W} + 3.2, !- Nominal COP {W/W} + WaterCooled, !- Condenser Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:TOWER =========== + + HVACTemplate:Plant:Tower, + Main Tower, !- Name + SingleSpeed, !- Tower Type + autosize, !- High Speed Nominal Capacity {W} + autosize, !- High Speed Fan Power {W} + autosize, !- Low Speed Nominal Capacity {W} + autosize, !- Low Speed Fan Power {W} + autosize, !- Free Convection Capacity {W} + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:HOTWATERLOOP =========== + + HVACTemplate:Plant:HotWaterLoop, + Hot Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Hot Water Plant Operation Scheme Type + , !- Hot Water Plant Equipment Operation Schemes Name + , !- Hot Water Setpoint Schedule Name + 82, !- Hot Water Design Setpoint {C} + ConstantFlow, !- Hot Water Pump Configuration + 179352, !- Hot Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Hot Water Setpoint Reset Type + 82.2, !- Hot Water Setpoint at Outdoor Dry-Bulb Low {C} + -6.7, !- Hot Water Reset Outdoor Dry-Bulb Low {C} + 65.6, !- Hot Water Setpoint at Outdoor Dry-Bulb High {C} + 10; !- Hot Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:BOILER =========== + + HVACTemplate:Plant:Boiler, + Main Boiler, !- Name + HotWaterBoiler, !- Boiler Type + autosize, !- Capacity {W} + 0.8, !- Efficiency + NaturalGas, !- Fuel Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: SIZING:PARAMETERS =========== + + Sizing:Parameters, + 1, !- Heating Sizing Factor + 1; !- Cooling Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY =========== + + Output:VariableDictionary,Regular; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE =========== + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + + Output:Variable,*,Zone Mean Air Temperature,hourly; + + Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; + + Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; + + Output:Variable,*,HAMT Surface Average Water Content Ratio,hourly; + + Output:Variable,*,Zone Air Relative Humidity,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 32,hourly; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:METER:METERFILEONLY =========== + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Plant,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,runperiod; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + From 800192647db8d73b8c1e6a43e9a5e3525d97044f Mon Sep 17 00:00:00 2001 From: yli Date: Tue, 9 Mar 2021 12:38:08 -0500 Subject: [PATCH 13/16] add Type3-AFN for exmaple idf files --- ...HourlyProfileReport_AFN_MoistureSource.idf | 1523 +++++++++++++++ ...port_Type1_UserDefined_MoistureSource.idf} | 0 ...2_StackAndOverPressure_MoistureSource.idf} | 0 ...ProfileReport_Type3_AFN_MoistureSource.idf | 1639 +++++++++++++++++ 4 files changed, 3162 insertions(+) create mode 100644 testfiles/HAMT_HourlyProfileReport_AFN_MoistureSource.idf rename testfiles/{HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf => HAMT_HourlyProfileReport_Type1_UserDefined_MoistureSource.idf} (100%) rename testfiles/{HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf => HAMT_HourlyProfileReport_Type2_StackAndOverPressure_MoistureSource.idf} (100%) create mode 100644 testfiles/HAMT_HourlyProfileReport_Type3_AFN_MoistureSource.idf diff --git a/testfiles/HAMT_HourlyProfileReport_AFN_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_AFN_MoistureSource.idf new file mode 100644 index 00000000000..87b09b6bc7b --- /dev/null +++ b/testfiles/HAMT_HourlyProfileReport_AFN_MoistureSource.idf @@ -0,0 +1,1523 @@ +!-Generator IDFEditor 1.34 +!-Option SortedOrder 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. +!- =========== ALL OBJECTS IN CLASS: VERSION =========== +! Name of file: HAMT_HourlyProfileReport.idf +! +! Basic file description: +! Single zone single story lightweight building. +! The building is orientated with its long axis east-west. Windows are on the south wall. +! +! Highlights: +! To demonstrate the use of the HAMT solution algorithm, +! including the use of fixed vapor transfer coefficients +! +! Simulation Location/Run: +! autosizing using Denver winter & summer design days; +! simulation; 1 winter, 1 summer day. +! +! Location: Chicago, IL +! Run Period (Weather File): 1 months, USA_IL_Chicago-OHare_TMY2 +! Timestep: 20 per hour. +! +! Building: +! ______________________ +! |\ /| +! | \ / | NORTH +! | \________________/ | ^ +! | | | | /|\ +! | | | | | +! | | | |6 m | +! | | | | | +! | | | | | +! | |________________| | +! | / ____ ____ \ | +! | / /____\ /____\ \ | +! |/____________________\| +! 8 m +! ______________________ +! | _____ _____ | +! | | | | | | 2.7m +! | |_____| |_____| | +! |______________________| +! +! Both windows are 2m high and 3m wide, +! separated by 1m, 0.5m from the roof +! and 0.5m from either side of the building. +! +! Floor area: 48 m2 +! Dimensions: 8 m x 6 m +! Floor height: 2.7 m +! conditioned floor. No basement +! Number of Stories: 1 +! +! Shell characteristics: +! Roof construction: Flat roof, plywood, insulation, spruce panel +! Wall construction: spruce siding, conctete, cellulose insulation, spruce panel +! Floor construction: Glass fibre insulation, spruce flooring +! +! Windows +! The area of each window is 6 m2 , giving a total glazed area of 12 m2 +! The windows were double glazed with an air gap: +! +! Glass: +! Pane Thickness: 0.003175 m +! Solar Transmittance at normal incidence: 0.86156 +! Solar reflectance at normal incidence: Front side: 0.07846 +! Solar reflectance at normal incidence: Back side: 0.07846 +! Visible transmittance at normal incidence: 0.91325 +! Visible reflectance at normal incidence: Front side: 0.082 +! Visible reflectance at normal incidence: Back side: 0.082 +! IR Transmittance at Normal Incidence: 0 +! IR Hemispherical Emissivity: Front Side 0.84 +! IR Hemishpherical Emissivity: Back Side 0.84 +! Conductivity 1.06 W/mK +! +! Air Gap: +! Air Gap thickness: 0.013 m +! +! All other material properties are set to use the HAMT solutions algorithm +! +! Infiltration: +! All hours: 0.5 ACH +! +! Internal Loads: +! The same internal load schedule is used for every day of the simulation year: +! Sensible: +! 800 watts all day +! Latent: +! 0 watts between 0 and 0900 hours and between 1700 and 2400 hours +! 352.6 watts between 0900 hours and 1700 hours. +! +! System controls are: +! Heating 20.0 C +! Cooling 27.0 C +! +! HVAC: +! 100% convective air system, thermostat on room temperature, no latent load, +! Compact FanCoil system is used. System is autosized. +! +! Reporting: +! Outdoor Dry Bulb, daily; +! Outdoor Relative Humidity, daily; +! Zone Mean Air Temperature, daily; +! Zone Air Relative Humidity, daily; +! Zone/Sys Sensible Heating Rate, daily; +! Zone/Sys Sensible Cooling Rate, daily; +! +! The following report variables are selected as an example for +! east wall only +! HAMT-Surface Water Content , daily; +! +! HAMT-Profile Construction 1 Cell 1 Temperature, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Temperature, daily; +! +! HAMT-Profile Construction 1 Cell 1 Water, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Water, daily; +! +! HAMT-Profile Construction 1 Cell 1 RH, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 RH, daily; +! +! + + Version,9.4; + +!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL =========== + + SimulationControl, + Yes, !- Do Zone Sizing Calculation + Yes, !- 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 + +!- =========== ALL OBJECTS IN CLASS: BUILDING =========== + + Building, + HAMT test 1, !- Name + 0, !- North Axis {deg} + , !- Terrain + 0.04, !- Loads Convergence Tolerance Value {W} + 0.4, !- Temperature Convergence Tolerance Value {deltaC} + MinimalShadowing, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + +!- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== + + HeatBalanceAlgorithm,CombinedHeatAndMoistureFiniteElement,200; + +!- =========== ALL OBJECTS IN CLASS: TIMESTEP =========== + + Timestep,20; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE =========== + + SurfaceConvectionAlgorithm:Inside,TARP; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:OUTSIDE =========== + + SurfaceConvectionAlgorithm:Outside,DOE-2; + +!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY =========== + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -17.3, !- 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 + -17.3, !- 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.0; !- Sky Clearness + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.5, !- 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 + 23.0, !- 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.0; !- Sky Clearness + +!- =========== ALL OBJECTS IN CLASS: RUNPERIOD =========== + + RunPeriod, + Run Period 1, !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 1, !- End Month + 31, !- End Day of Month + , !- End Year + , !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + Yes, !- Apply Weekend Holiday Rule + No, !- Use Weather File Rain Indicators + No; !- Use Weather File Snow Indicators + +!- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE =========== + + Site:GroundTemperature:BuildingSurface,18,18,18,18,18,18,18,18,18,18,18,18; + +!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS =========== + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS, !- Numeric Type + Temperature; !- Unit Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + FlowRate, !- Name + 0.0, !- Lower Limit Value + 10, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY =========== + + Schedule:Day:Hourly, + On, !- Name + Fraction, !- Schedule Type Limits Name + 1, !- Hour 1 + 1, !- Hour 2 + 1, !- Hour 3 + 1, !- Hour 4 + 1, !- Hour 5 + 1, !- Hour 6 + 1, !- Hour 7 + 1, !- Hour 8 + 1, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 1, !- Hour 18 + 1, !- Hour 19 + 1, !- Hour 20 + 1, !- Hour 21 + 1, !- Hour 22 + 1, !- Hour 23 + 1; !- Hour 24 + + Schedule:Day:Hourly, + Moisture annex 41, !- Name + Fraction, !- Schedule Type Limits Name + 0, !- Hour 1 + 0, !- Hour 2 + 0, !- Hour 3 + 0, !- Hour 4 + 0, !- Hour 5 + 0, !- Hour 6 + 0, !- Hour 7 + 0, !- Hour 8 + 0, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 0, !- Hour 18 + 0, !- Hour 19 + 0, !- Hour 20 + 0, !- Hour 21 + 0, !- Hour 22 + 0, !- Hour 23 + 0; !- Hour 24 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:DAILY =========== + + Schedule:Week:Daily, + WeekOn, !- Name + On, !- Sunday Schedule:Day Name + On, !- Monday Schedule:Day Name + On, !- Tuesday Schedule:Day Name + On, !- Wednesday Schedule:Day Name + On, !- Thursday Schedule:Day Name + On, !- Friday Schedule:Day Name + On, !- Saturday Schedule:Day Name + On, !- Holiday Schedule:Day Name + On, !- SummerDesignDay Schedule:Day Name + On, !- WinterDesignDay Schedule:Day Name + On, !- CustomDay1 Schedule:Day Name + On; !- CustomDay2 Schedule:Day Name + + Schedule:Week:Daily, + Weekon moisture, !- Name + Moisture annex 41, !- Sunday Schedule:Day Name + Moisture annex 41, !- Monday Schedule:Day Name + Moisture annex 41, !- Tuesday Schedule:Day Name + Moisture annex 41, !- Wednesday Schedule:Day Name + Moisture annex 41, !- Thursday Schedule:Day Name + Moisture annex 41, !- Friday Schedule:Day Name + Moisture annex 41, !- Saturday Schedule:Day Name + Moisture annex 41, !- Holiday Schedule:Day Name + Moisture annex 41, !- SummerDesignDay Schedule:Day Name + Moisture annex 41, !- WinterDesignDay Schedule:Day Name + Moisture annex 41, !- CustomDay1 Schedule:Day Name + Moisture annex 41; !- CustomDay2 Schedule:Day Name + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR =========== + + Schedule:Year, + On, !- Name + Fraction, !- Schedule Type Limits Name + WeekOn, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + + Schedule:Year, + Moisture on, !- Name + Fraction, !- Schedule Type Limits Name + Weekon moisture, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT =========== + + Schedule:Compact, + Htg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + Clg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + FanAvailSched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,1; !- Field 3 + +!- =========== ALL OBJECTS IN CLASS: MATERIAL =========== + + Material, + Concrete, !- Name + Rough, !- Roughness + 0.1, !- Thickness {m} + 1.6, !- Conductivity {W/m-K} + 2300, !- Density {kg/m3} + 850, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Spruce, !- Name + Rough, !- Roughness + 0.012, !- Thickness {m} + 0.09, !- Conductivity {W/m-K} + 455, !- Density {kg/m3} + 1500, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Plywood, !- Name + Rough, !- Roughness + 0.025, !- Thickness {m} + 0.14, !- Conductivity {W/m-K} + 530, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Cellulose ins, !- Name + Rough, !- Roughness + 0.066, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 55, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Glass Fibre ins, !- Name + Rough, !- Roughness + 1.003, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 80, !- Density {kg/m3} + 840, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING =========== + + WindowMaterial:Glazing, + Glass, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + 0.003175, !- Thickness {m} + 0.86156, !- Solar Transmittance at Normal Incidence + 0.07846, !- Front Side Solar Reflectance at Normal Incidence + 0.07846, !- Back Side Solar Reflectance at Normal Incidence + 0.91325, !- Visible Transmittance at Normal Incidence + 0.082, !- Front Side Visible Reflectance at Normal Incidence + 0.082, !- Back Side Visible Reflectance at Normal Incidence + 0, !- Infrared Transmittance at Normal Incidence + 0.84, !- Front Side Infrared Hemispherical Emissivity + 0.84, !- Back Side Infrared Hemispherical Emissivity + 1.06; !- Conductivity {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GAS =========== + + WindowMaterial:Gas, + Air, !- Name + Air, !- Gas Type + 0.013; !- Thickness {m} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SETTINGS =========== + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Concrete, !- Material Name + 0.76, !- Porosity {m3/m3} + 0.01; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Spruce, !- Material Name + 0.73, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Plywood, !- Material Name + 0.5, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Cellulose ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.001; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Glass Fibre ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.1; !- Initial Water Content Ratio {kg/kg} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SORPTIONISOTHERM =========== + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Cellulose ins, !- Material Name + 5, !- Number of Isotherm Coordinates + 0.25, !- Relative Humidity Fraction 1 {dimensionless} + 2.365, !- Moisture Content 1 {kg/m3} + 0.44, !- Relative Humidity Fraction 2 {dimensionless} + 4.62, !- Moisture Content 2 {kg/m3} + 0.66, !- Relative Humidity Fraction 3 {dimensionless} + 6.655, !- Moisture Content 3 {kg/m3} + 0.86, !- Relative Humidity Fraction 4 {dimensionless} + 11.4125, !- Moisture Content 4 {kg/m3} + 1, !- Relative Humidity Fraction 5 {dimensionless} + 13; !- Moisture Content 5 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Glass Fibre ins, !- Material Name + 6, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 0.748, !- Moisture Content 1 {kg/m3} + 0.4325, !- Relative Humidity Fraction 2 {dimensionless} + 1.04, !- Moisture Content 2 {kg/m3} + 0.6465, !- Relative Humidity Fraction 3 {dimensionless} + 1.24, !- Moisture Content 3 {kg/m3} + 0.8465, !- Relative Humidity Fraction 4 {dimensionless} + 1.56, !- Moisture Content 4 {kg/m3} + 0.948, !- Relative Humidity Fraction 5 {dimensionless} + 1.92, !- Moisture Content 5 {kg/m3} + 0.978, !- Relative Humidity Fraction 6 {dimensionless} + 2.72; !- Moisture Content 6 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Spruce, !- Material Name + 7, !- Number of Isotherm Coordinates + 0.205, !- Relative Humidity Fraction 1 {dimensionless} + 25.935, !- Moisture Content 1 {kg/m3} + 0.4465, !- Relative Humidity Fraction 2 {dimensionless} + 44.3625, !- Moisture Content 2 {kg/m3} + 0.6515, !- Relative Humidity Fraction 3 {dimensionless} + 61.99375, !- Moisture Content 3 {kg/m3} + 0.6545, !- Relative Humidity Fraction 4 {dimensionless} + 61.99375, !- Moisture Content 4 {kg/m3} + 0.83, !- Relative Humidity Fraction 5 {dimensionless} + 87.1325, !- Moisture Content 5 {kg/m3} + 0.9525, !- Relative Humidity Fraction 6 {dimensionless} + 119.665, !- Moisture Content 6 {kg/m3} + 0.956, !- Relative Humidity Fraction 7 {dimensionless} + 120.12; !- Moisture Content 7 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Plywood, !- Material Name + 12, !- Number of Isotherm Coordinates + 0.2015, !- Relative Humidity Fraction 1 {dimensionless} + 3.7125, !- Moisture Content 1 {kg/m3} + 0.203, !- Relative Humidity Fraction 2 {dimensionless} + 3.74, !- Moisture Content 2 {kg/m3} + 0.435, !- Relative Humidity Fraction 3 {dimensionless} + 5.8025, !- Moisture Content 3 {kg/m3} + 0.439, !- Relative Humidity Fraction 4 {dimensionless} + 5.83, !- Moisture Content 4 {kg/m3} + 0.6495, !- Relative Humidity Fraction 5 {dimensionless} + 7.7825, !- Moisture Content 5 {kg/m3} + 0.6515, !- Relative Humidity Fraction 6 {dimensionless} + 7.81, !- Moisture Content 6 {kg/m3} + 0.8215, !- Relative Humidity Fraction 7 {dimensionless} + 10.3675, !- Moisture Content 7 {kg/m3} + 0.825, !- Relative Humidity Fraction 8 {dimensionless} + 10.3675, !- Moisture Content 8 {kg/m3} + 0.9215, !- Relative Humidity Fraction 9 {dimensionless} + 13.1175, !- Moisture Content 9 {kg/m3} + 0.925, !- Relative Humidity Fraction 10 {dimensionless} + 13.1175, !- Moisture Content 10 {kg/m3} + 0.9575, !- Relative Humidity Fraction 11 {dimensionless} + 14.7125, !- Moisture Content 11 {kg/m3} + 0.9605, !- Relative Humidity Fraction 12 {dimensionless} + 15.345; !- Moisture Content 12 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Concrete, !- Material Name + 10, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 19.665, !- Moisture Content 1 {kg/m3} + 0.2205, !- Relative Humidity Fraction 2 {dimensionless} + 22.31, !- Moisture Content 2 {kg/m3} + 0.449, !- Relative Humidity Fraction 3 {dimensionless} + 38.4675, !- Moisture Content 3 {kg/m3} + 0.454, !- Relative Humidity Fraction 4 {dimensionless} + 38.4675, !- Moisture Content 4 {kg/m3} + 0.6506, !- Relative Humidity Fraction 5 {dimensionless} + 54.165, !- Moisture Content 5 {kg/m3} + 0.655, !- Relative Humidity Fraction 6 {dimensionless} + 54.165, !- Moisture Content 6 {kg/m3} + 0.824, !- Relative Humidity Fraction 7 {dimensionless} + 72.565, !- Moisture Content 7 {kg/m3} + 0.8725, !- Relative Humidity Fraction 8 {dimensionless} + 85.1, !- Moisture Content 8 {kg/m3} + 0.924, !- Relative Humidity Fraction 9 {dimensionless} + 91.08, !- Moisture Content 9 {kg/m3} + 0.964, !- Relative Humidity Fraction 10 {dimensionless} + 100.28; !- Moisture Content 10 {kg/m3} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SUCTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Concrete, !- Material Name + 5, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.0000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.00000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.00000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Spruce, !- Material Name + 3, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Plywood, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Cellulose ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Glass Fibre ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:REDISTRIBUTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Concrete, !- Material Name + 5, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.00000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.0000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.000000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.000000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Spruce, !- Material Name + 3, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Plywood, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Cellulose ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Glass Fibre ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:DIFFUSION =========== + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Concrete, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 180; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Spruce, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 130; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Plywood, !- Material Name + 3, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 700, !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + 0.5, !- Relative Humidity Fraction 2 {dimensionless} + 200, !- Water Vapor Diffusion Resistance Factor 2 {dimensionless} + 1, !- Relative Humidity Fraction 3 {dimensionless} + 20; !- Water Vapor Diffusion Resistance Factor 3 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Cellulose ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.5; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Glass Fibre ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.2543; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:THERMALCONDUCTIVITY =========== + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Concrete, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 1.6, !- Thermal Conductivity 1 {W/m-K} + 180, !- Moisture Content 2 {kg/m3} + 2.602; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Spruce, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.09, !- Thermal Conductivity 1 {W/m-K} + 730, !- Moisture Content 2 {kg/m3} + 0.278; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Plywood, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.1, !- Thermal Conductivity 1 {W/m-K} + 500, !- Moisture Content 2 {kg/m3} + 0.25; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Cellulose ins, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04, !- Thermal Conductivity 1 {W/m-K} + 950, !- Moisture Content 2 {kg/m3} + 0.583; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Glass Fibre ins, !- Material Name + 1, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04; !- Thermal Conductivity 1 {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION =========== + + Construction, + Exterior wall, !- Name + Spruce, !- Outside Layer + Concrete, !- Layer 2 + Cellulose ins, !- Layer 3 + Spruce; !- Layer 4 + + Construction, + Floor, !- Name + Glass Fibre ins, !- Outside Layer + Spruce; !- Layer 2 + + Construction, + Roof, !- Name + Plywood, !- Outside Layer + Cellulose ins, !- Layer 2 + Spruce; !- Layer 3 + + Construction, + Window, !- Name + Glass, !- Outside Layer + Air, !- Layer 2 + Glass; !- Layer 3 + + +!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + +!- =========== ALL OBJECTS IN CLASS: ZONE =========== + + Zone, + Test room, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.7, !- Ceiling Height {m} + 129.6; !- Volume {m3} + +!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED =========== + + BuildingSurface:Detailed, + South wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,0,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + East wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== + + + + BuildingSurface:Detailed, + North wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + West wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Floor, !- Name + FLOOR, !- Surface Type + Floor, !- Construction Name + Test room, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,0, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Roof, !- Name + ROOF, !- Surface Type + Roof, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,2.7, !- X,Y,Z ==> Vertex 2 {m} + 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + Exterior wall, !- Construction Name + 3, !- Moisture Source Present In Layer Number + AirflowNetwork; !- Source Type + + + +!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== + + FenestrationSurface:Detailed, + South window_west, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 0.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 0.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 3.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 3.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + South window_east, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 4.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 4.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 7.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 7.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTY:CONVECTIONCOEFFICIENTS =========== + + SurfaceProperty:ConvectionCoefficients, + South wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + East wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + North wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + West wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Roof, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Floor, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTIES:VAPORCOEFFICIENTS =========== + + SurfaceProperties:VaporCoefficients, + South wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + East wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + North wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + West wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Floor, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Roof, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + + + + +!- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== + + OtherEquipment, + latent, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + Moisture on, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 352.6, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 1, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + + OtherEquipment, + Other, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 800, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 0, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + +!- =========== ALL OBJECTS IN CLASS: ZONEINFILTRATION:DESIGNFLOWRATE =========== + + ZoneInfiltration:DesignFlowRate, + Infiltrate, !- Name + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + AirChanges/Hour, !- Design Flow Rate Calculation Method + 0, !- Design Flow Rate {m3/s} + 0, !- Flow per Zone Floor Area {m3/s-m2} + 0, !- Flow per Exterior Surface Area {m3/s-m2} + 0.5, !- Air Changes per Hour {1/hr} + 1, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:THERMOSTAT =========== + + HVACTemplate:Thermostat, + All Zones, !- Name + Htg-SetP-Sch, !- Heating Setpoint Schedule Name + , !- Constant Heating Setpoint {C} + Clg-SetP-Sch, !- Cooling Setpoint Schedule Name + ; !- Constant Cooling Setpoint {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:ZONE:FANCOIL =========== + + HVACTemplate:Zone:FanCoil, + Test room, !- Zone Name + All Zones, !- Template Thermostat Name + autosize, !- Supply Air Maximum Flow Rate {m3/s} + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + flow/zone, !- Outdoor Air Method + 0, !- Outdoor Air Flow Rate per Person {m3/s} + 0.00944, !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2} + 0, !- Outdoor Air Flow Rate per Zone {m3/s} + FanAvailSched, !- System Availability Schedule Name + 0.7, !- Supply Fan Total Efficiency + 75, !- Supply Fan Delta Pressure {Pa} + 0.9, !- Supply Fan Motor Efficiency + 1, !- Supply Fan Motor in Air Stream Fraction + ChilledWater, !- Cooling Coil Type + , !- Cooling Coil Availability Schedule Name + 14, !- Cooling Coil Design Setpoint {C} + HotWater, !- Heating Coil Type + , !- Heating Coil Availability Schedule Name + 50, !- Heating Coil Design Setpoint {C} + , !- Dedicated Outdoor Air System Name + , !- Zone Cooling Design Supply Air Temperature Input Method + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + , !- Zone Heating Design Supply Air Temperature Input Method + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + , !- Design Specification Outdoor Air Object Name + , !- Design Specification Zone Air Distribution Object Name + , !- Capacity Control Method + , !- Low Speed Supply Air Flow Ratio + , !- Medium Speed Supply Air Flow Ratio + , !- Outdoor Air Schedule Name + , !- Baseboard Heating Type + , !- Baseboard Heating Availability Schedule Name + ; !- Baseboard Heating Capacity {W} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLEDWATERLOOP =========== + + HVACTemplate:Plant:ChilledWaterLoop, + Chilled Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Chiller Plant Operation Scheme Type + , !- Chiller Plant Equipment Operation Schemes Name + , !- Chilled Water Setpoint Schedule Name + 7.22, !- Chilled Water Design Setpoint {C} + ConstantPrimaryNoSecondary, !- Chilled Water Pump Configuration + 179352, !- Primary Chilled Water Pump Rated Head {Pa} + 179352, !- Secondary Chilled Water Pump Rated Head {Pa} + Default, !- Condenser Plant Operation Scheme Type + , !- Condenser Equipment Operation Schemes Name + , !- Condenser Water Temperature Control Type + , !- Condenser Water Setpoint Schedule Name + 29.4, !- Condenser Water Design Setpoint {C} + 179352, !- Condenser Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Chilled Water Setpoint Reset Type + 12.2, !- Chilled Water Setpoint at Outdoor Dry-Bulb Low {C} + 15.6, !- Chilled Water Reset Outdoor Dry-Bulb Low {C} + 6.7, !- Chilled Water Setpoint at Outdoor Dry-Bulb High {C} + 26.7; !- Chilled Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLER =========== + + HVACTemplate:Plant:Chiller, + Main Chiller, !- Name + ElectricReciprocatingChiller, !- Chiller Type + autosize, !- Capacity {W} + 3.2, !- Nominal COP {W/W} + WaterCooled, !- Condenser Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:TOWER =========== + + HVACTemplate:Plant:Tower, + Main Tower, !- Name + SingleSpeed, !- Tower Type + autosize, !- High Speed Nominal Capacity {W} + autosize, !- High Speed Fan Power {W} + autosize, !- Low Speed Nominal Capacity {W} + autosize, !- Low Speed Fan Power {W} + autosize, !- Free Convection Capacity {W} + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:HOTWATERLOOP =========== + + HVACTemplate:Plant:HotWaterLoop, + Hot Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Hot Water Plant Operation Scheme Type + , !- Hot Water Plant Equipment Operation Schemes Name + , !- Hot Water Setpoint Schedule Name + 82, !- Hot Water Design Setpoint {C} + ConstantFlow, !- Hot Water Pump Configuration + 179352, !- Hot Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Hot Water Setpoint Reset Type + 82.2, !- Hot Water Setpoint at Outdoor Dry-Bulb Low {C} + -6.7, !- Hot Water Reset Outdoor Dry-Bulb Low {C} + 65.6, !- Hot Water Setpoint at Outdoor Dry-Bulb High {C} + 10; !- Hot Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:BOILER =========== + + HVACTemplate:Plant:Boiler, + Main Boiler, !- Name + HotWaterBoiler, !- Boiler Type + autosize, !- Capacity {W} + 0.8, !- Efficiency + NaturalGas, !- Fuel Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: SIZING:PARAMETERS =========== + + Sizing:Parameters, + 1, !- Heating Sizing Factor + 1; !- Cooling Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY =========== + + Output:VariableDictionary,Regular; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE =========== + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + + Output:Variable,*,Zone Mean Air Temperature,hourly; + + Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; + + Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; + + Output:Variable,*,HAMT Surface Average Water Content Ratio,hourly; + + Output:Variable,*,Zone Air Relative Humidity,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 32,hourly; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:METER:METERFILEONLY =========== + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Plant,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,runperiod; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + diff --git a/testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_Type1_UserDefined_MoistureSource.idf similarity index 100% rename from testfiles/HAMT_HourlyProfileReport_UserDefined_MoistureSource.idf rename to testfiles/HAMT_HourlyProfileReport_Type1_UserDefined_MoistureSource.idf diff --git a/testfiles/HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_Type2_StackAndOverPressure_MoistureSource.idf similarity index 100% rename from testfiles/HAMT_HourlyProfileReport_StackAndOverPressure_MoistureSource.idf rename to testfiles/HAMT_HourlyProfileReport_Type2_StackAndOverPressure_MoistureSource.idf diff --git a/testfiles/HAMT_HourlyProfileReport_Type3_AFN_MoistureSource.idf b/testfiles/HAMT_HourlyProfileReport_Type3_AFN_MoistureSource.idf new file mode 100644 index 00000000000..e95e2caf834 --- /dev/null +++ b/testfiles/HAMT_HourlyProfileReport_Type3_AFN_MoistureSource.idf @@ -0,0 +1,1639 @@ +!-Generator IDFEditor 1.34 +!-Option SortedOrder 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. +!- =========== ALL OBJECTS IN CLASS: VERSION =========== +! Name of file: HAMT_HourlyProfileReport.idf +! +! Basic file description: +! Single zone single story lightweight building. +! The building is orientated with its long axis east-west. Windows are on the south wall. +! +! Highlights: +! To demonstrate the use of the HAMT solution algorithm, +! including the use of fixed vapor transfer coefficients +! +! Simulation Location/Run: +! autosizing using Denver winter & summer design days; +! simulation; 1 winter, 1 summer day. +! +! Location: Chicago, IL +! Run Period (Weather File): 1 months, USA_IL_Chicago-OHare_TMY2 +! Timestep: 20 per hour. +! +! Building: +! ______________________ +! |\ /| +! | \ / | NORTH +! | \________________/ | ^ +! | | | | /|\ +! | | | | | +! | | | |6 m | +! | | | | | +! | | | | | +! | |________________| | +! | / ____ ____ \ | +! | / /____\ /____\ \ | +! |/____________________\| +! 8 m +! ______________________ +! | _____ _____ | +! | | | | | | 2.7m +! | |_____| |_____| | +! |______________________| +! +! Both windows are 2m high and 3m wide, +! separated by 1m, 0.5m from the roof +! and 0.5m from either side of the building. +! +! Floor area: 48 m2 +! Dimensions: 8 m x 6 m +! Floor height: 2.7 m +! conditioned floor. No basement +! Number of Stories: 1 +! +! Shell characteristics: +! Roof construction: Flat roof, plywood, insulation, spruce panel +! Wall construction: spruce siding, conctete, cellulose insulation, spruce panel +! Floor construction: Glass fibre insulation, spruce flooring +! +! Windows +! The area of each window is 6 m2 , giving a total glazed area of 12 m2 +! The windows were double glazed with an air gap: +! +! Glass: +! Pane Thickness: 0.003175 m +! Solar Transmittance at normal incidence: 0.86156 +! Solar reflectance at normal incidence: Front side: 0.07846 +! Solar reflectance at normal incidence: Back side: 0.07846 +! Visible transmittance at normal incidence: 0.91325 +! Visible reflectance at normal incidence: Front side: 0.082 +! Visible reflectance at normal incidence: Back side: 0.082 +! IR Transmittance at Normal Incidence: 0 +! IR Hemispherical Emissivity: Front Side 0.84 +! IR Hemishpherical Emissivity: Back Side 0.84 +! Conductivity 1.06 W/mK +! +! Air Gap: +! Air Gap thickness: 0.013 m +! +! All other material properties are set to use the HAMT solutions algorithm +! +! Infiltration: +! All hours: 0.5 ACH +! +! Internal Loads: +! The same internal load schedule is used for every day of the simulation year: +! Sensible: +! 800 watts all day +! Latent: +! 0 watts between 0 and 0900 hours and between 1700 and 2400 hours +! 352.6 watts between 0900 hours and 1700 hours. +! +! System controls are: +! Heating 20.0 C +! Cooling 27.0 C +! +! HVAC: +! 100% convective air system, thermostat on room temperature, no latent load, +! Compact FanCoil system is used. System is autosized. +! +! Reporting: +! Outdoor Dry Bulb, daily; +! Outdoor Relative Humidity, daily; +! Zone Mean Air Temperature, daily; +! Zone Air Relative Humidity, daily; +! Zone/Sys Sensible Heating Rate, daily; +! Zone/Sys Sensible Cooling Rate, daily; +! +! The following report variables are selected as an example for +! east wall only +! HAMT-Surface Water Content , daily; +! +! HAMT-Profile Construction 1 Cell 1 Temperature, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Temperature, daily; +! +! HAMT-Profile Construction 1 Cell 1 Water, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 Water, daily; +! +! HAMT-Profile Construction 1 Cell 1 RH, daily; +! .. through to .. +! HAMT-Profile Construction 1 Cell 22 RH, daily; +! +! + + Version,9.4; + +!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL =========== + + SimulationControl, + Yes, !- Do Zone Sizing Calculation + Yes, !- 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 + +!- =========== ALL OBJECTS IN CLASS: BUILDING =========== + + Building, + HAMT test 1, !- Name + 0, !- North Axis {deg} + , !- Terrain + 0.04, !- Loads Convergence Tolerance Value {W} + 0.4, !- Temperature Convergence Tolerance Value {deltaC} + MinimalShadowing, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + +!- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== + + HeatBalanceAlgorithm,CombinedHeatAndMoistureFiniteElement,200; + +!- =========== ALL OBJECTS IN CLASS: TIMESTEP =========== + + Timestep,20; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE =========== + + SurfaceConvectionAlgorithm:Inside,TARP; + +!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:OUTSIDE =========== + + SurfaceConvectionAlgorithm:Outside,DOE-2; + +!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY =========== + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -17.3, !- 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 + -17.3, !- 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.0; !- Sky Clearness + + SizingPeriod:DesignDay, + CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.5, !- 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 + 23.0, !- 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.0; !- Sky Clearness + +!- =========== ALL OBJECTS IN CLASS: RUNPERIOD =========== + + RunPeriod, + Run Period 1, !- Name + 1, !- Begin Month + 1, !- Begin Day of Month + , !- Begin Year + 1, !- End Month + 31, !- End Day of Month + , !- End Year + , !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + Yes, !- Apply Weekend Holiday Rule + No, !- Use Weather File Rain Indicators + No; !- Use Weather File Snow Indicators + +!- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE =========== + + Site:GroundTemperature:BuildingSurface,18,18,18,18,18,18,18,18,18,18,18,18; + +!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS =========== + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS, !- Numeric Type + Temperature; !- Unit Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + FlowRate, !- Name + 0.0, !- Lower Limit Value + 10, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY =========== + + Schedule:Day:Hourly, + On, !- Name + Fraction, !- Schedule Type Limits Name + 1, !- Hour 1 + 1, !- Hour 2 + 1, !- Hour 3 + 1, !- Hour 4 + 1, !- Hour 5 + 1, !- Hour 6 + 1, !- Hour 7 + 1, !- Hour 8 + 1, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 1, !- Hour 18 + 1, !- Hour 19 + 1, !- Hour 20 + 1, !- Hour 21 + 1, !- Hour 22 + 1, !- Hour 23 + 1; !- Hour 24 + + Schedule:Day:Hourly, + Moisture annex 41, !- Name + Fraction, !- Schedule Type Limits Name + 0, !- Hour 1 + 0, !- Hour 2 + 0, !- Hour 3 + 0, !- Hour 4 + 0, !- Hour 5 + 0, !- Hour 6 + 0, !- Hour 7 + 0, !- Hour 8 + 0, !- Hour 9 + 1, !- Hour 10 + 1, !- Hour 11 + 1, !- Hour 12 + 1, !- Hour 13 + 1, !- Hour 14 + 1, !- Hour 15 + 1, !- Hour 16 + 1, !- Hour 17 + 0, !- Hour 18 + 0, !- Hour 19 + 0, !- Hour 20 + 0, !- Hour 21 + 0, !- Hour 22 + 0, !- Hour 23 + 0; !- Hour 24 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:DAILY =========== + + Schedule:Week:Daily, + WeekOn, !- Name + On, !- Sunday Schedule:Day Name + On, !- Monday Schedule:Day Name + On, !- Tuesday Schedule:Day Name + On, !- Wednesday Schedule:Day Name + On, !- Thursday Schedule:Day Name + On, !- Friday Schedule:Day Name + On, !- Saturday Schedule:Day Name + On, !- Holiday Schedule:Day Name + On, !- SummerDesignDay Schedule:Day Name + On, !- WinterDesignDay Schedule:Day Name + On, !- CustomDay1 Schedule:Day Name + On; !- CustomDay2 Schedule:Day Name + + Schedule:Week:Daily, + Weekon moisture, !- Name + Moisture annex 41, !- Sunday Schedule:Day Name + Moisture annex 41, !- Monday Schedule:Day Name + Moisture annex 41, !- Tuesday Schedule:Day Name + Moisture annex 41, !- Wednesday Schedule:Day Name + Moisture annex 41, !- Thursday Schedule:Day Name + Moisture annex 41, !- Friday Schedule:Day Name + Moisture annex 41, !- Saturday Schedule:Day Name + Moisture annex 41, !- Holiday Schedule:Day Name + Moisture annex 41, !- SummerDesignDay Schedule:Day Name + Moisture annex 41, !- WinterDesignDay Schedule:Day Name + Moisture annex 41, !- CustomDay1 Schedule:Day Name + Moisture annex 41; !- CustomDay2 Schedule:Day Name + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR =========== + + Schedule:Year, + On, !- Name + Fraction, !- Schedule Type Limits Name + WeekOn, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + + Schedule:Year, + Moisture on, !- Name + Fraction, !- Schedule Type Limits Name + Weekon moisture, !- Schedule:Week Name 1 + 1, !- Start Month 1 + 1, !- Start Day 1 + 12, !- End Month 1 + 31; !- End Day 1 + +!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT =========== + + Schedule:Compact, + Htg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + Clg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,20; !- Field 3 + + Schedule:Compact, + FanAvailSched, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 + Until: 24:00,1; !- Field 3 + +!- =========== ALL OBJECTS IN CLASS: MATERIAL =========== + + Material, + Concrete, !- Name + Rough, !- Roughness + 0.1, !- Thickness {m} + 1.6, !- Conductivity {W/m-K} + 2300, !- Density {kg/m3} + 850, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Spruce, !- Name + Rough, !- Roughness + 0.012, !- Thickness {m} + 0.09, !- Conductivity {W/m-K} + 455, !- Density {kg/m3} + 1500, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Plywood, !- Name + Rough, !- Roughness + 0.025, !- Thickness {m} + 0.14, !- Conductivity {W/m-K} + 530, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Cellulose ins, !- Name + Rough, !- Roughness + 0.066, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 55, !- Density {kg/m3} + 1880, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + + Material, + Glass Fibre ins, !- Name + Rough, !- Roughness + 1.003, !- Thickness {m} + 0.04, !- Conductivity {W/m-K} + 80, !- Density {kg/m3} + 840, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.7, !- Solar Absorptance + 0.7; !- Visible Absorptance + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING =========== + + WindowMaterial:Glazing, + Glass, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + 0.003175, !- Thickness {m} + 0.86156, !- Solar Transmittance at Normal Incidence + 0.07846, !- Front Side Solar Reflectance at Normal Incidence + 0.07846, !- Back Side Solar Reflectance at Normal Incidence + 0.91325, !- Visible Transmittance at Normal Incidence + 0.082, !- Front Side Visible Reflectance at Normal Incidence + 0.082, !- Back Side Visible Reflectance at Normal Incidence + 0, !- Infrared Transmittance at Normal Incidence + 0.84, !- Front Side Infrared Hemispherical Emissivity + 0.84, !- Back Side Infrared Hemispherical Emissivity + 1.06; !- Conductivity {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GAS =========== + + WindowMaterial:Gas, + Air, !- Name + Air, !- Gas Type + 0.013; !- Thickness {m} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SETTINGS =========== + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Concrete, !- Material Name + 0.76, !- Porosity {m3/m3} + 0.01; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Spruce, !- Material Name + 0.73, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Plywood, !- Material Name + 0.5, !- Porosity {m3/m3} + 0.05; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Cellulose ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.001; !- Initial Water Content Ratio {kg/kg} + + MaterialProperty:HeatAndMoistureTransfer:Settings, + Glass Fibre ins, !- Material Name + 0.95, !- Porosity {m3/m3} + 0.1; !- Initial Water Content Ratio {kg/kg} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SORPTIONISOTHERM =========== + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Cellulose ins, !- Material Name + 5, !- Number of Isotherm Coordinates + 0.25, !- Relative Humidity Fraction 1 {dimensionless} + 2.365, !- Moisture Content 1 {kg/m3} + 0.44, !- Relative Humidity Fraction 2 {dimensionless} + 4.62, !- Moisture Content 2 {kg/m3} + 0.66, !- Relative Humidity Fraction 3 {dimensionless} + 6.655, !- Moisture Content 3 {kg/m3} + 0.86, !- Relative Humidity Fraction 4 {dimensionless} + 11.4125, !- Moisture Content 4 {kg/m3} + 1, !- Relative Humidity Fraction 5 {dimensionless} + 13; !- Moisture Content 5 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Glass Fibre ins, !- Material Name + 6, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 0.748, !- Moisture Content 1 {kg/m3} + 0.4325, !- Relative Humidity Fraction 2 {dimensionless} + 1.04, !- Moisture Content 2 {kg/m3} + 0.6465, !- Relative Humidity Fraction 3 {dimensionless} + 1.24, !- Moisture Content 3 {kg/m3} + 0.8465, !- Relative Humidity Fraction 4 {dimensionless} + 1.56, !- Moisture Content 4 {kg/m3} + 0.948, !- Relative Humidity Fraction 5 {dimensionless} + 1.92, !- Moisture Content 5 {kg/m3} + 0.978, !- Relative Humidity Fraction 6 {dimensionless} + 2.72; !- Moisture Content 6 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Spruce, !- Material Name + 7, !- Number of Isotherm Coordinates + 0.205, !- Relative Humidity Fraction 1 {dimensionless} + 25.935, !- Moisture Content 1 {kg/m3} + 0.4465, !- Relative Humidity Fraction 2 {dimensionless} + 44.3625, !- Moisture Content 2 {kg/m3} + 0.6515, !- Relative Humidity Fraction 3 {dimensionless} + 61.99375, !- Moisture Content 3 {kg/m3} + 0.6545, !- Relative Humidity Fraction 4 {dimensionless} + 61.99375, !- Moisture Content 4 {kg/m3} + 0.83, !- Relative Humidity Fraction 5 {dimensionless} + 87.1325, !- Moisture Content 5 {kg/m3} + 0.9525, !- Relative Humidity Fraction 6 {dimensionless} + 119.665, !- Moisture Content 6 {kg/m3} + 0.956, !- Relative Humidity Fraction 7 {dimensionless} + 120.12; !- Moisture Content 7 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Plywood, !- Material Name + 12, !- Number of Isotherm Coordinates + 0.2015, !- Relative Humidity Fraction 1 {dimensionless} + 3.7125, !- Moisture Content 1 {kg/m3} + 0.203, !- Relative Humidity Fraction 2 {dimensionless} + 3.74, !- Moisture Content 2 {kg/m3} + 0.435, !- Relative Humidity Fraction 3 {dimensionless} + 5.8025, !- Moisture Content 3 {kg/m3} + 0.439, !- Relative Humidity Fraction 4 {dimensionless} + 5.83, !- Moisture Content 4 {kg/m3} + 0.6495, !- Relative Humidity Fraction 5 {dimensionless} + 7.7825, !- Moisture Content 5 {kg/m3} + 0.6515, !- Relative Humidity Fraction 6 {dimensionless} + 7.81, !- Moisture Content 6 {kg/m3} + 0.8215, !- Relative Humidity Fraction 7 {dimensionless} + 10.3675, !- Moisture Content 7 {kg/m3} + 0.825, !- Relative Humidity Fraction 8 {dimensionless} + 10.3675, !- Moisture Content 8 {kg/m3} + 0.9215, !- Relative Humidity Fraction 9 {dimensionless} + 13.1175, !- Moisture Content 9 {kg/m3} + 0.925, !- Relative Humidity Fraction 10 {dimensionless} + 13.1175, !- Moisture Content 10 {kg/m3} + 0.9575, !- Relative Humidity Fraction 11 {dimensionless} + 14.7125, !- Moisture Content 11 {kg/m3} + 0.9605, !- Relative Humidity Fraction 12 {dimensionless} + 15.345; !- Moisture Content 12 {kg/m3} + + MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, + Concrete, !- Material Name + 10, !- Number of Isotherm Coordinates + 0.202, !- Relative Humidity Fraction 1 {dimensionless} + 19.665, !- Moisture Content 1 {kg/m3} + 0.2205, !- Relative Humidity Fraction 2 {dimensionless} + 22.31, !- Moisture Content 2 {kg/m3} + 0.449, !- Relative Humidity Fraction 3 {dimensionless} + 38.4675, !- Moisture Content 3 {kg/m3} + 0.454, !- Relative Humidity Fraction 4 {dimensionless} + 38.4675, !- Moisture Content 4 {kg/m3} + 0.6506, !- Relative Humidity Fraction 5 {dimensionless} + 54.165, !- Moisture Content 5 {kg/m3} + 0.655, !- Relative Humidity Fraction 6 {dimensionless} + 54.165, !- Moisture Content 6 {kg/m3} + 0.824, !- Relative Humidity Fraction 7 {dimensionless} + 72.565, !- Moisture Content 7 {kg/m3} + 0.8725, !- Relative Humidity Fraction 8 {dimensionless} + 85.1, !- Moisture Content 8 {kg/m3} + 0.924, !- Relative Humidity Fraction 9 {dimensionless} + 91.08, !- Moisture Content 9 {kg/m3} + 0.964, !- Relative Humidity Fraction 10 {dimensionless} + 100.28; !- Moisture Content 10 {kg/m3} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SUCTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Concrete, !- Material Name + 5, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.0000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.00000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.00000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Spruce, !- Material Name + 3, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Plywood, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Cellulose ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Suction, + Glass Fibre ins, !- Material Name + 1, !- Number of Suction points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:REDISTRIBUTION =========== + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Concrete, !- Material Name + 5, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 72, !- Moisture Content 2 {kg/m3} + 0.00000000000741, !- Liquid Transport Coefficient 2 {m2/s} + 85, !- Moisture Content 3 {kg/m3} + 0.0000000000253, !- Liquid Transport Coefficient 3 {m2/s} + 100, !- Moisture Content 4 {kg/m3} + 0.000000000101, !- Liquid Transport Coefficient 4 {m2/s} + 118, !- Moisture Content 5 {kg/m3} + 0.000000000128; !- Liquid Transport Coefficient 5 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Spruce, !- Material Name + 3, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0, !- Liquid Transport Coefficient 1 {m2/s} + 20, !- Moisture Content 2 {kg/m3} + 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} + 600, !- Moisture Content 3 {kg/m3} + 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Plywood, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Cellulose ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + + MaterialProperty:HeatAndMoistureTransfer:Redistribution, + Glass Fibre ins, !- Material Name + 1, !- Number of Redistribution points + 0, !- Moisture Content 1 {kg/m3} + 0; !- Liquid Transport Coefficient 1 {m2/s} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:DIFFUSION =========== + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Concrete, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 180; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Spruce, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 130; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Plywood, !- Material Name + 3, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 700, !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + 0.5, !- Relative Humidity Fraction 2 {dimensionless} + 200, !- Water Vapor Diffusion Resistance Factor 2 {dimensionless} + 1, !- Relative Humidity Fraction 3 {dimensionless} + 20; !- Water Vapor Diffusion Resistance Factor 3 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Cellulose ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.5; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + + MaterialProperty:HeatAndMoistureTransfer:Diffusion, + Glass Fibre ins, !- Material Name + 1, !- Number of Data Pairs + 0, !- Relative Humidity Fraction 1 {dimensionless} + 1.2543; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} + +!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:THERMALCONDUCTIVITY =========== + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Concrete, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 1.6, !- Thermal Conductivity 1 {W/m-K} + 180, !- Moisture Content 2 {kg/m3} + 2.602; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Spruce, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.09, !- Thermal Conductivity 1 {W/m-K} + 730, !- Moisture Content 2 {kg/m3} + 0.278; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Plywood, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.1, !- Thermal Conductivity 1 {W/m-K} + 500, !- Moisture Content 2 {kg/m3} + 0.25; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Cellulose ins, !- Material Name + 2, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04, !- Thermal Conductivity 1 {W/m-K} + 950, !- Moisture Content 2 {kg/m3} + 0.583; !- Thermal Conductivity 2 {W/m-K} + + MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, + Glass Fibre ins, !- Material Name + 1, !- Number of Thermal Coordinates + 0, !- Moisture Content 1 {kg/m3} + 0.04; !- Thermal Conductivity 1 {W/m-K} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION =========== + + Construction, + Exterior wall, !- Name + Spruce, !- Outside Layer + Concrete, !- Layer 2 + Cellulose ins, !- Layer 3 + Spruce; !- Layer 4 + + Construction, + Floor, !- Name + Glass Fibre ins, !- Outside Layer + Spruce; !- Layer 2 + + Construction, + Roof, !- Name + Plywood, !- Outside Layer + Cellulose ins, !- Layer 2 + Spruce; !- Layer 3 + + Construction, + Window, !- Name + Glass, !- Outside Layer + Air, !- Layer 2 + Glass; !- Layer 3 + + +!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + World; !- Coordinate System + +!- =========== ALL OBJECTS IN CLASS: ZONE =========== + + Zone, + Test room, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.7, !- Ceiling Height {m} + 129.6; !- Volume {m3} + +!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED =========== + + BuildingSurface:Detailed, + South wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,0,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + East wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== + + + + BuildingSurface:Detailed, + North wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 8,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,6,0, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + West wall, !- Name + WALL, !- Surface Type + Exterior wall, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,6,2.7, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 0,0,0, !- X,Y,Z ==> Vertex 3 {m} + 0,0,2.7; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Floor, !- Name + FLOOR, !- Surface Type + Floor, !- Construction Name + Test room, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,0, !- X,Y,Z ==> Vertex 1 {m} + 0,6,0, !- X,Y,Z ==> Vertex 2 {m} + 8,6,0, !- X,Y,Z ==> Vertex 3 {m} + 8,0,0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + Roof, !- Name + ROOF, !- Surface Type + Roof, !- Construction Name + Test room, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + , !- View Factor to Ground + 4, !- Number of Vertices + 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} + 8,0,2.7, !- X,Y,Z ==> Vertex 2 {m} + 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} + 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} + + + ConstructionProperty:InternalMoistureSource, + InternalMoistureSourceEast, !- Name + Exterior wall, !- Construction Name + 3, !- Moisture Source Present In Layer Number + AirflowNetwork; !- Source Type + + + !- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:SIMULATIONCONTROL =========== + +AirflowNetwork:SimulationControl, + AirFlowModel, !- Name + NoMultizoneOrDistribution, !- AirflowNetwork Control + SurfaceAverageCalculation, !- Wind Pressure Coefficient Type + OpeningHeight, !- Height Selection for Local Wind Pressure Calculation + LowRise, !- Building Type + 500, !- Maximum Number of Iterations {dimensionless} + ZeroNodePressures, !- Initialization Type + 0.0001, !- Relative Airflow Convergence Tolerance {dimensionless} + 0.000001, !- Absolute Airflow Convergence Tolerance {kg/s} + -.5, !- Convergence Acceleration Limit {dimensionless} + , !- Azimuth Angle of Long Axis of Building {deg} + 1, !- Ratio of Building Width Along Short Axis to Width Along Long Axis + No, !- Height Dependence of External Node Temperature + SkylineLU; !- Solver + + +!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:ZONE =========== + +AirflowNetwork:MultiZone:Zone, + Test room, !- Zone Name + NoVent, !- Ventilation Control Mode + On, !- Ventilation Control Zone Temperature Setpoint Schedule Name + , !- Minimum Venting Open Factor {dimensionless} + , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} + 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} + , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} + 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} + , !- Venting Availability Schedule Name + Standard, !- Single Sided Wind Pressure Coefficient Algorithm + 10; !- Facade Width {m} + + +!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE =========== + +AirflowNetwork:MultiZone:Surface, + South wall, !- Surface Name + WallELA, !- Leakage Component Name + , !- External Node Name + 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless} + ZoneLevel, !- Ventilation Control Mode + , !- Ventilation Control Zone Temperature Setpoint Schedule Name + , !- Minimum Venting Open Factor {dimensionless} + , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} + 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} + , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} + 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} + , !- Venting Availability Schedule Name + , !- Occupant Ventilation Control Name + PolygonHeight, !- Equivalent Rectangle Method + 1; !- Equivalent Rectangle Aspect Ratio {dimensionless} + +AirflowNetwork:MultiZone:Surface, + East wall, !- Surface Name + WallELA, !- Leakage Component Name + , !- External Node Name + 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless} + ZoneLevel, !- Ventilation Control Mode + , !- Ventilation Control Zone Temperature Setpoint Schedule Name + , !- Minimum Venting Open Factor {dimensionless} + , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} + 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} + , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} + 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} + , !- Venting Availability Schedule Name + , !- Occupant Ventilation Control Name + PolygonHeight, !- Equivalent Rectangle Method + 1; !- Equivalent Rectangle Aspect Ratio {dimensionless} + +AirflowNetwork:MultiZone:Surface, + North wall, !- Surface Name + WallELA, !- Leakage Component Name + , !- External Node Name + 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless} + ZoneLevel, !- Ventilation Control Mode + , !- Ventilation Control Zone Temperature Setpoint Schedule Name + , !- Minimum Venting Open Factor {dimensionless} + , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} + 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} + , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} + 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} + , !- Venting Availability Schedule Name + , !- Occupant Ventilation Control Name + PolygonHeight, !- Equivalent Rectangle Method + 1; !- Equivalent Rectangle Aspect Ratio {dimensionless} + +AirflowNetwork:MultiZone:Surface, + West wall, !- Surface Name + WallELA, !- Leakage Component Name + , !- External Node Name + 1, !- Window/Door Opening Factor, or Crack Factor {dimensionless} + ZoneLevel, !- Ventilation Control Mode + , !- Ventilation Control Zone Temperature Setpoint Schedule Name + , !- Minimum Venting Open Factor {dimensionless} + , !- Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor {deltaC} + 100, !- Indoor and Outdoor Temperature Difference Upper Limit for Minimum Venting Open Factor {deltaC} + , !- Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor {deltaJ/kg} + 300000, !- Indoor and Outdoor Enthalpy Difference Upper Limit for Minimum Venting Open Factor {deltaJ/kg} + , !- Venting Availability Schedule Name + , !- Occupant Ventilation Control Name + PolygonHeight, !- Equivalent Rectangle Method + 1; !- Equivalent Rectangle Aspect Ratio {dimensionless} + + +!- =========== ALL OBJECTS IN CLASS: AIRFLOWNETWORK:MULTIZONE:SURFACE:EFFECTIVELEAKAGEAREA =========== + +AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea, + WallELA, !- Name + 0.01, !- Effective Leakage Area {m2} + 0.7, !- Discharge Coefficient {dimensionless} + 4, !- Reference Pressure Difference {Pa} + 0.65; !- Air Mass Flow Exponent {dimensionless} + + + +!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== + + FenestrationSurface:Detailed, + South window_west, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 0.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 0.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 3.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 3.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + South window_east, !- Name + WINDOW, !- Surface Type + Window, !- Construction Name + South wall, !- Building Surface Name + , !- Outside Boundary Condition Object + , !- View Factor to Ground + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 4.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} + 4.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} + 7.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} + 7.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTY:CONVECTIONCOEFFICIENTS =========== + + SurfaceProperty:ConvectionCoefficients, + South wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + East wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + North wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + West wall, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Roof, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + + SurfaceProperty:ConvectionCoefficients, + Floor, !- Surface Name + Outside, !- Convection Coefficient 1 Location + value, !- Convection Coefficient 1 Type + 29.3, !- Convection Coefficient 1 {W/m2-K} + , !- Convection Coefficient 1 Schedule Name + , !- Convection Coefficient 1 User Curve Name + Inside, !- Convection Coefficient 2 Location + value, !- Convection Coefficient 2 Type + 8.29, !- Convection Coefficient 2 {W/m2-K} + , !- Convection Coefficient 2 Schedule Name + ; !- Convection Coefficient 2 User Curve Name + +!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTIES:VAPORCOEFFICIENTS =========== + + SurfaceProperties:VaporCoefficients, + South wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + East wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + North wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + West wall, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Floor, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + SurfaceProperties:VaporCoefficients, + Roof, !- Surface Name + Yes, !- Constant External Vapor Transfer Coefficient + 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} + Yes, !- Constant Internal vapor Transfer Coefficient + 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} + + + + + +!- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== + + OtherEquipment, + latent, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + Moisture on, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 352.6, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 1, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + + OtherEquipment, + Other, !- Name + None, !- Fuel Type + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 800, !- Design Level {W} + , !- Power per Zone Floor Area {W/m2} + , !- Power per Person {W/person} + 0, !- Fraction Latent + 0, !- Fraction Radiant + 0; !- Fraction Lost + +!- =========== ALL OBJECTS IN CLASS: ZONEINFILTRATION:DESIGNFLOWRATE =========== + + ZoneInfiltration:DesignFlowRate, + Infiltrate, !- Name + Test room, !- Zone or ZoneList Name + On, !- Schedule Name + AirChanges/Hour, !- Design Flow Rate Calculation Method + 0, !- Design Flow Rate {m3/s} + 0, !- Flow per Zone Floor Area {m3/s-m2} + 0, !- Flow per Exterior Surface Area {m3/s-m2} + 0.5, !- Air Changes per Hour {1/hr} + 1, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:THERMOSTAT =========== + + HVACTemplate:Thermostat, + All Zones, !- Name + Htg-SetP-Sch, !- Heating Setpoint Schedule Name + , !- Constant Heating Setpoint {C} + Clg-SetP-Sch, !- Cooling Setpoint Schedule Name + ; !- Constant Cooling Setpoint {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:ZONE:FANCOIL =========== + + HVACTemplate:Zone:FanCoil, + Test room, !- Zone Name + All Zones, !- Template Thermostat Name + autosize, !- Supply Air Maximum Flow Rate {m3/s} + , !- Zone Heating Sizing Factor + , !- Zone Cooling Sizing Factor + flow/zone, !- Outdoor Air Method + 0, !- Outdoor Air Flow Rate per Person {m3/s} + 0.00944, !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2} + 0, !- Outdoor Air Flow Rate per Zone {m3/s} + FanAvailSched, !- System Availability Schedule Name + 0.7, !- Supply Fan Total Efficiency + 75, !- Supply Fan Delta Pressure {Pa} + 0.9, !- Supply Fan Motor Efficiency + 1, !- Supply Fan Motor in Air Stream Fraction + ChilledWater, !- Cooling Coil Type + , !- Cooling Coil Availability Schedule Name + 14, !- Cooling Coil Design Setpoint {C} + HotWater, !- Heating Coil Type + , !- Heating Coil Availability Schedule Name + 50, !- Heating Coil Design Setpoint {C} + , !- Dedicated Outdoor Air System Name + , !- Zone Cooling Design Supply Air Temperature Input Method + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + , !- Zone Heating Design Supply Air Temperature Input Method + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + , !- Design Specification Outdoor Air Object Name + , !- Design Specification Zone Air Distribution Object Name + , !- Capacity Control Method + , !- Low Speed Supply Air Flow Ratio + , !- Medium Speed Supply Air Flow Ratio + , !- Outdoor Air Schedule Name + , !- Baseboard Heating Type + , !- Baseboard Heating Availability Schedule Name + ; !- Baseboard Heating Capacity {W} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLEDWATERLOOP =========== + + HVACTemplate:Plant:ChilledWaterLoop, + Chilled Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Chiller Plant Operation Scheme Type + , !- Chiller Plant Equipment Operation Schemes Name + , !- Chilled Water Setpoint Schedule Name + 7.22, !- Chilled Water Design Setpoint {C} + ConstantPrimaryNoSecondary, !- Chilled Water Pump Configuration + 179352, !- Primary Chilled Water Pump Rated Head {Pa} + 179352, !- Secondary Chilled Water Pump Rated Head {Pa} + Default, !- Condenser Plant Operation Scheme Type + , !- Condenser Equipment Operation Schemes Name + , !- Condenser Water Temperature Control Type + , !- Condenser Water Setpoint Schedule Name + 29.4, !- Condenser Water Design Setpoint {C} + 179352, !- Condenser Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Chilled Water Setpoint Reset Type + 12.2, !- Chilled Water Setpoint at Outdoor Dry-Bulb Low {C} + 15.6, !- Chilled Water Reset Outdoor Dry-Bulb Low {C} + 6.7, !- Chilled Water Setpoint at Outdoor Dry-Bulb High {C} + 26.7; !- Chilled Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLER =========== + + HVACTemplate:Plant:Chiller, + Main Chiller, !- Name + ElectricReciprocatingChiller, !- Chiller Type + autosize, !- Capacity {W} + 3.2, !- Nominal COP {W/W} + WaterCooled, !- Condenser Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:TOWER =========== + + HVACTemplate:Plant:Tower, + Main Tower, !- Name + SingleSpeed, !- Tower Type + autosize, !- High Speed Nominal Capacity {W} + autosize, !- High Speed Fan Power {W} + autosize, !- Low Speed Nominal Capacity {W} + autosize, !- Low Speed Fan Power {W} + autosize, !- Free Convection Capacity {W} + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:HOTWATERLOOP =========== + + HVACTemplate:Plant:HotWaterLoop, + Hot Water Loop, !- Name + , !- Pump Schedule Name + INTERMITTENT, !- Pump Control Type + Default, !- Hot Water Plant Operation Scheme Type + , !- Hot Water Plant Equipment Operation Schemes Name + , !- Hot Water Setpoint Schedule Name + 82, !- Hot Water Design Setpoint {C} + ConstantFlow, !- Hot Water Pump Configuration + 179352, !- Hot Water Pump Rated Head {Pa} + OutdoorAirTemperatureReset, !- Hot Water Setpoint Reset Type + 82.2, !- Hot Water Setpoint at Outdoor Dry-Bulb Low {C} + -6.7, !- Hot Water Reset Outdoor Dry-Bulb Low {C} + 65.6, !- Hot Water Setpoint at Outdoor Dry-Bulb High {C} + 10; !- Hot Water Reset Outdoor Dry-Bulb High {C} + +!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:BOILER =========== + + HVACTemplate:Plant:Boiler, + Main Boiler, !- Name + HotWaterBoiler, !- Boiler Type + autosize, !- Capacity {W} + 0.8, !- Efficiency + NaturalGas, !- Fuel Type + 1, !- Priority + ; !- Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: SIZING:PARAMETERS =========== + + Sizing:Parameters, + 1, !- Heating Sizing Factor + 1; !- Cooling Sizing Factor + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY =========== + + Output:VariableDictionary,Regular; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE =========== + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; + + Output:Variable,*,Zone Mean Air Temperature,hourly; + + Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; + + Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; + + Output:Variable,*,HAMT Surface Average Water Content Ratio,hourly; + + Output:Variable,*,Zone Air Relative Humidity,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Water Content Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Temperature Cell 32,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 1,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 2,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 3,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 4,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 5,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 6,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 7,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 8,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 9,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 10,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 11,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 12,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 13,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 14,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 15,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 16,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 17,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 18,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 19,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 20,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 21,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 22,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 23,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 24,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 25,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 26,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 27,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 28,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 29,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 30,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 31,hourly; + + Output:Variable,east wall,HAMT Surface Relative Humidity Cell 32,hourly; + +!- =========== ALL OBJECTS IN CLASS: OUTPUT:METER:METERFILEONLY =========== + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Plant,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,monthly; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Facility,runperiod; + + Output:Meter:MeterFileOnly,NaturalGas:Plant,runperiod; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + From 4835de44c33cb710d1d57cbffa8605042805c5bc Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Wed, 24 Mar 2021 22:02:00 -0400 Subject: [PATCH 14/16] Add initial documentation to Engr Ref --- ...mbined-heat-and-moisture-transfer-hamt.tex | 288 +++++++++++++++--- 1 file changed, 252 insertions(+), 36 deletions(-) diff --git a/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex b/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex index df9d09f3a7d..60efd8000af 100644 --- a/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex +++ b/doc/engineering-reference/src/surface-heat-balance-manager-processes/combined-heat-and-moisture-transfer-hamt.tex @@ -2,11 +2,20 @@ \section{Combined Heat and Moisture Transfer (HAMT) Model}\label{combined-heat-a \subsection{Overview}\label{overview-011} -The combined heat and moisture transfer finite (HAMT) solution algorithm is a completely coupled, one-dimensional, finite element, heat and moisture transfer model simulating the movement and storage of heat and moisture in surfaces simultaneously from and to both the internal and external environments. As well as simulating the effects of moisture buffering, HAMT is also be able to provide temperature and moisture profiles through composite building walls, and help to identify surfaces with high surface humidity. +The combined heat and moisture transfer finite (HAMT) solution algorithm is +a completely coupled, one-dimensional, finite element, heat and moisture +transfer model simulating the movement and storage of heat and moisture in +surfaces simultaneously from and to both the internal and external +environments. As well as simulating the effects of moisture buffering, HAMT +is also be able to provide temperature and moisture profiles through +composite building walls, and help to identify surfaces with high surface +humidity. \subsection{HAMT Nomenclature}\label{hamt-nomenclature} -Dependencies on moisture content are indicated by a superscript \(^{w}\), on heat by a superscript \(^{h}\) and vapor pressure by a superscript \(^{v}\). +Dependencies on moisture content are indicated by a superscript \(^w\), +on heat by a superscript \(^h\) and vapor pressure by a superscript +\(^v\). \begin{longtable}[c]{p{1.5in}p{1.0in}p{3.5in}} \caption{Combined Heat and Moisture Transfer Model Nomenclature \label{table:combined-heat-and-moisture-transfer-model}} \tabularnewline @@ -21,7 +30,7 @@ \subsection{HAMT Nomenclature}\label{hamt-nomenclature} \midrule \endhead -T & °C & Temperature \tabularnewline +T & \si{\celsius} & Temperature \tabularnewline RH,$\varphi$ & \%, fraction & Relative humidity \tabularnewline W & $kg/m^3$ & Moisture Content \tabularnewline $\partial{H}/\partial{T}$ & $J/m^3C$ & Moisture dependent heat storage capacity \tabularnewline @@ -57,21 +66,29 @@ \subsection{HAMT Nomenclature}\label{hamt-nomenclature} \subsection{HAMT Model Description}\label{hamt-model-description} -Equations~\ref{eq:HAMTHeatBalanceEquation} and~\ref{eq:HAMTMoistureBalanceEquation} are derived from heat and moisture balance equations and are taken from {[}Künzel, H.M. (1995){]}. They describe a theoretical model for the transfer of heat and moisture through a material. +Equations~\ref{eq:HAMTHeatBalanceEquation} +and~\ref{eq:HAMTMoistureBalanceEquation} are derived from heat and moisture +balance equations and are taken from {[}K\"unzel, H.M. (1995){]}. They +describe a theoretical model for the transfer of heat and moisture through +a material. \begin{equation} \frac{{\partial H}}{{\partial T}}\frac{{\partial T}}{{\partial \tau }} = \frac{\partial }{{\partial x}}\left( {{k^w}\frac{{\partial T}}{{\partial x}}} \right) + {h_v}\frac{\partial }{{\partial x}}\left( {\frac{\delta }{\mu }\frac{{\partial T}}{{\partial x}}} \right) \label{eq:HAMTHeatBalanceEquation} \end{equation} -The three terms in Equation~\ref{eq:HAMTHeatBalanceEquation} describe the storage, transport and generation of heat respectively. +The three terms in Equation~\ref{eq:HAMTHeatBalanceEquation} describe the +storage, transport and generation of heat respectively. \begin{equation} \frac{{\partial w}}{{\partial \phi }}\frac{{\partial \phi }}{{\partial \tau }} = \frac{\partial }{{\partial x}}\left( {{D^w}\frac{{\partial w}}{{\partial \phi }}\frac{{\partial \phi }}{{\partial x}}} \right) + \frac{\partial }{{\partial x}}\left( {\frac{\delta }{\mu }\frac{{\partial T}}{{\partial x}}} \right) \label{eq:HAMTMoistureBalanceEquation} \end{equation} -The three terms in equation describe the storage of moisture, the transport of liquid moisture and the transport of vapor respectively. The equation to calculate the vapor diffusion coefficient in air (\(\delta\)) used in the third term of both equations, is also taken from Künzel, +The three terms in equation describe the storage of moisture, the transport +of liquid moisture and the transport of vapor respectively. The equation to +calculate the vapor diffusion coefficient in air (\(\delta\)) used in the +third term of both equations, is also taken from K\"unzel, \begin{equation} \delta = \frac{{\left( {2 \times {{10}^{ - 7}} \times {{\left( {T + 273.15} \right)}^{0.81}}} \right)}}{{{P_{ambient}}}} @@ -83,29 +100,44 @@ \subsection{HAMT Model Description}\label{hamt-model-description} \frac{{\partial H}}{{\partial T}} = \left( {c\rho + {c^w}w} \right) \end{equation} -The moisture content of the material w and the vapor diffusion resistance factor $\mu$ depend on the relative humidity inside the material. The parameters \(\frac{\partial w}{\partial \phi}\), \({k^w}\) ~and \({D^w}\) are also moisture dependent parameters. +The moisture content of the material w and the vapor diffusion resistance +factor $\mu$ depend on the relative humidity inside the material. The +parameters \(\frac{\partial w}{\partial \phi}\), \(k^w\) ~and \(D^w\) are +also moisture dependent parameters. -The following sections describe how the above equations are used within the HAMT model. +The following sections describe how the above equations are used within +the HAMT model. \subsubsection{Surfaces, Material Layers and Cells}\label{surfaces-material-layers-and-cells} -``Surfaces'' are made of a number of layers of potentially any combination of materials. Each surface is split into its constituent materials and is then split up further into cells through its depth. HAMT will generate no more than 10 cells per material with widths that are thinner near the boundaries of each material where most changes are expected and detail is needed. +``Surfaces'' are made of a number of layers of potentially any combination +of materials. Each surface is split into its constituent materials and is +then split up further into cells through its depth. HAMT will generate no +more than 10 cells per material with widths that are thinner near the +boundaries of each material where most changes are expected and detail is +needed. \subsubsection{Heat Transfer}\label{heat-transfer} -Equation~\ref{eq:HAMTHeatBalanceEquation} can be re-written and used to describe the heat storage and transfer through the i\(^{th}\) cell in a surface. +Equation~\ref{eq:HAMTHeatBalanceEquation} can be re-written and used to +describe the heat storage and transfer through the i\(^{th}\) cell in a +surface. \begin{equation} -\left( {{c_i}{\rho_i} + {c^w}{w_i}} \right)\Delta {V_i}\frac{{T_i^{p + 1} - T_i^p}}{{\Delta \tau }} = \sum\limits_j {k_{ij}^w{A_{ij}}\frac{{T_j^{p + 1} - T_i^{p + 1}}}{{{x_{ij}}}}} + \sum\limits_j {{h_v}\frac{{{\delta_{ij}}}}{{{\mu_{ij}}}}{A_{ij}}\frac{{p_j^{p + 1} - p_i^{p + 1}}}{{{x_{ij}}}}} +\left( {{c_i}{\rho_i} + {c^w}{w_i}} \right)\Delta {V_i}\frac{{T_i^{p + 1} - T_i^p}}{{\Delta \tau }} = \sum\limits_j {k_{ij}^w{A_{ij}}\frac{{T_j^{p + 1} - T_i^{p + 1}}}{x_{ij}}} + \sum\limits_j {{h_v}\frac{{{\delta_{ij}}}}{\mu_{ij}}{A_{ij}}\frac{{p_j^{p + 1} - p_i^{p + 1}}}{x_{ij}}} \end{equation} -In the one dimensional case there are only two adjacent cells each labelled j. The heat generated due to vaporization \(q_i^v\) can be calculated separately. +In the one dimensional case there are only two adjacent cells each labelled +j. The heat generated due to vaporization \(q_i^v\) can be calculated +separately. \begin{equation} -q_i^v = \sum\limits_j {{h_v}\frac{{{\delta_{ij}}}}{{{\mu_{ij}}}}{A_{ij}}\frac{{p_j^{p + 1} - p_i^{p + 1}}}{{{x_{ij}}}}} +q_i^v = \sum\limits_j {{h_v}\frac{{{\delta_{ij}}}}{\mu_{ij}}{A_{ij}}\frac{{p_j^{p + 1} - p_i^{p + 1}}}{x_{ij}}} \end{equation} -Rearranging Equation~\ref{eq:HAMTHeatBalanceEquation} and including other sources of heat (\(q_i^{adds}\)) such as radiation from other surfaces in the calculation gives the temperature in a cell in the next time step as, +Rearranging Equation~\ref{eq:HAMTHeatBalanceEquation} and including other +sources of heat (\(q_i^{adds}\)) such as radiation from other surfaces in +the calculation gives the temperature in a cell in the next time step as, \begin{equation} T_i^{p + 1} = \frac{{\sum\nolimits_j {\frac{{T_j^{p + 1}}}{{R_{ij}^h}}} + q_i^v + q_i^{adds} + C_i^h\frac{{T_i^p}}{{\Delta \tau }}}}{{\frac{{C_i^h}}{{\Delta \tau }} + \sum\nolimits_j {\frac{1}{{R_{ij}^h}}} }} @@ -114,86 +146,270 @@ \subsubsection{Heat Transfer}\label{heat-transfer} where \(C_i^h = \left( {{c_i}{\rho_i} + {c^w}{w_i}} \right)\Delta {V_i}\) is thermal heat capacitance of cell i and \(R_{ij}^h = \frac{x_{ij}}{k_{ij}A_{ij}}\) ~is the thermal resistance between cells i and j. -This equation can be solved using the Gauss-Seidel iteration technique. The i\(^{th}\) cell temperature is calculated whilst the j\(^{th}\) cell temperatures are kept as up to date as possible. The iteration is stopped when the maximum difference between two consecutive calculations in all cells is less than a threshold of 0.002°C. +This equation can be solved using the Gauss-Seidel iteration technique. The +i\(^{th}\) cell temperature is calculated whilst the j\(^{th}\) cell +temperatures are kept as up to date as possible. The iteration is stopped +when the maximum difference between two consecutive calculations in all +cells is less than a threshold of \SI{0.002}{\celsius}. \subsubsection{Moisture Content w}\label{moisture-content-w} -The moisture content (w) of a cell is needed for the calculation of the heat transfer through the cell as it affects the thermal resistance and heat capacitance. The moisture content of cells is calculated from the relative humidity (RH) of the material. The relationship between w and the RH for each material is known as the sorption isotherm and measured data points are entered into EnergyPlus as a series of coordinates. HAMT interpolates between the measurements to obtain the moisture content of a material for any RH value. The sorption isotherm input is via the MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm object and is described in the Input Output Reference document. +The moisture content (w) of a cell is needed for the calculation of the +heat transfer through the cell as it affects the thermal resistance and +heat capacitance. The moisture content of cells is calculated from the +relative humidity (RH) of the material. The relationship between w and the +RH for each material is known as the sorption isotherm and measured data +points are entered into EnergyPlus as a series of coordinates. HAMT +interpolates between the measurements to obtain the moisture content of a +material for any RH value. The sorption isotherm input is via the +MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm object and is +described in the Input Output Reference document. \subsubsection{Porosity P}\label{porosity-p} -The porosity of a material (P) is an input variable and defined as the maximum fraction, by volume, of a material that can be taken up with moisture. It is used to calculate the maximum point on the sorption isotherm curve. ~The porosity is entered for each material via the MaterialProperty:HeatAndMoistureTransfer:Settings object, as described in the Input Output Reference document. +The porosity of a material (P) is an input variable and defined as the +maximum fraction, by volume, of a material that can be taken up with +moisture. It is used to calculate the maximum point on the sorption +isotherm curve. The porosity is entered for each material via the +MaterialProperty:HeatAndMoistureTransfer:Settings object, as described in +the Input Output Reference document. \subsubsection{Moisture Dependant Thermal Conductivity k\(^{w}\)}\label{moisture-dependant-thermal-conductivity-kw} -The thermal conductivity (k\(^{w}\)) of the cell is determined by interpolating between data points of thermal conductivity versus the moisture content of the material, entered into EnergyPlus via the MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity object. The moisture content is determined via the sorption isotherm which gives the moisture content as a function of Relative Humidity. +The thermal conductivity (k\(^{w}\)) of the cell is determined by +interpolating between data points of thermal conductivity versus the +moisture content of the material, entered into EnergyPlus via the +MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity object. The +moisture content is determined via the sorption isotherm which gives the +moisture content as a function of Relative Humidity. -\subsubsection{Moisture Dependant Moisture Diffusion Coefficient μ}\label{moisture-dependant-moisture-diffusion-coefficient-ux3bc} +\subsubsection{Moisture Dependant Moisture Diffusion Coefficient $\mu$}\label{moisture-dependant-moisture-diffusion-coefficient-ux3bc} -This is used in the third term of Equation~\ref{eq:HAMTHeatBalanceEquation} to describe the heat transfer due to vapor movement. It is determined by interpolating between data points of moisture diffusion coefficient versus the moisture content of the material, entered into EnergyPlus via the MaterialProperty:HeatAndMoistureTransfer:Diffusion object. A simple linear interpolation is used to obtain the conductivity between measured points. +This is used in the third term of Equation~\ref{eq:HAMTHeatBalanceEquation} +to describe the heat transfer due to vapor movement. It is determined by +interpolating between data points of moisture diffusion coefficient versus +the moisture content of the material, entered into EnergyPlus via the +MaterialProperty:HeatAndMoistureTransfer:Diffusion object. A simple linear +interpolation is used to obtain the conductivity between measured points. \subsubsection{Moisture Transfer}\label{moisture-transfer} -Moisture, as well as heat, is transported through materials as either liquid (w) or vapor (p). There are two different potentials that control the movement though the material. Liquid transfer is driven by differences in relative humidity whereas vapor transfer is driven by differences in vapor pressure. Materials also have a capacity to store moisture. Equation~\ref{eq:HAMTMoistureBalanceEquation} can be re-written for a discrete cell in a continuous material. +Moisture, as well as heat, is transported through materials as either +liquid (w) or vapor (p). There are two different potentials that control +the movement though the material. Liquid transfer is driven by differences +in relative humidity whereas vapor transfer is driven by differences in +vapor pressure. Materials also have a capacity to store moisture. +Equation~\ref{eq:HAMTMoistureBalanceEquation} can be re-written for a +discrete cell in a continuous material. \begin{equation} \frac{{dw}}{{d{\phi_i}}}\Delta {V_i}\frac{{\phi_i^{p + 1} - \phi_i^p}}{{\Delta \tau }} = \sum\limits_j {{k_{ij}}{A_{ij}}\frac{{\phi_j^{p + 1} - \phi_i^{p + 1}}}{{{x_{ij}}}}} + \sum\limits_j {\frac{{{\delta_{ij}}}}{{{\mu_{ij}}}}{A_{ij}}\frac{{p_j^{p + 1} - p_i^{p + 1}}}{{{x_{ij}}}}} \label{eq:HAMTMoistureBalanceEquationDiscreteCell} \end{equation} -Equation~\ref{eq:HAMTMoistureBalanceEquationDiscreteCell} can be rearranged to provide the relative humidity of the i\(^{th}\) cell in the next time step. +Equation~\ref{eq:HAMTMoistureBalanceEquationDiscreteCell} can be rearranged +to provide the relative humidity of the i\(^{th}\) cell in the next time +step. \begin{equation} \phi_i^{p + 1} = \frac{{\sum\nolimits_j {\frac{{\phi_j^{p + 1}}}{{R_{ij}^w}}} + \sum\nolimits_j {\frac{{p_i^{p + 1}}}{{R_{ij}^v}}} + C_i^w\frac{{\phi_i^p}}{{\Delta \tau }}}}{{\frac{{C_i^w}}{{\Delta \tau }} + \sum\nolimits_j {\frac{1}{{R_{ij}^w}} + \sum\nolimits_j {\frac{{p_i^{sat}}}{{R_{ij}^v}}} } }} \label{eq:RelativeHumidityIthCell} \end{equation} -where \(C_i^w = \frac{dw}{d\phi_{i}}\Delta {V_i}\) ~is the ``Moisture Capacitance'' of cell i, +where \(C_i^w = \frac{dw}{d\phi_{i}}\Delta {V_i}\) ~is the ``Moisture +Capacitance'' of cell i, \begin{equation} R_{ij}^w = \frac{{{x_{ij}}}}{{{A_{ij}}D_{ij}^w\frac{{dw}}{{d\phi }}}} \end{equation} -is the moisture resistance between cells i and j and \(R_{ij}^v = \frac{\mu_{ij}x_{ij}}{A_{ij}\delta_{ij}}\) ~is the vapor resistance~between cells i and j. +is the moisture resistance between cells i and j and +\(R_{ij}^v = \frac{\mu_{ij}x_{ij}}{A_{ij}\delta_{ij}}\) is the vapor +resistance between cells i and j. -Equation~\ref{eq:RelativeHumidityIthCell} can be used together with the heat equation~\ref{eq:TemperatureIthCell} in an alternate step by step fashion to calculate the new temperature and relative humidity profiles for each cell for the next time step. +Equation~\ref{eq:RelativeHumidityIthCell} can be used together with the +heat equation~\ref{eq:TemperatureIthCell} in an alternate step by step +fashion to calculate the new temperature and relative humidity profiles +for each cell for the next time step. -Surfaces with Ground exterior boundary condition assumes saturated air ({100\%} relative humidity) condition to calculate the exterior mass transfer coefficient, which is used to model mass transport through a ground contact surfaces. +Surfaces with Ground exterior boundary condition assumes saturated air +({100\%} relative humidity) condition to calculate the exterior mass +transfer coefficient, which is used to model mass transport through a +ground contact surfaces. \subsubsection{Liquid Transport Coefficient D\(^{w}\)}\label{liquid-transport-coefficient-dw} -The Moisture Dependant Liquid Transport Coefficient is entered as a series of moisture density and liquid transport coefficient data points. There are two different coefficients, one for suction, where the surface is wet due to rain, and one for redistribution where the surface is no longer wet. If the weather file has a rain flag it is used to switch between these two types of coefficient. HAMT-SUCTION and HAMT-REDISTRIBUTION. +The Moisture Dependant Liquid Transport Coefficient is entered as a series +of moisture density and liquid transport coefficient data points. There are +two different coefficients, one for suction, where the surface is wet due +to rain, and one for redistribution where the surface is no longer wet. If +the weather file has a rain flag it is used to switch between these two +types of coefficient. HAMT-SUCTION and HAMT-REDISTRIBUTION. \subsubsection{Moisture Dependent Moisture Capacity \(\frac{\partial w}{\partial \phi}\)}\label{moisture-dependent-moisture-capacity-fracpartial-wpartial-phi} -This is simply the gradient of moisture sorption isotherm at the RH of the material. +This is simply the gradient of moisture sorption isotherm at the RH of the +material. \subsubsection{Convective Heat Transfer}\label{convective-heat-transfer} -The internal and external heat transfer coefficients are used to calculate the thermal resistance of the boundary layer between the zone air and the surface of the surface. They are either supplied by the user via the advanced surface concepts object ``SurfaceProperty:ConvectionCoefficients'' or, if these are not provided, dynamic values are calculated. +The internal and external heat transfer coefficients are used to calculate +the thermal resistance of the boundary layer between the zone air and the +surface of the surface. They are either supplied by the user via the +advanced surface concepts object ``SurfaceProperty:ConvectionCoefficients'' +or, if these are not provided, dynamic values are calculated. \subsubsection{Convective Vapor Transfer}\label{convective-vapor-transfer} -The internal and external vapor transfer coefficients are used to calculate the resistance to vapour transfer of the boundary layer between the zone air and the surface of the surface. They are also either supplied by the user via the advanced surface concept object SurfaceProperties:VaporCoefficients. If these are not provided then dynamic values are calculated based on the convective heat transfer coefficients. +The internal and external vapor transfer coefficients are used to calculate +the resistance to vapour transfer of the boundary layer between the zone +air and the surface of the surface. They are also either supplied by the +user via the advanced surface concept object +SurfaceProperties:VaporCoefficients. If these are not provided then dynamic +values are calculated based on the convective heat transfer coefficients. \subsubsection{Initial Moisture Content}\label{initial-moisture-content} -At the start of an EnergyPlus simulation ``warm up'' days are used to ensure that the temperatures of surfaces come to equilibrium with the environment before the simulation starts proper. Moisture content within some building fabrics can take a very long time to come to equilibrium with its environment and it is therefore necessary to set initial or typical values of moisture content for each material to be used at the start of the simulation. These initial values are entered for each material via the MaterialProperty:HeatAndMoistureTransfer:Settings object as described in the Input Output Reference document. +At the start of an EnergyPlus simulation ``warm up'' days are used to +ensure that the temperatures of surfaces come to equilibrium with the +environment before the simulation starts proper. Moisture content within +some building fabrics can take a very long time to come to equilibrium with +its environment and it is therefore necessary to set initial or typical +values of moisture content for each material to be used at the start of the +simulation. These initial values are entered for each material via the +MaterialProperty:HeatAndMoistureTransfer:Settings object as described in +the Input Output Reference document. \subsubsection{Using the Model}\label{using-the-model} -As an illustration of the use of the Heat and Moisture Transfer (HAMT) model, the material properties for a small sample of six generic materials have been provided in the EnergyPlus Reference DataSets (MoistureMaterials.idf). The properties were synthesised from the Annex 24 database {[}Kumar Kumaran, M. (1996){]}, supplemented, when required, by data from the database of the WUFI model {[}WUFI (1999){]} and are therefore not related to any unique, measured material. Users should consult material property catalogues and other primary sources when the properties of a specific material are required. +As an illustration of the use of the Heat and Moisture Transfer (HAMT) +model, the material properties for a small sample of six generic materials +have been provided in the EnergyPlus Reference DataSets +(MoistureMaterials.idf). The properties were synthesised from the Annex 24 +database {[}Kumar Kumaran, M. (1996){]}, supplemented, when required, by +data from the database of the WUFI model {[}WUFI (1999){]} and are +therefore not related to any unique, measured material. Users should +consult material property catalogues and other primary sources when the +properties of a specific material are required. + +Moisture and heat from the surfaces are used by EnergyPlus to calculate the +room air temperature and moisture content. EnergyPlus with HAMT works best +with as short a time step as possible. However the optimum time step which +gives a good prediction for a short computing time will very much depend +on the nature of the weather and type of building. Buildings with frequent +and large changes in internal and external temperature will need a small +time step, maybe even 60 steps per hour. Slowly evolving temperatures and +relative humidity's will not require such a short time step and 20, or +even 6, steps per hour may be sufficient. + +\subsection{Moisture Source and Transport Mechanisms}\label{hamt-moisture-sources} +Air movements may transport vapor through the envelope and deposit moisture +within envelope components, acting as a source in the HAMT equations. This +may be modeled in on of three ways. The first method is a simple constant +airflow through the building component, the second calculates the air leakage +based on stack pressure and overpressure from mechanical ventilation equipment, +and the third method uses the computed airflow through building components +from the AirflowNetwork calculation in Energy Plus. The mathematical model and +additional test results of this model are described by Antretter and Pallin (2019). + +\subsubsection{User-Defined Constant Airflow } +This method uses a simplistic assumption of constant airflow through an +envelope component. User defined air-flow rates are assumed to be in the range +between \SI{0.07}{\meter\cubed\per\hour\per\meter\squared} +(\IP{0.0038}{\CFM\per\ft\squared}) for very airtight buildings to +\SI{0.33}{\meter\cubed\per\hour\per\meter\squared} +(\IP{0.018}{\CFM\per\ft\squared}) for buildings without requirements on their + air-tightness. the air leakage ratio can be expressed as +% +\begin{equation}\label{ALRconstant} +ALR = \text{constant}. +\end{equation} +% +The airflow depends on dynamic wind induced pressure differences and on +differences in stack effect due to varying temperature differences between +outside and inside. Also, mechanical ventilation equipment does often operate +intermittently, causing dynamic changes in pressure differences and therefore +airflow through leaks. However, a simple assumption like a constant airflow +allows for assessment of the impact of different air-tightness levels on the +moisture conditions in building envelopes and related risks. + +\subsubsection{Calculated Airflow Based on Stack Pressure and Over-Pressure from Mechanical Ventilation Equipment} +A dynamic model by K\"unzel, Zirkelbach and Schafaczek (K\"unzel et al., 2012) + takes in to account the pressure difference due to stack effect only. This is due + to pressure differences due to wind are difficult to determine, due to the erratic + nature of wind and the dependence of the stagnation pressure on building + specifics and its surroundings. Also, when wind-induced pressure differences + peak, the increased flow rate may switch the ``moisture leak'' into an +``energy leak''. + +K\"unzel et al. (2012) used Equation~\ref{hamt-stack-and-over-press} for calculating +the pressure difference due to the stack effect with the assumption of a neutral +pressure level in the middle of the connected airspace. +% +\begin{equation}\label{hamt-stack-and-over-press} +\Delta P_{stack}= \rho ^{ext}\frac{T^{ext}-T^{int}}{T^{int}} g \frac{h}{2} +\end{equation} +% +They have also added a pressure difference due to overpressure from a +mechanical ventilation system as +% +\begin{equation}\label{hamt-over-press} +\Delta P_{mech}=-\Delta P^{mech}. +\end{equation} +% +Equations~ref{hamt-stack-and-over-press} and \ref{hamt-over-press} can be +superimposed to give the total pressure difference due to stack effect and +mechanical system overpressure as + +\begin{equation} +\Delta P=\rho ^{ext} \frac{T^{ext}-T^{int}}{T^{int}} g \frac{h}{2} -\Delta P^{mech}. +\end{equation} + +This may be further simplified by assuming laminar flow (Maref et al. 2009): + +\begin{equation}\label{hamt-k-dp} +ALR = K \Delta P. +\end{equation} + +According to K\"unzel et al. (2012) the components moisture specific air +permeance $K$ can range from +\SI{0.004}{\meter\cubed\per\meter\squared\per\hour\per\pascal} +(\IP{0.00022}{\CFM\per\ft\squared\per\pascal}) for very airtight buildings +to \SI{0.06}{\meter\cubed\per\meter\squared\per\hour\per\pascal} +(\IP{0.0033}{\CFM\per\ft\squared\per\pascal}) for standard construction. +K\"unzel et al. (2012) also assumes that moisture leaks are represented by +approximately 10\% of the total component air permeance. -Moisture and heat from the surfaces are used by EnergyPlus to calculate the room air temperature and moisture content. EnergyPlus with HAMT works best with as short a time step as possible. However the optimum time step which gives a good prediction for a short computing time will very much depend on the nature of the weather and type of building. Buildings with frequent and large changes in internal and external temperature will need a small time step, maybe even 60 steps per hour. Slowly evolving temperatures and relative humidity's will not require such a short time step and 20, or even 6, steps per hour may be sufficient. +\subsubsection{Airflow from Multizone AirflowNetwork} +To be added. \subsection{References}\label{references-012} -Künzel, H.M. (1995) Simultaneous Heat and Moisture Transport in Building Components. One- and two-dimensional calculation using simple parameters. IRB Verlag 1995 +K\"unzel, H.M. (1995) Simultaneous Heat and Moisture Transport in Building +Components. One- and two-dimensional calculation using simple parameters. +IRB Verlag 1995 Holman, J.P. (2002) Heat Transfer, Ninth Edition. McGraw-Hill -Winterton, R.H.S. (1997) Heat Transfer. (Oxford Chemistry Primers; 50) Oxford University Press +Winterton, R.H.S. (1997) Heat Transfer. (Oxford Chemistry Primers; 50) +Oxford University Press Kumar Kumaran, M. (1996) IEA ANNEX 24, Final Report, Volume 3 -WUFI (1999) version 2.2 Simultaneous Heat and Moisture Transport in Building components. Fraunhofer IBP, Holzkirchen, Germany +WUFI (1999) version 2.2 Simultaneous Heat and Moisture Transport in +Building components. Fraunhofer IBP, Holzkirchen, Germany + +Antretter, F., Pallin, S. B. (2019). Modelling moisture sources due to air +leakage with the HAMT extension for EnergyPlus. Oak Ridge National Lab (ORNL), +Oak Ridge, TN (United States). + +K\"unzel, H.M. (Ed.), 2012. Modeling Air Leakage in Hygrothermal Envelope +Simulation. + +K\"unzel, H.M., Zirkelbach, D., Schafaczek, B., 2012. Modelling the Effect of Air +Leakage in Hygrothermal Envelope Simulation. Proceedings of the BEST 3, 2-4. + +Maref, W., Elmahdy, A., Swinton, M., Tariku, F., 2009. Assessment of energy rating of PU spray foam walls. NRC-CNRC report NRCC-50847. + +Sherman, M.H., 1987. Estimation of infiltration from leakage and climate indicators. Energy and Buildings 10 (1), 81-86.10.1016/0378-7788(87)90008-9. + From ad2036bfbd0d8ace96efd1da2cc25900472efc1a Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Tue, 16 Nov 2021 15:28:13 -0500 Subject: [PATCH 15/16] Reformat yet again --- src/EnergyPlus/HeatBalanceHAMTManager.cc | 65 +++++++++++++----------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.cc b/src/EnergyPlus/HeatBalanceHAMTManager.cc index 5eb75ab46dc..19d95e67308 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.cc +++ b/src/EnergyPlus/HeatBalanceHAMTManager.cc @@ -47,13 +47,14 @@ // C++ Headers #include -#include #include +#include // ObjexxFCL Headers #include #include // EnergyPlus Headers +#include // for internal moisture source type 3 #include #include #include @@ -71,7 +72,6 @@ #include #include #include -#include // for internal moisture source type 3 namespace EnergyPlus { @@ -118,7 +118,7 @@ namespace HeatBalanceHAMTManager { using DataHeatBalSurface::MinSurfaceTempLimitBeforeFatal; using namespace DataHeatBalance; using namespace Psychrometrics; - + void ManageHeatBalHAMT(EnergyPlusData &state, int const SurfNum, Real64 &SurfTempInTmp, Real64 &TempSurfOutTmp) { @@ -260,9 +260,9 @@ namespace HeatBalanceHAMTManager { state.dataInputProcessing->inputProcessor->getObjectDefMaxArgs(state, cHAMTObject7, NumParams, NumAlphas, NumNums); MaxAlphas = max(MaxAlphas, NumAlphas); MaxNums = max(MaxNums, NumNums); - //inputProcessor->getObjectDefMaxArgs(state, cHAMTObject8, NumParams, NumAlphas, NumNums); - //MaxAlphas = max(MaxAlphas, NumAlphas); - //MaxNums = max(MaxNums, NumNums); + // inputProcessor->getObjectDefMaxArgs(state, cHAMTObject8, NumParams, NumAlphas, NumNums); + // MaxAlphas = max(MaxAlphas, NumAlphas); + // MaxNums = max(MaxNums, NumNums); ErrorsFound = false; @@ -623,19 +623,17 @@ namespace HeatBalanceHAMTManager { // Internal Moisture Source auto instances = state.dataInputProcessing->inputProcessor->epJSON.find(cHAMTObject8); - if (instances != state.dataInputProcessing->inputProcessor->epJSON.end()) { int item = 0; auto &instancesValue = instances.value(); - + for (auto instance = instancesValue.begin(); instance != instancesValue.end(); ++instance) { auto const &fields = instance.value(); auto const &thisObjectName = UtilityRoutines::MakeUPPERCase(instance.key()); std::string construction_name{UtilityRoutines::MakeUPPERCase(std::string(fields.at("construction_name")))}; - int construction_index = UtilityRoutines::FindItemInList(construction_name, - state.dataConstruction->Construct); + int construction_index = UtilityRoutines::FindItemInList(construction_name, state.dataConstruction->Construct); if (construction_index == 0) { ShowSevereError(state, @@ -665,7 +663,8 @@ namespace HeatBalanceHAMTManager { if (found == fields.end()) { ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Air Flow Rate\" is blank"); ShowContinueError(state, - "No user defined input for air flow through component found. Internal Moisture Source Type \"UserDefined\" requires this input."); + "No user defined input for air flow through component found. Internal Moisture Source Type \"UserDefined\" " + "requires this input."); ErrorsFound = true; continue; } else { @@ -678,7 +677,8 @@ namespace HeatBalanceHAMTManager { if (found == fields.end()) { ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Stack Height\" is blank"); ShowContinueError(state, - "No user defined input for stack height found. Internal Moisture Source Type \"StackAndOverPressure\" requires this input."); + "No user defined input for stack height found. Internal Moisture Source Type \"StackAndOverPressure\" " + "requires this input."); ErrorsFound = true; continue; } else { @@ -689,7 +689,8 @@ namespace HeatBalanceHAMTManager { if (found == fields.end()) { ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Component Air Permeance\" is blank"); ShowContinueError(state, - "No user defined input for component air permeance found. Internal Moisture Source Type \"StackAndOverPressure\" requires this input."); + "No user defined input for component air permeance found. Internal Moisture Source Type " + "\"StackAndOverPressure\" requires this input."); ErrorsFound = true; continue; } else { @@ -700,7 +701,8 @@ namespace HeatBalanceHAMTManager { if (found == fields.end()) { ShowSevereError(state, cHAMTObject8 + ' ' + thisObjectName + " \"Mechanical Ventilation Overpressure\" is blank"); ShowContinueError(state, - "No user defined input for mechanical ventilation overpressure found. Internal Moisture Source Type \"StackAndOverPressure\" requires this input."); + "No user defined input for mechanical ventilation overpressure found. Internal Moisture Source Type " + "\"StackAndOverPressure\" requires this input."); ErrorsFound = true; continue; } else { @@ -1269,7 +1271,7 @@ namespace HeatBalanceHAMTManager { cells(cid).rhp1 = state.dataMaterial->Material(matid).irh; cells(cid).rhp2 = state.dataMaterial->Material(matid).irh; - if (cells(cid).source_id!=-1) { + if (cells(cid).source_id != -1) { if (sources(cells(cid).source_id).type == InternalMoistureSource::Type::AirflowNetwork) { if (!sources(cells(cid).source_id).afn_id) { if (state.dataAirflowNetwork->AirflowNetworkNumOfSurfaces) { @@ -1433,18 +1435,21 @@ namespace HeatBalanceHAMTManager { matid = cells(cid).matid; int imsid = cells(cid).source_id; - if (sources(imsid).type == InternalMoistureSource::Type::UserDefined) { // user defined input of the air flow + if (sources(imsid).type == InternalMoistureSource::Type::UserDefined) { // user defined input of the air flow sources(imsid).moist_airflow = sources(imsid).moist_airflow_input; - } else if (sources(imsid).type == InternalMoistureSource::Type::StackAndOverPressure) { // infiltration model according to Kuenzel, extended with ventilation pressure + } else if (sources(imsid).type == + InternalMoistureSource::Type::StackAndOverPressure) { // infiltration model according to Kuenzel, extended with + // ventilation pressure sources(imsid).delta_pressure = cells(Extcell(sid)).density * - ((cells(Extcell(sid)).temp - cells(Intcell(sid)).temp) / cells(Intcell(sid)).temp) * - DataGlobalConstants::GravityConstant * (sources(imsid).stack_height / 2) - sources(imsid).mechanical_ventilation_overpressure; + ((cells(Extcell(sid)).temp - cells(Intcell(sid)).temp) / cells(Intcell(sid)).temp) * + DataGlobalConstants::GravityConstant * (sources(imsid).stack_height / 2) - + sources(imsid).mechanical_ventilation_overpressure; sources(imsid).moist_airflow = std::abs(sources(imsid).delta_pressure) * (sources(imsid).component_air_permeance) / 3600; - } else if (sources(imsid).type == InternalMoistureSource::Type::AirflowNetwork) { // air flow through component from multizone airflow network + } else if (sources(imsid).type == + InternalMoistureSource::Type::AirflowNetwork) { // air flow through component from multizone airflow network if (sources(imsid).afn_id) { - sources(imsid).moist_airflow = - state.dataAirflowNetwork->AirflowNetworkLinkSimu(sources(imsid).afn_id).VolFLOW / - state.dataSurface->Surface(sources(imsid).surface_id).Area; + sources(imsid).moist_airflow = state.dataAirflowNetwork->AirflowNetworkLinkSimu(sources(imsid).afn_id).VolFLOW / + state.dataSurface->Surface(sources(imsid).surface_id).Area; } else { sources(imsid).moist_airflow = 0; } @@ -1452,13 +1457,14 @@ namespace HeatBalanceHAMTManager { sources(imsid).moist_airflow = 0.0; } - if (sources(imsid).moist_airflow >= 0) { - internal_moisture_source = sources(imsid).moist_airflow * - (cells(IntConcell(sid)).rh * SatAbsHum(state, cells(IntConcell(sid)).temp) - SatAbsHum(state, cells(cid).temp)); + internal_moisture_source = + sources(imsid).moist_airflow * + (cells(IntConcell(sid)).rh * SatAbsHum(state, cells(IntConcell(sid)).temp) - SatAbsHum(state, cells(cid).temp)); } else { - internal_moisture_source = -sources(imsid).moist_airflow * - (cells(IntConcell(sid)).rh * SatAbsHum(state, cells(IntConcell(sid)).temp) - SatAbsHum(state, cells(cid).temp)); + internal_moisture_source = + -sources(imsid).moist_airflow * + (cells(IntConcell(sid)).rh * SatAbsHum(state, cells(IntConcell(sid)).temp) - SatAbsHum(state, cells(cid).temp)); } if (internal_moisture_source > 0) { @@ -1674,7 +1680,8 @@ namespace HeatBalanceHAMTManager { // Calculate the RH for the next time step denominator = (phioosum + vpoosum * cells(cid).vpsat + wcap / state.dataHeatBalHAMTMgr->deltat); if (denominator != 0.0) { - cells(cid).rhp1 = (phiorsum + vporsum + cells(cid).Wadds + (wcap * cells(cid).rh) / state.dataHeatBalHAMTMgr->deltat) / denominator; + cells(cid).rhp1 = + (phiorsum + vporsum + cells(cid).Wadds + (wcap * cells(cid).rh) / state.dataHeatBalHAMTMgr->deltat) / denominator; } else { ShowSevereError(state, "CalcHeatBalHAMT: demoninator in calculating RH is zero. Check material properties for accuracy."); ShowContinueError(state, "...Problem occurs in Material=\"" + state.dataMaterial->Material(cells(cid).matid).Name + "\"."); From 02dd80d4bdd17c2cbe1b51b949258b0e9a77e600 Mon Sep 17 00:00:00 2001 From: "Jason W. DeGraw" Date: Tue, 16 Nov 2021 15:58:06 -0500 Subject: [PATCH 16/16] More clean up, remove mistakenly added files --- src/EnergyPlus/AirflowNetwork/src/Solver.cpp | 1 - src/EnergyPlus/HeatBalanceHAMTManager.hh | 34 +- src/EnergyPlus/UtilityRoutines.cc | 4 +- testfiles/eplusout.audit | 0 testfiles/eplusout.bnd | 0 testfiles/eplusout.eio | 83 - testfiles/eplusout.end | 1 - testfiles/eplusout.err | 0 testfiles/eplusout.eso | 63 - testfiles/eplusout.expidf | 2510 ------------------ testfiles/eplusout.mtd | 0 testfiles/eplusout.mtr | 0 testfiles/eplusout.shd | 46 - testfiles/epluszsz.csv | 0 14 files changed, 26 insertions(+), 2716 deletions(-) delete mode 100644 testfiles/eplusout.audit delete mode 100644 testfiles/eplusout.bnd delete mode 100644 testfiles/eplusout.eio delete mode 100644 testfiles/eplusout.end delete mode 100644 testfiles/eplusout.err delete mode 100644 testfiles/eplusout.eso delete mode 100644 testfiles/eplusout.expidf delete mode 100644 testfiles/eplusout.mtd delete mode 100644 testfiles/eplusout.mtr delete mode 100644 testfiles/eplusout.shd delete mode 100644 testfiles/epluszsz.csv diff --git a/src/EnergyPlus/AirflowNetwork/src/Solver.cpp b/src/EnergyPlus/AirflowNetwork/src/Solver.cpp index ca6208b51c3..d01dca8a259 100644 --- a/src/EnergyPlus/AirflowNetwork/src/Solver.cpp +++ b/src/EnergyPlus/AirflowNetwork/src/Solver.cpp @@ -56,7 +56,6 @@ #include #include #include -#include #include "../../Data/EnergyPlusData.hh" diff --git a/src/EnergyPlus/HeatBalanceHAMTManager.hh b/src/EnergyPlus/HeatBalanceHAMTManager.hh index a7af44d3f1c..f6ea9896815 100644 --- a/src/EnergyPlus/HeatBalanceHAMTManager.hh +++ b/src/EnergyPlus/HeatBalanceHAMTManager.hh @@ -115,10 +115,10 @@ namespace HeatBalanceHAMTManager { // Default Constructor subcell() - : matid(-1), sid(-1), layer_id(-1), source_id(-1), Qadds(0.0), Wadds(0.0), density(-1.0), wthermalc(0.0), spech(0.0), htc(-1.0), vtc(-1.0), - mu(-1.0), volume(0.0), temp(0.0), tempp1(0.0), tempp2(0.0), wreport(0.0), water(0.0), vp(0.0), vpp1(0.0), vpsat(0.0), rh(0.1), - rhp1(0.1), rhp2(0.1), rhp(10.0), dwdphi(-1.0), dw(-1.0), origin(3, 0.0), length(3, 0.0), overlap(6, 0.0), dist(6, 0.0), adjs(6, 0), - adjsl(6, 0) + : matid(-1), sid(-1), layer_id(-1), source_id(-1), Qadds(0.0), Wadds(0.0), density(-1.0), wthermalc(0.0), spech(0.0), htc(-1.0), + vtc(-1.0), mu(-1.0), volume(0.0), temp(0.0), tempp1(0.0), tempp2(0.0), wreport(0.0), water(0.0), vp(0.0), vpp1(0.0), vpsat(0.0), + rh(0.1), rhp1(0.1), rhp2(0.1), rhp(10.0), dwdphi(-1.0), dw(-1.0), origin(3, 0.0), length(3, 0.0), overlap(6, 0.0), dist(6, 0.0), + adjs(6, 0), adjsl(6, 0) { } }; @@ -130,8 +130,13 @@ namespace HeatBalanceHAMTManager { int surface_id; // Surface id int layer_id; // Layer id - //int SourceType; // (1 = air flow input; 2 = infiltration model (Kuenzel); 3 = multi zone air flow model) - enum class Type { UserDefined = 1, StackAndOverPressure, AirflowNetwork}; + // int SourceType; // (1 = air flow input; 2 = infiltration model (Kuenzel); 3 = multi zone air flow model) + enum class Type + { + UserDefined = 1, + StackAndOverPressure, + AirflowNetwork + }; Type type; // SourceType == 1: Air Flow input @@ -148,11 +153,20 @@ namespace HeatBalanceHAMTManager { Real64 moist_airflow; - InternalMoistureSource(int id=-1, int surface_id=-1, int layer_id=-1, Type type=Type::UserDefined, Real64 moist_airflow_input=0.0, Real64 stack_height=0.0, - Real64 component_air_permeance=0.0, Real64 mechanical_ventilation_overpressure=0.0, Real64 delta_pressure=0.0, int afn_id=0, Real64 moist_airflow=0.0) + InternalMoistureSource(int id = -1, + int surface_id = -1, + int layer_id = -1, + Type type = Type::UserDefined, + Real64 moist_airflow_input = 0.0, + Real64 stack_height = 0.0, + Real64 component_air_permeance = 0.0, + Real64 mechanical_ventilation_overpressure = 0.0, + Real64 delta_pressure = 0.0, + int afn_id = 0, + Real64 moist_airflow = 0.0) : id(id), surface_id(surface_id), layer_id(layer_id), type(type), moist_airflow_input(moist_airflow_input), stack_height(stack_height), - component_air_permeance(component_air_permeance), mechanical_ventilation_overpressure(mechanical_ventilation_overpressure), delta_pressure(delta_pressure), - afn_id(afn_id), moist_airflow(moist_airflow) + component_air_permeance(component_air_permeance), mechanical_ventilation_overpressure(mechanical_ventilation_overpressure), + delta_pressure(delta_pressure), afn_id(afn_id), moist_airflow(moist_airflow) { } }; diff --git a/src/EnergyPlus/UtilityRoutines.cc b/src/EnergyPlus/UtilityRoutines.cc index 74acae5e037..0c8aaf6888c 100644 --- a/src/EnergyPlus/UtilityRoutines.cc +++ b/src/EnergyPlus/UtilityRoutines.cc @@ -195,7 +195,7 @@ namespace UtilityRoutines { // If you need case insensitivity use FindItem. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - + for (int Count = 1; Count <= NumItems; ++Count) { if (String == ListOfItems(Count)) return Count; } @@ -219,7 +219,7 @@ namespace UtilityRoutines { // If you need case insensitivity use FindItem. // SUBROUTINE LOCAL VARIABLE DECLARATIONS: - + for (int Count = 1; Count <= NumItems; ++Count) { if (String == ListOfItems(Count)) return Count; } diff --git a/testfiles/eplusout.audit b/testfiles/eplusout.audit deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/testfiles/eplusout.bnd b/testfiles/eplusout.bnd deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/testfiles/eplusout.eio b/testfiles/eplusout.eio deleted file mode 100644 index a4d55730555..00000000000 --- a/testfiles/eplusout.eio +++ /dev/null @@ -1,83 +0,0 @@ -Program Version,EnergyPlus, Version 9.4.0-9265a144d4, YMD=2021.03.08 15:55 -! , Version ID - Version, 9.4 -! , #TimeSteps, Minutes per TimeStep {minutes} - Timesteps per Hour, 20, 3 -! , Minimum System TimeStep {minutes}, Max HVAC Iterations, Minimum Plant Iterations, Maximum Plant Iterations - System Convergence Limits, 1, 20, 2, 8 -! , Do Zone Sizing, Do System Sizing, Do Plant Sizing, Do Design Days, Do Weather Simulation, Do HVAC Sizing Simulation - Simulation Control, Yes, Yes, No, Yes, Yes, No -! , Use Coil Direct Simulation, Zone Radiant Exchange Algorithm, Override Mode, Number of Timestep In Hour, Force Euler Method, Minimum Number of Warmup Days, Force Suppress All Begin Environment Resets, Minimum System Timestep, MaxZoneTempDiff, MaxAllowedDelTemp - Performance Precision Tradeoffs, No, ScriptF, Normal, 20, No, 1, No, 1.0, 0.300, 2.0000E-003 -! , Tolerance for Time Heating Setpoint Not Met, Tolerance for Zone Cooling Setpoint Not Met Time - Output Reporting Tolerances, 0.200, 0.200, -! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} - Site:GroundTemperature:BuildingSurface, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00, 18.00 -! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} - Site:GroundTemperature:FCfactorMethod, -1.89, -3.06, -0.99, 2.23, 10.68, 17.20, 21.60, 22.94, 20.66, 15.60, 8.83, 2.56 -! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} - Site:GroundTemperature:Shallow, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00, 13.00 -! ,Jan{C},Feb{C},Mar{C},Apr{C},May{C},Jun{C},Jul{C},Aug{C},Sep{C},Oct{C},Nov{C},Dec{C} - Site:GroundTemperature:Deep, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00, 16.00 -! ,Jan{dimensionless},Feb{dimensionless},Mar{dimensionless},Apr{dimensionless},May{dimensionless},Jun{dimensionless},Jul{dimensionless},Aug{dimensionless},Sep{dimensionless},Oct{dimensionless},Nov{dimensionless},Dec{dimensionless} - Site:GroundReflectance, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20 -! , Normal, Daylighting {dimensionless} - Site:GroundReflectance:SnowModifier, 1.000, 1.000 -! ,Jan{dimensionless},Feb{dimensionless},Mar{dimensionless},Apr{dimensionless},May{dimensionless},Jun{dimensionless},Jul{dimensionless},Aug{dimensionless},Sep{dimensionless},Oct{dimensionless},Nov{dimensionless},Dec{dimensionless} - Site:GroundReflectance:Snow, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20 -! ,Jan{dimensionless},Feb{dimensionless},Mar{dimensionless},Apr{dimensionless},May{dimensionless},Jun{dimensionless},Jul{dimensionless},Aug{dimensionless},Sep{dimensionless},Oct{dimensionless},Nov{dimensionless},Dec{dimensionless} - Site:GroundReflectance:Snow:Daylighting, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20 -! ,Wind Sensor Height Above Ground {m},Wind Speed Profile Exponent {},Wind Speed Profile Boundary Layer Thickness {m},Air Temperature Sensor Height Above Ground {m},Wind Speed Modifier Coefficient-Internal,Temperature Modifier Coefficient-Internal -Environment:Weather Station,10.000,0.140,270.000,1.500,1.586,9.750E-003 -! , Location Name, Latitude {N+/S- Deg}, Longitude {E+/W- Deg}, Time Zone Number {GMT+/-}, Elevation {m}, Standard Pressure at Elevation {Pa}, Standard RhoAir at Elevation -Site:Location,Chicago Ohare Intl Ap IL USA TMY3 WMO#=725300,41.98,-87.92,-6.00,201.00,98934,1.1759 -! ,Calculation Method{},Water Mains Temperature Schedule Name{},Annual Average Outdoor Air Temperature{C},Maximum Difference In Monthly Average Outdoor Air Temperatures{deltaC},Fixed Default Water Mains Temperature{C} -Site Water Mains Temperature Information,FixedDefault,NA,NA,NA,10.0 -! , Building Name,North Axis {deg},Terrain, Loads Convergence Tolerance Value,Temperature Convergence Tolerance Value, Solar Distribution,Maximum Number of Warmup Days,Minimum Number of Warmup Days - Building Information,HAMT test 1,0.000,Suburbs,4.00000E-002,0.40000,MinimalShadowing,25,6 -! , Algorithm {Simple | TARP | CeilingDiffuser | AdaptiveConvectionAlgorithm} -Inside Convection Algorithm,TARP -! , Algorithm {SimpleCombined | TARP | MoWitt | DOE-2 | AdaptiveConvectionAlgorithm} -Outside Convection Algorithm,DOE-2 -! , Value {Anisotropic} -Sky Radiance Distribution,Anisotropic -! , Value {ThirdOrderBackwardDifference | AnalyticalSolution | EulerMethod} - Zone Air Solution Algorithm, ThirdOrderBackwardDifference -! , Simulation {Yes/No}, Carbon Dioxide Concentration - Zone Air Carbon Dioxide Balance Simulation, No,N/A -! , Simulation {Yes/No}, Generic Contaminant Concentration - Zone Air Generic Contaminant Balance Simulation, No,N/A -! , Enforce Mass Balance, Adjust Zone Mixing, Adjust Zone Infiltration {AddInfiltration | AdjustInfiltration | None}, Infiltration Zones {MixingSourceZonesOnly | AllZones} - Zone Air Mass Flow Balance Simulation, No,N/A,N/A,N/A -! , Value {RegulaFalsi | Bisection | BisectionThenRegulaFalsi | RegulaFalsiThenBisection} - HVACSystemRootFindingAlgorithm, RegulaFalsi -! ,Wind Speed Profile Exponent {},Wind Speed Profile Boundary Layer Thickness {m},Air Temperature Gradient Coefficient {K/m} -Environment:Site Atmospheric Variation,0.220,370.000,6.500000E-003 -! ,Starting Corner,Vertex Input Direction,Coordinate System,Daylight Reference Point Coordinate System,Rectangular (Simple) Surface Coordinate System - Surface Geometry,UpperLeftCorner,Counterclockwise,WorldCoordinateSystem,RelativeCoordinateSystem,RelativeToZoneOrigin -! , Value {CTF - ConductionTransferFunction | EMPD - MoisturePenetrationDepthConductionTransferFunction | CondFD - ConductionFiniteDifference | HAMT - CombinedHeatAndMoistureFiniteElement} - Description,Inside Surface Max Temperature Limit{C}, Surface Convection Coefficient Lower Limit {W/m2-K}, Surface Convection Coefficient Upper Limit {W/m2-K} -Surface Heat Transfer Algorithm, HAMT - CombinedHeatAndMoistureFiniteElement,200,0.10,1000.0 -! , Number of Fixed Detached Shades, Number of Building Detached Shades, Number of Attached Shades - Shading Summary,0,0,0 -! , Number of Zones, Number of Zone Surfaces, Number of SubSurfaces - Zone Summary,1,8,2 -! ,Zone Name,North Axis {deg},Origin X-Coordinate {m},Origin Y-Coordinate {m},Origin Z-Coordinate {m},Centroid X-Coordinate {m},Centroid Y-Coordinate {m},Centroid Z-Coordinate {m},Type,Zone Multiplier,Zone List Multiplier,Minimum X {m},Maximum X {m},Minimum Y {m},Maximum Y {m},Minimum Z {m},Maximum Z {m},Ceiling Height {m},Volume {m3},Zone Inside Convection Algorithm {Simple-Detailed-CeilingDiffuser-TrombeWall},Zone Outside Convection Algorithm {Simple-Detailed-Tarp-MoWitt-DOE-2-BLAST}, Floor Area {m2},Exterior Gross Wall Area {m2},Exterior Net Wall Area {m2},Exterior Window Area {m2}, Number of Surfaces, Number of SubSurfaces, Number of Shading SubSurfaces, Part of Total Building Area - Zone Information, TEST ROOM,0.0,0.00,0.00,0.00,4.00,3.00,1.35,1,1,1,0.00,8.00,0.00,6.00,0.00,2.70,2.70,129.60,TARP,DOE-2,48.00,75.60,63.60,12.00,6,2,0,Yes -! ,Zone Name, Floor Area {m2},# Occupants,Area per Occupant {m2/person},Occupant per Area {person/m2},Interior Lighting {W/m2},Electric Load {W/m2},Gas Load {W/m2},Other Load {W/m2},Hot Water Eq {W/m2},Steam Equipment {W/m2},Sum Loads per Area {W/m2},Outdoor Controlled Baseboard Heat - Zone Internal Gains Nominal, TEST ROOM,48.00,0.0,N/A,0.000,0.000,0.000,0.000,24.013,0.000,0.000,24.013,No -! ,Name,Schedule Name,Zone Name,Zone Floor Area {m2},# Zone Occupants,Equipment Level {W},Equipment/Floor Area {W/m2},Equipment per person {W/person},Fraction Latent,Fraction Radiant,Fraction Lost,Fraction Convected,Nominal Minimum Equipment Level {W},Nominal Maximum Equipment Level {W} - OtherEquipment Internal Gains Nominal, LATENT,MOISTURE ON,TEST ROOM,48.00,0.0,352.600,7.346,N/A,1.000,0.000,0.000,0.000,0.000,352.600 - OtherEquipment Internal Gains Nominal, OTHER,ON,TEST ROOM,48.00,0.0,800.000,16.667,N/A,0.000,0.000,0.000,1.000,800.000,800.000 -! , Shading Calculation Method, Shading Calculation Update Frequency Method, Shading Calculation Update Frequency {days}, Maximum Figures in Shadow Overlap Calculations {}, Polygon Clipping Algorithm, Pixel Counting Resolution, Sky Diffuse Modeling Algorithm, Output External Shading Calculation Results, Disable Self-Shading Within Shading Zone Groups, Disable Self-Shading From Shading Zone Groups to Other Zones -Shadowing/Sun Position Calculations Annual Simulations,PolygonClipping,Periodic,20,15000,SutherlandHodgman,512,SimpleSkyDiffuseModeling,No,No,No -! , Surface Name, Construction Name, Cell Numbers -! , Surface Name, Construction Name, Cell origins (m) -HAMT cells, SOUTH WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 -HAMT origins,SOUTH WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 -HAMT cells, EAST WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 -HAMT origins,EAST WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 -HAMT cells, NORTH WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 -HAMT origins,NORTH WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 -HAMT cells, WEST WALL,EXTERIOR WALL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 -HAMT origins,WEST WALL,EXTERIOR WALL, 0.0000000, 0.0005729, 0.0026459, 0.0060000, 0.0093541, 0.0114271, 0.0132236, 0.0179982, 0.0270799, 0.0395799, 0.0542746, 0.0697254, 0.0844201, 0.0969201, 0.1060018, 0.1107764, 0.1128076, 0.1159588, 0.1219528, 0.1302028, 0.1399012, 0.1500988, 0.1597972, 0.1680472, 0.1740412, 0.1771924, 0.1785729, 0.1806459, 0.1840000, 0.1873541, 0.1894271, 0.1900000 -HAMT cells, FLOOR,FLOOR, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 \ No newline at end of file diff --git a/testfiles/eplusout.end b/testfiles/eplusout.end deleted file mode 100644 index 41d549f6d55..00000000000 --- a/testfiles/eplusout.end +++ /dev/null @@ -1 +0,0 @@ -EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 7 Severe Errors; Elapsed Time=00hr 00min 10.07sec diff --git a/testfiles/eplusout.err b/testfiles/eplusout.err deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/testfiles/eplusout.eso b/testfiles/eplusout.eso deleted file mode 100644 index e61fb84c409..00000000000 --- a/testfiles/eplusout.eso +++ /dev/null @@ -1,63 +0,0 @@ -Program Version,EnergyPlus, Version 9.4.0-9265a144d4, YMD=2021.03.08 15:55 -1,5,Environment Title[],Latitude[deg],Longitude[deg],Time Zone[],Elevation[m] -2,8,Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],Hour[],StartMinute[],EndMinute[],DayType -3,5,Cumulative Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],DayType ! When Daily Report Variables Requested -4,2,Cumulative Days of Simulation[],Month[] ! When Monthly Report Variables Requested -5,1,Cumulative Days of Simulation[] ! When Run Period Report Variables Requested -6,1,Calendar Year of Simulation[] ! When Annual Report Variables Requested -7,1,Environment,Site Outdoor Air Drybulb Temperature [C] !Hourly -8,1,Environment,Site Outdoor Air Relative Humidity [%] !Hourly -9,1,SOUTH WALL,HAMT Surface Average Water Content Ratio [kg/kg] !Hourly -10,1,EAST WALL,HAMT Surface Average Water Content Ratio [kg/kg] !Hourly -11,1,EAST WALL,HAMT Surface Temperature Cell 1 [C] !Hourly -12,1,EAST WALL,HAMT Surface Temperature Cell 2 [C] !Hourly -13,1,EAST WALL,HAMT Surface Temperature Cell 3 [C] !Hourly -14,1,EAST WALL,HAMT Surface Temperature Cell 4 [C] !Hourly -15,1,EAST WALL,HAMT Surface Temperature Cell 5 [C] !Hourly -16,1,EAST WALL,HAMT Surface Temperature Cell 6 [C] !Hourly -17,1,EAST WALL,HAMT Surface Temperature Cell 7 [C] !Hourly -18,1,EAST WALL,HAMT Surface Temperature Cell 8 [C] !Hourly -19,1,EAST WALL,HAMT Surface Temperature Cell 9 [C] !Hourly -20,1,EAST WALL,HAMT Surface Temperature Cell 10 [C] !Hourly -21,1,EAST WALL,HAMT Surface Temperature Cell 11 [C] !Hourly -22,1,EAST WALL,HAMT Surface Temperature Cell 12 [C] !Hourly -23,1,EAST WALL,HAMT Surface Temperature Cell 13 [C] !Hourly -24,1,EAST WALL,HAMT Surface Temperature Cell 14 [C] !Hourly -25,1,EAST WALL,HAMT Surface Temperature Cell 15 [C] !Hourly -26,1,EAST WALL,HAMT Surface Temperature Cell 16 [C] !Hourly -27,1,EAST WALL,HAMT Surface Temperature Cell 17 [C] !Hourly -28,1,EAST WALL,HAMT Surface Temperature Cell 18 [C] !Hourly -29,1,EAST WALL,HAMT Surface Temperature Cell 19 [C] !Hourly -30,1,EAST WALL,HAMT Surface Temperature Cell 20 [C] !Hourly -31,1,EAST WALL,HAMT Surface Temperature Cell 21 [C] !Hourly -32,1,EAST WALL,HAMT Surface Temperature Cell 22 [C] !Hourly -33,1,EAST WALL,HAMT Surface Temperature Cell 23 [C] !Hourly -34,1,EAST WALL,HAMT Surface Temperature Cell 24 [C] !Hourly -35,1,EAST WALL,HAMT Surface Temperature Cell 25 [C] !Hourly -36,1,EAST WALL,HAMT Surface Temperature Cell 26 [C] !Hourly -37,1,EAST WALL,HAMT Surface Temperature Cell 27 [C] !Hourly -38,1,EAST WALL,HAMT Surface Temperature Cell 28 [C] !Hourly -39,1,EAST WALL,HAMT Surface Temperature Cell 29 [C] !Hourly -40,1,EAST WALL,HAMT Surface Temperature Cell 30 [C] !Hourly -41,1,EAST WALL,HAMT Surface Temperature Cell 31 [C] !Hourly -42,1,EAST WALL,HAMT Surface Temperature Cell 32 [C] !Hourly -43,1,EAST WALL,HAMT Surface Water Content Cell 1 [kg/kg] !Hourly -44,1,EAST WALL,HAMT Surface Water Content Cell 2 [kg/kg] !Hourly -45,1,EAST WALL,HAMT Surface Water Content Cell 3 [kg/kg] !Hourly -46,1,EAST WALL,HAMT Surface Water Content Cell 4 [kg/kg] !Hourly -47,1,EAST WALL,HAMT Surface Water Content Cell 5 [kg/kg] !Hourly -48,1,EAST WALL,HAMT Surface Water Content Cell 6 [kg/kg] !Hourly -49,1,EAST WALL,HAMT Surface Water Content Cell 7 [kg/kg] !Hourly -50,1,EAST WALL,HAMT Surface Water Content Cell 8 [kg/kg] !Hourly -51,1,EAST WALL,HAMT Surface Water Content Cell 9 [kg/kg] !Hourly -52,1,EAST WALL,HAMT Surface Water Content Cell 10 [kg/kg] !Hourly -53,1,EAST WALL,HAMT Surface Water Content Cell 11 [kg/kg] !Hourly -54,1,EAST WALL,HAMT Surface Water Content Cell 12 [kg/kg] !Hourly -55,1,EAST WALL,HAMT Surface Water Content Cell 13 [kg/kg] !Hourly -56,1,EAST WALL,HAMT Surface Water Content Cell 14 [kg/kg] !Hourly -57,1,EAST WALL,HAMT Surface Water Content Cell 15 [kg/kg] !Hourly -58,1,EAST WALL,HAMT Surface Water Content Cell 16 [kg/kg] !Hourly -59,1,EAST WALL,HAMT Surface Water Content Cell 17 [kg/kg] !Hourly -60,1,EAST WALL,HAMT Surface Water Content Cell 18 [kg/kg] !Hourly -61,1,EAST WALL,HAMT Surface Water Content Cell 19 [kg/kg] !Hourly -62,1,EAST WALL,HAMT Surfa \ No newline at end of file diff --git a/testfiles/eplusout.expidf b/testfiles/eplusout.expidf deleted file mode 100644 index 5d701a0b373..00000000000 --- a/testfiles/eplusout.expidf +++ /dev/null @@ -1,2510 +0,0 @@ -!-Generator IDFEditor 1.34 -!-Option SortedOrder 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. -!- =========== ALL OBJECTS IN CLASS: VERSION =========== -! Name of file: HAMT_HourlyProfileReport.idf -! -! Basic file description: -! Single zone single story lightweight building. -! The building is orientated with its long axis east-west. Windows are on the south wall. -! -! Highlights: -! To demonstrate the use of the HAMT solution algorithm, -! including the use of fixed vapor transfer coefficients -! -! Simulation Location/Run: -! autosizing using Denver winter & summer design days; -! simulation; 1 winter, 1 summer day. -! -! Location: Chicago, IL -! Run Period (Weather File): 1 months, USA_IL_Chicago-OHare_TMY2 -! Timestep: 20 per hour. -! -! Building: -! ______________________ -! |\ /| -! | \ / | NORTH -! | \________________/ | ^ -! | | | | /|\ -! | | | | | -! | | | |6 m | -! | | | | | -! | | | | | -! | |________________| | -! | / ____ ____ \ | -! | / /____\ /____\ \ | -! |/____________________\| -! 8 m -! ______________________ -! | _____ _____ | -! | | | | | | 2.7m -! | |_____| |_____| | -! |______________________| -! -! Both windows are 2m high and 3m wide, -! separated by 1m, 0.5m from the roof -! and 0.5m from either side of the building. -! -! Floor area: 48 m2 -! Dimensions: 8 m x 6 m -! Floor height: 2.7 m -! conditioned floor. No basement -! Number of Stories: 1 -! -! Shell characteristics: -! Roof construction: Flat roof, plywood, insulation, spruce panel -! Wall construction: spruce siding, conctete, cellulose insulation, spruce panel -! Floor construction: Glass fibre insulation, spruce flooring -! -! Windows -! The area of each window is 6 m2 , giving a total glazed area of 12 m2 -! The windows were double glazed with an air gap: -! -! Glass: -! Pane Thickness: 0.003175 m -! Solar Transmittance at normal incidence: 0.86156 -! Solar reflectance at normal incidence: Front side: 0.07846 -! Solar reflectance at normal incidence: Back side: 0.07846 -! Visible transmittance at normal incidence: 0.91325 -! Visible reflectance at normal incidence: Front side: 0.082 -! Visible reflectance at normal incidence: Back side: 0.082 -! IR Transmittance at Normal Incidence: 0 -! IR Hemispherical Emissivity: Front Side 0.84 -! IR Hemishpherical Emissivity: Back Side 0.84 -! Conductivity 1.06 W/mK -! -! Air Gap: -! Air Gap thickness: 0.013 m -! -! All other material properties are set to use the HAMT solutions algorithm -! -! Infiltration: -! All hours: 0.5 ACH -! -! Internal Loads: -! The same internal load schedule is used for every day of the simulation year: -! Sensible: -! 800 watts all day -! Latent: -! 0 watts between 0 and 0900 hours and between 1700 and 2400 hours -! 352.6 watts between 0900 hours and 1700 hours. -! -! System controls are: -! Heating 20.0 C -! Cooling 27.0 C -! -! HVAC: -! 100% convective air system, thermostat on room temperature, no latent load, -! Compact FanCoil system is used. System is autosized. -! -! Reporting: -! Outdoor Dry Bulb, daily; -! Outdoor Relative Humidity, daily; -! Zone Mean Air Temperature, daily; -! Zone Air Relative Humidity, daily; -! Zone/Sys Sensible Heating Rate, daily; -! Zone/Sys Sensible Cooling Rate, daily; -! -! The following report variables are selected as an example for -! east wall only -! HAMT-Surface Water Content , daily; -! -! HAMT-Profile Construction 1 Cell 1 Temperature, daily; -! .. through to .. -! HAMT-Profile Construction 1 Cell 22 Temperature, daily; -! -! HAMT-Profile Construction 1 Cell 1 Water, daily; -! .. through to .. -! HAMT-Profile Construction 1 Cell 22 Water, daily; -! -! HAMT-Profile Construction 1 Cell 1 RH, daily; -! .. through to .. -! HAMT-Profile Construction 1 Cell 22 RH, daily; -! -! - - Version,9.4; - -!- =========== ALL OBJECTS IN CLASS: SIMULATIONCONTROL =========== - - SimulationControl, - Yes, !- Do Zone Sizing Calculation - Yes, !- 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 - -!- =========== ALL OBJECTS IN CLASS: BUILDING =========== - - Building, - HAMT test 1, !- Name - 0, !- North Axis {deg} - , !- Terrain - 0.04, !- Loads Convergence Tolerance Value {W} - 0.4, !- Temperature Convergence Tolerance Value {deltaC} - MinimalShadowing, !- Solar Distribution - 25, !- Maximum Number of Warmup Days - 6; !- Minimum Number of Warmup Days - -!- =========== ALL OBJECTS IN CLASS: HEATBALANCEALGORITHM =========== - - HeatBalanceAlgorithm,CombinedHeatAndMoistureFiniteElement,200; - -!- =========== ALL OBJECTS IN CLASS: TIMESTEP =========== - - Timestep,20; - -!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:INSIDE =========== - - SurfaceConvectionAlgorithm:Inside,TARP; - -!- =========== ALL OBJECTS IN CLASS: SURFACECONVECTIONALGORITHM:OUTSIDE =========== - - SurfaceConvectionAlgorithm:Outside,DOE-2; - -!- =========== ALL OBJECTS IN CLASS: SIZINGPERIOD:DESIGNDAY =========== - - SizingPeriod:DesignDay, - CHICAGO_IL_USA Annual Heating 99% Design Conditions DB, !- Name - 1, !- Month - 21, !- Day of Month - WinterDesignDay, !- Day Type - -17.3, !- 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 - -17.3, !- 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.0; !- Sky Clearness - - SizingPeriod:DesignDay, - CHICAGO_IL_USA Annual Cooling 1% Design Conditions DB/MCWB, !- Name - 7, !- Month - 21, !- Day of Month - SummerDesignDay, !- Day Type - 31.5, !- 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 - 23.0, !- 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.0; !- Sky Clearness - -!- =========== ALL OBJECTS IN CLASS: RUNPERIOD =========== - - RunPeriod, - Run Period 1, !- Name - 1, !- Begin Month - 1, !- Begin Day of Month - , !- Begin Year - 1, !- End Month - 31, !- End Day of Month - , !- End Year - , !- Day of Week for Start Day - Yes, !- Use Weather File Holidays and Special Days - Yes, !- Use Weather File Daylight Saving Period - Yes, !- Apply Weekend Holiday Rule - No, !- Use Weather File Rain Indicators - No; !- Use Weather File Snow Indicators -! -!- =========== ALL OBJECTS IN CLASS: SITE:GROUNDTEMPERATURE:BUILDINGSURFACE =========== -! -! Site:GroundTemperature:BuildingSurface,18,18,18,18,18,18,18,18,18,18,18,18; - -!- =========== ALL OBJECTS IN CLASS: SCHEDULETYPELIMITS =========== - - ScheduleTypeLimits, - Fraction, !- Name - 0.0, !- Lower Limit Value - 1.0, !- Upper Limit Value - CONTINUOUS; !- Numeric Type - - ScheduleTypeLimits, - Any Number; !- Name - - ScheduleTypeLimits, - Temperature, !- Name - -60, !- Lower Limit Value - 200, !- Upper Limit Value - CONTINUOUS, !- Numeric Type - Temperature; !- Unit Type - - ScheduleTypeLimits, - Control Type, !- Name - 0, !- Lower Limit Value - 4, !- Upper Limit Value - DISCRETE; !- Numeric Type - - ScheduleTypeLimits, - On/Off, !- Name - 0, !- Lower Limit Value - 1, !- Upper Limit Value - DISCRETE; !- Numeric Type - - ScheduleTypeLimits, - FlowRate, !- Name - 0.0, !- Lower Limit Value - 10, !- Upper Limit Value - CONTINUOUS; !- Numeric Type - -!- =========== ALL OBJECTS IN CLASS: SCHEDULE:DAY:HOURLY =========== - - Schedule:Day:Hourly, - On, !- Name - Fraction, !- Schedule Type Limits Name - 1, !- Hour 1 - 1, !- Hour 2 - 1, !- Hour 3 - 1, !- Hour 4 - 1, !- Hour 5 - 1, !- Hour 6 - 1, !- Hour 7 - 1, !- Hour 8 - 1, !- Hour 9 - 1, !- Hour 10 - 1, !- Hour 11 - 1, !- Hour 12 - 1, !- Hour 13 - 1, !- Hour 14 - 1, !- Hour 15 - 1, !- Hour 16 - 1, !- Hour 17 - 1, !- Hour 18 - 1, !- Hour 19 - 1, !- Hour 20 - 1, !- Hour 21 - 1, !- Hour 22 - 1, !- Hour 23 - 1; !- Hour 24 - - Schedule:Day:Hourly, - Moisture annex 41, !- Name - Fraction, !- Schedule Type Limits Name - 0, !- Hour 1 - 0, !- Hour 2 - 0, !- Hour 3 - 0, !- Hour 4 - 0, !- Hour 5 - 0, !- Hour 6 - 0, !- Hour 7 - 0, !- Hour 8 - 0, !- Hour 9 - 1, !- Hour 10 - 1, !- Hour 11 - 1, !- Hour 12 - 1, !- Hour 13 - 1, !- Hour 14 - 1, !- Hour 15 - 1, !- Hour 16 - 1, !- Hour 17 - 0, !- Hour 18 - 0, !- Hour 19 - 0, !- Hour 20 - 0, !- Hour 21 - 0, !- Hour 22 - 0, !- Hour 23 - 0; !- Hour 24 - -!- =========== ALL OBJECTS IN CLASS: SCHEDULE:WEEK:DAILY =========== - - Schedule:Week:Daily, - WeekOn, !- Name - On, !- Sunday Schedule:Day Name - On, !- Monday Schedule:Day Name - On, !- Tuesday Schedule:Day Name - On, !- Wednesday Schedule:Day Name - On, !- Thursday Schedule:Day Name - On, !- Friday Schedule:Day Name - On, !- Saturday Schedule:Day Name - On, !- Holiday Schedule:Day Name - On, !- SummerDesignDay Schedule:Day Name - On, !- WinterDesignDay Schedule:Day Name - On, !- CustomDay1 Schedule:Day Name - On; !- CustomDay2 Schedule:Day Name - - Schedule:Week:Daily, - Weekon moisture, !- Name - Moisture annex 41, !- Sunday Schedule:Day Name - Moisture annex 41, !- Monday Schedule:Day Name - Moisture annex 41, !- Tuesday Schedule:Day Name - Moisture annex 41, !- Wednesday Schedule:Day Name - Moisture annex 41, !- Thursday Schedule:Day Name - Moisture annex 41, !- Friday Schedule:Day Name - Moisture annex 41, !- Saturday Schedule:Day Name - Moisture annex 41, !- Holiday Schedule:Day Name - Moisture annex 41, !- SummerDesignDay Schedule:Day Name - Moisture annex 41, !- WinterDesignDay Schedule:Day Name - Moisture annex 41, !- CustomDay1 Schedule:Day Name - Moisture annex 41; !- CustomDay2 Schedule:Day Name - -!- =========== ALL OBJECTS IN CLASS: SCHEDULE:YEAR =========== - - Schedule:Year, - On, !- Name - Fraction, !- Schedule Type Limits Name - WeekOn, !- Schedule:Week Name 1 - 1, !- Start Month 1 - 1, !- Start Day 1 - 12, !- End Month 1 - 31; !- End Day 1 - - Schedule:Year, - Moisture on, !- Name - Fraction, !- Schedule Type Limits Name - Weekon moisture, !- Schedule:Week Name 1 - 1, !- Start Month 1 - 1, !- Start Day 1 - 12, !- End Month 1 - 31; !- End Day 1 - -!- =========== ALL OBJECTS IN CLASS: SCHEDULE:COMPACT =========== - - Schedule:Compact, - Htg-SetP-Sch, !- Name - Temperature, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 - Until: 24:00,20; !- Field 3 - - Schedule:Compact, - Clg-SetP-Sch, !- Name - Temperature, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 - Until: 24:00,20; !- Field 3 - - Schedule:Compact, - FanAvailSched, !- Name - Temperature, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: WeekDays CustomDay1 CustomDay2 Sunday Saturday Holiday SummerDesignDay WinterDesignDay", !- Field 2 - Until: 24:00,1; !- Field 3 - -!- =========== ALL OBJECTS IN CLASS: MATERIAL =========== - - Material, - Concrete, !- Name - Rough, !- Roughness - 0.1, !- Thickness {m} - 1.6, !- Conductivity {W/m-K} - 2300, !- Density {kg/m3} - 850, !- Specific Heat {J/kg-K} - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - Material, - Spruce, !- Name - Rough, !- Roughness - 0.012, !- Thickness {m} - 0.09, !- Conductivity {W/m-K} - 455, !- Density {kg/m3} - 1500, !- Specific Heat {J/kg-K} - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - Material, - Plywood, !- Name - Rough, !- Roughness - 0.025, !- Thickness {m} - 0.14, !- Conductivity {W/m-K} - 530, !- Density {kg/m3} - 1880, !- Specific Heat {J/kg-K} - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - Material, - Cellulose ins, !- Name - Rough, !- Roughness - 0.066, !- Thickness {m} - 0.04, !- Conductivity {W/m-K} - 55, !- Density {kg/m3} - 1880, !- Specific Heat {J/kg-K} - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - - Material, - Glass Fibre ins, !- Name - Rough, !- Roughness - 1.003, !- Thickness {m} - 0.04, !- Conductivity {W/m-K} - 80, !- Density {kg/m3} - 840, !- Specific Heat {J/kg-K} - 0.9, !- Thermal Absorptance - 0.7, !- Solar Absorptance - 0.7; !- Visible Absorptance - -!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GLAZING =========== - - WindowMaterial:Glazing, - Glass, !- Name - SpectralAverage, !- Optical Data Type - , !- Window Glass Spectral Data Set Name - 0.003175, !- Thickness {m} - 0.86156, !- Solar Transmittance at Normal Incidence - 0.07846, !- Front Side Solar Reflectance at Normal Incidence - 0.07846, !- Back Side Solar Reflectance at Normal Incidence - 0.91325, !- Visible Transmittance at Normal Incidence - 0.082, !- Front Side Visible Reflectance at Normal Incidence - 0.082, !- Back Side Visible Reflectance at Normal Incidence - 0, !- Infrared Transmittance at Normal Incidence - 0.84, !- Front Side Infrared Hemispherical Emissivity - 0.84, !- Back Side Infrared Hemispherical Emissivity - 1.06; !- Conductivity {W/m-K} - -!- =========== ALL OBJECTS IN CLASS: WINDOWMATERIAL:GAS =========== - - WindowMaterial:Gas, - Air, !- Name - Air, !- Gas Type - 0.013; !- Thickness {m} - -!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SETTINGS =========== - - MaterialProperty:HeatAndMoistureTransfer:Settings, - Concrete, !- Material Name - 0.76, !- Porosity {m3/m3} - 0.01; !- Initial Water Content Ratio {kg/kg} - - MaterialProperty:HeatAndMoistureTransfer:Settings, - Spruce, !- Material Name - 0.73, !- Porosity {m3/m3} - 0.05; !- Initial Water Content Ratio {kg/kg} - - MaterialProperty:HeatAndMoistureTransfer:Settings, - Plywood, !- Material Name - 0.5, !- Porosity {m3/m3} - 0.05; !- Initial Water Content Ratio {kg/kg} - - MaterialProperty:HeatAndMoistureTransfer:Settings, - Cellulose ins, !- Material Name - 0.95, !- Porosity {m3/m3} - 0.001; !- Initial Water Content Ratio {kg/kg} - - MaterialProperty:HeatAndMoistureTransfer:Settings, - Glass Fibre ins, !- Material Name - 0.95, !- Porosity {m3/m3} - 0.1; !- Initial Water Content Ratio {kg/kg} - -!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SORPTIONISOTHERM =========== - - MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, - Cellulose ins, !- Material Name - 5, !- Number of Isotherm Coordinates - 0.25, !- Relative Humidity Fraction 1 {dimensionless} - 2.365, !- Moisture Content 1 {kg/m3} - 0.44, !- Relative Humidity Fraction 2 {dimensionless} - 4.62, !- Moisture Content 2 {kg/m3} - 0.66, !- Relative Humidity Fraction 3 {dimensionless} - 6.655, !- Moisture Content 3 {kg/m3} - 0.86, !- Relative Humidity Fraction 4 {dimensionless} - 11.4125, !- Moisture Content 4 {kg/m3} - 1, !- Relative Humidity Fraction 5 {dimensionless} - 13; !- Moisture Content 5 {kg/m3} - - MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, - Glass Fibre ins, !- Material Name - 6, !- Number of Isotherm Coordinates - 0.202, !- Relative Humidity Fraction 1 {dimensionless} - 0.748, !- Moisture Content 1 {kg/m3} - 0.4325, !- Relative Humidity Fraction 2 {dimensionless} - 1.04, !- Moisture Content 2 {kg/m3} - 0.6465, !- Relative Humidity Fraction 3 {dimensionless} - 1.24, !- Moisture Content 3 {kg/m3} - 0.8465, !- Relative Humidity Fraction 4 {dimensionless} - 1.56, !- Moisture Content 4 {kg/m3} - 0.948, !- Relative Humidity Fraction 5 {dimensionless} - 1.92, !- Moisture Content 5 {kg/m3} - 0.978, !- Relative Humidity Fraction 6 {dimensionless} - 2.72; !- Moisture Content 6 {kg/m3} - - MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, - Spruce, !- Material Name - 7, !- Number of Isotherm Coordinates - 0.205, !- Relative Humidity Fraction 1 {dimensionless} - 25.935, !- Moisture Content 1 {kg/m3} - 0.4465, !- Relative Humidity Fraction 2 {dimensionless} - 44.3625, !- Moisture Content 2 {kg/m3} - 0.6515, !- Relative Humidity Fraction 3 {dimensionless} - 61.99375, !- Moisture Content 3 {kg/m3} - 0.6545, !- Relative Humidity Fraction 4 {dimensionless} - 61.99375, !- Moisture Content 4 {kg/m3} - 0.83, !- Relative Humidity Fraction 5 {dimensionless} - 87.1325, !- Moisture Content 5 {kg/m3} - 0.9525, !- Relative Humidity Fraction 6 {dimensionless} - 119.665, !- Moisture Content 6 {kg/m3} - 0.956, !- Relative Humidity Fraction 7 {dimensionless} - 120.12; !- Moisture Content 7 {kg/m3} - - MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, - Plywood, !- Material Name - 12, !- Number of Isotherm Coordinates - 0.2015, !- Relative Humidity Fraction 1 {dimensionless} - 3.7125, !- Moisture Content 1 {kg/m3} - 0.203, !- Relative Humidity Fraction 2 {dimensionless} - 3.74, !- Moisture Content 2 {kg/m3} - 0.435, !- Relative Humidity Fraction 3 {dimensionless} - 5.8025, !- Moisture Content 3 {kg/m3} - 0.439, !- Relative Humidity Fraction 4 {dimensionless} - 5.83, !- Moisture Content 4 {kg/m3} - 0.6495, !- Relative Humidity Fraction 5 {dimensionless} - 7.7825, !- Moisture Content 5 {kg/m3} - 0.6515, !- Relative Humidity Fraction 6 {dimensionless} - 7.81, !- Moisture Content 6 {kg/m3} - 0.8215, !- Relative Humidity Fraction 7 {dimensionless} - 10.3675, !- Moisture Content 7 {kg/m3} - 0.825, !- Relative Humidity Fraction 8 {dimensionless} - 10.3675, !- Moisture Content 8 {kg/m3} - 0.9215, !- Relative Humidity Fraction 9 {dimensionless} - 13.1175, !- Moisture Content 9 {kg/m3} - 0.925, !- Relative Humidity Fraction 10 {dimensionless} - 13.1175, !- Moisture Content 10 {kg/m3} - 0.9575, !- Relative Humidity Fraction 11 {dimensionless} - 14.7125, !- Moisture Content 11 {kg/m3} - 0.9605, !- Relative Humidity Fraction 12 {dimensionless} - 15.345; !- Moisture Content 12 {kg/m3} - - MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm, - Concrete, !- Material Name - 10, !- Number of Isotherm Coordinates - 0.202, !- Relative Humidity Fraction 1 {dimensionless} - 19.665, !- Moisture Content 1 {kg/m3} - 0.2205, !- Relative Humidity Fraction 2 {dimensionless} - 22.31, !- Moisture Content 2 {kg/m3} - 0.449, !- Relative Humidity Fraction 3 {dimensionless} - 38.4675, !- Moisture Content 3 {kg/m3} - 0.454, !- Relative Humidity Fraction 4 {dimensionless} - 38.4675, !- Moisture Content 4 {kg/m3} - 0.6506, !- Relative Humidity Fraction 5 {dimensionless} - 54.165, !- Moisture Content 5 {kg/m3} - 0.655, !- Relative Humidity Fraction 6 {dimensionless} - 54.165, !- Moisture Content 6 {kg/m3} - 0.824, !- Relative Humidity Fraction 7 {dimensionless} - 72.565, !- Moisture Content 7 {kg/m3} - 0.8725, !- Relative Humidity Fraction 8 {dimensionless} - 85.1, !- Moisture Content 8 {kg/m3} - 0.924, !- Relative Humidity Fraction 9 {dimensionless} - 91.08, !- Moisture Content 9 {kg/m3} - 0.964, !- Relative Humidity Fraction 10 {dimensionless} - 100.28; !- Moisture Content 10 {kg/m3} - -!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:SUCTION =========== - - MaterialProperty:HeatAndMoistureTransfer:Suction, - Concrete, !- Material Name - 5, !- Number of Suction points - 0, !- Moisture Content 1 {kg/m3} - 0, !- Liquid Transport Coefficient 1 {m2/s} - 72, !- Moisture Content 2 {kg/m3} - 0.0000000000741, !- Liquid Transport Coefficient 2 {m2/s} - 85, !- Moisture Content 3 {kg/m3} - 0.000000000253, !- Liquid Transport Coefficient 3 {m2/s} - 100, !- Moisture Content 4 {kg/m3} - 0.00000000101, !- Liquid Transport Coefficient 4 {m2/s} - 118, !- Moisture Content 5 {kg/m3} - 0.00000000128; !- Liquid Transport Coefficient 5 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Suction, - Spruce, !- Material Name - 3, !- Number of Suction points - 0, !- Moisture Content 1 {kg/m3} - 0, !- Liquid Transport Coefficient 1 {m2/s} - 20, !- Moisture Content 2 {kg/m3} - 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} - 600, !- Moisture Content 3 {kg/m3} - 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Suction, - Plywood, !- Material Name - 1, !- Number of Suction points - 0, !- Moisture Content 1 {kg/m3} - 0; !- Liquid Transport Coefficient 1 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Suction, - Cellulose ins, !- Material Name - 1, !- Number of Suction points - 0, !- Moisture Content 1 {kg/m3} - 0; !- Liquid Transport Coefficient 1 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Suction, - Glass Fibre ins, !- Material Name - 1, !- Number of Suction points - 0, !- Moisture Content 1 {kg/m3} - 0; !- Liquid Transport Coefficient 1 {m2/s} - -!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:REDISTRIBUTION =========== - - MaterialProperty:HeatAndMoistureTransfer:Redistribution, - Concrete, !- Material Name - 5, !- Number of Redistribution points - 0, !- Moisture Content 1 {kg/m3} - 0, !- Liquid Transport Coefficient 1 {m2/s} - 72, !- Moisture Content 2 {kg/m3} - 0.00000000000741, !- Liquid Transport Coefficient 2 {m2/s} - 85, !- Moisture Content 3 {kg/m3} - 0.0000000000253, !- Liquid Transport Coefficient 3 {m2/s} - 100, !- Moisture Content 4 {kg/m3} - 0.000000000101, !- Liquid Transport Coefficient 4 {m2/s} - 118, !- Moisture Content 5 {kg/m3} - 0.000000000128; !- Liquid Transport Coefficient 5 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Redistribution, - Spruce, !- Material Name - 3, !- Number of Redistribution points - 0, !- Moisture Content 1 {kg/m3} - 0, !- Liquid Transport Coefficient 1 {m2/s} - 20, !- Moisture Content 2 {kg/m3} - 0.00000000000032, !- Liquid Transport Coefficient 2 {m2/s} - 600, !- Moisture Content 3 {kg/m3} - 0.0000000000092; !- Liquid Transport Coefficient 3 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Redistribution, - Plywood, !- Material Name - 1, !- Number of Redistribution points - 0, !- Moisture Content 1 {kg/m3} - 0; !- Liquid Transport Coefficient 1 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Redistribution, - Cellulose ins, !- Material Name - 1, !- Number of Redistribution points - 0, !- Moisture Content 1 {kg/m3} - 0; !- Liquid Transport Coefficient 1 {m2/s} - - MaterialProperty:HeatAndMoistureTransfer:Redistribution, - Glass Fibre ins, !- Material Name - 1, !- Number of Redistribution points - 0, !- Moisture Content 1 {kg/m3} - 0; !- Liquid Transport Coefficient 1 {m2/s} - -!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:DIFFUSION =========== - - MaterialProperty:HeatAndMoistureTransfer:Diffusion, - Concrete, !- Material Name - 1, !- Number of Data Pairs - 0, !- Relative Humidity Fraction 1 {dimensionless} - 180; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} - - MaterialProperty:HeatAndMoistureTransfer:Diffusion, - Spruce, !- Material Name - 1, !- Number of Data Pairs - 0, !- Relative Humidity Fraction 1 {dimensionless} - 130; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} - - MaterialProperty:HeatAndMoistureTransfer:Diffusion, - Plywood, !- Material Name - 3, !- Number of Data Pairs - 0, !- Relative Humidity Fraction 1 {dimensionless} - 700, !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} - 0.5, !- Relative Humidity Fraction 2 {dimensionless} - 200, !- Water Vapor Diffusion Resistance Factor 2 {dimensionless} - 1, !- Relative Humidity Fraction 3 {dimensionless} - 20; !- Water Vapor Diffusion Resistance Factor 3 {dimensionless} - - MaterialProperty:HeatAndMoistureTransfer:Diffusion, - Cellulose ins, !- Material Name - 1, !- Number of Data Pairs - 0, !- Relative Humidity Fraction 1 {dimensionless} - 1.5; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} - - MaterialProperty:HeatAndMoistureTransfer:Diffusion, - Glass Fibre ins, !- Material Name - 1, !- Number of Data Pairs - 0, !- Relative Humidity Fraction 1 {dimensionless} - 1.2543; !- Water Vapor Diffusion Resistance Factor 1 {dimensionless} - -!- =========== ALL OBJECTS IN CLASS: MATERIALPROPERTY:HEATANDMOISTURETRANSFER:THERMALCONDUCTIVITY =========== - - MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, - Concrete, !- Material Name - 2, !- Number of Thermal Coordinates - 0, !- Moisture Content 1 {kg/m3} - 1.6, !- Thermal Conductivity 1 {W/m-K} - 180, !- Moisture Content 2 {kg/m3} - 2.602; !- Thermal Conductivity 2 {W/m-K} - - MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, - Spruce, !- Material Name - 2, !- Number of Thermal Coordinates - 0, !- Moisture Content 1 {kg/m3} - 0.09, !- Thermal Conductivity 1 {W/m-K} - 730, !- Moisture Content 2 {kg/m3} - 0.278; !- Thermal Conductivity 2 {W/m-K} - - MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, - Plywood, !- Material Name - 2, !- Number of Thermal Coordinates - 0, !- Moisture Content 1 {kg/m3} - 0.1, !- Thermal Conductivity 1 {W/m-K} - 500, !- Moisture Content 2 {kg/m3} - 0.25; !- Thermal Conductivity 2 {W/m-K} - - MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, - Cellulose ins, !- Material Name - 2, !- Number of Thermal Coordinates - 0, !- Moisture Content 1 {kg/m3} - 0.04, !- Thermal Conductivity 1 {W/m-K} - 950, !- Moisture Content 2 {kg/m3} - 0.583; !- Thermal Conductivity 2 {W/m-K} - - MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity, - Glass Fibre ins, !- Material Name - 1, !- Number of Thermal Coordinates - 0, !- Moisture Content 1 {kg/m3} - 0.04; !- Thermal Conductivity 1 {W/m-K} - -!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION =========== - - Construction, - Exterior wall, !- Name - Spruce, !- Outside Layer - Concrete, !- Layer 2 - Cellulose ins, !- Layer 3 - Spruce; !- Layer 4 - - Construction, - Floor, !- Name - Glass Fibre ins, !- Outside Layer - Spruce; !- Layer 2 - - Construction, - Roof, !- Name - Plywood, !- Outside Layer - Cellulose ins, !- Layer 2 - Spruce; !- Layer 3 - - Construction, - Window, !- Name - Glass, !- Outside Layer - Air, !- Layer 2 - Glass; !- Layer 3 - - -!- =========== ALL OBJECTS IN CLASS: GLOBALGEOMETRYRULES =========== - - GlobalGeometryRules, - UpperLeftCorner, !- Starting Vertex Position - CounterClockWise, !- Vertex Entry Direction - World; !- Coordinate System - -!- =========== ALL OBJECTS IN CLASS: ZONE =========== - - Zone, - Test room, !- Name - 0, !- Direction of Relative North {deg} - 0, !- X Origin {m} - 0, !- Y Origin {m} - 0, !- Z Origin {m} - 1, !- Type - 1, !- Multiplier - 2.7, !- Ceiling Height {m} - 129.6; !- Volume {m3} - -!- =========== ALL OBJECTS IN CLASS: BUILDINGSURFACE:DETAILED =========== - - BuildingSurface:Detailed, - South wall, !- Name - WALL, !- Surface Type - Exterior wall, !- Construction Name - Test room, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - , !- View Factor to Ground - 4, !- Number of Vertices - 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} - 0,0,0, !- X,Y,Z ==> Vertex 2 {m} - 8,0,0, !- X,Y,Z ==> Vertex 3 {m} - 8,0,2.7; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - East wall, !- Name - WALL, !- Surface Type - Exterior wall, !- Construction Name - Test room, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - , !- View Factor to Ground - 4, !- Number of Vertices - 8,0,2.7, !- X,Y,Z ==> Vertex 1 {m} - 8,0,0, !- X,Y,Z ==> Vertex 2 {m} - 8,6,0, !- X,Y,Z ==> Vertex 3 {m} - 8,6,2.7; !- X,Y,Z ==> Vertex 4 {m} - -!- =========== ALL OBJECTS IN CLASS: CONSTRUCTION:INTERNALMOISTURESOURCE =========== - - ConstructionProperty:InternalMoistureSource, - InternalMoistureSourceEast, !- Name - Exterior wall, !- Construction Name - 3, !- Moisture Source Present In Layer Number - UserDefined, !- Source Type - 0.0001, !- Air Flow Rate {m/s} - 0.1, !- Stack Height {m} - 0.001, !- Component Air Permeance - 0.01; !- Mechanical Ventilation Overpressure - - BuildingSurface:Detailed, - North wall, !- Name - WALL, !- Surface Type - Exterior wall, !- Construction Name - Test room, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - , !- View Factor to Ground - 4, !- Number of Vertices - 8,6,2.7, !- X,Y,Z ==> Vertex 1 {m} - 8,6,0, !- X,Y,Z ==> Vertex 2 {m} - 0,6,0, !- X,Y,Z ==> Vertex 3 {m} - 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - West wall, !- Name - WALL, !- Surface Type - Exterior wall, !- Construction Name - Test room, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - , !- View Factor to Ground - 4, !- Number of Vertices - 0,6,2.7, !- X,Y,Z ==> Vertex 1 {m} - 0,6,0, !- X,Y,Z ==> Vertex 2 {m} - 0,0,0, !- X,Y,Z ==> Vertex 3 {m} - 0,0,2.7; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Floor, !- Name - FLOOR, !- Surface Type - Floor, !- Construction Name - Test room, !- Zone Name - Ground, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - NoSun, !- Sun Exposure - NoWind, !- Wind Exposure - , !- View Factor to Ground - 4, !- Number of Vertices - 0,0,0, !- X,Y,Z ==> Vertex 1 {m} - 0,6,0, !- X,Y,Z ==> Vertex 2 {m} - 8,6,0, !- X,Y,Z ==> Vertex 3 {m} - 8,0,0; !- X,Y,Z ==> Vertex 4 {m} - - BuildingSurface:Detailed, - Roof, !- Name - ROOF, !- Surface Type - Roof, !- Construction Name - Test room, !- Zone Name - Outdoors, !- Outside Boundary Condition - , !- Outside Boundary Condition Object - SunExposed, !- Sun Exposure - WindExposed, !- Wind Exposure - , !- View Factor to Ground - 4, !- Number of Vertices - 0,0,2.7, !- X,Y,Z ==> Vertex 1 {m} - 8,0,2.7, !- X,Y,Z ==> Vertex 2 {m} - 8,6,2.7, !- X,Y,Z ==> Vertex 3 {m} - 0,6,2.7; !- X,Y,Z ==> Vertex 4 {m} - -!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED =========== - - FenestrationSurface:Detailed, - South window_west, !- Name - WINDOW, !- Surface Type - Window, !- Construction Name - South wall, !- Building Surface Name - , !- Outside Boundary Condition Object - , !- View Factor to Ground - , !- Frame and Divider Name - 1, !- Multiplier - 4, !- Number of Vertices - 0.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} - 0.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} - 3.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} - 3.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} - - FenestrationSurface:Detailed, - South window_east, !- Name - WINDOW, !- Surface Type - Window, !- Construction Name - South wall, !- Building Surface Name - , !- Outside Boundary Condition Object - , !- View Factor to Ground - , !- Frame and Divider Name - 1, !- Multiplier - 4, !- Number of Vertices - 4.5,0,2.2, !- X,Y,Z ==> Vertex 1 {m} - 4.5,0,0.2, !- X,Y,Z ==> Vertex 2 {m} - 7.5,0,0.2, !- X,Y,Z ==> Vertex 3 {m} - 7.5,0,2.2; !- X,Y,Z ==> Vertex 4 {m} - -!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTY:CONVECTIONCOEFFICIENTS =========== - - SurfaceProperty:ConvectionCoefficients, - South wall, !- Surface Name - Outside, !- Convection Coefficient 1 Location - value, !- Convection Coefficient 1 Type - 29.3, !- Convection Coefficient 1 {W/m2-K} - , !- Convection Coefficient 1 Schedule Name - , !- Convection Coefficient 1 User Curve Name - Inside, !- Convection Coefficient 2 Location - value, !- Convection Coefficient 2 Type - 8.29, !- Convection Coefficient 2 {W/m2-K} - , !- Convection Coefficient 2 Schedule Name - ; !- Convection Coefficient 2 User Curve Name - - SurfaceProperty:ConvectionCoefficients, - East wall, !- Surface Name - Outside, !- Convection Coefficient 1 Location - value, !- Convection Coefficient 1 Type - 29.3, !- Convection Coefficient 1 {W/m2-K} - , !- Convection Coefficient 1 Schedule Name - , !- Convection Coefficient 1 User Curve Name - Inside, !- Convection Coefficient 2 Location - value, !- Convection Coefficient 2 Type - 8.29, !- Convection Coefficient 2 {W/m2-K} - , !- Convection Coefficient 2 Schedule Name - ; !- Convection Coefficient 2 User Curve Name - - SurfaceProperty:ConvectionCoefficients, - North wall, !- Surface Name - Outside, !- Convection Coefficient 1 Location - value, !- Convection Coefficient 1 Type - 29.3, !- Convection Coefficient 1 {W/m2-K} - , !- Convection Coefficient 1 Schedule Name - , !- Convection Coefficient 1 User Curve Name - Inside, !- Convection Coefficient 2 Location - value, !- Convection Coefficient 2 Type - 8.29, !- Convection Coefficient 2 {W/m2-K} - , !- Convection Coefficient 2 Schedule Name - ; !- Convection Coefficient 2 User Curve Name - - SurfaceProperty:ConvectionCoefficients, - West wall, !- Surface Name - Outside, !- Convection Coefficient 1 Location - value, !- Convection Coefficient 1 Type - 29.3, !- Convection Coefficient 1 {W/m2-K} - , !- Convection Coefficient 1 Schedule Name - , !- Convection Coefficient 1 User Curve Name - Inside, !- Convection Coefficient 2 Location - value, !- Convection Coefficient 2 Type - 8.29, !- Convection Coefficient 2 {W/m2-K} - , !- Convection Coefficient 2 Schedule Name - ; !- Convection Coefficient 2 User Curve Name - - SurfaceProperty:ConvectionCoefficients, - Roof, !- Surface Name - Outside, !- Convection Coefficient 1 Location - value, !- Convection Coefficient 1 Type - 29.3, !- Convection Coefficient 1 {W/m2-K} - , !- Convection Coefficient 1 Schedule Name - , !- Convection Coefficient 1 User Curve Name - Inside, !- Convection Coefficient 2 Location - value, !- Convection Coefficient 2 Type - 8.29, !- Convection Coefficient 2 {W/m2-K} - , !- Convection Coefficient 2 Schedule Name - ; !- Convection Coefficient 2 User Curve Name - - SurfaceProperty:ConvectionCoefficients, - Floor, !- Surface Name - Outside, !- Convection Coefficient 1 Location - value, !- Convection Coefficient 1 Type - 29.3, !- Convection Coefficient 1 {W/m2-K} - , !- Convection Coefficient 1 Schedule Name - , !- Convection Coefficient 1 User Curve Name - Inside, !- Convection Coefficient 2 Location - value, !- Convection Coefficient 2 Type - 8.29, !- Convection Coefficient 2 {W/m2-K} - , !- Convection Coefficient 2 Schedule Name - ; !- Convection Coefficient 2 User Curve Name - -!- =========== ALL OBJECTS IN CLASS: SURFACEPROPERTIES:VAPORCOEFFICIENTS =========== - - SurfaceProperties:VaporCoefficients, - South wall, !- Surface Name - Yes, !- Constant External Vapor Transfer Coefficient - 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} - Yes, !- Constant Internal vapor Transfer Coefficient - 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} - - SurfaceProperties:VaporCoefficients, - East wall, !- Surface Name - Yes, !- Constant External Vapor Transfer Coefficient - 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} - Yes, !- Constant Internal vapor Transfer Coefficient - 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} - - SurfaceProperties:VaporCoefficients, - North wall, !- Surface Name - Yes, !- Constant External Vapor Transfer Coefficient - 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} - Yes, !- Constant Internal vapor Transfer Coefficient - 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} - - SurfaceProperties:VaporCoefficients, - West wall, !- Surface Name - Yes, !- Constant External Vapor Transfer Coefficient - 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} - Yes, !- Constant Internal vapor Transfer Coefficient - 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} - - SurfaceProperties:VaporCoefficients, - Floor, !- Surface Name - Yes, !- Constant External Vapor Transfer Coefficient - 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} - Yes, !- Constant Internal vapor Transfer Coefficient - 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} - - SurfaceProperties:VaporCoefficients, - Roof, !- Surface Name - Yes, !- Constant External Vapor Transfer Coefficient - 0.0000000625, !- External Vapor Coefficient Value {kg/Pa-s-m2} - Yes, !- Constant Internal vapor Transfer Coefficient - 0.00000002; !- Internal Vapor Coefficient Value {kg/Pa-s-m2} - - - - - -!- =========== ALL OBJECTS IN CLASS: OTHEREQUIPMENT =========== - - OtherEquipment, - latent, !- Name - None, !- Fuel Type - Test room, !- Zone or ZoneList Name - Moisture on, !- Schedule Name - EquipmentLevel, !- Design Level Calculation Method - 352.6, !- Design Level {W} - , !- Power per Zone Floor Area {W/m2} - , !- Power per Person {W/person} - 1, !- Fraction Latent - 0, !- Fraction Radiant - 0; !- Fraction Lost - - OtherEquipment, - Other, !- Name - None, !- Fuel Type - Test room, !- Zone or ZoneList Name - On, !- Schedule Name - EquipmentLevel, !- Design Level Calculation Method - 800, !- Design Level {W} - , !- Power per Zone Floor Area {W/m2} - , !- Power per Person {W/person} - 0, !- Fraction Latent - 0, !- Fraction Radiant - 0; !- Fraction Lost - -!- =========== ALL OBJECTS IN CLASS: ZONEINFILTRATION:DESIGNFLOWRATE =========== - - ZoneInfiltration:DesignFlowRate, - Infiltrate, !- Name - Test room, !- Zone or ZoneList Name - On, !- Schedule Name - AirChanges/Hour, !- Design Flow Rate Calculation Method - 0, !- Design Flow Rate {m3/s} - 0, !- Flow per Zone Floor Area {m3/s-m2} - 0, !- Flow per Exterior Surface Area {m3/s-m2} - 0.5, !- Air Changes per Hour {1/hr} - 1, !- Constant Term Coefficient - 0, !- Temperature Term Coefficient - 0, !- Velocity Term Coefficient - 0; !- Velocity Squared Term Coefficient -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:THERMOSTAT =========== -! -! HVACTemplate:Thermostat, -! All Zones, !- Name -! Htg-SetP-Sch, !- Heating Setpoint Schedule Name -! , !- Constant Heating Setpoint {C} -! Clg-SetP-Sch, !- Cooling Setpoint Schedule Name -! ; !- Constant Cooling Setpoint {C} -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:ZONE:FANCOIL =========== -! -! HVACTemplate:Zone:FanCoil, -! Test room, !- Zone Name -! All Zones, !- Template Thermostat Name -! autosize, !- Supply Air Maximum Flow Rate {m3/s} -! , !- Zone Heating Sizing Factor -! , !- Zone Cooling Sizing Factor -! flow/zone, !- Outdoor Air Method -! 0, !- Outdoor Air Flow Rate per Person {m3/s} -! 0.00944, !- Outdoor Air Flow Rate per Zone Floor Area {m3/s-m2} -! 0, !- Outdoor Air Flow Rate per Zone {m3/s} -! FanAvailSched, !- System Availability Schedule Name -! 0.7, !- Supply Fan Total Efficiency -! 75, !- Supply Fan Delta Pressure {Pa} -! 0.9, !- Supply Fan Motor Efficiency -! 1, !- Supply Fan Motor in Air Stream Fraction -! ChilledWater, !- Cooling Coil Type -! , !- Cooling Coil Availability Schedule Name -! 14, !- Cooling Coil Design Setpoint {C} -! HotWater, !- Heating Coil Type -! , !- Heating Coil Availability Schedule Name -! 50, !- Heating Coil Design Setpoint {C} -! , !- Dedicated Outdoor Air System Name -! , !- Zone Cooling Design Supply Air Temperature Input Method -! , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} -! , !- Zone Heating Design Supply Air Temperature Input Method -! , !- Zone Heating Design Supply Air Temperature Difference {deltaC} -! , !- Design Specification Outdoor Air Object Name -! , !- Design Specification Zone Air Distribution Object Name -! , !- Capacity Control Method -! , !- Low Speed Supply Air Flow Ratio -! , !- Medium Speed Supply Air Flow Ratio -! , !- Outdoor Air Schedule Name -! , !- Baseboard Heating Type -! , !- Baseboard Heating Availability Schedule Name -! ; !- Baseboard Heating Capacity {W} -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLEDWATERLOOP =========== -! -! HVACTemplate:Plant:ChilledWaterLoop, -! Chilled Water Loop, !- Name -! , !- Pump Schedule Name -! INTERMITTENT, !- Pump Control Type -! Default, !- Chiller Plant Operation Scheme Type -! , !- Chiller Plant Equipment Operation Schemes Name -! , !- Chilled Water Setpoint Schedule Name -! 7.22, !- Chilled Water Design Setpoint {C} -! ConstantPrimaryNoSecondary, !- Chilled Water Pump Configuration -! 179352, !- Primary Chilled Water Pump Rated Head {Pa} -! 179352, !- Secondary Chilled Water Pump Rated Head {Pa} -! Default, !- Condenser Plant Operation Scheme Type -! , !- Condenser Equipment Operation Schemes Name -! , !- Condenser Water Temperature Control Type -! , !- Condenser Water Setpoint Schedule Name -! 29.4, !- Condenser Water Design Setpoint {C} -! 179352, !- Condenser Water Pump Rated Head {Pa} -! OutdoorAirTemperatureReset, !- Chilled Water Setpoint Reset Type -! 12.2, !- Chilled Water Setpoint at Outdoor Dry-Bulb Low {C} -! 15.6, !- Chilled Water Reset Outdoor Dry-Bulb Low {C} -! 6.7, !- Chilled Water Setpoint at Outdoor Dry-Bulb High {C} -! 26.7; !- Chilled Water Reset Outdoor Dry-Bulb High {C} -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:CHILLER =========== -! -! HVACTemplate:Plant:Chiller, -! Main Chiller, !- Name -! ElectricReciprocatingChiller, !- Chiller Type -! autosize, !- Capacity {W} -! 3.2, !- Nominal COP {W/W} -! WaterCooled, !- Condenser Type -! 1, !- Priority -! ; !- Sizing Factor -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:TOWER =========== -! -! HVACTemplate:Plant:Tower, -! Main Tower, !- Name -! SingleSpeed, !- Tower Type -! autosize, !- High Speed Nominal Capacity {W} -! autosize, !- High Speed Fan Power {W} -! autosize, !- Low Speed Nominal Capacity {W} -! autosize, !- Low Speed Fan Power {W} -! autosize, !- Free Convection Capacity {W} -! 1, !- Priority -! ; !- Sizing Factor -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:HOTWATERLOOP =========== -! -! HVACTemplate:Plant:HotWaterLoop, -! Hot Water Loop, !- Name -! , !- Pump Schedule Name -! INTERMITTENT, !- Pump Control Type -! Default, !- Hot Water Plant Operation Scheme Type -! , !- Hot Water Plant Equipment Operation Schemes Name -! , !- Hot Water Setpoint Schedule Name -! 82, !- Hot Water Design Setpoint {C} -! ConstantFlow, !- Hot Water Pump Configuration -! 179352, !- Hot Water Pump Rated Head {Pa} -! OutdoorAirTemperatureReset, !- Hot Water Setpoint Reset Type -! 82.2, !- Hot Water Setpoint at Outdoor Dry-Bulb Low {C} -! -6.7, !- Hot Water Reset Outdoor Dry-Bulb Low {C} -! 65.6, !- Hot Water Setpoint at Outdoor Dry-Bulb High {C} -! 10; !- Hot Water Reset Outdoor Dry-Bulb High {C} -! -!- =========== ALL OBJECTS IN CLASS: HVACTEMPLATE:PLANT:BOILER =========== -! -! HVACTemplate:Plant:Boiler, -! Main Boiler, !- Name -! HotWaterBoiler, !- Boiler Type -! autosize, !- Capacity {W} -! 0.8, !- Efficiency -! NaturalGas, !- Fuel Type -! 1, !- Priority -! ; !- Sizing Factor - -!- =========== ALL OBJECTS IN CLASS: SIZING:PARAMETERS =========== - - Sizing:Parameters, - 1, !- Heating Sizing Factor - 1; !- Cooling Sizing Factor - -!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLEDICTIONARY =========== - - Output:VariableDictionary,Regular; - -!- =========== ALL OBJECTS IN CLASS: OUTPUT:VARIABLE =========== - - Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; - - Output:Variable,*,Site Outdoor Air Relative Humidity,hourly; - - Output:Variable,*,Zone Mean Air Temperature,hourly; - - Output:Variable,*,Zone Air System Sensible Heating Rate,hourly; - - Output:Variable,*,Zone Air System Sensible Cooling Rate,hourly; - - Output:Variable,*,HAMT Surface Average Water Content Ratio,hourly; - - Output:Variable,*,Zone Air Relative Humidity,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 1,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 2,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 3,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 4,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 5,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 6,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 7,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 8,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 9,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 10,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 11,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 12,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 13,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 14,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 15,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 16,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 17,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 18,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 19,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 20,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 21,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 22,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 23,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 24,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 25,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 26,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 27,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 28,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 29,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 30,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 31,hourly; - - Output:Variable,east wall,HAMT Surface Water Content Cell 32,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 1,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 2,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 3,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 4,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 5,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 6,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 7,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 8,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 9,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 10,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 11,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 12,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 13,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 14,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 15,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 16,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 17,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 18,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 19,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 20,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 21,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 22,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 23,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 24,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 25,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 26,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 27,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 28,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 29,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 30,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 31,hourly; - - Output:Variable,east wall,HAMT Surface Temperature Cell 32,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 1,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 2,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 3,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 4,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 5,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 6,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 7,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 8,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 9,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 10,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 11,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 12,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 13,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 14,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 15,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 16,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 17,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 18,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 19,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 20,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 21,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 22,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 23,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 24,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 25,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 26,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 27,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 28,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 29,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 30,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 31,hourly; - - Output:Variable,east wall,HAMT Surface Relative Humidity Cell 32,hourly; - -!- =========== ALL OBJECTS IN CLASS: OUTPUT:METER:METERFILEONLY =========== - - Output:Meter:MeterFileOnly,Electricity:Facility,monthly; - - Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; - - Output:Meter:MeterFileOnly,Electricity:Plant,monthly; - - Output:Meter:MeterFileOnly,NaturalGas:Facility,monthly; - - Output:Meter:MeterFileOnly,NaturalGas:Plant,monthly; - - Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; - - Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; - - Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; - - Output:Meter:MeterFileOnly,NaturalGas:Facility,runperiod; - - Output:Meter:MeterFileOnly,NaturalGas:Plant,runperiod; - - OutputControl:Table:Style, - HTML; !- Column Separator - - Output:Table:SummaryReports, - AllSummary; !- Report 1 Name -! -! ------------------------------------------------------------- -! New objects created from ExpandObjects -! ------------------------------------------------------------- -! - -ThermostatSetpoint:DualSetpoint, - All Zones Dual SP Control, !- Name - Htg-SetP-Sch, !- Heating Setpoint Temperature Schedule Name - Clg-SetP-Sch; !- Cooling Setpoint Temperature Schedule Name - -ScheduleTypeLimits, - HVACTemplate Any Number; !- Name - -Schedule:Compact, - HVACTemplate-Always 4, !- Name - HVACTemplate Any Number, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: AllDays, !- Field 2 - Until: 24:00, !- Field 3 - 4; !- Field 4 - -ZoneControl:Thermostat, - Test room Thermostat, !- Name - Test room, !- Zone or ZoneList Name - HVACTemplate-Always 4, !- Control Type Schedule Name - ThermostatSetpoint:DualSetpoint, !- Control Object Type - All Zones Dual SP Control; !- Control Name - -DesignSpecification:OutdoorAir, - SZ DSOA Test room, !- Name - flow/zone, !- Outdoor Air Method - 0, !- Outdoor Air Flow per Person {m3/s} - 0.00944, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} - 0; !- Outdoor Air Flow per Zone {m3/s} - -Sizing:Zone, - Test room, !- Zone or ZoneList Name - SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method - 14, !- Zone Cooling Design Supply Air Temperature {C} - 11.11, !- Zone Cooling Design Supply Air Temperature Difference {delta C} - SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method - 50, !- Zone Heating Design Supply Air Temperature {C} - , !- Zone Heating Design Supply Air Temperature Difference {delta C} - 0.008, !- Zone Cooling Design Supply Air Humidity Ratio {kg-H20/kg-air} - 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kg-H2O/kg-air} - SZ DSOA Test room, !- Design Specification Outdoor Air Object Name - , !- Zone Heating Sizing Factor - , !- Zone Cooling Sizing Factor - DesignDay, !- Cooling Design Air Flow Method - 0, !- Cooling Design Air Flow Rate {m3/s} - , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} - , !- Cooling Minimum Air Flow {m3/s} - 0, !- Cooling Minimum Air Flow Fraction {} - DesignDay, !- Heating Design Air Flow Method - 0, !- Heating Design Air Flow Rate {m3/s} - , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} - , !- Heating Maximum Air Flow {m3/s} - 0, !- Heating Maximum Air Flow Fraction {} - SZ DSZAD Test room; !- Design Specification Zone Air Distribution Object Name - -DesignSpecification:ZoneAirDistribution, - SZ DSZAD Test room, !- Name - 1, !- Zone Air Distribution Effectiveness in Cooling Mode {} - 1; !- Zone Air Distribution Effectiveness in Heating Mode {} - -ZoneHVAC:EquipmentConnections, - Test room, !- Zone Name - Test room Equipment, !- Zone Conditioning Equipment List Name - Test room Supply Inlet, !- Zone Air Inlet Node or NodeList Name - Test room Fan Coil Return, !- Zone Air Exhaust Node or NodeList Name - Test room Zone Air Node, !- Zone Air Node Name - Test room Return Outlet; !- Zone Return Air Node Name - -ZoneHVAC:EquipmentList, - Test room Equipment, !- Name - SequentialLoad, !- Load Distribution Scheme - ZoneHVAC:FourPipeFanCoil, !- Zone Equipment Object Type - Test room Fan Coil, !- Zone Equipment Name - 1, !- Zone Equipment Cooling Sequence - 1, !- Zone Equipment Heating or No-Load Sequence - , !- Zone Equipment Sequential Cooling Fraction Schedule Name - ; !- Zone Equipment Sequential Heating Fraction Schedule Name -! Capacity Control Method was blank, defaulted to ConstantFanVariableFlow - -ZoneHVAC:FourPipeFanCoil, - Test room Fan Coil, !- Name - FanAvailSched, !- Availability Schedule Name - ConstantFanVariableFlow, !- Capacity Control Method - autosize, !- Maximum Supply Air Flow Rate {m3/s} - 0.33, !- Low Speed Supply Air Flow Ratio - 0.66, !- Medium Speed Supply Air Flow Ratio - autosize, !- Maximum Outdoor Air Flow Rate {m3/s} - , !- Outdoor Air Schedule Name - Test room Fan Coil Return, !- Air Inlet Node Name - Test room Supply Inlet, !- Air Outlet Node Name - OutdoorAir:Mixer, !- Outdoor Air Mixer Object Type - Test room OA Mixing Box, !- Outdoor Air Mixer Name - Fan:SystemModel, !- Supply Air Fan Object Type - Test room Supply Fan, !- Fan Name - Coil:Cooling:Water, !- Cooling Coil Object Type - Test room Cooling Coil, !- Cooling Coil Name - autosize, !- Maximum Cold Water Flow Rate {m3/s} - 0, !- Minimum Cold Water Flow Rate {m3/s} - 0.001, !- Cooling Convergence Tolerance - Coil:Heating:Water, !- Heating Coil Object Type - Test room Heating Coil, !- Heating Coil Name - autosize, !- Maximum Hot Water Flow Rate {m3/s} - 0, !- Minimum Hot Water Flow Rate{m3/s} - 0.001; !- Heating Convergence Tolerance - -Fan:SystemModel, - Test room Supply Fan, !- Name - FanAvailSched, !- Availability Schedule Name - Test room Mixed Air Outlet, !- Air Inlet Node Name - Test room Supply Fan Outlet, !- Air Outlet Node Name - autosize, !- Design Maximum Air Flow Rate {m3/s} - Discrete, !- Speed Control Method - 0.0, !- Electric Power Minimum Flow Rate Fraction - 75, !- Design Pressure Rise {Pa} - 0.9, !- Motor Efficiency - 1, !- Motor in Airstream Fraction - autosize, !- Design Electric Power Consumption {W} - TotalEfficiencyAndPressure, !- Design Power Sizing Method - , !- Electric Power Per Unit Flow Rate {W/(m3/s)} - , !- Electric Power Per Unit Flow Rate Per Unit Pressure {W/((m3/s)-Pa)} - 0.7, !- Fan Total Efficiency - , !- Electric Power Function of Flow Fraction Curve Name - , !- Night Ventilation Mode Pressure Rise {Pa} - , !- Night Ventilation Mode Flow Fraction - , !- Motor Loss Zone Name - , !- Motor Loss Radiative Fraction - General, !- End-Use Subcategory - 1, !- Number of Speeds - 1.0, !- Speed 1 Flow Fraction - 1.0; !- Speed 1 Electric Power Fraction - -OutdoorAir:Mixer, - Test room OA Mixing Box, !- Name - Test room Mixed Air Outlet, !- Mixed Air Node Name - Test room Outside Air Inlet, !- Outside Air Stream Node Name - Test room Relief Air Outlet, !- Relief Air Stream Node Name - Test room Fan Coil Return; !- Return Air Stream Node Name - -OutdoorAir:NodeList, - Test room Outside Air Inlet; !- Node or NodeList Name 1 - -Coil:Cooling:Water, - Test room Cooling Coil, !- Name - , !- 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 {kg-H2O/kg-air} - autosize, !- Design Outlet Air Humidity Ratio {kg-H2O/kg-air} - Test room Cooling Coil ChW Inlet, !- Water Inlet Node Name - Test room Cooling Coil ChW Outlet, !- Water Outlet Node Name - Test room Supply Fan Outlet, !- Air Inlet Node Name - Test room Cooling Coil Outlet, !- Air Outlet Node Name - DetailedAnalysis, !- Type of Analysis - CrossFlow; !- Heat Exchanger Configuration - -Branch, - Test room Cooling Coil ChW Branch, !- Name - , !- Pressure Drop Curve Name - Coil:Cooling:Water, !- Cooling Coil Object Type - Test room Cooling Coil, !- Component Name - Test room Cooling Coil ChW Inlet, !- Component Inlet Node Name - Test room Cooling Coil ChW Outlet; !- Component Outlet Node Name - -Coil:Heating:Water, - Test room Heating Coil, !- Name - , !- Availability Schedule Name - autosize, !- U-Factor Times Area Value {W/K} - autosize, !- Maximum Water Flow Rate {m3/s} - Test room Heating Coil HW Inlet, !- Water Inlet Node Name - Test room Heating Coil HW Outlet, !- Water Outlet Node Name - Test room Cooling Coil Outlet, !- Air Inlet Node Name - Test room Supply Inlet, !- Air Outlet Node Name - UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method - autosize, !- Rated Capacity - 82.2, !- Rated Inlet Water Temperature - 16.6, !- Rated Inlet Air Temperature - 71.1, !- Rated Outlet Water Temperature - 32.2, !- Rated Outlet Air Temperature - 0.5; !- Rated Ratio for Air and Water Convection - -Branch, - Test room Heating Coil HW Branch, !- Name - , !- Pressure Drop Curve Name - Coil:Heating:Water, !- Component Object Type - Test room Heating Coil, !- Component Name - Test room Heating Coil HW Inlet, !- Component Inlet Node Name - Test room Heating Coil HW Outlet; !- Component Outlet Node Name - -Boiler:HotWater, - Main Boiler, !- Name - NaturalGas, !- Fuel Type - autosize, !- Nominal Capacity {W} - 0.8, !- Nominal Thermal Efficiency - LeavingBoiler, !- Efficiency Curve Temperature Evaluation Variable - Main Boiler Efficiency Curve, !- Normalized Boiler Efficiency Curve Name - autosize, !- Max Design Boiler Water Flow Rate {m3/s} - 0.0, !- Minimum Part Load Ratio - 1.1, !- Maximum Part Load Ratio - 1.0, !- Optimum Part Load Ratio - Main Boiler HW Inlet, !- Water Inlet Node Name - Main Boiler HW Outlet, !- Water Outlet Node Name - 100.0, !- Temp Upper Limit Water Outlet {C} - ConstantFlow, !- Boiler Flow Mode - 0, !- Parasitic Electric Load {W} - 1.0; !- Sizing Factor - -Curve:Quadratic, - Main Boiler Efficiency Curve, !- Name - 0.97, !- Coefficient1 Constant - 0.0633, !- Coefficient2 x - -0.0333, !- Coefficient3 x**2 - 0.0, !- Minimum Value of x - 1.0; !- Maximum Value of x - -Branch, - Main Boiler HW Branch, !- Name - , !- Pressure Drop Curve Name - Boiler:HotWater, !- Component Object Type - Main Boiler, !- Component Name - Main Boiler HW Inlet, !- Component Inlet Node Name - Main Boiler HW Outlet; !- Component Outlet Node Name - -Chiller:Electric:EIR, - Main Chiller, !- Name - autosize, !- Reference Capacity {W} - 3.2, !- Reference COP {W/W} - 6.67, !- Reference Leaving Chilled Water Temperature {C} - 29.4, !- Reference Entering Condenser Fluid Temperature {C} - autosize, !- Reference Evaporator Volumetric Water Flow Rate {m3/s} - autosize, !- Reference Condenser Volumetric Water Flow Rate {m3/s} - Main Chiller RecipCapFT, !- Cooling Capacity Function of Temperature Curve Name - Main Chiller RecipEIRFT, !- Electric Input to Cooling Output Ratio Function of Temperature Curve Name - Main Chiller RecipEIRFPLR, !- Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name - 0.0, !- Minimum Part Load Ratio - 1.0, !- Maximum Part Load Ratio - 1.0, !- Optimum Part Load Ratio - 0.25, !- Minimum Unloading Ratio - Main Chiller ChW Inlet, !- Chilled Water Inlet Node Name - Main Chiller ChW Outlet, !- Chilled Water Outlet Node Name - Main Chiller Cnd Inlet, !- Condenser Inlet Node Name - Main Chiller Cnd Outlet, !- Condenser Outlet Node Name - WaterCooled, !- Condenser Type - , !- Condenser Fan Power Ratio {W/W} - 1, !- Compressor Motor Efficiency - 5.0, !- Leaving Chilled Water Lower Temperature Limit {C} - ConstantFlow, !- Chiller Flow Mode - 0, !- Design Heat Recovery Water Flow Rate {m3/s} - , !- Heat Recovery Inlet Node Name - , !- Heat Recovery Outlet Node Name - 1.0; !- Sizing Factor - -Branch, - Main Chiller ChW Branch, !- Name - , !- Pressure Drop Curve Name - Chiller:Electric:EIR, !- Component Object Type - Main Chiller, !- Component Name - Main Chiller ChW Inlet, !- Component Inlet Node Name - Main Chiller ChW Outlet; !- Component Outlet Node Name - -Branch, - Main Chiller CndW Branch, !- Name - , !- Pressure Drop Curve Name - Chiller:Electric:EIR, !- Component Object Type - Main Chiller, !- Component Name - Main Chiller Cnd Inlet, !- Component Inlet Node Name - Main Chiller Cnd Outlet; !- Component Outlet Node Name - -Curve:Biquadratic, -! Cooling Capacity Function of Temperature Curve for open or hermetic water-cooled reciprocating chillers -! Same as DOE-2.1E HERM-REC-CAP-FT (CCAPT4) and OPEN-REC-CAP-FT (CCAPT2) - Main Chiller RecipCapFT, !- Name - 0.507883, !- Coefficient1 Constant - 0.145228, !- Coefficient2 x - -0.00625644, !- Coefficient3 x**2 - -0.0011178, !- Coefficient4 y - -0.0001296, !- Coefficient5 y**2 - -0.00028188, !- Coefficient6 x*y - 5, !- Minimum Value of x - 10, !- Maximum Value of x - 24, !- Minimum Value of y - 35; !- Maximum Value of y - -Curve:Biquadratic, -! Energy Input to Cooling Output Ratio Function of Temperature Curve for open or hermetic water-cooled reciprocating chillers -! Same as DOE-2.1E HERM-REC-EIR-FT (EIRT4) and OPEN-REC-EIR-FT (EIRT2) - Main Chiller RecipEIRFT, !- Name - 1.03076, !- Coefficient1 Constant - -0.103536, !- Coefficient2 x - 0.00710208, !- Coefficient3 x**2 - 0.0093186, !- Coefficient4 y - 0.00031752, !- Coefficient5 y**2 - -0.00104328, !- Coefficient6 x*y - 5, !- Minimum Value of x - 10, !- Maximum Value of x - 24, !- Minimum Value of y - 35; !- Maximum Value of y - -Curve:Quadratic, -! Energy Input to Cooling Output Ratio Function of Part Load Ratio Curve for open or hermetic water-cooled reciprocating chillers -! Same as DOE-2.1E HERM-REC-EIR-FPLR (EIRPLR4) and OPEN-REC-EIR-FPLR (EIRPLR2) - Main Chiller RecipEIRFPLR, !- Name - 0.088065, !- Coefficient1 Constant - 1.137742, !- Coefficient2 x - -0.225806, !- Coefficient3 x**2 - 0, !- Minimum Value of x - 1; !- Maximum Value of x - -CoolingTower:SingleSpeed, - Main Tower, !- Name - Main Tower CndW Inlet, !- Water Inlet Node Name - Main Tower CndW Outlet, !- 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 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} - autocalculate, !- Free Convection Capacity {W} - , !- Free Convection Nominal Capacity Sizing Factor - , !- Design Inlet Air Dry-Bulb Temperature {C} - , !- Design Inlet Air Wet-Bulb Temperature {C} - , !- Design Approach Temperature {deltaT} - , !- Design Range Temperature {deltaT} - , !- 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.008, !- Drift Loss Percent {percent} - ConcentrationRatio, !- Blowdown Calculation Mode - 3, !- Blowdown Concentration Ratio - , !- Blowdown Makeup Water Usage Schedule Name - , !- Supply Water Storage Tank Name - Main Tower Cooling Tower Outdoor Air Inlet 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.0; !- Sizing Factor - -OutdoorAir:Node, - Main Tower Cooling Tower Outdoor Air Inlet Node, !- Name - -1; !- Height Above Ground - -Branch, - Main Tower CndW Branch, !- Name - , !- Pressure Drop Curve Name - CoolingTower:SingleSpeed, !- Component Object Type - Main Tower, !- Component Name - Main Tower CndW Inlet, !- Component Inlet Node Name - Main Tower CndW Outlet; !- Component Outlet Node Name - -Sizing:Plant, - Hot Water Loop Hot Water Loop, !- Plant or Condenser Loop Name - Heating, !- Loop Type - 82, !- Design loop exit temperature {C} - 11.0; !- Design loop delta T {deltaC} - -PlantLoop, - Hot Water Loop Hot Water Loop, !- Name - Water, !- Fluid Type - , !- User Defined Fluid Type - Hot Water Loop Operation, !- PlantEquipmentOperationSchemes Name - Hot Water Loop HW Supply Outlet, !- Loop Temperature Setpoint Node Name - 100, !- Maximum Loop Temperature {C} - 10, !- Minimum Loop Temperature {C} - autosize, !- Maximum Loop Volumetric Flow Rate {m3/s} - 0, !- Minimum Loop Volumetric Flow Rate {m3/s} - autosize, !- volume of the plant loop {m3} - Hot Water Loop HW Supply Inlet, !- Plant Side Inlet Node Name - Hot Water Loop HW Supply Outlet, !- Plant Side Outlet Node Name - Hot Water Loop HW Supply Side Branches, !- Plant Side Branch List Name - Hot Water Loop HW Supply Side Connectors, !- Plant Side Connector List Name - Hot Water Loop HW Demand Inlet, !- Demand Side Inlet Node Name - Hot Water Loop HW Demand Outlet, !- Demand Side Outlet Node Name - Hot Water Loop HW Demand Side Branches, !- Demand Side Branch List Name - Hot Water Loop HW Demand Side Connectors, !- Demand Side Connector List Name - SequentialLoad, !- Load Distribution Scheme - , !- AvailabilityManagerAssignmentList - SingleSetpoint; !- Plant Loop Demand Calculation Scheme - -PlantEquipmentOperationSchemes, - Hot Water Loop Operation, !- Name - PlantEquipmentOperation:HeatingLoad, !- Control Scheme Object Type - Hot Water Loop Operation All Hours, !- Control Scheme Name - HVACTemplate-Always 1; !- Control Scheme Schedule Name - -Schedule:Compact, - HVACTemplate-Always 1, !- Name - HVACTemplate Any Number, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: AllDays, !- Field 2 - Until: 24:00, !- Field 3 - 1; !- Field 4 - -PlantEquipmentOperation:HeatingLoad, - Hot Water Loop Operation All Hours, !- Name - 0, !- Load Range Lower Limit 1 {W} - 1000000000000000, !- Load Range Upper Limit 1 {W} - Hot Water Loop All Equipment; !- Priority Control 1 Equipment List Name - -PlantEquipmentList, - Hot Water Loop All Equipment, !- Name - Boiler:HotWater, !- Equipment Object Type - Main Boiler; !- Equipment Name - -NodeList, - Hot Water Loop HW Supply Setpoint Nodes, !- Name - Main Boiler HW Outlet, !- Node Name - Hot Water Loop HW Supply Outlet; !- Node Name - -SetpointManager:OutdoorAirReset, - Hot Water Loop HW Temp Manager, !- Name - Temperature, !- Control Variable - 82.2, !- Set point at outside low {C} - -6.7, !- Outside low {C} - 65.6, !- Set point at outside high {C} - 10, !- Outside high {C} - Hot Water Loop HW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name - -BranchList, - Hot Water Loop HW Supply Side Branches, !- Name - Hot Water Loop HW Supply Inlet Branch, !- Name - Main Boiler HW Branch, !- Branch Name - Hot Water Loop HW Supply Bypass Branch, !- Name - Hot Water Loop HW Supply Outlet Branch; !- Name - -ConnectorList, - Hot Water Loop HW Supply Side Connectors, !- Name - Connector:Splitter, !- Connector Object Type - Hot Water Loop HW Supply Splitter, !- Connector Name - Connector:Mixer, !- Connector Object Type - Hot Water Loop HW Supply Mixer; !- Connector Name - -Connector:Splitter, - Hot Water Loop HW Supply Splitter, !- Name - Hot Water Loop HW Supply Inlet Branch, !- Inlet Branch Name - Main Boiler HW Branch, !- Outlet Branch Name - Hot Water Loop HW Supply Bypass Branch; !- Outlet Branch Name - -Connector:Mixer, - Hot Water Loop HW Supply Mixer, !- Name - Hot Water Loop HW Supply Outlet Branch, !- Outlet Branch Name - Main Boiler HW Branch, !- Outlet Branch Name - Hot Water Loop HW Supply Bypass Branch; !- Inlet Branch Name - -Branch, - Hot Water Loop HW Supply Bypass Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Hot Water Loop HW Supply Side Bypass Pipe, !- Component Name - Hot Water Loop HW Supply Bypass Inlet, !- Component Inlet Node Name - Hot Water Loop HW Supply Bypass Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Hot Water Loop HW Supply Side Bypass Pipe, !- Name - Hot Water Loop HW Supply Bypass Inlet, !- Inlet Node Name - Hot Water Loop HW Supply Bypass Outlet; !- Outlet Node Name - -Pump:ConstantSpeed, - Hot Water Loop HW Supply Pump, !- Name - Hot Water Loop HW Supply Inlet, !- Inlet Node Name - Hot Water Loop HW Pump Outlet, !- Outlet Node Name - autosize, !- Rated Volumetric Flow Rate {m3/s} - 179352, !- Rated Pump Head {Pa} - autosize, !- Rated Power Consumption {W} - 0.9, !- Motor Efficiency - 0, !- Fraction of Motor Inefficiencies to Fluid Stream - INTERMITTENT, !- Pump Control Type - ; !- Pump Flow Rate Schedule Name - -Branch, - Hot Water Loop HW Supply Inlet Branch, !- Name - , !- Pressure Drop Curve Name - Pump:ConstantSpeed, !- Component Object Type - Hot Water Loop HW Supply Pump, !- Component Name - Hot Water Loop HW Supply Inlet, !- Component Inlet Node Name - Hot Water Loop HW Pump Outlet; !- Component Outlet Node Name - -Branch, - Hot Water Loop HW Supply Outlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Hot Water Loop HW Supply Outlet Pipe, !- Component Name - Hot Water Loop HW Supply Outlet Pipe Inlet, !- Component Inlet Node Name - Hot Water Loop HW Supply Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Hot Water Loop HW Supply Outlet Pipe, !- Name - Hot Water Loop HW Supply Outlet Pipe Inlet, !- Inlet Node Name - Hot Water Loop HW Supply Outlet; !- Outlet Node Name - -BranchList, - Hot Water Loop HW Demand Side Branches, !- Name - Hot Water Loop HW Demand Inlet Branch, !- Name - Test room Heating Coil HW Branch, !- Name - Hot Water Loop HW Demand Bypass Branch, !- Name - Hot Water Loop HW Demand Outlet Branch; !- Name - -ConnectorList, - Hot Water Loop HW Demand Side Connectors, !- Name - Connector:Splitter, !- Connector Object Type - Hot Water Loop HW Demand Splitter, !- Connector Name - Connector:Mixer, !- Connector Object Type - Hot Water Loop HW Demand Mixer; !- Connector Name - -Connector:Splitter, - Hot Water Loop HW Demand Splitter, !- Name - Hot Water Loop HW Demand Inlet Branch, !- Inlet Branch Name - Hot Water Loop HW Demand Bypass Branch, !- Outlet Branch Name - Test room Heating Coil HW Branch; !- Name - -Connector:Mixer, - Hot Water Loop HW Demand Mixer, !- Name - Hot Water Loop HW Demand Outlet Branch, !- Outlet Branch Name - Hot Water Loop HW Demand Bypass Branch, !- Inlet Branch Name - Test room Heating Coil HW Branch; !- Name - -Branch, - Hot Water Loop HW Demand Inlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Hot Water Loop HW Demand Inlet Pipe, !- Component Name - Hot Water Loop HW Demand Inlet, !- Component Inlet Node Name - Hot Water Loop HW Demand Inlet Pipe Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Hot Water Loop HW Demand Inlet Pipe, !- Name - Hot Water Loop HW Demand Inlet, !- Inlet Node Name - Hot Water Loop HW Demand Inlet Pipe Outlet; !- Outlet Node Name - -Branch, - Hot Water Loop HW Demand Bypass Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Hot Water Loop HW Demand Side Bypass Pipe, !- Component Name - Hot Water Loop HW Demand Bypass Inlet, !- Component Inlet Node Name - Hot Water Loop HW Demand Bypass Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Hot Water Loop HW Demand Side Bypass Pipe, !- Name - Hot Water Loop HW Demand Bypass Inlet, !- Inlet Node Name - Hot Water Loop HW Demand Bypass Outlet; !- Outlet Node Name - -Branch, - Hot Water Loop HW Demand Outlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Hot Water Loop HW Demand Outlet Pipe, !- Component Name - Hot Water Loop HW Demand Outlet Pipe Inlet, !- Component Inlet Node Name - Hot Water Loop HW Demand Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Hot Water Loop HW Demand Outlet Pipe, !- Name - Hot Water Loop HW Demand Outlet Pipe Inlet, !- Inlet Node Name - Hot Water Loop HW Demand Outlet; !- Outlet Node Name - -Sizing:Plant, - Chilled Water Loop Chilled Water Loop, !- Plant or Condenser Loop Name - Cooling, !- Loop Type - 7.22, !- Design loop exit temperature {C} - 6.67; !- Design loop delta T {deltaC} - -PlantLoop, - Chilled Water Loop Chilled Water Loop, !- Name - Water, !- Fluid Type - , !- User Defined Fluid Type - Chilled Water Loop Chiller Operation, !- PlantEquipmentOperationSchemes Name - Chilled Water Loop ChW Supply Outlet, !- Loop Temperature Setpoint Node Name - 98, !- Maximum Loop Temperature {C} - 1, !- Minimum Loop Temperature {C} - autosize, !- Maximum Loop Volumetric Flow Rate {m3/s} - 0, !- Minimum Loop Volumetric Flow Rate {m3/s} - autosize, !- volume of the plant loop {m3} - Chilled Water Loop ChW Supply Inlet, !- Plant Side Inlet Node Name - Chilled Water Loop ChW Supply Outlet, !- Plant Side Outlet Node Name - Chilled Water Loop ChW Supply Side Branches, !- Plant Side Branch List Name - Chilled Water Loop ChW Supply Side Connectors, !- Plant Side Connector List Name - Chilled Water Loop ChW Demand Inlet, !- Demand Side Inlet Node Name - Chilled Water Loop ChW Demand Outlet, !- Demand Side Outlet Node Name - Chilled Water Loop ChW Demand Side Branches, !- Demand Side Branch List Name - Chilled Water Loop ChW Demand Side Connectors, !- Demand Side Connector List Name - SequentialLoad, !- Load Distribution Scheme - , !- AvailabilityManagerAssignmentList - SingleSetpoint, !- Plant Loop Demand Calculation Scheme - None; !- Common Pipe Simulation - -PlantEquipmentOperationSchemes, - Chilled Water Loop Chiller Operation, !- Name - PlantEquipmentOperation:CoolingLoad, !- Control Scheme Object Type - Chilled Water Loop Chiller Operation All Hours, !- Control Scheme Name - HVACTemplate-Always 1; !- Control Scheme Schedule Name - -PlantEquipmentOperation:CoolingLoad, - Chilled Water Loop Chiller Operation All Hours, !- Name - 0, !- Load Range Lower Limit 1 {W} - 1000000000000000, !- Load Range Upper Limit 1 {W} - Chilled Water Loop All Chillers; !- Priority Control 1 Equipment List Name - -PlantEquipmentList, - Chilled Water Loop All Chillers, !- Name - Chiller:Electric:EIR, !- Equipment Object Type - Main Chiller; !- Equipment Name - -NodeList, - Chilled Water Loop ChW Supply Setpoint Nodes, !- Name - Main Chiller ChW Outlet, !- Node Name - Chilled Water Loop ChW Supply Outlet; !- Node Name - -SetpointManager:OutdoorAirReset, - Chilled Water Loop ChW Temp Manager, !- Name - Temperature, !- Control Variable - 12.2, !- Set point at outside low {C} - 15.6, !- Outside low {C} - 6.7, !- Set point at outside high {C} - 26.7, !- Outside high {C} - Chilled Water Loop ChW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name - -BranchList, - Chilled Water Loop ChW Supply Side Branches, !- Name - Chilled Water Loop ChW Supply Inlet Branch, !- Name - Main Chiller ChW Branch, !- Name - Chilled Water Loop ChW Supply Bypass Branch, !- Name - Chilled Water Loop ChW Supply Outlet Branch; !- Name - -ConnectorList, - Chilled Water Loop ChW Supply Side Connectors, !- Name - Connector:Splitter, !- Connector Object Type - Chilled Water Loop ChW Supply Splitter, !- Connector Name - Connector:Mixer, !- Connector Object Type - Chilled Water Loop ChW Supply Mixer; !- Connector Name - -Connector:Splitter, - Chilled Water Loop ChW Supply Splitter, !- Name - Chilled Water Loop ChW Supply Inlet Branch, !- Inlet Branch Name - Chilled Water Loop ChW Supply Bypass Branch, !- Outlet Branch Name - Main Chiller ChW Branch; !- Outlet Branch Name - -Connector:Mixer, - Chilled Water Loop ChW Supply Mixer, !- Name - Chilled Water Loop ChW Supply Outlet Branch, !- Outlet Branch Name - Chilled Water Loop ChW Supply Bypass Branch, !- Inlet Branch Name - Main Chiller ChW Branch; !- Inlet Branch Name - -Branch, - Chilled Water Loop ChW Supply Bypass Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop ChW Supply Side Bypass Pipe, !- Component Name - Chilled Water Loop ChW Supply Bypass Inlet, !- Component Inlet Node Name - Chilled Water Loop ChW Supply Bypass Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop ChW Supply Side Bypass Pipe, !- Name - Chilled Water Loop ChW Supply Bypass Inlet, !- Inlet Node Name - Chilled Water Loop ChW Supply Bypass Outlet; !- Outlet Node Name - -Pump:ConstantSpeed, - Chilled Water Loop ChW Supply Pump, !- Name - Chilled Water Loop ChW Supply Inlet, !- Inlet Node Name - Chilled Water Loop ChW Pump Outlet, !- Outlet Node Name - autosize, !- Rated Volumetric Flow Rate {m3/s} - 179352, !- Rated Pump Head {Pa} - autosize, !- Rated Power Consumption {W} - 0.9, !- Motor Efficiency - 0, !- Fraction of Motor Inefficiencies to Fluid Stream - INTERMITTENT, !- Pump Control Type - ; !- Pump Flow Rate Schedule Name - -Branch, - Chilled Water Loop ChW Supply Inlet Branch, !- Name - , !- Pressure Drop Curve Name - Pump:ConstantSpeed, !- Component Object Type - Chilled Water Loop ChW Supply Pump, !- Component Name - Chilled Water Loop ChW Supply Inlet, !- Component Inlet Node Name - Chilled Water Loop ChW Pump Outlet; !- Component Outlet Node Name - -Branch, - Chilled Water Loop ChW Supply Outlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop ChW Supply Outlet Pipe, !- Component Name - Chilled Water Loop ChW Supply Outlet Pipe Inlet, !- Component Inlet Node Name - Chilled Water Loop ChW Supply Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop ChW Supply Outlet Pipe, !- Name - Chilled Water Loop ChW Supply Outlet Pipe Inlet, !- Inlet Node Name - Chilled Water Loop ChW Supply Outlet; !- Outlet Node Name - -BranchList, - Chilled Water Loop ChW Demand Side Branches, !- Name - Chilled Water Loop ChW Demand Inlet Branch, !- Name - Test room Cooling Coil ChW Branch, !- Name - Chilled Water Loop ChW Demand Bypass Branch, !- Name - Chilled Water Loop ChW Demand Outlet Branch; !- Name - -ConnectorList, - Chilled Water Loop ChW Demand Side Connectors, !- Name - Connector:Splitter, !- Connector Object Type - Chilled Water Loop ChW Demand Splitter, !- Connector Name - Connector:Mixer, !- Connector Object Type - Chilled Water Loop ChW Demand Mixer; !- Connector Name - -Connector:Splitter, - Chilled Water Loop ChW Demand Splitter, !- Name - Chilled Water Loop ChW Demand Inlet Branch, !- Inlet Branch Name - Chilled Water Loop ChW Demand Bypass Branch, !- Outlet Branch Name - Test room Cooling Coil ChW Branch; !- Outlet Branch Name - -Connector:Mixer, - Chilled Water Loop ChW Demand Mixer, !- Name - Chilled Water Loop ChW Demand Outlet Branch, !- Outlet Branch Name - Chilled Water Loop ChW Demand Bypass Branch, !- Inlet Branch Name - Test room Cooling Coil ChW Branch; !- Inlet Branch Name - -Branch, - Chilled Water Loop ChW Demand Inlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop ChW Demand Inlet Pipe, !- Component Name - Chilled Water Loop ChW Demand Inlet, !- Component Inlet Node Name - Chilled Water Loop ChW Demand Inlet Pipe Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop ChW Demand Inlet Pipe, !- Name - Chilled Water Loop ChW Demand Inlet, !- Inlet Node Name - Chilled Water Loop ChW Demand Inlet Pipe Outlet; !- Outlet Node Name - -Branch, - Chilled Water Loop ChW Demand Bypass Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop ChW Demand Side Bypass Pipe, !- Component Name - Chilled Water Loop ChW Demand Bypass Inlet, !- Component Inlet Node Name - Chilled Water Loop ChW Demand Bypass Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop ChW Demand Side Bypass Pipe, !- Name - Chilled Water Loop ChW Demand Bypass Inlet, !- Inlet Node Name - Chilled Water Loop ChW Demand Bypass Outlet; !- Outlet Node Name - -Branch, - Chilled Water Loop ChW Demand Outlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop ChW Demand Outlet Pipe, !- Component Name - Chilled Water Loop ChW Demand Outlet Pipe Inlet, !- Component Inlet Node Name - Chilled Water Loop ChW Demand Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop ChW Demand Outlet Pipe, !- Name - Chilled Water Loop ChW Demand Outlet Pipe Inlet, !- Inlet Node Name - Chilled Water Loop ChW Demand Outlet; !- Outlet Node Name - -Sizing:Plant, - Chilled Water Loop Condenser Water Loop, !- Plant or Condenser Loop Name - Condenser, !- Loop Type - 29.4, !- Design loop exit temperature {C} - 5.6; !- Design loop delta T {deltaC} - -CondenserLoop, - Chilled Water Loop Condenser Water Loop, !- Name - Water, !- Fluid Type - , !- User Defined Fluid Type - Chilled Water Loop Condenser Operation, !- Condenser Operation Scheme List Name - Chilled Water Loop CndW Supply Outlet, !- Condenser Loop Temperature Setpoint Node Name or Reference - 80, !- Maximum Loop Temperature {C} - 5, !- Minimum Loop Temperature {C} - autosize, !- Maximum Loop Volumetric Flow Rate {m3/s} - 0, !- Minimum Loop Volumetric Flow Rate {m3/s} - autosize, !- volume of the plant loop {m3} - Chilled Water Loop CndW Supply Inlet, !- Condenser Side Inlet Node Name - Chilled Water Loop CndW Supply Outlet, !- Condenser Side Outlet Node Name - Chilled Water Loop CndW Supply Side Branches, !- Condenser Side Branch List Name - Chilled Water Loop CndW Supply Side Connectors, !- Condenser Side Connector List Name - Chilled Water Loop CndW Demand Inlet, !- Demand Side Inlet Node Name - Chilled Water Loop CndW Demand Outlet, !- Demand Side Outlet Node Name - Chilled Water Loop CndW Demand Side Branches, !- Condenser Demand Side Branch List Name - Chilled Water Loop CndW Demand Side Connectors, !- Condenser Demand Side Connector List Name - SequentialLoad; !- Load Distribution Scheme - -CondenserEquipmentOperationSchemes, - Chilled Water Loop Condenser Operation, !- Name - PlantEquipmentOperation:CoolingLoad, !- Control Scheme Object Type - Chilled Water Loop Condenser Operation All Hours, !- Control Scheme Name - HVACTemplate-Always 1; !- Control Scheme Schedule Name - -PlantEquipmentOperation:CoolingLoad, - Chilled Water Loop Condenser Operation All Hours, !- Name - 0, !- Load Range Lower Limit 1 {W} - 1000000000000000, !- Load Range Upper Limit 1 {W} - Chilled Water Loop All Condensers; !- Priority Control 1 Equipment List Name - -CondenserEquipmentList, - Chilled Water Loop All Condensers, !- Name - CoolingTower:SingleSpeed, !- Equipment Object Type - Main Tower; !- Equipment Name - -NodeList, - Chilled Water Loop CndW Supply Setpoint Nodes, !- Name - Main Tower CndW Outlet, !- Node Name - Chilled Water Loop CndW Supply Outlet; !- Node Name - -Schedule:Compact, - HVACTemplate-Always 29.4, !- Name - HVACTemplate Any Number, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: AllDays, !- Field 2 - Until: 24:00, !- Field 3 - 29.4; !- Field 4 - -SetpointManager:Scheduled, - Chilled Water Loop CndW Temp Manager, !- Name - Temperature, !- Control Variable - HVACTemplate-Always 29.4, !- Schedule Name - Chilled Water Loop CndW Supply Setpoint Nodes; !- Setpoint Node or NodeList Name - -BranchList, - Chilled Water Loop CndW Supply Side Branches, !- Name - Chilled Water Loop CndW Supply Inlet Branch, !- Name - Main Tower CndW Branch, !- Name - Chilled Water Loop CndW Supply Bypass Branch, !- Name - Chilled Water Loop CndW Supply Outlet Branch; !- Name - -ConnectorList, - Chilled Water Loop CndW Supply Side Connectors, !- Name - Connector:Splitter, !- Connector Object Type - Chilled Water Loop CndW Supply Splitter, !- Connector Name - Connector:Mixer, !- Connector Object Type - Chilled Water Loop CndW Supply Mixer; !- Connector Name - -Connector:Splitter, - Chilled Water Loop CndW Supply Splitter, !- Name - Chilled Water Loop CndW Supply Inlet Branch, !- Inlet Branch Name - Chilled Water Loop CndW Supply Bypass Branch, !- Outlet Branch Name - Main Tower CndW Branch; !- Outlet Branch Name - -Connector:Mixer, - Chilled Water Loop CndW Supply Mixer, !- Name - Chilled Water Loop CndW Supply Outlet Branch, !- Outlet Branch Name - Chilled Water Loop CndW Supply Bypass Branch, !- Inlet Branch Name - Main Tower CndW Branch; !- Inlet Branch Name -! Pump part load coefficients are linear to represent condenser pumps dedicated to each chiller. - -Pump:VariableSpeed, - Chilled Water Loop CndW Supply Pump, !- Name - Chilled Water Loop CndW Supply Inlet, !- Inlet Node Name - Chilled Water Loop CndW Pump Outlet, !- Outlet Node Name - autosize, !- Rated Volumetric Flow Rate {m3/s} - 179352, !- Rated Pump Head {Pa} - autosize, !- Rated Power Consumption {W} - 0.9, !- Motor Efficiency - 0, !- Fraction of Motor Inefficiencies to Fluid Stream - 0, !- Coefficient 1 of the Part Load Performance Curve - 0, !- Coefficient 2 of the Part Load Performance Curve - 1, !- Coefficient 3 of the Part Load Performance Curve - 0, !- Coefficient 4 of the Part Load Performance Curve - 0, !- Min Flow Rate while operating in variable flow capacity {m3/s} - INTERMITTENT, !- Pump Control Type - ; !- Pump Flow Rate Schedule Name - -Branch, - Chilled Water Loop CndW Supply Inlet Branch, !- Name - , !- Pressure Drop Curve Name - Pump:VariableSpeed, !- Component Object Type - Chilled Water Loop CndW Supply Pump, !- Component Name - Chilled Water Loop CndW Supply Inlet, !- Component Inlet Node Name - Chilled Water Loop CndW Pump Outlet; !- Component Outlet Node Name - -Branch, - Chilled Water Loop CndW Supply Outlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop CndW Supply Outlet Pipe, !- Component Name - Chilled Water Loop CndW Supply Outlet Pipe Inlet, !- Component Inlet Node Name - Chilled Water Loop CndW Supply Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop CndW Supply Outlet Pipe, !- Name - Chilled Water Loop CndW Supply Outlet Pipe Inlet, !- Inlet Node Name - Chilled Water Loop CndW Supply Outlet; !- Outlet Node Name - -Branch, - Chilled Water Loop CndW Supply Bypass Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop CndW Supply Side Bypass Pipe, !- Component Name - Chilled Water Loop CndW Supply Bypass Inlet, !- Component Inlet Node Name - Chilled Water Loop CndW Supply Bypass Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop CndW Supply Side Bypass Pipe, !- Name - Chilled Water Loop CndW Supply Bypass Inlet, !- Inlet Node Name - Chilled Water Loop CndW Supply Bypass Outlet; !- Outlet Node Name - -BranchList, - Chilled Water Loop CndW Demand Side Branches, !- Name - Chilled Water Loop CndW Demand Inlet Branch, !- Name - Main Chiller CndW Branch, !- Name - Chilled Water Loop CndW Demand Bypass Branch, !- Name - Chilled Water Loop CndW Demand Outlet Branch; !- Name - -ConnectorList, - Chilled Water Loop CndW Demand Side Connectors, !- Name - Connector:Splitter, !- Connector Object Type - Chilled Water Loop CndW Demand Splitter, !- Connector Name - Connector:Mixer, !- Connector Object Type - Chilled Water Loop CndW Demand Mixer; !- Connector Name - -Connector:Splitter, - Chilled Water Loop CndW Demand Splitter, !- Name - Chilled Water Loop CndW Demand Inlet Branch, !- Inlet Branch Name - Chilled Water Loop CndW Demand Bypass Branch, !- Outlet Branch Name - Main Chiller CndW Branch; !- Outlet Branch Name - -Connector:Mixer, - Chilled Water Loop CndW Demand Mixer, !- Name - Chilled Water Loop CndW Demand Outlet Branch, !- Outlet Branch Name - Chilled Water Loop CndW Demand Bypass Branch, !- Inlet Branch Name - Main Chiller CndW Branch; !- Inlet Branch Name - -Branch, - Chilled Water Loop CndW Demand Inlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop CndW Demand Inlet Pipe, !- Component Name - Chilled Water Loop CndW Demand Inlet, !- Component Inlet Node Name - Chilled Water Loop CndW Demand Inlet Pipe Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop CndW Demand Inlet Pipe, !- Name - Chilled Water Loop CndW Demand Inlet, !- Inlet Node Name - Chilled Water Loop CndW Demand Inlet Pipe Outlet; !- Outlet Node Name - -Branch, - Chilled Water Loop CndW Demand Bypass Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop CndW Demand Side Bypass Pipe, !- Component Name - Chilled Water Loop CndW Demand Bypass Inlet, !- Component Inlet Node Name - Chilled Water Loop CndW Demand Bypass Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop CndW Demand Side Bypass Pipe, !- Name - Chilled Water Loop CndW Demand Bypass Inlet, !- Inlet Node Name - Chilled Water Loop CndW Demand Bypass Outlet; !- Outlet Node Name - -Branch, - Chilled Water Loop CndW Demand Outlet Branch, !- Name - , !- Pressure Drop Curve Name - Pipe:Adiabatic, !- Component Object Type - Chilled Water Loop CndW Demand Outlet Pipe, !- Component Name - Chilled Water Loop CndW Demand Outlet Pipe Inlet, !- Component Inlet Node Name - Chilled Water Loop CndW Demand Outlet; !- Component Outlet Node Name - -Pipe:Adiabatic, - Chilled Water Loop CndW Demand Outlet Pipe, !- Name - Chilled Water Loop CndW Demand Outlet Pipe Inlet, !- Inlet Node Name - Chilled Water Loop CndW Demand Outlet; !- Outlet Node Name - -Site:GroundTemperature:BuildingSurface, - 18, !- January Ground Temperature - 18, !- February Ground Temperature - 18, !- March Ground Temperature - 18, !- April Ground Temperature - 18, !- May Ground Temperature - 18, !- June Ground Temperature - 18, !- July Ground Temperature - 18, !- August Ground Temperature - 18, !- September Ground Temperature - 18, !- October Ground Temperature - 18, !- November Ground Temperature - 18; !- December Ground Temperature diff --git a/testfiles/eplusout.mtd b/testfiles/eplusout.mtd deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/testfiles/eplusout.mtr b/testfiles/eplusout.mtr deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/testfiles/eplusout.shd b/testfiles/eplusout.shd deleted file mode 100644 index a204b2f5011..00000000000 --- a/testfiles/eplusout.shd +++ /dev/null @@ -1,46 +0,0 @@ -Shadowing Combinations -..Solar Distribution=Minimal Shadowing, Detached Shading will not be used in shadowing calculations -..In the following, only the first 10 reference surfaces will be shown. -..But all surfaces are used in the calculations. -================================== -Surface=SOUTH WALL is used as Receiving Surface in calculations and is convex. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=2 -....Surface=SOUTH WINDOW_WEST -....Surface=SOUTH WINDOW_EAST -================================== -Surface=SOUTH WINDOW_WEST is not used as Receiving Surface in calculations. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 -================================== -Surface=SOUTH WINDOW_EAST is not used as Receiving Surface in calculations. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 -================================== -Surface=EAST WALL is used as Receiving Surface in calculations and is convex. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 -================================== -Surface=NORTH WALL is used as Receiving Surface in calculations and is convex. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 -================================== -Surface=WEST WALL is used as Receiving Surface in calculations and is convex. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 -================================== -Surface=FLOOR is not used as Receiving Surface in calculations. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 -================================== -Surface=ROOF is used as Receiving Surface in calculations and is convex. -Number of general casting surfaces=0 -Number of back surfaces=0 -Number of receiving sub surfaces=0 diff --git a/testfiles/epluszsz.csv b/testfiles/epluszsz.csv deleted file mode 100644 index e69de29bb2d..00000000000