Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v24.1.0-IOFreeze: HeatExchangerAirToAirSensibleAndLatent #5099

Merged
merged 17 commits into from
Mar 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 31 additions & 31 deletions resources/energyplus/ProposedEnergy+.idd
Original file line number Diff line number Diff line change
Expand Up @@ -36941,37 +36941,13 @@ HeatExchanger:AirToAir:SensibleAndLatent,
\minimum 0.0
\maximum 1.0
\default 0.0
N4, \field Sensible Effectiveness at 75% Heating Air Flow
N4, \field Sensible Effectiveness at 100% Cooling Air Flow
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\default 0.0
N5, \field Latent Effectiveness at 75% Heating Air Flow
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\default 0.0
N6, \field Sensible Effectiveness at 100% Cooling Air Flow
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\default 0.0
N7, \field Latent Effectiveness at 100% Cooling Air Flow
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\default 0.0
N8, \field Sensible Effectiveness at 75% Cooling Air Flow
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\default 0.0
N9, \field Latent Effectiveness at 75% Cooling Air Flow
N5, \field Latent Effectiveness at 100% Cooling Air Flow
\type real
\units dimensionless
\minimum 0.0
Expand All @@ -36989,7 +36965,7 @@ HeatExchanger:AirToAir:SensibleAndLatent,
A6, \field Exhaust Air Outlet Node Name
\required-field
\type node
N10,\field Nominal Electric Power
N6, \field Nominal Electric Power
\type real
\units W
\ip-units W
Expand All @@ -37012,35 +36988,59 @@ HeatExchanger:AirToAir:SensibleAndLatent,
\key ExhaustOnly
\key MinimumExhaustTemperature
\default None
N11,\field Threshold Temperature
N7, \field Threshold Temperature
\type real
\units C
\default 1.7
\note Supply (outdoor) air inlet temp threshold for exhaust air recirculation and
\note exhaust only frost control types. Exhaust air outlet threshold Temperature for
\note minimum exhaust temperature frost control type.
N12,\field Initial Defrost Time Fraction
N8, \field Initial Defrost Time Fraction
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\default 0.083
\note Fraction of the time when frost control will be invoked at the threshold temperature.
\note This field only used for exhaust air recirc and exhaust-only frost control types.
N13,\field Rate of Defrost Time Fraction Increase
N9, \field Rate of Defrost Time Fraction Increase
\type real
\units 1/K
\minimum 0.0
\default 0.012
\note Rate of increase in defrost time fraction as actual temp falls below threshold temperature.
\note This field only used for exhaust air recirc and exhaust-only frost control types.
A10;\field Economizer Lockout
A10,\field Economizer Lockout
\type choice
\key Yes
\key No
\default Yes
\note Yes means that the heat exchanger will be locked out (off)
\note when the economizer is operating or high humidity control is active
A11,\field Sensible Effectiveness of Heating Air Flow Curve Name
\note optional
\note if this field has value, then the sensivle effectiveness for heating
\note will be the value in N2 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions
A12,\field Latent Effectiveness of Heating Air Flow Curve Name
\note optional
\note if this field has value, then the latent effectiveness for heating
\note will be the value in N3 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions
A13,\field Sensible Effectiveness of Cooling Air Flow Curve Name
\note optional
\note if this field has value, then the sensivle effectiveness for cooling
\note will be the value in N4 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions
A14;\field Latent Effectiveness of Cooling Air Flow Curve Name
\note optional
\note if this field has value, then the latent effectiveness for cooling
\note will be the value in N5 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions

