PySDM-examples 2.90__tar.gz → 2.92__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.
Files changed (164) hide show
  1. {pysdm_examples-2.90 → pysdm_examples-2.92}/PKG-INFO +1 -1
  2. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +1 -1
  3. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +1 -1
  4. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Berry_1967/example_fig_6.py +1 -1
  5. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Berry_1967/spectrum_plotter.py +1 -1
  6. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -3
  7. pysdm_examples-2.92/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.py +225 -0
  8. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +10 -21
  9. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples.egg-info/PKG-INFO +1 -1
  10. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples.egg-info/SOURCES.txt +1 -0
  11. {pysdm_examples-2.90 → pysdm_examples-2.92}/pyproject.toml +2 -0
  12. {pysdm_examples-2.90 → pysdm_examples-2.92}/setup.py +0 -4
  13. {pysdm_examples-2.90 → pysdm_examples-2.92}/MANIFEST.in +0 -0
  14. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
  15. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
  16. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +0 -0
  17. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
  18. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  19. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  20. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  21. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
  22. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
  23. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
  24. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  25. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  26. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  27. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
  28. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  29. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  30. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
  31. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
  32. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  33. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  34. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  35. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
  36. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/__init__.py +0 -0
  37. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/commons.py +0 -0
  38. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/curved_text.py +0 -0
  39. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py +0 -0
  40. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/make_particulator.py +0 -0
  41. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/plots.py +0 -0
  42. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Arabas_et_al_2023/run_simulation.py +0 -0
  43. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  44. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
  45. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  46. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Berry_1967/__init__.py +0 -0
  47. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Berry_1967/example.py +0 -0
  48. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Berry_1967/settings.py +0 -0
  49. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
  50. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  51. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
  52. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bolin_1958/__init__.py +0 -0
  53. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
  54. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  55. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  56. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  57. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
  58. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
  59. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  60. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
  61. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
  62. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
  63. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
  64. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
  65. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
  66. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
  67. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  68. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
  69. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  70. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
  71. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
  72. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
  73. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  74. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  75. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  76. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  77. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  78. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
  79. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
  80. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
  81. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
  82. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
  83. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
  84. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  85. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
  86. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  87. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
  88. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
  89. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  90. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pyrcel/__init__.py +0 -0
  91. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  92. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pyrcel/settings.py +0 -0
  93. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pyrcel/simulation.py +0 -0
  94. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
  95. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
  96. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +0 -0
  97. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
  98. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  99. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  100. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  101. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  102. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  103. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  104. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  105. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  106. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
  107. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  108. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  109. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  110. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
  111. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Singer_Ward/__init__.py +0 -0
  112. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  113. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
  114. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Srivastava_1982/equations.py +0 -0
  115. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Srivastava_1982/example.py +0 -0
  116. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Srivastava_1982/settings.py +0 -0
  117. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
  118. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
  119. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
  120. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
  121. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
  122. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
  123. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
  124. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
  125. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
  126. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
  127. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/simulation.py +0 -0
  128. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
  129. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
  130. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
  131. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
  132. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  133. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  134. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/__init__.py +0 -0
  135. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
  136. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  137. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  138. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  139. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
  140. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
  141. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  142. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  143. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  144. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  145. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
  146. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  147. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/seeding/__init__.py +0 -0
  148. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/seeding/settings.py +0 -0
  149. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/seeding/simulation.py +0 -0
  150. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/__init__.py +0 -0
  151. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/basic_simulation.py +0 -0
  152. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/dummy_controller.py +0 -0
  153. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/notebook_vars.py +0 -0
  154. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/progbar_controller.py +0 -0
  155. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/read_vtk_1d.py +0 -0
  156. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/widgets/__init__.py +0 -0
  157. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/widgets/freezer.py +0 -0
  158. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  159. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples.egg-info/dependency_links.txt +0 -0
  160. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples.egg-info/requires.txt +0 -0
  161. {pysdm_examples-2.90 → pysdm_examples-2.92}/PySDM_examples.egg-info/top_level.txt +0 -0
  162. {pysdm_examples-2.90 → pysdm_examples-2.92}/README.md +0 -0
  163. {pysdm_examples-2.90 → pysdm_examples-2.92}/docs/pysdm_examples_landing.md +0 -0
  164. {pysdm_examples-2.90 → pysdm_examples-2.92}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM-examples
