PySDM-examples 2.50__tar.gz → 2.52__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 (152) hide show
  1. {PySDM-examples-2.50 → PySDM-examples-2.52}/PKG-INFO +13 -9
  2. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +48 -10
  3. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +5 -3
  4. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +27 -5
  5. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples.egg-info/PKG-INFO +13 -9
  6. {PySDM-examples-2.50 → PySDM-examples-2.52}/README.md +12 -8
  7. {PySDM-examples-2.50 → PySDM-examples-2.52}/MANIFEST.in +0 -0
  8. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
  9. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  10. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  11. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  12. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
  13. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
  14. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
  15. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  16. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  17. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  18. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
  19. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  20. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  21. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
  22. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
  23. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  24. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  25. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  26. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
  27. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/__init__.py +0 -0
  28. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/commons.py +0 -0
  29. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/curved_text.py +0 -0
  30. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py +0 -0
  31. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/make_particulator.py +0 -0
  32. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/plots.py +0 -0
  33. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Arabas_et_al_2023/run_simulation.py +0 -0
  34. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  35. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
  36. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
  37. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
  38. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  39. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Berry_1967/__init__.py +0 -0
  40. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Berry_1967/example.py +0 -0
  41. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
  42. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Berry_1967/settings.py +0 -0
  43. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
  44. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
  45. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  46. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
  47. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
  48. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
  49. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  50. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
  51. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  52. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  53. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
  54. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  55. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
  56. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
  57. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
  58. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
  59. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  60. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
  61. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  62. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
  63. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
  64. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
  65. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  66. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  67. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  68. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  69. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  70. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
  71. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
  72. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
  73. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
  74. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
  75. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  76. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
  77. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  78. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
  79. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
  80. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  81. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pyrcel/__init__.py +0 -0
  82. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  83. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pyrcel/settings.py +0 -0
  84. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pyrcel/simulation.py +0 -0
  85. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
  86. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
  87. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
  88. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  89. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  90. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  91. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  92. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  93. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  94. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  95. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  96. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
  97. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  98. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  99. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  100. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
  101. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Singer_Ward/__init__.py +0 -0
  102. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  103. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
  104. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Srivastava_1982/equations.py +0 -0
  105. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Srivastava_1982/example.py +0 -0
  106. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Srivastava_1982/settings.py +0 -0
  107. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
  108. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
  109. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
  110. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
  111. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
  112. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
  113. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
  114. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
  115. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
  116. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
  117. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/simulation.py +0 -0
  118. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
  119. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
  120. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
  121. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
  122. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  123. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  124. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/__init__.py +0 -0
  125. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
  126. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  127. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  128. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  129. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
  130. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
  131. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  132. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  133. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  134. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  135. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
  136. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  137. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/__init__.py +0 -0
  138. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/basic_simulation.py +0 -0
  139. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/dummy_controller.py +0 -0
  140. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/notebook_vars.py +0 -0
  141. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/progbar_controller.py +0 -0
  142. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/read_vtk_1d.py +0 -0
  143. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/widgets/__init__.py +0 -0
  144. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/widgets/freezer.py +0 -0
  145. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  146. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples.egg-info/SOURCES.txt +0 -0
  147. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples.egg-info/dependency_links.txt +0 -0
  148. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples.egg-info/requires.txt +0 -0
  149. {PySDM-examples-2.50 → PySDM-examples-2.52}/PySDM_examples.egg-info/top_level.txt +0 -0
  150. {PySDM-examples-2.50 → PySDM-examples-2.52}/pyproject.toml +0 -0
  151. {PySDM-examples-2.50 → PySDM-examples-2.52}/setup.cfg +0 -0
  152. {PySDM-examples-2.50 → PySDM-examples-2.52}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM-examples