HeatExchanger:Desiccant:BalancedFlow,
\memo This object models a balanced desiccant heat exchanger.
Expand Down
62 changes: 31 additions & 31 deletions resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -24742,37 +24742,13 @@ OS:HeatExchanger:AirToAir:SensibleAndLatent,
\units dimensionless
\minimum 0.0
\maximum 1.0
N4, \field Sensible Effectiveness at 75% Heating Air Flow
N4, \field Sensible Effectiveness at 100% Cooling Air Flow
\type real
\required-field
\units dimensionless
\minimum 0.0
\maximum 1.0
N5, \field Latent Effectiveness at 75% Heating Air Flow
\type real
\required-field
\units dimensionless
\minimum 0.0
\maximum 1.0
N6, \field Sensible Effectiveness at 100% Cooling Air Flow
\type real
\required-field
\units dimensionless
\minimum 0.0
\maximum 1.0
N7, \field Latent Effectiveness at 100% Cooling Air Flow
\type real
\required-field
\units dimensionless
\minimum 0.0
\maximum 1.0
N8, \field Sensible Effectiveness at 75% Cooling Air Flow
\type real
\required-field
\units dimensionless
\minimum 0.0
\maximum 1.0
N9, \field Latent Effectiveness at 75% Cooling Air Flow
N5, \field Latent Effectiveness at 100% Cooling Air Flow
\type real
\required-field
\units dimensionless
Expand All @@ -24790,7 +24766,7 @@ OS:HeatExchanger:AirToAir:SensibleAndLatent,
A7, \field Exhaust Air Outlet Node
\type object-list
\object-list ConnectionNames
N10,\field Nominal Electric Power
N6, \field Nominal Electric Power
\type real
\required-field
\units W
Expand All @@ -24813,33 +24789,57 @@ OS:HeatExchanger:AirToAir:SensibleAndLatent,
\key ExhaustAirRecirculation
\key ExhaustOnly
\key MinimumExhaustTemperature
N11,\field Threshold Temperature
N7, \field Threshold Temperature
\type real
\units C
\default 1.7
\note Supply (outdoor) air inlet temp threshold for exhaust air recirculation and
\note exhaust only frost control types. Exhaust air outlet threshold Temperature for
\note minimum exhaust temperature frost control type.
N12,\field Initial Defrost Time Fraction
N8, \field Initial Defrost Time Fraction
\type real
\units dimensionless
\minimum 0.0
\maximum 1.0
\note Fraction of the time when frost control will be invoked at the threshold temperature.
\note This field only used for exhaust air recirc and exhaust-only frost control types.
N13,\field Rate of Defrost Time Fraction Increase
N9, \field Rate of Defrost Time Fraction Increase
\type real
\units 1/K
\minimum 0.0
\note Rate of increase in defrost time fraction as actual temp falls below threshold temperature.
\note This field only used for exhaust air recirc and exhaust-only frost control types.
A11;\field Economizer Lockout
A11,\field Economizer Lockout
\type choice
\required-field
\key Yes
\key No
\note Yes means that the heat exchanger will be locked out (off)
\note when the economizer is operating or high humidity control is active
A12,\field Sensible Effectiveness of Heating Air Flow Curve Name
\note optional
\note if this field has value, then the sensivle effectiveness for heating
\note will be the value in N2 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions
A13,\field Latent Effectiveness of Heating Air Flow Curve Name
\note optional
\note if this field has value, then the latent effectiveness for heating
\note will be the value in N3 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions
A14,\field Sensible Effectiveness of Cooling Air Flow Curve Name
\note optional
\note if this field has value, then the sensivle effectiveness for cooling
\note will be the value in N4 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions
A15;\field Latent Effectiveness of Cooling Air Flow Curve Name
\note optional
\note if this field has value, then the latent effectiveness for cooling
\note will be the value in N5 multiplied by this curve value
\type object-list
\object-list UnivariateFunctions

OS:HeatExchanger:Desiccant:BalancedFlow,
\memo This object models a balanced desiccant heat exchanger.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include "../../model/Node.hpp"
#include "../../model/Node_Impl.hpp"
#include "../../model/Schedule.hpp"
#include "../../model/Curve.hpp"
#include "../../utilities/idf/Workspace.hpp"
#include "../../utilities/core/Logger.hpp"
#include <utilities/idd/HeatExchanger_AirToAir_SensibleAndLatent_FieldEnums.hxx>
Expand Down Expand Up @@ -63,18 +64,6 @@ namespace energyplus {
idfObject.setDouble(HeatExchanger_AirToAir_SensibleAndLatentFields::LatentEffectivenessat100_HeatingAirFlow, d.get());
}