3
- Version: 2.90
3
+ Version: 2.92
4
4
  Summary: PySDM usage examples reproducing results from literature and depicting how to use PySDM from Python Jupyter notebooks
5
5
  Home-page: https://github.com/open-atmos/PySDM
6
6
  Author: https://github.com/open-atmos/PySDM/graphs/contributors
@@ -7,7 +7,7 @@ from PySDM_examples.Shima_et_al_2009.spectrum_plotter import SpectrumPlotter
7
7
 
8
8
 
9
9
  def main(plot: bool = True, save: str = None):
10
- n_sds = [13, 15, 17]
10
+ n_sds = [13, 15, 17] if "CI" not in os.environ else [13, 15]
11
11
  dts = [10, 5, 1, "adaptive"]
12
12
  iters = 10
13
13
  base_time = None
@@ -109,7 +109,7 @@ def main(save=None, show_plot=True):
109
109
  rtols = [1e-7, 1e-11]
110
110
  schemes = ["CPU", "SciPy"]
111
111
  setups_num = len(setups)
112
- input_data = data(80, rtols, schemes, setups_num)
112
+ input_data = data(80 if "CI" not in os.environ else 20, rtols, schemes, setups_num)
113
113
  plot(input_data, rtols, schemes, setups_num, show_plot, save)
114
114
 
115
115
 
@@ -15,7 +15,7 @@ def full_params(params):
15
15
 
16
16
  def print_collection_efficiency_portrait(params):
17
17
  size = 2 * 5.236
18
- plt.figure(num=1, figsize=(size / 2, size))
18
+ plt.figure(figsize=(size / 2, size))
19
19
  points = 200
20
20
  Y_c = np.zeros(points)
21
21
  x_values = np.linspace(0, 1, points)
