Coverage for bim2sim/plugins/PluginTEASER/bim2sim_teaser/task/export_teaser.py: 0%

13 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-12 17:09 +0000

1import os 

2import contextlib 

3 

4from bim2sim.tasks.base import ITask 

5from bim2sim.plugins.PluginTEASER.bim2sim_teaser.task.create_result_df import \ 

6 bim2sim_teaser_mapping_base, CreateResultDF 

7 

8 

9class ExportTEASER(ITask): 

10 """Export TEASER prj, run() method holds detailed information.""" 

11 reads = ('teaser_prj',) 

12 

13 def run(self, teaser_prj): 

14 """Exports the current TEASER project to Modelica. 

15 

16 This is the final export task that exports the created TEASER project 

17 into Modelica by using TEASERs inbuilt export functionality. Currently, 

18 the export will be done to AixLib, potentially the export_ibpsa() 

19 functionality could be used as well. 

20 

21 Args: 

22 teaser_prj: teaser project instance 

23 

24 """ 

25 self.logger.info("Starting export TEASER model to Modelica") 

26 

27 # Important: if these are adjusted, also adjust sim_setting sim_results 

28 # and bim2sim_teaser_mapping_base in CreateResultDF 

29 export_vars = { 

30 "HeatingDemands": [ 

31 "*multizone.PHeater*", 

32 "*multizonePostProcessing.PHeater*", 

33 'multizonePostProcessing.PHeaterSum', 

34 '*multizonePostProcessing.WHeater*', 

35 'multizonePostProcessing.WHeaterSum', 

36 ], 

37 "CoolingDemands": [ 

38 '*multizone.PCooler*', 

39 '*multizonePostProcessing.PCooler*', 

40 '*multizonePostProcessing.PCoolerSum', 

41 '*multizonePostProcessing.WCooler*', 

42 'multizonePostProcessing.WCoolerSum', 

43 ], 

44 "Temperatures": [ 

45 'weaDat.weaBus.TDryBul', 

46 '*multizone.TAir*', 

47 '*multizonePostProcessing.TAir*', 

48 'multizonePostProcessing.TAirMean', 

49 'multizonePostProcessing.TOperativeMean', 

50 '*multizonePostProcessing.TOperativeAverageCalc.u*' 

51 ], 

52 'AHU': [ 

53 'multizonePostProcessing.WHeatAHU', 

54 'multizonePostProcessing.WCoolAHU', 

55 'multizonePostProcessing.WElAHU', 

56 ], 

57 'InternalGains': [ 

58 '*multizonePostProcessing.QIntGains_flow*' 

59 ], 

60 'VentilationInfiltration': [ 

61 'multizone.zone*.ventRate', 

62 'multizone.zone*.ventCont.y' 

63 ], 

64 'SetTemperatures': [ 

65 'tableTSet.y*', 

66 'tableTSetCool.y*', 

67 ], 

68 'CPU': [ 

69 'CPUtime' 

70 ] 

71 } 

72 

73 # silence output via redirect_stdout to not mess with bim2sim logs 

74 with open(os.devnull, 'w') as devnull: 

75 with contextlib.redirect_stdout(devnull): 

76 teaser_prj.export_aixlib( 

77 path=self.paths.export / 'TEASER' / 'Model', 

78 use_postprocessing_calc=True, 

79 report=True, 

80 export_vars=export_vars 

81 ) 

82 

83 self.logger.info("Successfully created simulation model with TEASER.")