// SensibleEffectivenessat75_HeatingAirFlow
d = modelObject.sensibleEffectivenessat75HeatingAirFlow();
if (d) {
idfObject.setDouble(HeatExchanger_AirToAir_SensibleAndLatentFields::SensibleEffectivenessat75_HeatingAirFlow, d.get());
}

// LatentEffectivenessat75_HeatingAirFlow
d = modelObject.latentEffectivenessat75HeatingAirFlow();
if (d) {
idfObject.setDouble(HeatExchanger_AirToAir_SensibleAndLatentFields::LatentEffectivenessat75_HeatingAirFlow, d.get());
}

// SensibleEffectivenessat100_CoolingAirFlow
d = modelObject.sensibleEffectivenessat100CoolingAirFlow();
if (d) {
Expand All @@ -87,18 +76,6 @@ namespace energyplus {
idfObject.setDouble(HeatExchanger_AirToAir_SensibleAndLatentFields::LatentEffectivenessat100_CoolingAirFlow, d.get());
}

// SensibleEffectivenessat75_CoolingAirFlow
d = modelObject.sensibleEffectivenessat75CoolingAirFlow();
if (d) {
idfObject.setDouble(HeatExchanger_AirToAir_SensibleAndLatentFields::SensibleEffectivenessat75_CoolingAirFlow, d.get());
}

// LatentEffectivenessat75_CoolingAirFlow
d = modelObject.latentEffectivenessat75CoolingAirFlow();
if (d) {
idfObject.setDouble(HeatExchanger_AirToAir_SensibleAndLatentFields::LatentEffectivenessat75_CoolingAirFlow, d.get());
}

// SupplyAirInletNodeName
temp = modelObject.primaryAirInletModelObject();
if (temp) {
Expand Down Expand Up @@ -185,6 +162,34 @@ namespace energyplus {
idfObject.setString(HeatExchanger_AirToAir_SensibleAndLatentFields::EconomizerLockout, "No");
}

// SensibleEffectivenessofHeatingAirFlowCurveName
if (boost::optional<Curve> sensibleEffectivenessofHeatingAirFlowCurve_ = modelObject.sensibleEffectivenessofHeatingAirFlowCurve()) {
if (boost::optional<IdfObject> wo_ = translateAndMapModelObject(sensibleEffectivenessofHeatingAirFlowCurve_.get())) {
idfObject.setString(HeatExchanger_AirToAir_SensibleAndLatentFields::SensibleEffectivenessofHeatingAirFlowCurveName, wo_->nameString());
}
}

// LatentEffectivenessofHeatingAirFlowCurveName
if (boost::optional<Curve> latentEffectivenessofHeatingAirFlowCurve_ = modelObject.latentEffectivenessofHeatingAirFlowCurve()) {
if (boost::optional<IdfObject> wo_ = translateAndMapModelObject(latentEffectivenessofHeatingAirFlowCurve_.get())) {
idfObject.setString(HeatExchanger_AirToAir_SensibleAndLatentFields::LatentEffectivenessofHeatingAirFlowCurveName, wo_->nameString());
}
}

// SensibleEffectivenessofCoolingAirFlowCurveName
if (boost::optional<Curve> sensibleEffectivenessofCoolingAirFlowCurve_ = modelObject.sensibleEffectivenessofCoolingAirFlowCurve()) {
if (boost::optional<IdfObject> wo_ = translateAndMapModelObject(sensibleEffectivenessofCoolingAirFlowCurve_.get())) {
idfObject.setString(HeatExchanger_AirToAir_SensibleAndLatentFields::SensibleEffectivenessofCoolingAirFlowCurveName, wo_->nameString());
}
}

// LatentEffectivenessofCoolingAirFlowCurveName
if (boost::optional<Curve> latentEffectivenessofCoolingAirFlowCurve_ = modelObject.latentEffectivenessofCoolingAirFlowCurve()) {
if (boost::optional<IdfObject> wo_ = translateAndMapModelObject(latentEffectivenessofCoolingAirFlowCurve_.get())) {
idfObject.setString(HeatExchanger_AirToAir_SensibleAndLatentFields::LatentEffectivenessofCoolingAirFlowCurveName, wo_->nameString());
}
}

return idfObject;
}

Expand Down
Loading