boost::optional<IdfObject> ForwardTranslator::translateEvaporativeCoolerDirectResearchSpecial( EvaporativeCoolerDirectResearchSpecial & modelObject ) { OptionalString s; OptionalDouble d; OptionalModelObject temp; double value; IdfObject idfObject(IddObjectType::EvaporativeCooler_Direct_ResearchSpecial); m_idfObjects.push_back(idfObject); // Name s = modelObject.name(); if(s) { idfObject.setName(*s); } // AvailabilityScheduleName Schedule sched = modelObject.availableSchedule(); translateAndMapModelObject(sched); idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::AvailabilityScheduleName,sched.name().get()); // CoolerEffectiveness value = modelObject.coolerEffectiveness(); idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::CoolerEffectiveness,value); // RecirculatingWaterPumpPowerConsumption value = modelObject.recirculatingWaterPumpPowerConsumption(); idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::RecirculatingWaterPumpPowerConsumption,value); // AirInletNodeName temp = modelObject.inletModelObject(); if(temp) { s = temp->name(); if(s) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::AirInletNodeName,*s); } } // AirOutletNodeName temp = modelObject.outletModelObject(); if(temp) { s = temp->name(); if(s) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::AirOutletNodeName,*s); } } // SensorNodeName temp = modelObject.sensorNode(); if(temp) { s = temp->name(); if(s) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::SensorNodeName,*s); } } // DriftLossFraction value = modelObject.driftLossFraction(); idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::DriftLossFraction,value); // BlowdownConcentrationRatio value = modelObject.blowdownConcentrationRatio(); if( value < 2 ) { idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::BlowdownConcentrationRatio,2.0); } else { idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::BlowdownConcentrationRatio,value); } return boost::optional<IdfObject>(idfObject); }
boost::optional<IdfObject> ForwardTranslator::translateEvaporativeCoolerDirectResearchSpecial( EvaporativeCoolerDirectResearchSpecial & modelObject ) { OptionalString s; OptionalDouble d; OptionalModelObject temp; double value; IdfObject idfObject(IddObjectType::EvaporativeCooler_Direct_ResearchSpecial); m_idfObjects.push_back(idfObject); // Name s = modelObject.name(); if(s) { idfObject.setName(*s); } // AvailabilityScheduleName Schedule sched = modelObject.availableSchedule(); translateAndMapModelObject(sched); idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::AvailabilityScheduleName,sched.name().get()); // CoolerEffectiveness value = modelObject.coolerEffectiveness(); idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::CoolerDesignEffectiveness,value); // RecirculatingWaterPumpPowerConsumption if ( modelObject.isRecirculatingWaterPumpPowerConsumptionAutosized() ) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::RecirculatingWaterPumpDesignPower,"autosize"); } else if( (d = modelObject.recirculatingWaterPumpPowerConsumption()) ) { idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::RecirculatingWaterPumpDesignPower,d.get()); } // AirInletNodeName temp = modelObject.inletModelObject(); if(temp) { s = temp->name(); if(s) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::AirInletNodeName,*s); } } // AirOutletNodeName temp = modelObject.outletModelObject(); if(temp) { s = temp->name(); if(s) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::AirOutletNodeName,*s); } } // SensorNodeName temp = modelObject.sensorNode(); if(temp) { s = temp->name(); if(s) { idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::SensorNodeName,*s); } } // DriftLossFraction value = modelObject.driftLossFraction(); idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::DriftLossFraction,value); // BlowdownConcentrationRatio value = modelObject.blowdownConcentrationRatio(); if( value < 2 ) { idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::BlowdownConcentrationRatio,2.0); } else { idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::BlowdownConcentrationRatio,value); } // EffectivenessFlowRatioModifierCurveName if( auto curve = modelObject.effectivenessFlowRatioModifierCurve() ) { auto _curve = translateAndMapModelObject(curve.get()); OS_ASSERT(_curve); idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::EffectivenessFlowRatioModifierCurveName,_curve->name().get()); } // WaterPumpPowerSizingFactor value = modelObject.waterPumpPowerSizingFactor(); idfObject.setDouble(EvaporativeCooler_Direct_ResearchSpecialFields::WaterPumpPowerSizingFactor,value); // WaterPumpPowerModifierCurveName if( auto curve = modelObject.waterPumpPowerModifierCurve() ) { auto _curve = translateAndMapModelObject(curve.get()); OS_ASSERT(_curve); idfObject.setString(EvaporativeCooler_Direct_ResearchSpecialFields::WaterPumpPowerModifierCurveName,_curve->name().get()); } return boost::optional<IdfObject>(idfObject); }