OpenSimula 0.3.0__tar.gz → 0.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of OpenSimula might be problematic. Click here for more details.

Files changed (309) hide show
  1. {opensimula-0.3.0 → opensimula-0.3.2/OpenSimula.egg-info}/PKG-INFO +19 -21
  2. opensimula-0.3.2/OpenSimula.egg-info/SOURCES.txt +56 -0
  3. opensimula-0.3.2/OpenSimula.egg-info/dependency_links.txt +1 -0
  4. opensimula-0.3.2/OpenSimula.egg-info/requires.txt +21 -0
  5. opensimula-0.3.2/OpenSimula.egg-info/top_level.txt +3 -0
  6. opensimula-0.3.2/PKG-INFO +59 -0
  7. {opensimula-0.3.0 → opensimula-0.3.2}/README.md +2 -3
  8. {opensimula-0.3.0 → opensimula-0.3.2}/pyproject.toml +7 -4
  9. opensimula-0.3.2/setup.cfg +4 -0
  10. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Component.py +2 -2
  11. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Parameters.py +32 -21
  12. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Project.py +14 -14
  13. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/__init__.py +1 -1
  14. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Building.py +3 -10
  15. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Exterior_surface.py +0 -20
  16. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/File_met.py +1 -0
  17. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Glazing.py +2 -2
  18. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/HVAC_DX_equipment.py +35 -14
  19. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/HVAC_DX_system.py +135 -88
  20. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/HVAC_perfect_system.py +11 -6
  21. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Opening.py +0 -21
  22. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Space.py +39 -21
  23. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_Calculator.py +2 -2
  24. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_Case_600FF.py +4 -4
  25. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_Case_610.py +4 -4
  26. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_File_met.py +3 -3
  27. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_HVAC_DX_Equipment.py +3 -3
  28. opensimula-0.3.0/debug.py → opensimula-0.3.2/test/test_HVAC_DX_system.py +59 -26
  29. opensimula-0.3.0/.gitignore +0 -128
  30. opensimula-0.3.0/Python_Libraries.txt +0 -32
  31. opensimula-0.3.0/docs/cinder/404.html +0 -13
  32. opensimula-0.3.0/docs/cinder/base.html +0 -139
  33. opensimula-0.3.0/docs/cinder/content.html +0 -9
  34. opensimula-0.3.0/docs/cinder/css/base.css +0 -289
  35. opensimula-0.3.0/docs/cinder/css/base.min.css +0 -1
  36. opensimula-0.3.0/docs/cinder/css/bootstrap-custom.css +0 -5309
  37. opensimula-0.3.0/docs/cinder/css/bootstrap-custom.min.css +0 -1
  38. opensimula-0.3.0/docs/cinder/css/cinder.css +0 -88
  39. opensimula-0.3.0/docs/cinder/css/cinder.min.css +0 -1
  40. opensimula-0.3.0/docs/cinder/css/highlight.css +0 -99
  41. opensimula-0.3.0/docs/cinder/css/highlight.min.css +0 -1
  42. opensimula-0.3.0/docs/cinder/fonts/fontawesome-webfont.eot +0 -0
  43. opensimula-0.3.0/docs/cinder/fonts/fontawesome-webfont.svg +0 -414
  44. opensimula-0.3.0/docs/cinder/fonts/fontawesome-webfont.ttf +0 -0
  45. opensimula-0.3.0/docs/cinder/fonts/fontawesome-webfont.woff +0 -0
  46. opensimula-0.3.0/docs/cinder/img/favicon.ico +0 -0
  47. opensimula-0.3.0/docs/cinder/img/grid1.png +0 -0
  48. opensimula-0.3.0/docs/cinder/img/grid10.png +0 -0
  49. opensimula-0.3.0/docs/cinder/img/grid11.png +0 -0
  50. opensimula-0.3.0/docs/cinder/img/grid12.png +0 -0
  51. opensimula-0.3.0/docs/cinder/img/grid13.png +0 -0
  52. opensimula-0.3.0/docs/cinder/img/grid14.png +0 -0
  53. opensimula-0.3.0/docs/cinder/img/grid15.png +0 -0
  54. opensimula-0.3.0/docs/cinder/img/grid16.png +0 -0
  55. opensimula-0.3.0/docs/cinder/img/grid17.png +0 -0
  56. opensimula-0.3.0/docs/cinder/img/grid18.png +0 -0
  57. opensimula-0.3.0/docs/cinder/img/grid19.png +0 -0
  58. opensimula-0.3.0/docs/cinder/img/grid2.png +0 -0
  59. opensimula-0.3.0/docs/cinder/img/grid20.png +0 -0
  60. opensimula-0.3.0/docs/cinder/img/grid3.png +0 -0
  61. opensimula-0.3.0/docs/cinder/img/grid4.png +0 -0
  62. opensimula-0.3.0/docs/cinder/img/grid5.png +0 -0
  63. opensimula-0.3.0/docs/cinder/img/grid6.png +0 -0
  64. opensimula-0.3.0/docs/cinder/img/grid7.png +0 -0
  65. opensimula-0.3.0/docs/cinder/img/grid8.png +0 -0
  66. opensimula-0.3.0/docs/cinder/img/grid9.png +0 -0
  67. opensimula-0.3.0/docs/cinder/js/base.js +0 -225
  68. opensimula-0.3.0/docs/cinder/js/bootstrap-3.0.3.min.js +0 -7
  69. opensimula-0.3.0/docs/cinder/keyboard-modal.html +0 -40
  70. opensimula-0.3.0/docs/cinder/main.html +0 -10
  71. opensimula-0.3.0/docs/cinder/mkdocs_theme.yml +0 -13
  72. opensimula-0.3.0/docs/cinder/nav-sub.html +0 -14
  73. opensimula-0.3.0/docs/cinder/nav.html +0 -109
  74. opensimula-0.3.0/docs/cinder/search-modal.html +0 -27
  75. opensimula-0.3.0/docs/cinder/toc.html +0 -13
  76. opensimula-0.3.0/docs/component_list/index.html +0 -253
  77. opensimula-0.3.0/docs/component_list_HVAC_systems/index.html +0 -400
  78. opensimula-0.3.0/docs/component_list_building/index.html +0 -640
  79. opensimula-0.3.0/docs/component_list_constructions/index.html +0 -366
  80. opensimula-0.3.0/docs/component_list_files/index.html +0 -312
  81. opensimula-0.3.0/docs/component_list_schedules/index.html +0 -304
  82. opensimula-0.3.0/docs/component_list_utils/index.html +0 -255
  83. opensimula-0.3.0/docs/css/base.css +0 -289
  84. opensimula-0.3.0/docs/css/base.min.css +0 -1
  85. opensimula-0.3.0/docs/css/bootstrap-custom.css +0 -5309
  86. opensimula-0.3.0/docs/css/bootstrap-custom.min.css +0 -1
  87. opensimula-0.3.0/docs/css/cinder.css +0 -88
  88. opensimula-0.3.0/docs/css/cinder.min.css +0 -1
  89. opensimula-0.3.0/docs/css/highlight.css +0 -99
  90. opensimula-0.3.0/docs/css/highlight.min.css +0 -1
  91. opensimula-0.3.0/docs/developer_guide/index.html +0 -236
  92. opensimula-0.3.0/docs/draws/Coordinate system.drawio +0 -460
  93. opensimula-0.3.0/docs/draws/HVAC_draws.drawio +0 -136
  94. opensimula-0.3.0/docs/draws/global_structure.drawio +0 -49
  95. opensimula-0.3.0/docs/draws/opensimula_logo.drawio +0 -19
  96. opensimula-0.3.0/docs/draws/opensimula_logo.drawio.svg +0 -4
  97. opensimula-0.3.0/docs/draws/paramaters.drawio +0 -45
  98. opensimula-0.3.0/docs/draws/variables.drawio +0 -45
  99. opensimula-0.3.0/docs/fonts/fontawesome-webfont.eot +0 -0
  100. opensimula-0.3.0/docs/fonts/fontawesome-webfont.svg +0 -414
  101. opensimula-0.3.0/docs/fonts/fontawesome-webfont.ttf +0 -0
  102. opensimula-0.3.0/docs/fonts/fontawesome-webfont.woff +0 -0
  103. opensimula-0.3.0/docs/getting_started/index.html +0 -362
  104. opensimula-0.3.0/docs/img/building_coordinate_system.png +0 -0
  105. opensimula-0.3.0/docs/img/component_editor.png +0 -0
  106. opensimula-0.3.0/docs/img/component_in_jupyter.png +0 -0
  107. opensimula-0.3.0/docs/img/control_type_temperature.png +0 -0
  108. opensimula-0.3.0/docs/img/day_schedule_linear.png +0 -0
  109. opensimula-0.3.0/docs/img/day_schedule_step.png +0 -0
  110. opensimula-0.3.0/docs/img/favicon.ico +0 -0
  111. opensimula-0.3.0/docs/img/github_logo.png +0 -0
  112. opensimula-0.3.0/docs/img/global_structure.png +0 -0
  113. opensimula-0.3.0/docs/img/grid1.png +0 -0
  114. opensimula-0.3.0/docs/img/grid10.png +0 -0
  115. opensimula-0.3.0/docs/img/grid11.png +0 -0
  116. opensimula-0.3.0/docs/img/grid12.png +0 -0
  117. opensimula-0.3.0/docs/img/grid13.png +0 -0
  118. opensimula-0.3.0/docs/img/grid14.png +0 -0
  119. opensimula-0.3.0/docs/img/grid15.png +0 -0
  120. opensimula-0.3.0/docs/img/grid16.png +0 -0
  121. opensimula-0.3.0/docs/img/grid17.png +0 -0
  122. opensimula-0.3.0/docs/img/grid18.png +0 -0
  123. opensimula-0.3.0/docs/img/grid19.png +0 -0
  124. opensimula-0.3.0/docs/img/grid2.png +0 -0
  125. opensimula-0.3.0/docs/img/grid20.png +0 -0
  126. opensimula-0.3.0/docs/img/grid3.png +0 -0
  127. opensimula-0.3.0/docs/img/grid4.png +0 -0
  128. opensimula-0.3.0/docs/img/grid5.png +0 -0
  129. opensimula-0.3.0/docs/img/grid6.png +0 -0
  130. opensimula-0.3.0/docs/img/grid7.png +0 -0
  131. opensimula-0.3.0/docs/img/grid8.png +0 -0
  132. opensimula-0.3.0/docs/img/grid9.png +0 -0
  133. opensimula-0.3.0/docs/img/icon_opensimula.ico +0 -0
  134. opensimula-0.3.0/docs/img/icon_opensimula.png +0 -0
  135. opensimula-0.3.0/docs/img/logo_opensimula.png +0 -0
  136. opensimula-0.3.0/docs/img/opening_definition.png +0 -0
  137. opensimula-0.3.0/docs/img/parameters.png +0 -0
  138. opensimula-0.3.0/docs/img/plot_example.png +0 -0
  139. opensimula-0.3.0/docs/img/polygon_surface_coordinate_system.png +0 -0
  140. opensimula-0.3.0/docs/img/project_editor.png +0 -0
  141. opensimula-0.3.0/docs/img/project_in_jupyter.png +0 -0
  142. opensimula-0.3.0/docs/img/rectangular_surface_coordinate_system.png +0 -0
  143. opensimula-0.3.0/docs/img/schedule_plot.png +0 -0
  144. opensimula-0.3.0/docs/img/shadows_example.png +0 -0
  145. opensimula-0.3.0/docs/img/show3D_shadows.png +0 -0
  146. opensimula-0.3.0/docs/img/simple glazing rho norm.png +0 -0
  147. opensimula-0.3.0/docs/img/simple glazing rho.png +0 -0
  148. opensimula-0.3.0/docs/img/simple glazing tau norm.png +0 -0
  149. opensimula-0.3.0/docs/img/simple glazing tau.png +0 -0
  150. opensimula-0.3.0/docs/img/variable_dataframe.png +0 -0
  151. opensimula-0.3.0/docs/img/variables.png +0 -0
  152. opensimula-0.3.0/docs/index.html +0 -281
  153. opensimula-0.3.0/docs/js/base.js +0 -225
  154. opensimula-0.3.0/docs/js/bootstrap-3.0.3.min.js +0 -7
  155. opensimula-0.3.0/docs/search/lunr.js +0 -3475
  156. opensimula-0.3.0/docs/search/main.js +0 -109
  157. opensimula-0.3.0/docs/search/search_index.json +0 -1
  158. opensimula-0.3.0/docs/search/worker.js +0 -133
  159. opensimula-0.3.0/docs/sitemap.xml +0 -3
  160. opensimula-0.3.0/docs/sitemap.xml.gz +0 -0
  161. opensimula-0.3.0/docs/user_guide/index.html +0 -517
  162. opensimula-0.3.0/ipynb/docs/day_schedule_images.ipynb +0 -60
  163. opensimula-0.3.0/ipynb/docs/getting_started.ipynb +0 -18592
  164. opensimula-0.3.0/ipynb/docs/getting_started.json +0 -68
  165. opensimula-0.3.0/ipynb/docs/user_guide.ipynb +0 -106487
  166. opensimula-0.3.0/ipynb/test/ASHRAE_140_CASE_960.ipynb +0 -108593
  167. opensimula-0.3.0/ipynb/test/ASHRAE_140_CASE_CE100.ipynb +0 -160282
  168. opensimula-0.3.0/ipynb/test/CE100A.TM2 +0 -8761
  169. opensimula-0.3.0/ipynb/test/WD100.tmy3 +0 -8762
  170. opensimula-0.3.0/ipynb/test/test_Constructions.ipynb +0 -304
  171. opensimula-0.3.0/ipynb/test/test_HVAC_DX_system.ipynb +0 -143800
  172. opensimula-0.3.0/ipynb/test/test_HVAC_DX_system_ASHRAE_140.ipynb +0 -89927
  173. opensimula-0.3.0/ipynb/test/test_HVAC_perfect_system.ipynb +0 -144549
  174. opensimula-0.3.0/ipynb/test/test_Test_components.ipynb +0 -1373
  175. opensimula-0.3.0/ipynb/test/test_calculator.ipynb +0 -36482
  176. opensimula-0.3.0/ipynb/test/test_psychrolib.ipynb +0 -122
  177. opensimula-0.3.0/makefile +0 -44
  178. opensimula-0.3.0/mkdocs/cinder/404.html +0 -13
  179. opensimula-0.3.0/mkdocs/cinder/base.html +0 -139
  180. opensimula-0.3.0/mkdocs/cinder/content.html +0 -9
  181. opensimula-0.3.0/mkdocs/cinder/css/base.css +0 -289
  182. opensimula-0.3.0/mkdocs/cinder/css/base.min.css +0 -1
  183. opensimula-0.3.0/mkdocs/cinder/css/bootstrap-custom.css +0 -5309
  184. opensimula-0.3.0/mkdocs/cinder/css/bootstrap-custom.min.css +0 -1
  185. opensimula-0.3.0/mkdocs/cinder/css/cinder.css +0 -88
  186. opensimula-0.3.0/mkdocs/cinder/css/cinder.min.css +0 -1
  187. opensimula-0.3.0/mkdocs/cinder/css/highlight.css +0 -99
  188. opensimula-0.3.0/mkdocs/cinder/css/highlight.min.css +0 -1
  189. opensimula-0.3.0/mkdocs/cinder/fonts/fontawesome-webfont.eot +0 -0
  190. opensimula-0.3.0/mkdocs/cinder/fonts/fontawesome-webfont.svg +0 -414
  191. opensimula-0.3.0/mkdocs/cinder/fonts/fontawesome-webfont.ttf +0 -0
  192. opensimula-0.3.0/mkdocs/cinder/fonts/fontawesome-webfont.woff +0 -0
  193. opensimula-0.3.0/mkdocs/cinder/img/favicon.ico +0 -0
  194. opensimula-0.3.0/mkdocs/cinder/img/grid1.png +0 -0
  195. opensimula-0.3.0/mkdocs/cinder/img/grid10.png +0 -0
  196. opensimula-0.3.0/mkdocs/cinder/img/grid11.png +0 -0
  197. opensimula-0.3.0/mkdocs/cinder/img/grid12.png +0 -0
  198. opensimula-0.3.0/mkdocs/cinder/img/grid13.png +0 -0
  199. opensimula-0.3.0/mkdocs/cinder/img/grid14.png +0 -0
  200. opensimula-0.3.0/mkdocs/cinder/img/grid15.png +0 -0
  201. opensimula-0.3.0/mkdocs/cinder/img/grid16.png +0 -0
  202. opensimula-0.3.0/mkdocs/cinder/img/grid17.png +0 -0
  203. opensimula-0.3.0/mkdocs/cinder/img/grid18.png +0 -0
  204. opensimula-0.3.0/mkdocs/cinder/img/grid19.png +0 -0
  205. opensimula-0.3.0/mkdocs/cinder/img/grid2.png +0 -0
  206. opensimula-0.3.0/mkdocs/cinder/img/grid20.png +0 -0
  207. opensimula-0.3.0/mkdocs/cinder/img/grid3.png +0 -0
  208. opensimula-0.3.0/mkdocs/cinder/img/grid4.png +0 -0
  209. opensimula-0.3.0/mkdocs/cinder/img/grid5.png +0 -0
  210. opensimula-0.3.0/mkdocs/cinder/img/grid6.png +0 -0
  211. opensimula-0.3.0/mkdocs/cinder/img/grid7.png +0 -0
  212. opensimula-0.3.0/mkdocs/cinder/img/grid8.png +0 -0
  213. opensimula-0.3.0/mkdocs/cinder/img/grid9.png +0 -0
  214. opensimula-0.3.0/mkdocs/cinder/js/base.js +0 -225
  215. opensimula-0.3.0/mkdocs/cinder/js/bootstrap-3.0.3.min.js +0 -7
  216. opensimula-0.3.0/mkdocs/cinder/keyboard-modal.html +0 -40
  217. opensimula-0.3.0/mkdocs/cinder/main.html +0 -10
  218. opensimula-0.3.0/mkdocs/cinder/mkdocs_theme.yml +0 -13
  219. opensimula-0.3.0/mkdocs/cinder/nav-sub.html +0 -14
  220. opensimula-0.3.0/mkdocs/cinder/nav.html +0 -109
  221. opensimula-0.3.0/mkdocs/cinder/search-modal.html +0 -27
  222. opensimula-0.3.0/mkdocs/cinder/toc.html +0 -13
  223. opensimula-0.3.0/mkdocs/component_list.md +0 -17
  224. opensimula-0.3.0/mkdocs/component_list_HVAC_systems.md +0 -178
  225. opensimula-0.3.0/mkdocs/component_list_building.md +0 -421
  226. opensimula-0.3.0/mkdocs/component_list_constructions.md +0 -146
  227. opensimula-0.3.0/mkdocs/component_list_files.md +0 -91
  228. opensimula-0.3.0/mkdocs/component_list_schedules.md +0 -81
  229. opensimula-0.3.0/mkdocs/component_list_utils.md +0 -31
  230. opensimula-0.3.0/mkdocs/developer_guide.md +0 -3
  231. opensimula-0.3.0/mkdocs/draws/Coordinate system.drawio +0 -460
  232. opensimula-0.3.0/mkdocs/draws/HVAC_draws.drawio +0 -136
  233. opensimula-0.3.0/mkdocs/draws/global_structure.drawio +0 -49
  234. opensimula-0.3.0/mkdocs/draws/opensimula_logo.drawio +0 -19
  235. opensimula-0.3.0/mkdocs/draws/opensimula_logo.drawio.svg +0 -4
  236. opensimula-0.3.0/mkdocs/draws/paramaters.drawio +0 -45
  237. opensimula-0.3.0/mkdocs/draws/variables.drawio +0 -45
  238. opensimula-0.3.0/mkdocs/getting_started.md +0 -157
  239. opensimula-0.3.0/mkdocs/img/building_coordinate_system.png +0 -0
  240. opensimula-0.3.0/mkdocs/img/component_editor.png +0 -0
  241. opensimula-0.3.0/mkdocs/img/component_in_jupyter.png +0 -0
  242. opensimula-0.3.0/mkdocs/img/control_type_temperature.png +0 -0
  243. opensimula-0.3.0/mkdocs/img/day_schedule_linear.png +0 -0
  244. opensimula-0.3.0/mkdocs/img/day_schedule_step.png +0 -0
  245. opensimula-0.3.0/mkdocs/img/favicon.ico +0 -0
  246. opensimula-0.3.0/mkdocs/img/github_logo.png +0 -0
  247. opensimula-0.3.0/mkdocs/img/global_structure.png +0 -0
  248. opensimula-0.3.0/mkdocs/img/icon_opensimula.ico +0 -0
  249. opensimula-0.3.0/mkdocs/img/icon_opensimula.png +0 -0
  250. opensimula-0.3.0/mkdocs/img/logo_opensimula.png +0 -0
  251. opensimula-0.3.0/mkdocs/img/opening_definition.png +0 -0
  252. opensimula-0.3.0/mkdocs/img/parameters.png +0 -0
  253. opensimula-0.3.0/mkdocs/img/plot_example.png +0 -0
  254. opensimula-0.3.0/mkdocs/img/polygon_surface_coordinate_system.png +0 -0
  255. opensimula-0.3.0/mkdocs/img/project_editor.png +0 -0
  256. opensimula-0.3.0/mkdocs/img/project_in_jupyter.png +0 -0
  257. opensimula-0.3.0/mkdocs/img/rectangular_surface_coordinate_system.png +0 -0
  258. opensimula-0.3.0/mkdocs/img/schedule_plot.png +0 -0
  259. opensimula-0.3.0/mkdocs/img/shadows_example.png +0 -0
  260. opensimula-0.3.0/mkdocs/img/show3D_shadows.png +0 -0
  261. opensimula-0.3.0/mkdocs/img/simple glazing rho norm.png +0 -0
  262. opensimula-0.3.0/mkdocs/img/simple glazing rho.png +0 -0
  263. opensimula-0.3.0/mkdocs/img/simple glazing tau norm.png +0 -0
  264. opensimula-0.3.0/mkdocs/img/simple glazing tau.png +0 -0
  265. opensimula-0.3.0/mkdocs/img/variable_dataframe.png +0 -0
  266. opensimula-0.3.0/mkdocs/img/variables.png +0 -0
  267. opensimula-0.3.0/mkdocs/index.md +0 -58
  268. opensimula-0.3.0/mkdocs/user_guide.md +0 -328
  269. opensimula-0.3.0/mkdocs.yml +0 -15
  270. opensimula-0.3.0/requirements.txt +0 -12
  271. opensimula-0.3.0/test/CE100A.TM2 +0 -8761
  272. opensimula-0.3.0/test/WD100.tmy3 +0 -8762
  273. opensimula-0.3.0/test/data_example.csv +0 -27
  274. opensimula-0.3.0/test/data_example.xlsx +0 -0
  275. opensimula-0.3.0/test/sevilla.met +0 -8762
  276. opensimula-0.3.0/test/test_project_1.json +0 -44
  277. opensimula-0.3.0/test/test_project_1_written.json +0 -1
  278. opensimula-0.3.0/test/test_project_2.json +0 -14
  279. opensimula-0.3.0/test/test_project_2_written.json +0 -1
  280. {opensimula-0.3.0 → opensimula-0.3.2}/LICENSE +0 -0
  281. {opensimula-0.3.0 → opensimula-0.3.2}/docs/cinder/__init__.py +0 -0
  282. {opensimula-0.3.0 → opensimula-0.3.2}/mkdocs/cinder/__init__.py +0 -0
  283. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Child.py +0 -0
  284. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Parameter_container.py +0 -0
  285. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Simulation.py +0 -0
  286. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/Variable.py +0 -0
  287. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Calculator.py +0 -0
  288. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Construction.py +0 -0
  289. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Day_schedule.py +0 -0
  290. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/File_data.py +0 -0
  291. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Frame.py +0 -0
  292. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Interior_surface.py +0 -0
  293. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Material.py +0 -0
  294. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Opening_type.py +0 -0
  295. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Real_surface.py +0 -0
  296. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Shadow_surface.py +0 -0
  297. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Space_type.py +0 -0
  298. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Surface.py +0 -0
  299. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Test_component.py +0 -0
  300. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Underground_surface.py +0 -0
  301. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Virtual_surface.py +0 -0
  302. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Week_schedule.py +0 -0
  303. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/Year_schedule.py +0 -0
  304. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/__init__.py +0 -0
  305. {opensimula-0.3.0 → opensimula-0.3.2}/src/OpenSimula/components/utils/sun_shadows.py +0 -0
  306. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_Construction.py +0 -0
  307. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_File_data.py +0 -0
  308. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_Project.py +0 -0
  309. {opensimula-0.3.0 → opensimula-0.3.2}/test/test_Schedules.py +0 -0
