def test_create_heatbalancealgorithm(self): pyidf.validation_level = ValidationLevel.error obj = HeatBalanceAlgorithm() # alpha var_algorithm = "ConductionTransferFunction" obj.algorithm = var_algorithm # real var_surface_temperature_upper_limit = 200.0 obj.surface_temperature_upper_limit = var_surface_temperature_upper_limit # real var_minimum_surface_convection_heat_transfer_coefficient_value = 0.0001 obj.minimum_surface_convection_heat_transfer_coefficient_value = var_minimum_surface_convection_heat_transfer_coefficient_value # real var_maximum_surface_convection_heat_transfer_coefficient_value = 1.0 obj.maximum_surface_convection_heat_transfer_coefficient_value = var_maximum_surface_convection_heat_transfer_coefficient_value idf = IDF() idf.add(obj) idf.save(self.path, check=False) with open(self.path, mode='r') as f: for line in f: log.debug(line.strip()) idf2 = IDF(self.path) self.assertEqual(idf2.heatbalancealgorithms[0].algorithm, var_algorithm) self.assertAlmostEqual(idf2.heatbalancealgorithms[0].surface_temperature_upper_limit, var_surface_temperature_upper_limit) self.assertAlmostEqual(idf2.heatbalancealgorithms[0].minimum_surface_convection_heat_transfer_coefficient_value, var_minimum_surface_convection_heat_transfer_coefficient_value) self.assertAlmostEqual(idf2.heatbalancealgorithms[0].maximum_surface_convection_heat_transfer_coefficient_value, var_maximum_surface_convection_heat_transfer_coefficient_value)
obj2.minimum_number_of_warmup_days = 6 idf.add(obj2) obj3 = Timestep() obj3.number_of_timesteps_per_hour = 4 idf.add(obj3) obj4 = SurfaceConvectionAlgorithmInside() obj4.algorithm = "TARP" idf.add(obj4) obj5 = SurfaceConvectionAlgorithmOutside() obj5.algorithm = "TARP" idf.add(obj5) obj6 = HeatBalanceAlgorithm() obj6.algorithm = "ConductionTransferFunction" idf.add(obj6) obj7 = ShadowCalculation() obj7.calculation_method = "AverageOverDaysInFrequency" obj7.calculation_frequency = 20 idf.add(obj7) obj8 = SimulationControl() obj8.do_zone_sizing_calculation = "No" obj8.do_system_sizing_calculation = "No" obj8.do_plant_sizing_calculation = "No" obj8.run_simulation_for_sizing_periods = "Yes" obj8.run_simulation_for_weather_file_run_periods = "No" idf.add(obj8)