@@ -8,7 +8,7 @@ from PySDM_examples.Shima_et_al_2009.spectrum_plotter import (
8
8
  class SpectrumPlotter(SuperSpectrumPlotter):
9
9
  def __init__(self, settings, title=None, grid=True, legend=False):
10
10
  size = 2 * 5.236
11
- pyplot.figure(num=1, figsize=(size, size * 0.54))
11
+ pyplot.figure(figsize=(size, size * 0.54))
12
12
  pyplot.xlabel("particle radius [µm]")
13
13
  pyplot.ylabel("dm/dlnr [g/m^3/(unit dr/r)]")
14
14
  super().__init__(settings, title=title, grid=grid, legend=legend, log_base=2)
@@ -2,7 +2,4 @@
2
2
  """
3
3
  Box-model coalescence-breakup performance benchmark from
4
4
  [Bulenok 2023 MSc thesis](https://www.ap.uj.edu.pl/diplomas/166879)
5
-
6
- performance_comparison_Srivastava_Setup.ipynb:
7
- .. include:: ./performance_comparison_Srivastava_Setup.ipynb.badges.md
8
5
  """
@@ -0,0 +1,225 @@
1
+ import subprocess
2
+ import os
3
+
4
+ from datetime import datetime
5
+ import numba # pylint: disable=unused-import
6
+
7
+ from PySDM_examples.Bulenok_2023_MasterThesis.utils import (
8
+ go_benchmark,
9
+ process_results,
10
+ plot_processed_results,
11
+ write_to_file,
12
+ )
13
+ from PySDM_examples.Bulenok_2023_MasterThesis.setups import (
14
+ setup_coalescence_only_sim,
15
+ setup_breakup_only_sim,
16
+ setup_coalescence_breakup_sim,
17
+ )
18
+
19
+ from PySDM.backends import GPU, CPU
20
+ from PySDM.physics import si
21
+
22
+
23
+ def main(plot: bool = True, save: str = None):
24
+
25
+ TIMESTAMP = str(datetime.now().strftime("%Y-%d-%m_%Hh-%Mm-%Ss"))
26
+
27
+ SIM_RUN_FNAME = "env_name_" + TIMESTAMP
28
+
29
+ assert not os.path.isfile(SIM_RUN_FNAME)
30
+
31
+ cmd = [
32
+ "bash",
33
+ "-c",
34
+ # pylint: disable=no-member
35
+ f"echo NUMBA_DEFAULT_NUM_THREADS: {numba.config.NUMBA_DEFAULT_NUM_THREADS}"
36
+ + f">> {SIM_RUN_FNAME}",
37
+ ]
38
+ subprocess.run(cmd, check=False)
39
+ subprocess.run(
40
+ [ # pylint: disable=no-member
41
+ "bash",
42
+ "-c",
43
+ f"echo NUMBA_NUM_THREADS: {numba.config.NUMBA_NUM_THREADS} >> {SIM_RUN_FNAME}",
44
+ ],
45
+ check=False,
46
+ )
47
+ subprocess.run(["bash", "-c", f"lscpu >> {SIM_RUN_FNAME}"], check=False)
48
+ subprocess.run(["bash", "-c", f"nvidia-smi >> {SIM_RUN_FNAME}"], check=False)
49
+ subprocess.run(["bash", "-c", f"nvidia-smi -L >> {SIM_RUN_FNAME}"], check=False)
50
+ subprocess.run(["bash", "-c", f"cat /proc/cpuinfo >> {SIM_RUN_FNAME}"], check=False)
51
+
52
+ CI = "CI" in os.environ
53
+
54
+ exponents = [3, 5, 8, 10, 12, 14, 16, 18, 20, 22, 24] if not CI else [3, 5]
55
+ n_sds = [2**i for i in exponents]
56
+
57
+ numba_n_threads = [1, 2, 4, 5, 6, 8, 10] if not CI else [1, 2]
58
+
59
+ n_realisations = 3 if not CI else 2
60
+ seeds = list(range(n_realisations))
61
+
62
+ n_steps_short = 100 if not CI else 3
63
+ n_steps_full = 2048 if not CI else 3
64
+
65
+ # # Benchmark regular setup (without scaling)
66
+
67
+ # ### Coalescence-only
68
+
69
+ res_coalescence_only = go_benchmark(
70
+ setup_coalescence_only_sim,
71
+ n_sds,
72
+ n_steps_short,
73
+ seeds,
74
+ numba_n_threads=numba_n_threads,
75
+ double_precision=True,
76
+ sim_run_filename=SIM_RUN_FNAME + "-coalescence",
77
+ backends=[CPU, GPU],
78
+ )
79
+ coalescence_only_processed = process_results(res_coalescence_only)
80
+ filename = f"{SIM_RUN_FNAME}-results-coalescence-double-n_steps{n_steps_short}"
81
+ if plot:
82
+ plot_processed_results(
83
+ coalescence_only_processed,
84
+ plot_title=f"coalescence-only (n_steps: {n_steps_short})",
85
+ plot_filename=filename + ".svg",
86
+ )
87
+ if save is not None:
88
+ write_to_file(filename=filename + ".txt", d=coalescence_only_processed)
89
+
90
+ # ### Breakup-only
91
+
92
+ res_breakup_only = go_benchmark(
93
+ setup_breakup_only_sim,
94
+ n_sds,
95
+ n_steps_short,
96
+ seeds,
97
+ numba_n_threads=numba_n_threads,
98
+ double_precision=True,
99
+ sim_run_filename=SIM_RUN_FNAME + "-breakup",
100
+ backends=[CPU, GPU],
101
+ )
102
+ breakup_only_processed = process_results(res_breakup_only)
103
+ filename = f"{SIM_RUN_FNAME}-results-breakup-double-n_steps{n_steps_short}"
104
+ if plot:
105
+ plot_processed_results(
106
+ breakup_only_processed,
107
+ plot_title=f"breakup-only (n_steps: {n_steps_short})",
108
+ plot_filename=filename + ".svg",
109
+ )
110
+ if save is not None:
111
+ write_to_file(filename=filename + ".txt", d=breakup_only_processed)
112
+
113
+ # ### Coalescence and Breakup
114
+
115
+ res_coal_breakup = go_benchmark(
116
+ setup_coalescence_breakup_sim,
117
+ n_sds,
118
+ n_steps_full,
119
+ seeds,
120
+ numba_n_threads=numba_n_threads,
121
+ double_precision=True,
122
+ sim_run_filename=SIM_RUN_FNAME + "-coal-break",
123
+ backends=[CPU, GPU],
124
+ )
125
+ coal_breakup_processed = process_results(res_coal_breakup)
126
+ filename = f"{SIM_RUN_FNAME}-results-coal_with_breakup-double-n_steps{n_steps_full}"
127
+ if plot:
128
+ plot_processed_results(
129
+ coal_breakup_processed,
130
+ plot_title=f"coalescence+breakup (n_steps: {n_steps_full})",
131
+ plot_filename=filename + ".svg",
132
+ )
133
+ if save is not None:
134
+ write_to_file(filename=filename + ".txt", d=coal_breakup_processed)
135
+
136
+ # # Benchmark setup with scaling
137
+
138
+ def total_number_from_n_sd(n_sd):
139
+ return n_sd * 1e8
140
+
141
+ def dv_from_n_sd(n_sd):
142
+ return n_sd * (0.125 * si.m**3)
143
+
144
+ # ### Coalescence-only
145
+
146
+ res_coalescence_only_scaled = go_benchmark(
147
+ setup_coalescence_only_sim,
148
+ n_sds,
149
+ n_steps_short,
150
+ seeds,
151
+ numba_n_threads=numba_n_threads,
152
+ double_precision=True,
153
+ sim_run_filename=SIM_RUN_FNAME + "-coalescence-scaled",
154
+ total_number=total_number_from_n_sd,
155
+ dv=dv_from_n_sd,
156
+ backends=[CPU, GPU],
157
+ )
158
+ coalescence_only_processed_scaled = process_results(res_coalescence_only_scaled)
159
+ filename = (
160
+ f"{SIM_RUN_FNAME}-results-scaled-coalescence-double-n_steps{n_steps_short}"
161
+ )
162
+ if plot:
163
+ plot_processed_results(
164
+ coalescence_only_processed_scaled,
165
+ plot_title=f"coalescence-only with scaling (n_steps: {n_steps_short})",
166
+ plot_filename=filename + ".svg",
167
+ )
168
+ if save is not None:
169
+ write_to_file(filename=filename + ".txt", d=coalescence_only_processed_scaled)
170
+
171
+ # ### Breakup-only
172
+
173
+ res_breakup_only_scaled = go_benchmark(
174
+ setup_breakup_only_sim,
175
+ n_sds,
176
+ n_steps_short,
177
+ seeds,
178
+ numba_n_threads=numba_n_threads,
179
+ double_precision=True,
180
+ sim_run_filename=SIM_RUN_FNAME + "-breakup-scaled",
181
+ total_number=total_number_from_n_sd,
182
+ dv=dv_from_n_sd,
183
+ backends=[CPU, GPU],
184
+ )
185
+ breakup_only_processed_scaled = process_results(res_breakup_only_scaled)
186
+ filename = f"{SIM_RUN_FNAME}-results-scaled-breakup-double-n_steps{n_steps_short}"
187
+ if plot:
188
+ plot_processed_results(
189
+ breakup_only_processed_scaled,
190
+ plot_title=f"breakup-only with scaling (n_steps: {n_steps_short})",
191
+ plot_filename=filename + ".svg",
192
+ )
193
+ if save is not None:
194
+ write_to_file(filename=filename + ".txt", d=breakup_only_processed_scaled)
195
+
196
+ # ### Coalescence and Breakup
197
+
198
+ res_coal_breakup_scaled = go_benchmark(
199
+ setup_coalescence_breakup_sim,
200
+ n_sds,
201
+ n_steps_full,
202
+ seeds,
203
+ numba_n_threads=numba_n_threads,
204
+ double_precision=True,
205
+ sim_run_filename=SIM_RUN_FNAME + "-coal-break-scaled",
206
+ total_number=total_number_from_n_sd,
207
+ dv=dv_from_n_sd,
208
+ backends=[CPU, GPU],
209
+ )
210
+ coal_breakup_processed_scaled = process_results(res_coal_breakup_scaled)
211
+ filename = (
212
+ f"{SIM_RUN_FNAME}-results-scaled-coal_with_breakup-double-n_steps{n_steps_full}"
213
+ )
214
+ if plot:
215
+ plot_processed_results(
216
+ coal_breakup_processed_scaled,
217
+ plot_title=f"coalescence+breakup with scaling (n_steps: {n_steps_full})",
218
+ plot_filename=filename + ".svg",
219
+ )
220
+ if save is not None:
221
+ write_to_file(filename=filename + ".txt", d=coal_breakup_processed_scaled)
222
+
223
+
224
+ if __name__ == "__main__":
225
+ main(plot="CI" not in os.environ, save=".")
@@ -6,7 +6,6 @@ import time
6
6
  import numba
7
7
  import numpy as np
8
8
  from matplotlib import pyplot
9
- from open_atmos_jupyter_utils import show_plot
10
9
 
11
10
  from PySDM.backends import CPU, GPU
12
11
 
@@ -208,11 +207,11 @@ class PlottingHelpers:
208
207
 
209
208
  def plot_processed_results(
210
209
  processed_d,
211
- show=True,
210
+ *,
212
211
  plot_label="",
213
212
  plot_title=None,
214
213
  metric="min",
215
- plot_filename=None,
214
+ plot_filename,
216
215
  markers=None,
217
216
  colors=None,
218
217
  ):
@@ -257,33 +256,27 @@ def plot_processed_results(
257
256
  if plot_title:
258
257
  pyplot.title(plot_title)
259
258
 
260
- if show:
261
- if plot_filename:
262
- show_plot(filename=plot_filename)
263
- else:
264
- pyplot.show()
259
+ pyplot.savefig(plot_filename)
265
260
 
266
261
 
267
262
  def plot_processed_on_same_plot(coal_d, break_d, coal_break_d):
268
- plot_processed_results(coal_d, plot_label="-c", show=False)
269
- plot_processed_results(break_d, plot_label="-b", show=False)
270
- plot_processed_results(coal_break_d, plot_label="-cb", show=False)
271
-
272
- show_plot()
263
+ filename = "same_plot.svg"
264
+ plot_processed_results(coal_d, plot_label="-c", plot_filename=filename)
265
+ plot_processed_results(break_d, plot_label="-b", plot_filename=filename)
266
+ plot_processed_results(coal_break_d, plot_label="-cb", plot_filename=filename)
273
267
 
274
268
 
275
269
  def plot_time_per_step(
276
270
  processed_d,
277
271
  n_sd,
278
- show=True,
272
+ *,
279
273
  plot_label="",
280
274
  plot_title=None,
281
275
  metric="mean",
282
- plot_filename=None,
276
+ plot_filename,
283
277
  step_from_to=None,
284
278
  ):
285
279
  backends = PlottingHelpers.get_sorted_backend_list(processed_d)
286
-
287
280
  markers = PlottingHelpers.get_backend_markers(backends)
288
281
 
289
282
  for backend in backends:
@@ -305,8 +298,4 @@ def plot_time_per_step(
305
298
  if plot_title:
306
299
  pyplot.title(plot_title + f"(n_sd: {n_sd})")
307
300
 
308
- if show:
309
- if plot_filename:
310
- show_plot(filename=plot_filename)
311
- else:
312
- pyplot.show()
301
+ pyplot.savefig(plot_filename)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM-examples
3
- Version: 2.90
3
+ Version: 2.92
4
4
  Summary: PySDM usage examples reproducing results from literature and depicting how to use PySDM from Python Jupyter notebooks
5
5
  Home-page: https://github.com/open-atmos/PySDM
6
6
  Author: https://github.com/open-atmos/PySDM/graphs/contributors
@@ -53,6 +53,7 @@ PySDM_examples/Bieli_et_al_2022/simulation.py
53
53
  PySDM_examples/Bolin_1958/__init__.py
54
54
  PySDM_examples/Bolot_et_al_2013/__init__.py
55
55
  PySDM_examples/Bulenok_2023_MasterThesis/__init__.py
56
+ PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.py
56
57
  PySDM_examples/Bulenok_2023_MasterThesis/setups.py
57
58
  PySDM_examples/Bulenok_2023_MasterThesis/utils.py
58
59
  PySDM_examples/Ervens_and_Feingold_2012/__init__.py
@@ -1,5 +1,7 @@
1
1
  [tool.setuptools_scm]
2
2
  root = ".."
3
+ local_scheme = "no-local-version"
4
+ version_scheme = "post-release"
3
5
 
4
6
  [build-system]
5
7
  requires = ['setuptools==75.6.0', 'setuptools-scm==8.1.0']
@@ -23,10 +23,6 @@ setup(
23
23
  name="PySDM-examples",
24
24
  description="PySDM usage examples reproducing results from literature "
25
25
  "and depicting how to use PySDM from Python Jupyter notebooks",
26
- use_scm_version={
27
- "local_scheme": lambda _: "",
28
- "version_scheme": "post-release",
29
- },
30
26
  install_requires=[
31
27
  "PySDM",
32
28
  "PyMPDATA" + (">=1.0.15" if CI else ""),
File without changes
File without changes
File without changes