@@ -1,42 +1,41 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.2
2
2
  Name: OpenSimula
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Component-based time simulation environment in Python
5
+ Author-email: "Juan F. Coronel" <jfc@us.es>
5
6
  Project-URL: Homepage, http://opensimula.org
6
7
  Project-URL: Repository, https://github.com/jfCoronel/OpenSimula
7
8
  Project-URL: Bug Tracker, https://github.com/jfCoronel/OpenSimula/issues
8
- Author-email: "Juan F. Coronel" <jfc@us.es>
9
- License-File: LICENSE
9
+ Classifier: Programming Language :: Python :: 3
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Operating System :: OS Independent
12
- Classifier: Programming Language :: Python :: 3
13
12
  Requires-Python: >=3.8
14
- Requires-Dist: dash-ag-grid>=31.0.0
15
- Requires-Dist: dash-bootstrap-components>=1.0.0
16
- Requires-Dist: dash>=2.0.0
17
- Requires-Dist: ipywidgets>=8.1.2
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
18
15
  Requires-Dist: numpy>1.25
19
16
  Requires-Dist: pandas>1.5
20
- Requires-Dist: plotly>=5.17.0
21
- Requires-Dist: psychrolib>=2.5.0
22
- Requires-Dist: py-expression-eval>=0.3.14
23
- Requires-Dist: pyvista>=0.43.5
24
17
  Requires-Dist: scipy>=1.1
