PySDM-examples 2.71__tar.gz → 2.73__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 (158) hide show
  1. {PySDM-examples-2.71 → PySDM-examples-2.73}/PKG-INFO +1 -1
  2. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +9 -10
  3. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +3 -2
  4. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +6 -2
  5. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/make_particulator.py +2 -2
  6. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bieli_et_al_2022/simulation.py +4 -3
  7. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +9 -9
  8. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +13 -13
  9. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +9 -11
  10. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/simulation.py +9 -10
  11. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pyrcel/simulation.py +13 -11
  12. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +3 -3
  13. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/simulation.py +6 -2
  14. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Azimi/simulation_0D.py +4 -3
  15. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +8 -6
  16. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples.egg-info/PKG-INFO +1 -1
  17. {PySDM-examples-2.71 → PySDM-examples-2.73}/MANIFEST.in +0 -0
  18. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
  19. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
  20. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
  21. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  22. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  23. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  24. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
  25. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  26. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  27. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  28. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
  29. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  30. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  31. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
  32. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
  33. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  34. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  35. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  36. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
  37. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/__init__.py +0 -0
  38. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/commons.py +0 -0
  39. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/curved_text.py +0 -0
  40. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py +0 -0
  41. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/plots.py +0 -0
  42. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Arabas_et_al_2023/run_simulation.py +0 -0
  43. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  44. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
  45. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
  46. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
  47. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  48. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Berry_1967/__init__.py +0 -0
  49. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Berry_1967/example.py +0 -0
  50. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
  51. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Berry_1967/settings.py +0 -0
  52. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
  53. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
  54. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  55. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
  56. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
  57. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  58. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
  59. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  60. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  61. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
  62. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
  63. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  64. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
  65. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
  66. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
  67. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
  68. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
  69. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  70. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
  71. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  72. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
  73. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
  74. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  75. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  76. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  77. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  78. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  79. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
  80. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
  81. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
  82. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
  83. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
  84. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  85. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
  86. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  87. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
  88. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
  89. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  90. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pyrcel/__init__.py +0 -0
  91. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  92. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pyrcel/settings.py +0 -0
  93. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
  94. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
  95. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +0 -0
  96. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
  97. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  98. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  99. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  100. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  101. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  102. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  103. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  104. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  105. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
  106. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  107. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  108. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  109. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Singer_Ward/__init__.py +0 -0
  110. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  111. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
  112. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Srivastava_1982/equations.py +0 -0
  113. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Srivastava_1982/example.py +0 -0
  114. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Srivastava_1982/settings.py +0 -0
  115. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
  116. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
  117. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
  118. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
  119. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
  120. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
  121. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
  122. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
  123. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
  124. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
  125. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
  126. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
  127. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
  128. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
  129. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  130. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  131. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/__init__.py +0 -0
  132. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
  133. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  134. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  135. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  136. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
  137. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  138. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  139. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  140. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  141. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  142. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/__init__.py +0 -0
  143. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/basic_simulation.py +0 -0
  144. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/dummy_controller.py +0 -0
  145. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/notebook_vars.py +0 -0
  146. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/progbar_controller.py +0 -0
  147. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/read_vtk_1d.py +0 -0
  148. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/widgets/__init__.py +0 -0
  149. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/widgets/freezer.py +0 -0
  150. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  151. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples.egg-info/SOURCES.txt +0 -0
  152. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples.egg-info/dependency_links.txt +0 -0
  153. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples.egg-info/requires.txt +0 -0
  154. {PySDM-examples-2.71 → PySDM-examples-2.73}/PySDM_examples.egg-info/top_level.txt +0 -0
  155. {PySDM-examples-2.71 → PySDM-examples-2.73}/README.md +0 -0
  156. {PySDM-examples-2.71 → PySDM-examples-2.73}/pyproject.toml +0 -0
  157. {PySDM-examples-2.71 → PySDM-examples-2.73}/setup.cfg +0 -0
  158. {PySDM-examples-2.71 → PySDM-examples-2.73}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM-examples
3
- Version: 2.71
3
+ Version: 2.73
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
@@ -12,18 +12,17 @@ from PySDM.environments import Parcel
12
12
 
13
13
  class Simulation(BasicSimulation):
14
14
  def __init__(self, settings):