3
- Version: 2.50
3
+ Version: 2.52
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
@@ -181,14 +181,14 @@ Description:
181
181
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
182
182
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
183
183
  [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
184
- - Fig. 3:
185
- [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
186
- [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
187
- [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
188
- - Fig. 4:
189
- [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
190
- [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
191
- [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
184
+ - Fig. 3 and Tab. 4 (upper rows):
185
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
186
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
187
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
188
+ - Fig. 4 and 7, Tab. 4 (bottom rows):
189
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
190
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
191
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
192
192
  - Fig. 5:
193
193
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb)
194
194
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb)
@@ -197,6 +197,10 @@ Description:
197
197
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
198
198
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
199
199
  [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
200
+ - Fig. 8:
201
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
202
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
203
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
200
204
 
201
205
  ### 0D parcel-model condensation/aqueous-chemistry example:
202
206
  - [Kreidenweis et al. 2003](https://doi.org/10.1029/2002JD002697) (Adiabatic parcel, polydisperse size spectrum, aqueous‐phase SO2 oxidation test case):
@@ -3,6 +3,38 @@ import numpy as np
3
3
  from PySDM.physics import si, in_unit
4
4
  from PySDM.physics.constants import PER_CENT
5
5
 
6
+ CLOUD_BASE = 300 * si.m
7
+
8
+
9
+ def find_drop_ids_by_dry_size(plot_drops_with_dry_radii_um, simulation_r_dry):
10
+ drop_ids = []
11
+ for drop_size_um in plot_drops_with_dry_radii_um:
12
+ drop_id = (np.abs(simulation_r_dry - drop_size_um * si.um)).argmin()
13
+ drop_ids.append(drop_id)
14
+ return drop_ids
15
+
16
+
17
+ def compute_table_values(height_above_cb_m, height_cb_m, products, ascent_mask):
18
+ """constructing data for Table 4"""
19
+ data = {"ascent": [], "descent": []}
20
+ for level_idx, height_m in enumerate(products["z"]):
21
+ rounded_height_above_cb_m = np.round(height_m - height_cb_m)
22
+ if rounded_height_above_cb_m in height_above_cb_m:
23
+ r_mean = products["r_mean_act"][level_idx]
24
+ r_standard_deviation = products["r_std_act"][level_idx]
25
+ r_relative_dispersion = r_standard_deviation / r_mean
26
+
27
+ data["ascent" if ascent_mask[level_idx] else "descent"].append(
28
+ (
29
+ f"{rounded_height_above_cb_m:.0f}",
30
+ f"{in_unit(r_mean, si.um):.2f}",
31
+ f"{in_unit(r_standard_deviation, si.um):.2f}",
32
+ f"{r_relative_dispersion:.3f}",
33
+ )
34
+ )
35
+ data["ascent"].append(data["descent"][0])
36
+ return data
37
+
6
38
 
7
39
  def figure(
8
40
  *,
@@ -12,9 +44,9 @@ def figure(
12
44
  plot_drops_with_dry_radii_um,
13
45
  xlim_r_um: tuple,
14
46
  xlim_S_percent: tuple,
47
+ return_masks: bool = False,
15
48
  ):
16
- cloud_base = 300 * si.m
17
- y_axis = np.asarray(output["products"]["z"]) - settings.z0 - cloud_base
49
+ y_axis = np.asarray(output["products"]["z"]) - settings.z0 - CLOUD_BASE
18
50
 
19
51
  masks = {}
20
52
  if settings.t_end_of_ascent is None:
@@ -37,13 +69,13 @@ def figure(
37
69
  color=colors[label],
38
70
  )
39
71
  axs["S"].set_xlim(*xlim_S_percent)
40
- axs["S"].set_xlabel("S (%)")
41
- axs["S"].legend()
72
+ axs["S"].set_xlabel("S (%)", fontsize="15")
73
+ axs["S"].legend(fontsize="10")
42
74
 
43
- drop_ids = []
44
- for drop_size_um in plot_drops_with_dry_radii_um:
45
- drop_id = (np.abs(simulation.r_dry - drop_size_um * si.um)).argmin()
46
- drop_ids.append(drop_id)
75
+ drop_ids = find_drop_ids_by_dry_size(
76
+ plot_drops_with_dry_radii_um=plot_drops_with_dry_radii_um,
77
+ simulation_r_dry=simulation.r_dry,
78
+ )
47
79
 
48
80
  for (
49
81
  drop_id
@@ -65,8 +97,14 @@ def figure(
65
97
  )
66
98
  axs["r"].legend()
67
99
  axs["r"].set_xlim(*xlim_r_um)
68
- axs["r"].set_xlabel("r$_c$ (µm)")
69
- axs["r"].set_ylabel("height above cloud base (m)")
100
+ axs["r"].set_xlabel("r$_c$ (µm)", fontsize="15")
101
+ axs["r"].set_ylabel("Height above cloud base (m)", fontsize="15")
102
+ # pyplot.xticks(fontsize=12)
103
+ # pyplot.yticks(fontsize=12)
70
104
 
71
105
  for ax in axs.values():
72
106
  ax.grid()
107
+
108
+ if return_masks:
109
+ return masks
110
+ return None
@@ -1,3 +1,5 @@
1
+ from typing import Optional
2
+
1
3
  from pystrict import strict
2
4
  from PySDM import Formulae
3
5
  from PySDM.physics import si
@@ -11,19 +13,19 @@ INITIAL_ALTITUDE = 600 * si.metres
11
13
 
12
14
  @strict
13
15
  class Settings:
14
- def __init__(self, *, aerosol: str, cloud_type: str):
16
+ def __init__(self, *, aerosol: str, cloud_type: str, dt: Optional[float] = None):
15
17
  self.p0 = INITIAL_PRESSURE
16
18
  self.RH0 = INITIAL_RELATIVE_HUMIDITY
17
19
  self.T0 = INITIAL_TEMPERATURE
18
20
  self.z0 = INITIAL_ALTITUDE
19
21
  self.t_end_of_ascent = 1500 * si.s if cloud_type == "Sc" else None
20
- self.dt = 1 * si.s # TODO #1266: not found in the paper yet
22
+ self.dt = dt or 1 * si.s # TODO #1266: not found in the paper yet
21
23
 
22
24
  self.kappa = 1.28 # Table 1 from Petters & Kreidenweis 2007
23
25
 
24
26
  self.formulae = Formulae(
25
27
  saturation_vapour_pressure="FlatauWalkoCotton", # TODO #1266: Bolton
26
- diffusion_kinetics="JensenAndNugent2017",
28
+ diffusion_kinetics="GrabowskiEtAl2011",
27
29
  diffusion_thermics="GrabowskiEtAl2011",
28
30
  constants={
29
31
  # values from appendix B
@@ -5,9 +5,16 @@ from PySDM_examples.Jensen_and_Nugent_2017 import table_3
5
5
  from PySDM import Builder
6
6
  from PySDM.physics import si
7
7
  from PySDM.backends import CPU
8
- from PySDM.products import PeakSupersaturation, ParcelDisplacement, Time
8
+ from PySDM.products import (
9
+ PeakSupersaturation,
10
+ ParcelDisplacement,
11
+ Time,
12
+ ActivatedMeanRadius,
13
+ RadiusStandardDeviation,
14
+ )
9
15
  from PySDM.environments import Parcel
10
- from PySDM.dynamics import Condensation, AmbientThermodynamics
16
+ from PySDM.dynamics import Condensation, AmbientThermodynamics, Coalescence
17
+ from PySDM.dynamics.collisions.collision_kernels import Geometric
11
18
  from PySDM.initialisation.sampling.spectral_sampling import Logarithmic
12
19
 
13
20
  # note: 100 in caption of Table 1
@@ -15,7 +22,12 @@ N_SD_NON_GCCN = 100
15
22
 
16
23
 
17
24
  class Simulation(BasicSimulation):
18
- def __init__(self, settings: Settings, gccn: bool = False):
25
+ def __init__(
26
+ self,
27
+ settings: Settings,
28
+ gccn: bool = False,
29
+ gravitational_coalsecence: bool = False,
30
+ ):
19
31
  const = settings.formulae.constants
20
32
  pvs_Celsius = settings.formulae.saturation_vapour_pressure.pvs_Celsius
21
33
  initial_water_vapour_mixing_ratio = const.eps / (
@@ -40,7 +52,7 @@ class Simulation(BasicSimulation):
40
52
  environment=env,
41
53
  )
42
54
 
43
- additional_derived_attributes = ("radius",)
55
+ additional_derived_attributes = ("radius", "equilibrium supersaturation")
44
56
  for additional_derived_attribute in additional_derived_attributes:
45
57
  builder.request_attribute(additional_derived_attribute)
46
58
 
@@ -48,6 +60,8 @@ class Simulation(BasicSimulation):
48
60
  AmbientThermodynamics()
49
61
  ) # TODO #1266: order matters here, but error message is not saying it!
50
62
  builder.add_dynamic(Condensation())
63
+ if gravitational_coalsecence:
64
+ builder.add_dynamic(Coalescence(collision_kernel=Geometric()))
51
65
 
52
66
  self.r_dry, n_in_unit_volume = Logarithmic(
53
67
  spectrum=settings.dry_radii_spectrum,
@@ -80,6 +94,12 @@ class Simulation(BasicSimulation):
80
94
  PeakSupersaturation(name="S_max"),
81
95
  ParcelDisplacement(name="z"),
82
96
  Time(name="t"),
97
+ ActivatedMeanRadius(
98
+ name="r_mean_act", count_activated=True, count_unactivated=False
99
+ ),
100
+ RadiusStandardDeviation(
101
+ name="r_std_act", count_activated=True, count_unactivated=False
102
+ ),
83
103
  ),
84
104
  )
85
105
  )
@@ -93,7 +113,9 @@ class Simulation(BasicSimulation):
93
113
  def run(
94
114
  self, *, n_steps: int = 2250, steps_per_output_interval: int = 10
95
115
  ): # TODO #1266: essentially copied from G & P 2023
96
- output_products = super()._run(n_steps, steps_per_output_interval)
116
+ output_products = super()._run(
117
+ nt=n_steps, steps_per_output_interval=steps_per_output_interval
118
+ )
97
119
  return {"products": output_products, "attributes": self.output_attributes}
98
120
 
99
121
  def _save(self, output): # TODO #1266: copied from G&P 2023
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM-examples
3
- Version: 2.50
3
+ Version: 2.52
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
@@ -181,14 +181,14 @@ Description:
181
181
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
182
182
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
183
183
  [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
184
- - Fig. 3:
185
- [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
186
- [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
187
- [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
188
- - Fig. 4:
189
- [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
190
- [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
191
- [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
184
+ - Fig. 3 and Tab. 4 (upper rows):
185
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
186
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
187
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
188
+ - Fig. 4 and 7, Tab. 4 (bottom rows):
189
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
190
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
191
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
192
192
  - Fig. 5:
193
193
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb)
194
194
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb)
@@ -197,6 +197,10 @@ Description:
197
197
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
198
198
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
199
199
  [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
200
+ - Fig. 8:
201
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
202
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
203
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
200
204
 
201
205
  ### 0D parcel-model condensation/aqueous-chemistry example:
202
206
  - [Kreidenweis et al. 2003](https://doi.org/10.1029/2002JD002697) (Adiabatic parcel, polydisperse size spectrum, aqueous‐phase SO2 oxidation test case):
@@ -170,14 +170,14 @@
170
170
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
171
171
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
172
172
  [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb)
173
- - Fig. 3:
174
- [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
175
- [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
176
- [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3.ipynb)
177
- - Fig. 4:
178
- [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
179
- [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
180
- [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4.ipynb)
173
+ - Fig. 3 and Tab. 4 (upper rows):
174
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
175
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
176
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb)
177
+ - Fig. 4 and 7, Tab. 4 (bottom rows):
178
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
179
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
180
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_6_bottom_rows.ipynb)
181
181
  - Fig. 5:
182
182
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb)
183
183
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb)
@@ -186,6 +186,10 @@
186
186
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
187
187
  [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
188
188
  [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb)
189
+ - Fig. 8:
190
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
191
+ [![launch on mybinder.org](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PySDM.git/main?urlpath=examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
192
+ [![launch on Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PySDM/blob/main/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb)
189
193
 
190
194
  ### 0D parcel-model condensation/aqueous-chemistry example:
191
195
  - [Kreidenweis et al. 2003](https://doi.org/10.1029/2002JD002697) (Adiabatic parcel, polydisperse size spectrum, aqueous‐phase SO2 oxidation test case):
File without changes
File without changes
File without changes