25
18
  Requires-Dist: shapely>=2.0.3
19
+ Requires-Dist: psychrolib>=2.5.0
20
+ Requires-Dist: pyvista>=0.43.5
21
+ Requires-Dist: ipywidgets>=8.1.2
22
+ Requires-Dist: trame>=3.6.0
26
23
  Requires-Dist: trame-vtk>=2.8.5
27
24
  Requires-Dist: trame-vuetify>=2.4.3
28
- Requires-Dist: trame>=3.6.0
25
+ Requires-Dist: plotly>=5.17.0
29
26
  Requires-Dist: triangle>=20230923
30
- Provides-Extra: docs
31
- Requires-Dist: mkdocs>=1.5; extra == 'docs'
27
+ Requires-Dist: dash>=2.0.0
28
+ Requires-Dist: dash-bootstrap-components>=1.0.0
29
+ Requires-Dist: dash-ag-grid>=31.0.0
32
30
  Provides-Extra: testing
33
- Requires-Dist: pytest; extra == 'testing'
34
- Description-Content-Type: text/markdown
31
+ Requires-Dist: pytest; extra == "testing"
32
+ Provides-Extra: docs
33
+ Requires-Dist: mkdocs>=1.5; extra == "docs"
35
34
 
36
- ![Logo](docs/img/logo_opensimula.png)
35
+ ![Logo](https://app.opensimula.org/img/logo_opensimula.png)
37
36
  Component-based time simulation environment in Python
38
37
 
39
- [Documentation page](https://jfcoronel.github.io/OpenSimula/site/)
38
+ [Documentation page](https://app.opensimula.org/)
40
39
 
41
40
  ## Main Developers
42
41
 
@@ -46,7 +45,6 @@ Component-based time simulation environment in Python
46
45
  - numpy
47
46
  - pandas
48
47
  - scipy
49
- - py-expression-eval
50
48
  - shapely
51
49
  - psychrolib
52
50
  - plotly
@@ -0,0 +1,56 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ OpenSimula.egg-info/PKG-INFO
5
+ OpenSimula.egg-info/SOURCES.txt
6
+ OpenSimula.egg-info/dependency_links.txt
7
+ OpenSimula.egg-info/requires.txt
8
+ OpenSimula.egg-info/top_level.txt
9
+ docs/cinder/__init__.py
10
+ mkdocs/cinder/__init__.py
11
+ src/OpenSimula/Child.py
12
+ src/OpenSimula/Component.py
13
+ src/OpenSimula/Parameter_container.py
14
+ src/OpenSimula/Parameters.py
15
+ src/OpenSimula/Project.py
16
+ src/OpenSimula/Simulation.py
17
+ src/OpenSimula/Variable.py
18
+ src/OpenSimula/__init__.py
19
+ src/OpenSimula/components/Building.py
20
+ src/OpenSimula/components/Calculator.py
21
+ src/OpenSimula/components/Construction.py
22
+ src/OpenSimula/components/Day_schedule.py
23
+ src/OpenSimula/components/Exterior_surface.py
24
+ src/OpenSimula/components/File_data.py
25
+ src/OpenSimula/components/File_met.py
26
+ src/OpenSimula/components/Frame.py
27
+ src/OpenSimula/components/Glazing.py
28
+ src/OpenSimula/components/HVAC_DX_equipment.py
29
+ src/OpenSimula/components/HVAC_DX_system.py
30
+ src/OpenSimula/components/HVAC_perfect_system.py
31
+ src/OpenSimula/components/Interior_surface.py
32
+ src/OpenSimula/components/Material.py
33
+ src/OpenSimula/components/Opening.py
34
+ src/OpenSimula/components/Opening_type.py
35
+ src/OpenSimula/components/Real_surface.py
36
+ src/OpenSimula/components/Shadow_surface.py
37
+ src/OpenSimula/components/Space.py
38
+ src/OpenSimula/components/Space_type.py
39
+ src/OpenSimula/components/Surface.py
40
+ src/OpenSimula/components/Test_component.py
41
+ src/OpenSimula/components/Underground_surface.py
42
+ src/OpenSimula/components/Virtual_surface.py
43
+ src/OpenSimula/components/Week_schedule.py
44
+ src/OpenSimula/components/Year_schedule.py
45
+ src/OpenSimula/components/__init__.py
46
+ src/OpenSimula/components/utils/sun_shadows.py
47
+ test/test_Calculator.py
48
+ test/test_Case_600FF.py
49
+ test/test_Case_610.py
50
+ test/test_Construction.py
51
+ test/test_File_data.py
52
+ test/test_File_met.py
53
+ test/test_HVAC_DX_Equipment.py
54
+ test/test_HVAC_DX_system.py
55
+ test/test_Project.py
56
+ test/test_Schedules.py
@@ -0,0 +1,21 @@
1
+ numpy>1.25
2
+ pandas>1.5
3
+ scipy>=1.1
4
+ shapely>=2.0.3
5
+ psychrolib>=2.5.0
6
+ pyvista>=0.43.5
7
+ ipywidgets>=8.1.2
8
+ trame>=3.6.0
9
+ trame-vtk>=2.8.5
10
+ trame-vuetify>=2.4.3
11
+ plotly>=5.17.0
12
+ triangle>=20230923
13
+ dash>=2.0.0
14
+ dash-bootstrap-components>=1.0.0
15
+ dash-ag-grid>=31.0.0
16
+
17
+ [docs]
18
+ mkdocs>=1.5
19
+
20
+ [testing]
21
+ pytest
@@ -0,0 +1,3 @@
1
+ docs
2
+ mkdocs
3
+ src
@@ -0,0 +1,59 @@
1
+ Metadata-Version: 2.2
2
+ Name: OpenSimula
3
+ Version: 0.3.2
4
+ Summary: Component-based time simulation environment in Python
5
+ Author-email: "Juan F. Coronel" <jfc@us.es>
6
+ Project-URL: Homepage, http://opensimula.org
7
+ Project-URL: Repository, https://github.com/jfCoronel/OpenSimula
8
+ Project-URL: Bug Tracker, https://github.com/jfCoronel/OpenSimula/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: numpy>1.25
16
+ Requires-Dist: pandas>1.5
17
+ Requires-Dist: scipy>=1.1
18
+ Requires-Dist: shapely>=2.0.3
19
+ Requires-Dist: psychrolib>=2.5.0
20
+ Requires-Dist: pyvista>=0.43.5
21
+ Requires-Dist: ipywidgets>=8.1.2
22
+ Requires-Dist: trame>=3.6.0
23
+ Requires-Dist: trame-vtk>=2.8.5
24
+ Requires-Dist: trame-vuetify>=2.4.3
25
+ Requires-Dist: plotly>=5.17.0
26
+ Requires-Dist: triangle>=20230923
27
+ Requires-Dist: dash>=2.0.0
28
+ Requires-Dist: dash-bootstrap-components>=1.0.0
29
+ Requires-Dist: dash-ag-grid>=31.0.0
30
+ Provides-Extra: testing
31
+ Requires-Dist: pytest; extra == "testing"
32
+ Provides-Extra: docs
33
+ Requires-Dist: mkdocs>=1.5; extra == "docs"
34
+
35
+ ![Logo](https://app.opensimula.org/img/logo_opensimula.png)
36
+ Component-based time simulation environment in Python
37
+
38
+ [Documentation page](https://app.opensimula.org/)
39
+
40
+ ## Main Developers
41
+
42
+ * [Juan F. Coronel](http://jfc.us.es), Universidad de Sevilla
43
+
44
+ ## Package dependencies
45
+ - numpy
46
+ - pandas
47
+ - scipy
48
+ - shapely
49
+ - psychrolib
50
+ - plotly
51
+ - dash
52
+ - dash_bootstrap_components
53
+ - dash_ag_grid
54
+ - pyvista
55
+ - trame
56
+ - trame-vtk
57
+ - trame-vuetify
58
+ - ipywidgets
59
+
@@ -1,7 +1,7 @@
1
- ![Logo](docs/img/logo_opensimula.png)
1
+ ![Logo](https://app.opensimula.org/img/logo_opensimula.png)
2
2
  Component-based time simulation environment in Python
3
3
 
4
- [Documentation page](https://jfcoronel.github.io/OpenSimula/site/)
4
+ [Documentation page](https://app.opensimula.org/)
5
5
 
6
6
  ## Main Developers
7
7
 
@@ -11,7 +11,6 @@ Component-based time simulation environment in Python
11
11
  - numpy
12
12
  - pandas
13
13
  - scipy
14
- - py-expression-eval
15
14
  - shapely
16
15
  - psychrolib
17
16
  - plotly
@@ -1,11 +1,10 @@
1
1
  [build-system]
2
2
  # Minimum requirements for the build system to execute.
3
- requires = ["hatchling"]
4
- build-backend = "hatchling.build"
3
+ requires = ["setuptools>=61.2", "wheel"]
5
4
 
6
5
  [project]
7
6
  name = "OpenSimula"
8
- version = "0.3.0"
7
+ version = "0.3.2"
9
8
  authors = [
10
9
  { name="Juan F. Coronel", email="jfc@us.es" },
11
10
  ]
@@ -21,7 +20,6 @@ dependencies = [
21
20
  "numpy>1.25",
22
21
  "pandas>1.5",
23
22
  "scipy>=1.1",
24
- "py-expression-eval>=0.3.14",
25
23
  "shapely>=2.0.3",
26
24
  "psychrolib>=2.5.0",
27
25
  "pyvista>=0.43.5",
@@ -49,3 +47,8 @@ docs = [
49
47
  "Repository" = "https://github.com/jfCoronel/OpenSimula"
50
48
  "Bug Tracker" = "https://github.com/jfCoronel/OpenSimula/issues"
51
49
 
50
+
51
+ [tool.setuptools]
52
+ packages.find.include = ['src*','mkdocs*','docs*']
53
+ packages.find.exclude = ['test*','ipynb*','ASHRAE_140*','mets*','venv*']
54
+ include-package-data = false
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -28,7 +28,7 @@ class Component(Parameter_container):
28
28
  self._variables_[variable.key] = variable
29
29
 
30
30
  def del_variable(self, variable):
31
- self._variables_.remove(variable)
31
+ self._variables_.pop(variable.key,None)
32
32
 
33
33
  def variable(self, key):
34
34
  return self._variables_[key]
@@ -164,7 +164,7 @@ class Component(Parameter_container):
164
164
  self.variable(
165
165
  value.symbol[i]).values[time_index] = value.variable[i].values[time_index]
166
166
 
167
- def iteration(self, time_index, date, daylight_saving):
167
+ def iteration(self, time_index, date, daylight_saving, n_iter):
168
168
  return True
169
169
 
170
170
  def post_iteration(self, time_index, date, daylight_saving, converged):
@@ -1,5 +1,6 @@
1
1
  import sys
2
- from py_expression_eval import Parser
2
+ #from py_expression_eval import Parser
3
+ import math
3
4
  from OpenSimula.Child import Child
4
5
 
5
6
  # ___________________ Parameter _________________________
@@ -271,7 +272,7 @@ class Parameter_int_list(Parameter):
271
272
 
272
273
 
273
274
  class Parameter_float(Parameter_int):
274
- def __init__(self, key, value=0.0, unit="", min=0.0, max=float("inf")):
275
+ def __init__(self, key, value=0.0, unit="", min=float("-inf"), max=float("inf")):
275
276
  Parameter_int.__init__(self, key, float(
276
277
  value), unit, float(min), float(max))
277
278
 
@@ -297,7 +298,7 @@ class Parameter_float(Parameter_int):
297
298
 
298
299
 
299
300
  class Parameter_float_list(Parameter_int_list):
300
- def __init__(self, key, value=[0.0], unit="", min=0.0, max=float("inf")):
301
+ def __init__(self, key, value=[0.0], unit="", min=float("-inf"), max=float("inf")):
301
302
  Parameter_int_list.__init__(
302
303
  self, key, value, unit, float(min), float(max))
303
304
 
@@ -689,7 +690,7 @@ class Parameter_math_exp(Parameter):
689
690
  def __init__(self, key, value="0.0", unit=""):
690
691
  Parameter.__init__(self, key, value)
691
692
  self._unit_ = unit
692
- self._parser_ = Parser()
693
+ #self._parser_ = Parser()
693
694
 
694
695
  @property
695
696
  def unit(self):
@@ -703,22 +704,27 @@ class Parameter_math_exp(Parameter):
703
704
  def value(self, value):
704
705
  self._value_ = str(value)
705
706
 
706
- def check(self):
707
- try:
708
- self._parser_.parse(self.value)
709
- except Exception as error:
710
- return [self._get_error_header_()+f"{str(error)}"]
711
- return []
707
+ # def check(self):
708
+ # try:
709
+ # self._parser_.parse(self.value)
710
+ # except Exception as error:
711
+ # return [self._get_error_header_()+f"{str(error)}"]
712
+ # return []
712
713
 
713
714
  def evaluate(self, values_dic):
714
- return self._parser_.parse(self.value).evaluate(values_dic)
715
+ try:
716
+ val = eval(self.value,globals(),values_dic)
717
+ return val
718
+ except Exception as error:
719
+ self._sim_.print(self._get_error_header_()+str(error))
720
+ return 0
715
721
 
716
722
 
717
723
  class Parameter_math_exp_list(Parameter):
718
724
  def __init__(self, key, value=["0.0"], unit=""):
719
725
  Parameter.__init__(self, key, value)
720
726
  self._unit_ = unit
721
- self._parser_ = Parser()
727
+ #self._parser_ = Parser()
722
728
 
723
729
  @property
724
730
  def unit(self):
@@ -741,14 +747,19 @@ class Parameter_math_exp_list(Parameter):
741
747
  el = str(el)
742
748
  self._value_ = value
743
749
 
744
- def check(self):
745
- errors = []
746
- for n in self.value:
747
- try:
748
- self._parser_.parse(n)
749
- except Exception as error:
750
- errors.append(self._get_error_header_()+f"{str(error)}")
751
- return errors
750
+ # def check(self):
751
+ # errors = []
752
+ # for n in self.value:
753
+ # try:
754
+ # self._parser_.parse(n)
755
+ # except Exception as error:
756
+ # errors.append(self._get_error_header_()+f"{str(error)}")
757
+ # return errors
752
758
 
753
759
  def evaluate(self, i, values_dic):
754
- return self._parser_.parse(self.value[i]).evaluate(values_dic)
760
+ try:
761
+ val = eval(self.value[i],globals(),values_dic)
762
+ return val
763
+ except Exception as error:
764
+ self._sim_.print(self._get_error_header_()+str(error))
765
+ return 0
@@ -127,7 +127,7 @@ class Project(Parameter_container):
127
127
  else:
128
128
  msg = self._get_error_header_(
129
129
  ) + f'Component does not contain "type" parameter {component}'
130
- self._sim_print(msg)
130
+ self._sim_.print(msg)
131
131
  else:
132
132
  if key in self._parameters_:
133
133
  self.parameter(key).value = value
@@ -341,7 +341,7 @@ class Project(Parameter_container):
341
341
 
342
342
  return errors
343
343
 
344
- def simulate(self):
344
+ def simulate(self, show_percentage = 10):
345
345
  """Project Time Simulation"""
346
346
  n = self.parameter("n_time_steps").value
347
347
  date = dt.datetime.strptime(
@@ -361,16 +361,15 @@ class Project(Parameter_container):
361
361
  self._sim_df["n_iterations"] = 0
362
362
  self._sim_df["last_component"] = "None"
363
363
 
364
- self._sim_.print(
365
- f"Simulating {self.parameter('name').value}: ", add_new_line=False
366
- )
364
+ self._sim_.print(f"Simulating {self.parameter('name').value}: ...")
367
365
 
368
- show_percent = 10.0
366
+ show_percent = show_percentage
367
+ n_iter_acum = 0
369
368
  for i in range(n):
370
369
  if ((100.0*(i+1) / n) >= show_percent):
371
- self._sim_.print(str(int(show_percent)) +
372
- "% ", add_new_line=False)
373
- show_percent = show_percent + 10.0
370
+ self._sim_.print(f"{int(show_percent)}%: N_iter: {(n_iter_acum/(n*show_percentage/100)):.2f}")
371
+ show_percent = show_percent + show_percentage
372
+ n_iter_acum = 0
374
373
  daylight_saving = False
375
374
  if (self.parameter("daylight_saving").value):
376
375
  if (date > date_dls_start and date < date_dls_end):
@@ -380,14 +379,15 @@ class Project(Parameter_container):
380
379
  converge = False
381
380
  n_iter = 0
382
381
  while (not converge and n_iter < self.parameter("n_max_iteration").value):
383
- n_iter += 1
384
- if self._iteration_(i, date, daylight_saving):
382
+ if self._iteration_(i, date, daylight_saving,n_iter):
385
383
  converge = True
384
+ n_iter += 1
386
385
  self._sim_df.at[i, "n_iterations"] = n_iter
386
+ n_iter_acum += n_iter
387
387
  self._post_iteration_(i, date, daylight_saving, converge)
388
388
  date = date + dt.timedelta(0, delta_t)
389
389
 
390
- self._sim_.print(" End")
390
+ self._sim_.print("Simulation completed.")
391
391
  self._post_simulation_()
392
392
 
393
393
  def _pre_simulation_(self, n_time_steps, delta_t):
@@ -402,10 +402,10 @@ class Project(Parameter_container):
402
402
  for comp in self._ordered_component_list_:
403
403
  comp.pre_iteration(time_index, date, dayligth_saving)
404
404
 
405
- def _iteration_(self, time_index, date, dayligth_saving):
405
+ def _iteration_(self, time_index, date, dayligth_saving, n_iter):
406
406
  converge = True
407
407
  for comp in self._ordered_component_list_:
408
- if not comp.iteration(time_index, date, dayligth_saving):
408
+ if not comp.iteration(time_index, date, dayligth_saving, n_iter):
409
409
  self._sim_df.at[time_index, "last_component"] = comp.parameter("name").value
410
410
  converge = False
411
411
  return converge
@@ -4,4 +4,4 @@ OpenSimula is a Python Package for perform time simulations
4
4
 
5
5
  """
6
6
  from OpenSimula.Simulation import Simulation
7
- VERSION = "0.3.0"
7
+ VERSION = "0.3.2"
@@ -594,16 +594,9 @@ class Building(Component):
594
594
  self.KZS_matrix, np.matmul(self.KS_inv_matrix, self.FS_vector)
595
595
  )
596
596
 
597
- def iteration(self, time_index, date, daylight_saving):
598
- super().iteration(time_index, date, daylight_saving)
599
- # if self._first_iteration: # Only in the 1st iteration
600
- # #self._calculate_Q_dir(time_index)
601
- # self._calculate_FS_vector(time_index)
602
- # self._calculate_FIN_WS_matrices(time_index)
603
- # self._update_space_K_F(time_index)
604
- # self._first_iteration = False
605
- # return False # Force iteration
606
- # else:
597
+ def iteration(self, time_index, date, daylight_saving, n_iter):
598
+ super().iteration(time_index, date, daylight_saving, n_iter)
599
+
607
600
  self._update_space_K_F(time_index)
608
601
  self._store_surfaces_values(time_index)
609
602
  return True
@@ -105,26 +105,6 @@ class Exterior_surface(Real_surface):
105
105
  T_rm = self.variable("T_rm").values[time_index]
106
106
  self.f_0 = self.area * (- p_0 - self.parameter("h_cv").value[0] * self._T_ext - h_rd * T_rm - q_sol)
107
107
 
108
- def iteration(self, time_index, date, daylight_saving):
109
- super().iteration(time_index, date, daylight_saving)
110
- # Calculate shadows only once
111
- # if not self._shadow_calculated:
112
- # direct_sunny_fracion = self.building().get_direct_sunny_fraction(self)
113
- # E_dir = self.variable(
114
- # "E_dir_sunny").values[time_index] * direct_sunny_fracion
115
- # self.variable("E_dir").values[time_index] = E_dir
116
- # self.variable(
117
- # "q_sol0").values[time_index] += self.radiant_property("alpha", "solar_diffuse", 0) * E_dir
118
- # q_sol = self.variable("q_sol0").values[time_index]
119
- # p_0 = self.variable("p_0").values[time_index]
120
- # h_rd = self.H_RD * self.radiant_property("alpha", "long_wave", 0)
121
- # T_rm = self.variable("T_rm").values[time_index]
122
- # self.f_0 = self.area * \
123
- # (- p_0 - self.parameter("h_cv").value[0]
124
- # * self._T_ext - h_rd * T_rm - q_sol)
125
- # self._shadow_calculated = True
126
- return True
127
-
128
108
  def post_iteration(self, time_index, date, daylight_saving, converged):
129
109
  super().post_iteration(time_index, date, daylight_saving, converged)
130
110
  self._calculate_T_s0(time_index)
@@ -155,6 +155,7 @@ class File_met(Component):
155
155
  self.temperature = data["DryBulb"].to_numpy()/10
156
156
  self.sol_diffuse = data["DHI"].to_numpy()
157
157
  self.sol_direct = data["GHI"].to_numpy() - self.sol_diffuse
158
+ self.sol_direct[self.sol_direct < 0] = 0 # Eliminate negative values if exist
158
159
  self.rel_humidity = data["RHum"].to_numpy()
159
160
 
160
161
  self.wind_speed = data["Wspd"].to_numpy()/10
@@ -20,8 +20,8 @@ class Glazing(Component):
20
20
  self.add_parameter(Parameter_float(
21
21
  "U", 5.686, "W/m²K", min=0))
22
22
  self.add_parameter(Parameter_math_exp(
23
- "f_tau_nor", "1.3186 * cos_theta^3 - 3.5251 * cos_theta^2 + 3.2065 * cos_theta", "frac"))
24
- f_rho = "1.8562 * cos_theta^3 - 4.4739 * cos_theta^2 + 3.6177 * cos_theta"
23
+ "f_tau_nor", "1.3186 * cos_theta**3 - 3.5251 * cos_theta**2 + 3.2065 * cos_theta", "frac"))
24
+ f_rho = "1.8562 * cos_theta**3 - 4.4739 * cos_theta**2 + 3.6177 * cos_theta"
25
25
  self.add_parameter(Parameter_math_exp_list(
26
26
  "f_1_minus_rho_nor", [f_rho, f_rho], "frac"))
27
27
 
@@ -12,6 +12,7 @@ class HVAC_DX_equipment(Component):
12
12
  self.add_parameter(Parameter_float("nominal_sensible_cooling_capacity", 0, "W", min=0))
13
13
  self.add_parameter(Parameter_float("nominal_cooling_power", 0, "W", min=0))
14
14
  self.add_parameter(Parameter_float("no_load_power", 0, "W", min=0))
15
+ self.add_parameter(Parameter_float("no_load_heat", 0, "W", min=0))
15
16
  self.add_parameter(Parameter_float_list("nominal_cooling_conditions", [27, 19, 35], "ºC"))
16
17
  self.add_parameter(Parameter_math_exp("total_cooling_capacity_expression", "1", "frac"))
17
18
  self.add_parameter(Parameter_math_exp("sensible_cooling_capacity_expression", "1", "frac"))
@@ -25,6 +26,8 @@ class HVAC_DX_equipment(Component):
25
26
  self.add_parameter(Parameter_math_exp("COP_expression", "1", "frac"))
26
27
  self.add_parameter(Parameter_options("dry_coil_model", "SENSIBLE", ["TOTAL", "SENSIBLE"]))
27
28
  self.add_parameter(Parameter_boolean("power_dry_coil_correction", True))
29
+ self.add_parameter(Parameter_float_list("expression_max_values", [60,30,60,30,1.5,1], "-"))
30
+ self.add_parameter(Parameter_float_list("expression_min_values", [0,0,-30,-30,0,0], "-"))
28
31
 
29
32
  def check(self):
30
33
  errors = super().check()
@@ -39,7 +42,7 @@ class HVAC_DX_equipment(Component):
39
42
  total_capacity = self.parameter("nominal_total_cooling_capacity").value
40
43
  if total_capacity > 0:
41
44
  # variables dictonary
42
- var_dic = {"T_idb":T_idb,"T_iwb":T_iwb,"T_odb":T_odb,"T_owb":T_owb,"F_air":F_air}
45
+ var_dic = self._var_state_dic([T_idb, T_iwb,T_odb,T_owb,F_air,0])
43
46
  # Total
44
47
  f = self.parameter("total_cooling_capacity_expression").evaluate(var_dic)
45
48
  total_capacity = total_capacity * f
@@ -60,7 +63,7 @@ class HVAC_DX_equipment(Component):
60
63
  capacity = self.parameter("nominal_heating_capacity").value
61
64
  if capacity > 0:
62
65
  # variables dictonary
63
- var_dic = {"T_idb":T_idb,"T_iwb":T_iwb,"T_odb":T_odb,"T_owb":T_owb,"F_air":F_air}
66
+ var_dic = self._var_state_dic([T_idb, T_iwb,T_odb,T_owb,F_air,0])
64
67
  # Capacity
65
68
  capacity = capacity * self.parameter("heating_capacity_expression").evaluate(var_dic)
66
69
  return capacity
@@ -72,18 +75,19 @@ class HVAC_DX_equipment(Component):
72
75
  if total_capacity > 0:
73
76
  if (F_load > 0):
74
77
  # variables dictonary
75
- var_dic = {"T_idb":T_idb,"T_iwb":T_iwb,"T_odb":T_odb,"T_owb":T_owb,"F_air":F_air,"F_load":F_load}
78
+ var_dic = self._var_state_dic([T_idb, T_iwb,T_odb,T_owb,F_air,F_load])
76
79
  # con
77
80
  power_full = self._get_correct_cooling_power(total_capacity,sensible_capacity,var_dic)
78
81
 
79
82
  EER_full = total_capacity/power_full
80
- EER = EER_full * self.parameter("EER_expression").evaluate(var_dic)
81
- power = total_capacity*F_load/EER
82
- return (total_capacity*F_load, sensible_capacity*F_load, power)
83
+ F_EER = self.parameter("EER_expression").evaluate(var_dic)
84
+ EER = EER_full * F_EER
85
+ power = total_capacity*F_load/EER + self.parameter("no_load_power").value
86
+ return (total_capacity*F_load, sensible_capacity*F_load, power, F_EER)
83
87
  else:
84
- return ( 0 , 0 , self.parameter("no_load_power").value )
88
+ return ( 0 , 0 , self.parameter("no_load_power").value, 0 )
85
89
  else:
86
- return (0,0,0)
90
+ return (0,0,0,0)
87
91
 
88
92
  def _get_correct_cooling_power(self,total_capacity, sensible_capacity, var_dic):
89
93
  power = self.parameter("nominal_cooling_power").value
@@ -108,18 +112,35 @@ class HVAC_DX_equipment(Component):
108
112
  if capacity > 0:
109
113
  if (F_load > 0):
110
114
  # variables dictonary
111
- var_dic = {"T_idb":T_idb,"T_iwb":T_iwb,"T_odb":T_odb,"T_owb":T_owb,"F_air":F_air,"F_load":F_load}
115
+ var_dic = self._var_state_dic([T_idb, T_iwb,T_odb,T_owb,F_air,F_load])
112
116
  # Compressor
113
117
  power_full = self.parameter("nominal_heating_power").value
114
118
  power_full = power_full * self.parameter("heating_power_expression").evaluate(var_dic)
115
119
  COP_full = capacity/power_full
116
- COP = COP_full * self.parameter("COP_expression").evaluate(var_dic)
117
- power = capacity*F_load/COP
118
- return (capacity*F_load, power)
120
+ F_COP = self.parameter("COP_expression").evaluate(var_dic)
121
+ COP = COP_full * F_COP
122
+ power = capacity*F_load/COP + + self.parameter("no_load_power").value
123
+ return (capacity*F_load, power, F_COP)
119
124
  else:
120
- return (0,self.parameter("no_load_power").value)
125
+ return (0,self.parameter("no_load_power").value, 0)
121
126
  else:
122
- return (0,0)
127
+ return (0,0,0)
128
+
129
+ def _var_state_dic(self, values):
130
+ max = self.parameter("expression_max_values").value
131
+ min = self.parameter("expression_min_values").value
132
+ for i in range(len(values)):
133
+ if (values[i] > max[i]):
134
+ values[i] = max[i]
135
+ elif (values[i] < min[i]):
136
+ values[i] = min[i]
137
+ return {"T_idb":values[0],
138
+ "T_iwb":values[1],
139
+ "T_odb":values[2],
140
+ "T_owb":values[3],
141
+ "F_air":values[4],
142
+ "F_load":values[5]}
143
+
123
144
 
124
145
 
125
146