15
- parcel = Parcel(
16
- dt=settings.timestep,
17
- mass_of_dry_air=settings.mass_of_dry_air,
18
- p0=settings.initial_total_pressure,
19
- initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
20
- T0=settings.initial_temperature,
21
- w=settings.updraft,
22
- )
23
15
  builder = Builder(
24
16
  backend=CPU(settings.formulae, override_jit_flags={"parallel": False}),
25
17
  n_sd=settings.n_sd,
26
- environment=parcel,
18
+ environment=Parcel(
19
+ dt=settings.timestep,
20
+ mass_of_dry_air=settings.mass_of_dry_air,
21
+ p0=settings.initial_total_pressure,
22
+ initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
23
+ T0=settings.initial_temperature,
24
+ w=settings.updraft,
25
+ ),
27
26
  )
28
27
  builder.add_dynamic(AmbientThermodynamics())
29
28
  builder.add_dynamic(Condensation())
@@ -31,7 +30,7 @@ class Simulation(BasicSimulation):
31
30
  r_dry, n_in_dv = ConstantMultiplicity(settings.soluble_aerosol).sample(
32
31
  n_sd=settings.n_sd
33
32
  )
34
- attributes = parcel.init_attributes(
33
+ attributes = builder.particulator.environment.init_attributes(
35
34
  n_in_dv=n_in_dv, kappa=settings.kappa, r_dry=r_dry
36
35
  )
37
36
  self.products = (
@@ -65,7 +65,8 @@ def run_parcel(
65
65
  v_dry = builder.formulae.trivia.volume(radius=r_dry)
66
66
  specific_concentration = concentration / builder.formulae.constants.rho_STP
67
67
  attributes["multiplicity"] = np.append(
68
- attributes["multiplicity"], specific_concentration * env.mass_of_dry_air
68
+ attributes["multiplicity"],
69
+ specific_concentration * builder.particulator.environment.mass_of_dry_air,
69
70
  )
70
71
  attributes["dry volume"] = np.append(attributes["dry volume"], v_dry)
71
72
  attributes["kappa times dry volume"] = np.append(
@@ -74,7 +75,7 @@ def run_parcel(
74
75
 
75
76
  r_wet = equilibrate_wet_radii(
76
77
  r_dry=builder.formulae.trivia.radius(volume=attributes["dry volume"]),
77
- environment=env,
78
+ environment=builder.particulator.environment,
78
79
  kappa_times_dry_volume=attributes["kappa times dry volume"],
79
80
  )
80
81
  attributes["volume"] = builder.formulae.trivia.volume(radius=r_wet)
@@ -215,8 +215,11 @@ def simulation(
215
215
  constants=constants,
216
216
  particle_shape_and_density="MixedPhaseSpheres",
217
217
  )
218
- env = Box(dt=time_step, dv=volume)
219
- builder = Builder(n_sd=n_sd, backend=CPU(formulae=formulae), environment=env)
218
+ builder = Builder(
219
+ n_sd=n_sd,
220
+ backend=CPU(formulae=formulae),
221
+ environment=Box(dt=time_step, dv=volume),
222
+ )
220
223
  builder.add_dynamic(Freezing(singular=False))
221
224
 
222
225
  if hasattr(spectrum, "s_geom") and spectrum.s_geom == 1:
@@ -236,6 +239,7 @@ def simulation(
236
239
  TotalUnfrozenImmersedSurfaceArea(name="A_tot"),
237
240
  )
238
241
  particulator = builder.build(attributes=attributes, products=products)
242
+ env = particulator.environment
239
243
 
240
244
  env["T"] = initial_temperature
241
245
  env["a_w_ice"] = np.nan
@@ -57,9 +57,9 @@ def make_particulator(
57
57
  ) = sampling.sample(backend=backend, n_sd=n_sd)
58
58
  attributes["multiplicity"] *= total_particle_number
59
59
 
60
- env = Box(dt, volume)
61
- builder = Builder(n_sd, backend, env)
60
+ builder = Builder(n_sd=n_sd, backend=backend, environment=Box(dt, volume))
62
61
 
62
+ env = builder.particulator.environment
63
63
  env["T"] = initial_temperature
64
64
  env["RH"] = A_VALUE_LARGER_THAN_ONE
65
65
  env["rhod"] = 1.0
@@ -9,11 +9,12 @@ from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity
9
9
  def make_core(settings, coal_eff):
10
10
  backend = CPU
11
11
 
12
- env = Box(dv=settings.dv, dt=settings.dt)
13
12
  builder = Builder(
14
- n_sd=settings.n_sd, backend=backend(settings.formulae), environment=env
13
+ n_sd=settings.n_sd,
14
+ backend=backend(settings.formulae),
15
+ environment=Box(dv=settings.dv, dt=settings.dt),
15
16
  )
16
- env["rhod"] = 1.0
17
+ builder.particulator.environment["rhod"] = 1.0
17
18
  attributes = {}
18
19
  attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity(
19
20
  settings.spectrum
@@ -19,20 +19,19 @@ class Simulation(BasicSimulation):
19
19
  scipy_solver=False,
20
20
  sampling_class=ConstantMultiplicity,
21
21
  ):
22
- env = Parcel(
23
- dt=settings.timestep,
24
- p0=settings.initial_pressure,
25
- initial_water_vapour_mixing_ratio=settings.initial_vapour_mixing_ratio,
26
- T0=settings.initial_temperature,
27
- w=settings.vertical_velocity,
28
- mass_of_dry_air=44 * si.kg,
29
- )
30
22
  builder = Builder(
31
23
  n_sd=settings.n_sd,
32
24
  backend=CPU(
33
25
  formulae=settings.formulae, override_jit_flags={"parallel": False}
34
26
  ),
35
- environment=env,
27
+ environment=Parcel(
28
+ dt=settings.timestep,
29
+ p0=settings.initial_pressure,
30
+ initial_water_vapour_mixing_ratio=settings.initial_vapour_mixing_ratio,
31
+ T0=settings.initial_temperature,
32
+ w=settings.vertical_velocity,
33
+ mass_of_dry_air=44 * si.kg,
34
+ ),
36
35
  )
37
36
  builder.add_dynamic(AmbientThermodynamics())
38
37
  builder.add_dynamic(
@@ -45,6 +44,7 @@ class Simulation(BasicSimulation):
45
44
  ):
46
45
  builder.request_attribute(attribute)
47
46
 
47
+ env = builder.particulator.environment
48
48
  volume = env.mass_of_dry_air / settings.initial_air_density
49
49
  attributes = {
50
50
  k: np.empty(0)
@@ -34,16 +34,6 @@ class Simulation(BasicSimulation):
34
34
  settings.p0 / settings.RH0 / pvs_Celsius(settings.T0 - const.T0) - 1
35
35
  )
36
36
 
37
- env = Parcel(
38
- dt=settings.dt,
39
- mass_of_dry_air=666 * si.kg,
40
- p0=settings.p0,
41
- initial_water_vapour_mixing_ratio=initial_water_vapour_mixing_ratio,
42
- T0=settings.T0,
43
- w=settings.vertical_velocity,
44
- z0=settings.z0,
45
- )
46
-
47
37
  n_gccn = np.count_nonzero(table_3.NA) if gccn else 0
48
38
 
49
39
  builder = Builder(
@@ -51,7 +41,15 @@ class Simulation(BasicSimulation):
51
41
  backend=CPU(
52
42
  formulae=settings.formulae, override_jit_flags={"parallel": False}
53
43
  ),
54
- environment=env,
44
+ environment=Parcel(
45
+ dt=settings.dt,
46
+ mass_of_dry_air=666 * si.kg,
47
+ p0=settings.p0,
48
+ initial_water_vapour_mixing_ratio=initial_water_vapour_mixing_ratio,
49
+ T0=settings.T0,
50
+ w=settings.vertical_velocity,
51
+ z0=settings.z0,
52
+ ),
55
53
  )
56
54
 
57
55
  additional_derived_attributes = ("radius", "equilibrium supersaturation")
@@ -83,8 +81,10 @@ class Simulation(BasicSimulation):
83
81
  )
84
82
  rhod0 = settings.formulae.state_variable_triplet.rhod_of_pd_T(pd0, settings.T0)
85
83
 
86
- attributes = env.init_attributes(
87
- n_in_dv=n_in_unit_volume * env.mass_of_dry_air / rhod0,
84
+ attributes = builder.particulator.environment.init_attributes(
85
+ n_in_dv=n_in_unit_volume
86
+ * builder.particulator.environment.mass_of_dry_air
87
+ / rhod0,
88
88
  kappa=settings.kappa,
89
89
  r_dry=self.r_dry,
90
90
  )
@@ -12,24 +12,22 @@ from PySDM.physics import si
12
12
 
13
13
  class Simulation(BasicSimulation):
14
14
  def __init__(self, settings, products=None):
15
- env = Parcel(
16
- dt=settings.dt,
17
- mass_of_dry_air=settings.mass_of_dry_air,
18
- p0=settings.p0,
19
- initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
20
- T0=settings.T0,
21
- w=settings.w,
22
- )
23
-
24
15
  builder = Builder(
25
16
  n_sd=settings.n_sd,
26
17
  backend=CPU(
27
18
  formulae=settings.formulae, override_jit_flags={"parallel": False}
28
19
  ),
29
- environment=env,
20
+ environment=Parcel(
21
+ dt=settings.dt,
22
+ mass_of_dry_air=settings.mass_of_dry_air,
23
+ p0=settings.p0,
24
+ initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
25
+ T0=settings.T0,
26
+ w=settings.w,
27
+ ),
30
28
  )
31
29
 
32
- attributes = env.init_attributes(
30
+ attributes = builder.particulator.environment.init_attributes(
33
31
  n_in_dv=settings.n_in_dv,
34
32
  kappa=settings.kappa,
35
33
  r_dry=settings.r_dry,
@@ -12,21 +12,20 @@ from PySDM.initialisation.spectra import Sum
12
12
 
13
13
  class Simulation(BasicSimulation):
14
14
  def __init__(self, settings, products=None):
15
- env = Parcel(
16
- dt=settings.dt,
17
- mass_of_dry_air=settings.mass_of_dry_air,
18
- p0=settings.p0,
19
- initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
20
- T0=settings.T0,
21
- w=settings.w,
22
- )
23
15
  n_sd = settings.n_sd_per_mode * len(settings.aerosol.modes)
24
16
  builder = Builder(
25
17
  n_sd=n_sd,
26
18
  backend=CPU(
27
19
  formulae=settings.formulae, override_jit_flags={"parallel": False}
28
20
  ),
29
- environment=env,
21
+ environment=Parcel(
22
+ dt=settings.dt,
23
+ mass_of_dry_air=settings.mass_of_dry_air,
24
+ p0=settings.p0,
25
+ initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
26
+ T0=settings.T0,
27
+ w=settings.w,
28
+ ),
30
29
  )
31
30
 
32
31
  attributes = {
@@ -67,7 +66,7 @@ class Simulation(BasicSimulation):
67
66
  )
68
67
  r_wet = equilibrate_wet_radii(
69
68
  r_dry=settings.formulae.trivia.radius(volume=attributes["dry volume"]),
70
- environment=env,
69
+ environment=builder.particulator.environment,
71
70
  kappa_times_dry_volume=attributes["kappa times dry volume"],
72
71
  f_org=attributes["dry volume organic"] / attributes["dry volume"],
73
72
  )
@@ -15,26 +15,28 @@ class Simulation(BasicSimulation):
15
15
  def __init__(
16
16
  self, settings, products=None, scipy_solver=False, rtol_thd=1e-10, rtol_x=1e-10
17
17
  ):
18
- env = Parcel(
19
- dt=settings.timestep,
20
- p0=settings.initial_pressure,
21
- initial_water_vapour_mixing_ratio=settings.initial_vapour_mixing_ratio,
22
- T0=settings.initial_temperature,
23
- w=settings.vertical_velocity,
24
- mass_of_dry_air=44 * si.kg,
25
- )
26
18
  n_sd = sum(settings.n_sd_per_mode)
27
19
  builder = Builder(
28
20
  n_sd=n_sd,
29
21
  backend=CPU(
30
22
  formulae=settings.formulae, override_jit_flags={"parallel": False}
31
23
  ),
32
- environment=env,
24
+ environment=Parcel(
25
+ dt=settings.timestep,
26
+ p0=settings.initial_pressure,
27
+ initial_water_vapour_mixing_ratio=settings.initial_vapour_mixing_ratio,
28
+ T0=settings.initial_temperature,
29
+ w=settings.vertical_velocity,
30
+ mass_of_dry_air=44 * si.kg,
31
+ ),
33
32
  )
34
33
  builder.add_dynamic(AmbientThermodynamics())
35
34
  builder.add_dynamic(Condensation(rtol_thd=rtol_thd, rtol_x=rtol_x))
36
35
 
37
- volume = env.mass_of_dry_air / settings.initial_air_density
36
+ volume = (
37
+ builder.particulator.environment.mass_of_dry_air
38
+ / settings.initial_air_density
39
+ )
38
40
  attributes = {
39
41
  k: np.empty(0)
40
42
  for k in ("dry volume", "kappa times dry volume", "multiplicity")
@@ -52,7 +54,7 @@ class Simulation(BasicSimulation):
52
54
  )
53
55
  r_wet = equilibrate_wet_radii(
54
56
  r_dry=settings.formulae.trivia.radius(volume=attributes["dry volume"]),
55
- environment=env,
57
+ environment=builder.particulator.environment,
56
58
  kappa_times_dry_volume=attributes["kappa times dry volume"],
57
59
  )
58
60
  attributes["volume"] = settings.formulae.trivia.volume(radius=r_wet)
@@ -34,7 +34,7 @@ class Simulation:
34
34
  size=(settings.z_max + settings.particle_reservoir_depth,),
35
35
  )
36
36
 
37
- self.env = Kinematic1D(
37
+ env = Kinematic1D(
38
38
  dt=settings.dt,
39
39
  mesh=self.mesh,
40
40
  thd_of_z=settings.thd,
@@ -66,7 +66,7 @@ class Simulation:
66
66
  self.builder = Builder(
67
67
  n_sd=settings.n_sd,
68
68
  backend=backend(formulae=settings.formulae),
69
- environment=self.env,
69
+ environment=env,
70
70
  )
71
71
  self.builder.add_dynamic(AmbientThermodynamics())
72
72
 
@@ -92,7 +92,7 @@ class Simulation:
92
92
  ),
93
93
  )
94
94
  self.builder.add_dynamic(displacement)
95
- self.attributes = self.env.init_attributes(
95
+ self.attributes = self.builder.particulator.environment.init_attributes(
96
96
  spatial_discretisation=spatial_sampling.Pseudorandom(),
97
97
  spectral_discretisation=spectral_sampling.ConstantMultiplicity(
98
98
  spectrum=settings.wet_radius_spectrum_per_mass_of_dry_air
@@ -74,7 +74,11 @@ class Simulation:
74
74
  advectees = dict(
75
75
  (
76
76
  key,
77
- np.repeat(profile.reshape(1, -1), environment.mesh.grid[0], axis=0),
77
+ np.repeat(
78
+ profile.reshape(1, -1),
79
+ builder.particulator.environment.mesh.grid[0],
80
+ axis=0,
81
+ ),
78
82
  )
79
83
  for key, profile in initial_profiles.items()
80
84
  )
@@ -141,7 +145,7 @@ class Simulation:
141
145
  )
142
146
  )
143
147
 
144
- attributes = environment.init_attributes(
148
+ attributes = builder.particulator.environment.init_attributes(
145
149
  spatial_discretisation=spatial_sampling.Pseudorandom(),
146
150
  dry_radius_spectrum=self.settings.spectrum_per_mass_of_dry_air,
147
151
  kappa=self.settings.kappa,
@@ -16,11 +16,12 @@ from PySDM.products.size_spectral import (
16
16
 
17
17
 
18
18
  def run_box(settings, backend_class=CPU):
19
- env = Box(dv=settings.dv, dt=settings.dt)
20
19
  builder = Builder(
21
- n_sd=settings.n_sd, backend=backend_class(settings.formulae), environment=env
20
+ n_sd=settings.n_sd,
21
+ backend=backend_class(settings.formulae),
22
+ environment=Box(dv=settings.dv, dt=settings.dt),
22
23
  )
23
- env["rhod"] = settings.rhod
24
+ builder.particulator.environment["rhod"] = settings.rhod
24
25
  attributes = {}
25
26
  attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity(
26
27
  settings.spectrum
@@ -27,11 +27,12 @@ from PySDM.products.size_spectral import (
27
27
  def run_box_breakup(
28
28
  settings, steps=None, backend_class=CPU, sample_in_radius=False, return_nv=False
29
29
  ):
30
- env = Box(dv=settings.dv, dt=settings.dt)
31
30
  builder = Builder(
32
- n_sd=settings.n_sd, backend=backend_class(settings.formulae), environment=env
31
+ n_sd=settings.n_sd,
32
+ backend=backend_class(settings.formulae),
33
+ environment=Box(dv=settings.dv, dt=settings.dt),
33
34
  )
34
- env["rhod"] = 1.0
35
+ builder.particulator.environment["rhod"] = 1.0
35
36
  attributes = {}
36
37
  if sample_in_radius:
37
38
  diams, attributes["multiplicity"] = Logarithmic(settings.spectrum).sample(
@@ -90,11 +91,12 @@ def run_box_breakup(
90
91
 
91
92
 
92
93
  def run_box_NObreakup(settings, steps=None, backend_class=CPU):
93
- env = Box(dv=settings.dv, dt=settings.dt)
94
94
  builder = Builder(
95
- n_sd=settings.n_sd, backend=backend_class(settings.formulae), environment=env
95
+ n_sd=settings.n_sd,
96
+ backend=backend_class(settings.formulae),
97
+ environment=Box(dv=settings.dv, dt=settings.dt),
96
98
  )
97
- env["rhod"] = 1.0
99
+ builder.particulator.environment["rhod"] = 1.0
98
100
  attributes = {}
99
101
  attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity(
100
102
  settings.spectrum
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM-examples
3
- Version: 2.71
3
+ Version: 2.73
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
File without changes
File without changes
File without changes
File without changes