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
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-12 17:09 +0000
1import os
2import contextlib
4from bim2sim.tasks.base import ITask
5from bim2sim.plugins.PluginTEASER.bim2sim_teaser.task.create_result_df import \
6 bim2sim_teaser_mapping_base, CreateResultDF
9class ExportTEASER(ITask):
10 """Export TEASER prj, run() method holds detailed information."""
11 reads = ('teaser_prj',)
13 def run(self, teaser_prj):
14 """Exports the current TEASER project to Modelica.
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.
21 Args:
22 teaser_prj: teaser project instance
24 """
25 self.logger.info("Starting export TEASER model to Modelica")
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 }
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 )
83 self.logger.info("Successfully created simulation model with TEASER.")