PySDM-examples 2.79__tar.gz → 2.81__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 (173) hide show
  1. {PySDM-examples-2.79 → pysdm_examples-2.81}/MANIFEST.in +1 -0
  2. pysdm_examples-2.81/PKG-INFO +151 -0
  3. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +3 -0
  4. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +6 -0
  5. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +15 -0
  6. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +3 -0
  7. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2015/__init__.py +6 -0
  8. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2015/spin_up.py +1 -3
  9. pysdm_examples-2.81/PySDM_examples/Arabas_et_al_2023/__init__.py +29 -0
  10. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2023/commons.py +1 -1
  11. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2023/make_particulator.py +1 -1
  12. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2023/plots.py +2 -2
  13. pysdm_examples-2.81/PySDM_examples/Bartman_et_al_2021/__init__.py +13 -0
  14. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Berry_1967/__init__.py +3 -0
  15. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bieli_et_al_2022/__init__.py +3 -0
  16. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bolot_et_al_2013/__init__.py +3 -0
  17. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +3 -0
  18. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +3 -0
  19. pysdm_examples-2.81/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +22 -0
  20. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Graf_et_al_2019/__init__.py +6 -0
  21. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +6 -0
  22. pysdm_examples-2.81/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +22 -0
  23. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +3 -0
  24. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +1 -1
  25. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lamb_et_al_2017/__init__.py +3 -0
  26. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/__init__.py +12 -0
  27. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +3 -0
  28. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Miyake_et_al_1968/__init__.py +3 -0
  29. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +6 -0
  30. pysdm_examples-2.81/PySDM_examples/Niedermeier_et_al_2014/__init__.py +9 -0
  31. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pierchala_et_al_2022/__init__.py +6 -0
  32. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pyrcel/__init__.py +3 -0
  33. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +3 -0
  34. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/__init__.py +3 -0
  35. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +3 -0
  36. pysdm_examples-2.81/PySDM_examples/Singer_Ward/__init__.py +9 -0
  37. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Srivastava_1982/__init__.py +3 -0
  38. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Srivastava_1982/simulation.py +1 -1
  39. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/simulation.py +8 -3
  40. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Van_Hook_1968/__init__.py +3 -0
  41. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Yang_et_al_2018/__init__.py +3 -0
  42. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/__init__.py +1 -2
  43. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Azimi/__init__.py +6 -0
  44. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Azimi/simulation_0D.py +3 -3
  45. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +12 -0
  46. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +9 -9
  47. pysdm_examples-2.81/PySDM_examples/seeding/__init__.py +10 -0
  48. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/seeding/simulation.py +4 -1
  49. pysdm_examples-2.81/PySDM_examples.egg-info/PKG-INFO +151 -0
  50. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples.egg-info/SOURCES.txt +2 -1
  51. pysdm_examples-2.81/README.md +10 -0
  52. pysdm_examples-2.81/docs/pysdm_examples_landing.md +125 -0
  53. pysdm_examples-2.81/pyproject.toml +5 -0
  54. {PySDM-examples-2.79 → pysdm_examples-2.81}/setup.py +10 -4
  55. PySDM-examples-2.79/PKG-INFO +0 -284
  56. PySDM-examples-2.79/PySDM_examples/Arabas_et_al_2023/__init__.py +0 -8
  57. PySDM-examples-2.79/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -4
  58. PySDM-examples-2.79/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -7
  59. PySDM-examples-2.79/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -2
  60. PySDM-examples-2.79/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -4
  61. PySDM-examples-2.79/PySDM_examples/Singer_Ward/__init__.py +0 -1
  62. PySDM-examples-2.79/PySDM_examples/seeding/__init__.py +0 -2
  63. PySDM-examples-2.79/PySDM_examples.egg-info/PKG-INFO +0 -284
  64. PySDM-examples-2.79/README.md +0 -269
  65. PySDM-examples-2.79/pyproject.toml +0 -5
  66. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
  67. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +0 -0
  68. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  69. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  70. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  71. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
  72. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
  73. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  74. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  75. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  76. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  77. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  78. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
  79. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  80. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  81. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  82. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2023/curved_text.py +0 -0
  83. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py +0 -0
  84. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Arabas_et_al_2023/run_simulation.py +0 -0
  85. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  86. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
  87. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
  88. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  89. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Berry_1967/example.py +0 -0
  90. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
  91. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Berry_1967/settings.py +0 -0
  92. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
  93. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  94. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
  95. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  96. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
  97. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  98. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  99. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  100. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
  101. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
  102. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
  103. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
  104. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  105. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  106. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  107. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  108. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  109. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  110. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  111. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
  112. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
  113. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
  114. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  115. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  116. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
  117. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  118. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  119. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pyrcel/settings.py +0 -0
  120. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pyrcel/simulation.py +0 -0
  121. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
  122. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
  123. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  124. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  125. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  126. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  127. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  128. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  129. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  130. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  131. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  132. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  133. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  134. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
  135. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  136. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Srivastava_1982/equations.py +0 -0
  137. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Srivastava_1982/example.py +0 -0
  138. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Srivastava_1982/settings.py +0 -0
  139. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
  140. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
  141. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
  142. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
  143. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
  144. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
  145. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
  146. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
  147. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
  148. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
  149. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
  150. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  151. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  152. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  153. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  154. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  155. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  156. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  157. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  158. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  159. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  160. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/seeding/settings.py +0 -0
  161. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/__init__.py +0 -0
  162. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/basic_simulation.py +0 -0
  163. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/dummy_controller.py +0 -0
  164. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/notebook_vars.py +0 -0
  165. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/progbar_controller.py +0 -0
  166. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/read_vtk_1d.py +0 -0
  167. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/widgets/__init__.py +0 -0
  168. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/widgets/freezer.py +0 -0
  169. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  170. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples.egg-info/dependency_links.txt +0 -0
  171. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples.egg-info/requires.txt +0 -0
  172. {PySDM-examples-2.79 → pysdm_examples-2.81}/PySDM_examples.egg-info/top_level.txt +0 -0
  173. {PySDM-examples-2.79 → pysdm_examples-2.81}/setup.cfg +0 -0
@@ -1,2 +1,3 @@
1
1
  global-exclude *.ipynb
2
2
  global-exclude *.csv
3
+ include docs/*.md
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.1
2
+ Name: PySDM-examples
3
+ Version: 2.81
4
+ Summary: PySDM usage examples reproducing results from literature and depicting how to use PySDM from Python Jupyter notebooks
5
+ Home-page: https://github.com/open-atmos/PySDM
6
+ Author: https://github.com/open-atmos/PySDM/graphs/contributors
7
+ Author-email: sylwester.arabas@agh.edu.pl
8
+ License: GPL-3.0
9
+ Project-URL: Tracker, https://github.com/open-atmos/PySDM/issues
10
+ Project-URL: Documentation, https://open-atmos.github.io/PySDM/PySDM_examples
11
+ Project-URL: Source, https://github.com/open-atmos/PySDM/tree/main/examples
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: PySDM
14
+ Requires-Dist: PyMPDATA
15
+ Requires-Dist: open-atmos-jupyter-utils
16
+ Requires-Dist: pystrict
17
+ Requires-Dist: matplotlib
18
+ Requires-Dist: joblib
19
+ Requires-Dist: ipywidgets
20
+ Requires-Dist: seaborn
21
+ Requires-Dist: numdifftools
22
+ Requires-Dist: vtk
23
+ Provides-Extra: tests
24
+ Requires-Dist: pytest; extra == "tests"
25
+ Requires-Dist: nbconvert; extra == "tests"
26
+
27
+ # Introduction
28
+
29
+ <img align="left" src="https://raw.githubusercontent.com/open-atmos/PySDM/main/.github/pysdm_logo.svg" width=150 height=219 alt="pysdm logo" style="padding-right:1em">
30
+
31
+ PySDM examples are engineered as Jupyter Python notebooks supported by auxiliary Python commons
32
+ that constitute a separate <mark>PySDM-examples</mark> Python package which is also
33
+ <a href="https://pypi.org/p/PySDM-examples">available at PyPI</a>.
34
+ The examples have additional dependencies listed in
35
+ <a href="https://github.com/open-atmos/PySDM/blob/main/examples/setup.py">PySDM-examples package setup.py file</a>.
36
+ Running the example Jupyter notebooks requires the <mark>PySDM-examples</mark> package to be pip-installed.
37
+ For installation instructions see [project docs homepage](https://open-atmos.github.io/PySDM).
38
+ Note that the Jupyter notebooks themselves are not included in the package wheels, but are included
39
+ in the source .tar.gz file on PyPI, and are conveninently browsable on GitHub.
40
+ All notebooks feature header cells with badges enabling single-click execution on
41
+ <a href="https://colab.research.google.com/">Google Colab</a> and on
42
+ <a href="https://mybinder.org/">mybinder.org</a>.
43
+ The examples package is also used in the PySDM test suite.
44
+
45
+ # Example gallery
46
+
47
+ The examples are named referring to the journal paper they aim to reproduce simulations from
48
+ (or sometimes just where the inspiration originated from).
49
+ The list below groups all examples by the dimensionality and type of the employed modelling framework
50
+ ("environment" in PySDM nomenclature, which can be: <mark>box</mark>, <mark>parcel</mark>,
51
+ <mark>single-column</mark>, <mark>2D prescribed flow</mark>), and by the set of physical processes simulated
52
+ (<mark>condensation</mark>, collisional <mark>coagulation</mark> and <mark>breakup</mark>,
53
+ <mark>drop freezing</mark>, <mark>isotopic fractionation</mark>, <mark>aqueous chemistry</mark>,
54
+ <mark>seeding</mark>, ...).
55
+
56
+ ## 2D kinematic environment (prescribed-flow) mimicking Sc deck
57
+
58
+ The 2D prescribed-flow framework used here can be traced back to the work of
59
+ <a href="https://doi.org/10.1007/978-1-935704-36-2_1">Kessler 1969 (section 3C)</a>.
60
+ The setup employed in PySDM-examples, which mimics a stratiform cloud deck and features periodic horizontal boundary condition
61
+ and vanishing flow at vertical boundaries, was introduced in <a href="https://doi.org/10.1175/JAS3980">Morrison and Grabowski (2007)</a>
62
+ and later adopted for particle-based simulations in <a href="https://doi.org/10.5194/gmd-8-1677-2015">Arabas et al. (2015)</a>.
63
+ It uses a non-devergent single-eddy flow field resulting in an updraft-downdraft pair in the domain.
64
+ The flow field advects two scalar fields in an Eulerian way: water vapour mixing ratio
65
+ and dry-air potential temperature.
66
+ In PySDM-examples, the Eulerian advection is handled using the <a href="https://doi.org/10.21105/joss.03896">PyMPDATA</a> Numba-based
67
+ implementation of the <a href="https://doi.org/10.1002/fld.1071">MPDATA numerical scheme of Smolarkiewicz (e.g., 2006)</a>.
68
+ An animation depicting PySDM simulation capturing <mark>aerosol collisional processing</mark> by warm rain is shown below:
69
+
70
+ ![animation](https://github.com/open-atmos/PySDM/wiki/files/kinematic_2D_example.gif)
71
+
72
+ Example notebooks:
73
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Arabas_et_al_2015.html">Arabas_et_al_2015</a>
74
+ - in-notebook GUI for setting up, running and interactively visualising the 2D kinematic simulations (with an option to export raw data to <mark>VTK</mark> and <mark>netCDF</mark> files, as well as to save plots to SVG or PDF):
75
+ - "hello world" notebook depicting how to automate using Python the process of loading data and creating animations in <mark>Paraview</mark>
76
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Arabas_et_al_2023.html">Arabas_et_al_2023</a>: adaptation of the 2D kinematic setup for studying <mark>glaciation</mark> of the cloud deck by <mark>immersion freezing</mark>
77
+
78
+ ## 1D kinematic environment (prescribed-flow, single-column)
79
+
80
+ The single-column PySDM environment is a reimplementation of the <mark>Met Office KiD framework</mark>
81
+ introduced in <a href="https://doi.org/10.1002/qj.1913">Shipway & Hill 2012</a>.
82
+ The framework features a single Eulerian-transported field of water vapour mixing ratio
83
+ (vertical profile of potential temperature is fixed).
84
+ As in the 2D kinematic framework above, the Eulerian advection is handled by
85
+ <a href="https://open-atmos.github.io/PyMPDATA/">PyMPDATA</a>.
86
+
87
+ Example notebooks:
88
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Shipway_and_Hill_2012.html">Shipway_and_Hill_2012</a>: reproducing figures from the <a href="https://doi.org/10.1002/qj.1913">Shipway & Hill 2012</a> paper;
89
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/deJong_Mackay_et_al_2023.html">deJong_Mackay_et_al_2023</a>: reproducing figures from the <a href="https://doi.org/10.5194/gmd-16-4193-2023">de Jong et al. 2023</a> paper where the single-column
90
+ framework was used to exemplify operation of the <mark>Monte-Carlo collisional breakup scheme</mark> in PySDM (scheme introduced in that paper).
91
+
92
+ ## OD/1D iterative parcel/column environment mimicking removal of precipitation
93
+
94
+ This framework uses a parcel model with removal of precipitation for analysis,
95
+ iterative equilibration, the isotopic composition of the water vapour and
96
+ rain water in a column of air (no Eulerian transport, only iterative passage of a parcel through the column).
97
+
98
+ <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Rozanski_and_Sonntag_1982.html">Rozanski_and_Sonntag_1982</a>: bulk microphysics example (i.e. single super droplet) with
99
+ deuterium and heavy-oxygen <mark>water isotopologues</mark> featured.
100
+
101
+ ## 0D parcel environment
102
+
103
+ The parcel framework implemented in PySDM uses a hydrostatic profile and adiabatic mass and energy conservation
104
+ to drive evolution of thermodynamic state and microphysical properties of particles.
105
+
106
+ Example notebooks include:
107
+ - condensation only
108
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Arabas_and_Shima_2017.html">Arabas_and_Shima_2017</a>: monodisperse particle spectrum, activation/deactivation cycle
109
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Yang_et_al_2018.html">Yang_et_al_2018</a>: polydisperse particle spectrum, activation/deactivation cycles
110
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Abdul_Razzak_Ghan_2000.html">Abdul_Razzak_Ghan_2000</a>: polydisperse activation, comparison against <mark>GCM parameterisation</mark>
111
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Pyrcel.html">Pyrcel</a>: polydisperse activation, mimicking example test case from <mark>Pyrcel</mark> documentation
112
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Lowe_et_al_2019.html">Lowe_et_al_2019</a>: externally mixed polydisperse size spectrum with <mark>surface-active organics</mark> case
113
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Grabowski_and_Pawlowska_2023.html">Grabowski_and_Pawlowska_2023</a>: polydisperse activation, focus on <mark>ripening</mark>
114
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Jensen_and_Nugent_2017.html">Jensen_and_Nugent_2017</a>: polydisperse activation featuring <mark>giant CCN</mark>
115
+ - condensation and aqueous-chemistry
116
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Kreidenweis_et_al_2003.html">Kreidenweis_et_al_2003</a>: <mark>Hoppel gap</mark> simulation setup (i.e. depiction of evolution of aerosol mass spectrum from a monomodal to bimodal due to aqueous‐phase SO2 oxidation)
117
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Jaruga_and_Pawlowska_2018.html">Jaruga_and_Pawlowska_2018</a>: exploration of numerical convergence using the above Hoppel-gap simulation setup
118
+
119
+ The parcel environment is also featured in the <a href="https://open-atmos.github.io/PySDM/PySDM.html#tutorials">PySDM tutorials</a>.
120
+
121
+ ## 0D box environment
122
+
123
+ The box environment is void of any spatial or thermodynamic context, it constitutes the most basic framework.
124
+
125
+ Example notebooks include:
126
+
127
+ - coalescence only:
128
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Shima_et_al_2009.html">Shima_et_al_2009</a>: using <mark>Golovin additive kernel</mark> for comparison against analytic solution, featuring interactive in-notebook interface for selecting simulation parameters
129
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Berry_1967.html">Berry_1967</a>: examples using geometric, hydrodynamic and electric-field collision kernels
130
+ - coalescence and breakup:
131
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Bieli_et_al_2022.html">Bieli_et_al_2022</a>: evolution of moments under collisional growth and breakage
132
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/deJong_Mackay_et_al_2023.html">deJong_Mackay_et_al_2023</a>: validation of the breakup scheme against analytical solutions from <a href="https://doi.org/10.1175/1520-0469(1982)039%3C1317:ASMOPC%3E2.0.CO;2">Srivastava 1982</a>
133
+ - immersion freezing only:
134
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Alpert_and_Knopf_2016.html">Alpert_and_Knopf_2016</a>: stochastic immersion freezing with monodisperse vs. lognormal immersed surface areas
135
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Arabas_et_al_2023.html">Arabas_et_al_2023</a>: comparison of time-dependent and singular immersion freezing schemes
136
+
137
+ The box environment is also featured in the <a href="https://open-atmos.github.io/PySDM/PySDM.html#tutorials">PySDM tutorials</a>.
138
+
139
+ ## examples depicting isotope-related formulae (without any simulation context)
140
+ - <mark>equilibrium isotopic fractionation</mark> formulae:
141
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Lamb_et_al_2017.html">Lamb_et_al_2017</a>
142
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Bolot_et_al_2013.html">Bolot_et_al_2013</a>
143
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Merlivat_and_Nief_1967.html">Merlivat_and_Nief_1967</a>
144
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Van_Hook_1968.html">Van_Hook_1968</a>
145
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Graf_et_al_2019.html">Graf_et_al_2019</a>
146
+ - <mark>Rayleigh fractionation</mark>:
147
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Pierchala_et_al_2022.html">Pierchala_et_al_2022</a>: reproducing model plots for a <mark>triple-isotope</mark> lab study, including <mark>kinetic fractionation</mark>
148
+ - isotopic relaxation timescale:
149
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Miyake_et_al_1968.html">Miyake_et_al_1968</a>: incl. comparison of different <mark>ventilation</mark> parameterisations
150
+ - below-cloud <mark>kinetic fractionation</mark>:
151
+ - <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Gedzelman_and_Arnold_1994.html">Gedzelman_and_Arnold_1994</a>
@@ -2,6 +2,9 @@
2
2
  """
3
3
  mixed-phase example using parcel environment based on
4
4
  [Abade & Albuquerque 2024 (QJRMS)](https://doi.org/10.1002/qj.4775)
5
+
6
+ fig_2.ipynb:
7
+ .. include:: ./fig_2.ipynb.badges.md
5
8
  """
6
9
 
7
10
  from .simulation import Simulation
@@ -2,4 +2,10 @@
2
2
  """
3
3
  condensation example using parcel environment based on
4
4
  [Abdul-Razzak & Ghan 2000 (JGR)](https://doi.org/10.1029/1999JD901161)
5
+
6
+ figs1-5.ipynb:
7
+ .. include:: ./figs1-5.ipynb.badges.md
8
+
9
+ fig_4_kinetic_limitations.ipynb:
10
+ .. include:: ./fig_4_kinetic_limitations.ipynb.badges.md
5
11
  """
@@ -1,6 +1,21 @@
1
1
  """
2
2
  box-environment example based on
3
3
  [Alpert & Knopf 2016 (Atmos. Chem. Phys. 16)](https://doi.org/10.5194/acp-16-2083-2016)
4
+
5
+ fig_1.ipynb:
6
+ .. include:: ./fig_1.ipynb.badges.md
7
+
8
+ fig_2.ipynb:
9
+ .. include:: ./fig_2.ipynb.badges.md
10
+
11
+ fig_3.ipynb:
12
+ .. include:: ./fig_3.ipynb.badges.md
13
+
14
+ fig_4.ipynb:
15
+ .. include:: ./fig_4.ipynb.badges.md
16
+
17
+ fig_5.ipynb:
18
+ .. include:: ./fig_5.ipynb.badges.md
4
19
  """
5
20
 
6
21
  # pylint: disable=invalid-name
@@ -1,6 +1,9 @@
1
1
  """
2
2
  condensation-evaportaion parcel example based on
3
3
  [Arabas and Shima 2017 (Nonlin. Processes Geophys. 24)](https://doi.org/10.5194/npg-24-535-2017)
4
+
5
+ fig_5.ipynb:
6
+ .. include:: ./fig_5.ipynb.badges.md
4
7
  """
5
8
 
6
9
  # pylint: disable=invalid-name
@@ -2,6 +2,12 @@
2
2
  """
3
3
  2D prescribed-flow case extended with Paraview visualisation with spin-up logic from
4
4
  [Arabas et al. 2015](http://doi.org/10.5194/gmd-8-1677-2015)
5
+
6
+ gui.ipynb:
7
+ .. include:: ./gui.ipynb.badges.md
8
+
9
+ paraview_hello_world.ipynb:
10
+ .. include:: ./paraview_hello_world.ipynb.badges.md
5
11
  """
6
12
  from .settings import Settings
7
13
  from .spin_up import SpinUp
@@ -1,4 +1,4 @@
1
- from PySDM.dynamics import Collision, Displacement, Freezing
1
+ from PySDM.dynamics import Collision, Displacement
2
2
 
3
3
 
4
4
  class SpinUp:
@@ -8,13 +8,11 @@ class SpinUp:
8
8
  self.particulator = particulator
9
9
  self.set(Collision, "enable", False)
10
10
  self.set(Displacement, "enable_sedimentation", False)
11
- self.set(Freezing, "enable", False)
12
11
 
13
12
  def notify(self):
14
13
  if self.particulator.n_steps == self.spin_up_steps:
15
14
  self.set(Collision, "enable", True)
16
15
  self.set(Displacement, "enable_sedimentation", True)
17
- self.set(Freezing, "enable", True)
18
16
 
19
17
  def set(self, dynamic, attr, value):
20
18
  key = dynamic.__name__
@@ -0,0 +1,29 @@
1
+ """
2
+ box-model and 2D prescribed-flow immersion-freezing examples based on
3
+ [Arabas et al. 2023](https://arxiv.org/abs/2308.05015)
4
+
5
+ aida.ipynb:
6
+ .. include:: ./aida.ipynb.badges.md
7
+
8
+ copula_hello.ipynb:
9
+ .. include:: ./copula_hello.ipynb.badges.md
10
+
11
+ fig_2.ipynb:
12
+ .. include:: ./fig_2.ipynb.badges.md
13
+
14
+ fig_11.ipynb:
15
+ .. include:: ./figs_10_and_11_and_animations.ipynb
16
+
17
+ fig_A2.ipynb:
18
+ .. include:: ./fig_A2.ipynb.badges.md
19
+
20
+ figs_3_and_7_and_8.ipynb:
21
+ .. include:: ./figs_3_and_7_and_8.ipynb.badges.md
22
+
23
+ figs_5_and_6.ipynb:
24
+ .. include:: ./figs_5_and_6.ipynb.badges.md
25
+ """
26
+
27
+ from .make_particulator import make_particulator
28
+ from .plots import make_freezing_spec_plot, make_pdf_plot, make_temperature_plot
29
+ from .run_simulation import run_simulation
@@ -13,7 +13,7 @@ FREEZING_CONSTANTS = {
13
13
  "illite": {"ABIFM_M": 54.48, "ABIFM_C": -10.67},
14
14
  }
15
15
 
16
- COOLING_RATES = (3.75 * si.K / si.min, 0.75 * si.K / si.min, 0.15 * si.K / si.min)
16
+ COOLING_RATES = (-3.75 * si.K / si.min, -0.75 * si.K / si.min, -0.15 * si.K / si.min)
17
17
 
18
18
  BEST_FIT_LN_S_GEOM = 0.25
19
19
 
@@ -37,7 +37,7 @@ def make_particulator(
37
37
  "particle_shape_and_density": "MixedPhaseSpheres",
38
38
  }
39
39
  formulae = Formulae(**formulae_ctor_args)
40
- backend = CPU(formulae)
40
+ backend = CPU(formulae, override_jit_flags={"parallel": False})
41
41
 
42
42
  sampling = SpectroGlacialSampling(
43
43
  freezing_temperature_spectrum=formulae.freezing_temperature_spectrum,
@@ -103,14 +103,14 @@ def make_freezing_spec_plot(
103
103
  _ = CurvedText(
104
104
  x=T.squeeze(),
105
105
  y=qi.squeeze(),
106
- text=f" {multiplier}x median A",
106
+ text=f" {multiplier}x median S",
107
107
  va="bottom",
108
108
  color="black",
109
109
  axes=prim,
110
110
  )
111
111
  title = f"$σ_g$=exp({np.log(surf_spec.s_geom):.3g})"
112
112
  if cooling_rate_K_min is not None:
113
- title += f", cooling rate: {cooling_rate_K_min} K/min"
113
+ title += f", c={cooling_rate_K_min} K/min"
114
114
  prim.set_title(title)
115
115
  # prim.set_ylabel('ice water content [$g/m^3$]')
116
116
  prim.set_yticks([])
@@ -0,0 +1,13 @@
1
+ # pylint: disable=invalid-name
2
+ """
3
+ condensation and coalescence adaptivity examples
4
+
5
+ demo.ipynb:
6
+ .. include:: ./demo.ipynb.badges.md
7
+
8
+ demo_fig2.ipynb:
9
+ .. include:: ./demo_fig2.ipynb.badges.md
10
+
11
+ demo_fig3.ipynb:
12
+ .. include:: ./demo_fig3.ipynb.badges.md
13
+ """
@@ -1,6 +1,9 @@
1
1
  """
2
2
  box-model coalescence-only example based on
3
3
  [Berry 1967 (J. Atmos. Sci. 24)](https://doi.org/10.1175/1520-0469(1967)024%3C0688:CDGBC%3E2.0.CO;2)
4
+
5
+ figs_5_8_10.ipynb:
6
+ .. include:: ./figs_5_8_10.ipynb.badges.md
4
7
  """
5
8
 
6
9
  # pylint: disable=invalid-name
@@ -1,5 +1,8 @@
1
1
  """
2
2
  collision-only box-model example from [Bieli et al. 2022](https://doi.org/10.1029/2022MS002994)
3
+
4
+ make_fig_3.ipynb:
5
+ .. include:: ./make_fig_3.ipynb.badges.md
3
6
  """
4
7
 
5
8
  # pylint: disable=invalid-name
@@ -1,6 +1,9 @@
1
1
  """
2
2
  figures from Bolot et al. 2013 (Atmos. Chem. Phys. 13)
3
3
  https://doi.org/10.5194/acp-13-7903-2013
4
+
5
+ fig_1.ipynb:
6
+ .. include:: ./fig_1.ipynb.badges.md
4
7
  """
5
8
 
6
9
  # pylint: disable=invalid-name
@@ -2,4 +2,7 @@
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
5
8
  """
@@ -3,4 +3,7 @@
3
3
  Formulae-only example depicting changes in drop and ambient vapour isotopic composition
4
4
  upon evaporation of rain in subsaturated environment based on
5
5
  [Gedzelman and Arnold 1994](https://doi.org/10.1029/93JD03518)
6
+
7
+ fig_2.ipynb:
8
+ .. include:: ./fig_2.ipynb.badges.md
6
9
  """
@@ -0,0 +1,22 @@
1
+ # pylint: disable=invalid-name
2
+ """
3
+ ripening-focused parcel-model example based on
4
+ [Grabowski & Pawlowska 2023 (GRL)](https://doi.org/10.1029/2022GL101917)
5
+
6
+ figure_1.ipynb:
7
+ .. include:: ./figure_1.ipynb.badges.md
8
+
9
+ figure_2.ipynb:
10
+ .. include:: ./figure_2.ipynb.badges.md
11
+
12
+ figure_3.ipynb:
13
+ .. include:: ./figure_3.ipynb.badges.md
14
+
15
+ figure_4.ipynb:
16
+ .. include:: ./figure_4.ipynb.badges.md
17
+
18
+ figure_ripening_rate.ipynb:
19
+ .. include:: ./figure_ripening_rate.ipynb.badges.md
20
+ """
21
+ from .settings import Settings
22
+ from .simulation import Simulation
@@ -2,4 +2,10 @@
2
2
  """
3
3
  Parcel-model Condensation,Isotope example
4
4
  [Graf.et.al 2019](https://doi.org/10.5194/acp-19-747-2019)
5
+
6
+ figure_4.ipynb:
7
+ .. include:: ./figure_4.ipynb.badges.md
8
+
9
+ Table_1.ipynb:
10
+ .. include:: ./Table_1.ipynb.badges.md
5
11
  """
@@ -2,4 +2,10 @@
2
2
  """
3
3
  aqueous-chemistry parcel-model example based on
4
4
  [Jaruga & Pawlowska 2018 (GMD)](https://doi.org/10.5194/gmd-11-3623-2018)
5
+
6
+ fig_2.ipynb:
7
+ .. include:: ./fig_2.ipynb.badges.md
8
+
9
+ fig_3.ipynb:
10
+ .. include:: ./fig_3.ipynb.badges.md
5
11
  """
@@ -0,0 +1,22 @@
1
+ """
2
+ Fig_1.ipynb:
3
+ .. include:: ./Fig_1.ipynb.badges.md
4
+
5
+ Fig_3_and_Tab_4_upper_rows.ipynb:
6
+ .. include:: ./Fig_3_and_Tab_4_upper_rows.ipynb.badges.md
7
+
8
+ Fig_4_and_7_and_Tab_4_bottom_rows.ipynb:
9
+ .. include:: ./Fig_4_and_7_and_Tab_4_bottom_rows.ipynb.badges.md
10
+
11
+ Fig_5.ipynb:
12
+ .. include:: ./Fig_5.ipynb.badges.md
13
+
14
+ Fig_6.ipynb:
15
+ .. include:: ./Fig_6.ipynb.badges.md
16
+
17
+ Fig_8.ipynb:
18
+ .. include:: ./Fig_8.ipynb.badges.md
19
+ """
20
+
21
+ from .settings import Settings
22
+ from .simulation import Simulation
@@ -2,6 +2,9 @@
2
2
  """
3
3
  aqueous-phase chemistry parcel-model example from
4
4
  [Kreidenweis et al. 2003 (JGR)](https://doi.org/10.1029/2002JD002697)
5
+
6
+ fig_1.ipynb:
7
+ .. include:: ./fig_1.ipynb.badges.md
5
8
  """
6
9
  from .settings import Settings
7
10
  from .simulation import Simulation
@@ -114,7 +114,7 @@ class Simulation(BasicSimulation):
114
114
  key="S_VI",
115
115
  dry_radius_bins_edges=settings.dry_radius_bins_edges,
116
116
  name="dm_S_VI/dlog_10(dry diameter)",
117
- unit='ug / m^3"',
117
+ unit="ug / m^3",
118
118
  ),
119
119
  )
120
120
 
@@ -2,4 +2,7 @@
2
2
  """
3
3
  Formulae-only example depicting equilibrium isotopic fractionation over ice based on
4
4
  [Lamb et al. 2017](https://doi.org/10.1073/pnas.1618374114)
5
+
6
+ fig_4.ipynb:
7
+ .. include:: ./fig_4.ipynb.badges.md
5
8
  """
@@ -2,6 +2,18 @@
2
2
  """
3
3
  parcel-model example focused on surfactants based on
4
4
  [Lowe et al. 2019 (Nature Comm.)](https://doi.org/10.1038/s41467-019-12982-0)
5
+
6
+ fig_1.ipynb:
7
+ .. include:: ./fig_1.ipynb.badges.md
8
+
9
+ fig_2.ipynb:
10
+ .. include:: ./fig_2.ipynb.badges.md
11
+
12
+ fig_3.ipynb:
13
+ .. include:: ./fig_3.ipynb.badges.md
14
+
15
+ fig_s2.ipynb:
16
+ .. include:: ./fig_s2.ipynb.badges.md
5
17
  """
6
18
  from .settings import Settings
7
19
  from .simulation import Simulation
@@ -1,6 +1,9 @@
1
1
  """
2
2
  figure from Merlivat and Nief 1967 (Tellus)
3
3
  https://doi.org/10.3402/tellusa.v19i1.9756
4
+
5
+ fig_2.ipynb:
6
+ .. include:: ./fig_2.ipynb.badges.md
4
7
  """
5
8
 
6
9
  # pylint: disable=invalid-name
@@ -2,4 +2,7 @@
2
2
  """
3
3
  isotopic adjustment time plot following
4
4
  [Friedman et al. 1962 (JGR)](https://doi.org/10.1029/JZ067i007p02761)
5
+
6
+ fig_19.ipynb:
7
+ .. include:: ./fig_19.ipynb.badges.md
5
8
  """
@@ -2,5 +2,11 @@
2
2
  """
3
3
  prescribed-flow simulation settings data from
4
4
  [Morrison & Grabowski 2007 (JAS)](https://doi.org/10.1175/JAS3980)
5
+
6
+ fig_2.ipynb:
7
+ .. include:: ./fig_2.ipynb.badges.md
8
+
9
+ fig_3.ipynb:
10
+ .. include:: ./fig_3.ipynb.badges.md
5
11
  """
6
12
  from .cumulus import Cumulus
@@ -0,0 +1,9 @@
1
+ """
2
+ based on [Niedermeier et al. 2014](https://doi.org/10.1002/2013GL058684)
3
+
4
+ fig_2.ipynb:
5
+ .. include:: ./fig_2.ipynb.badges.md
6
+ """
7
+
8
+ from .settings import Settings
9
+ from .simulation import Simulation
@@ -1,6 +1,12 @@
1
1
  """
2
2
  based on Pierchala et al. 2022 (Geochim. Cosmochim. Acta)
3
3
  https://doi.org/10.1016/j.gca.2022.01.020
4
+
5
+ fig_3.ipynb:
6
+ .. include:: ./fig_3.ipynb.badges.md
7
+
8
+ fig_4.ipynb:
9
+ .. include:: ./fig_4.ipynb.badges.md
4
10
  """
5
11
 
6
12
  # pylint: disable=invalid-name
@@ -2,6 +2,9 @@
2
2
  """
3
3
  parcel-model example based on the test case from
4
4
  [Pyrcel package docs](https://pyrcel.readthedocs.io/)
5
+
6
+ example_basic_run.ipynb:
7
+ .. include:: ./example_basic_run.ipynb.badges.md
5
8
  """
6
9
  from .settings import Settings
7
10
  from .simulation import Simulation
@@ -1,6 +1,9 @@
1
1
  """
2
2
  based on Rozanski and Sonntag 1982 (Tellus)
3
3
  https://doi.org/10.3402/tellusa.v34i2.10795
4
+
5
+ figs_4_5_6.ipynb:
6
+ .. include:: ./figs_4_5_6.ipynb.badges.md
4
7
  """
5
8
 
6
9
  # pylint: disable=invalid-name
@@ -2,4 +2,7 @@
2
2
  """
3
3
  box-model coalescence-only example featuring Golovin analytic solution following setup from
4
4
  [Shima et al. 2009](https://doi.org/10.1002/qj.441)
5
+
6
+ fig_2.ipynb:
7
+ .. include:: ./fig_2.ipynb.badges.md
5
8
  """
@@ -2,6 +2,9 @@
2
2
  """
3
3
  single-column prescribed-flow constant-temperature example from
4
4
  [Shipway & Hill 2012](https://doi.org/10.1002/qj.1913)
5
+
6
+ fig_1.ipynb:
7
+ .. include:: ./fig_1.ipynb.badges.md
5
8
  """
6
9
  from .plot import plot
7
10
  from .settings import Settings
@@ -0,0 +1,9 @@
1
+ """
2
+ kohler.ipynb:
3
+ .. include:: ./kohler.ipynb.badges.md
4
+
5
+ MWE_joss_paper.ipynb:
6
+ .. include:: ./MWE_joss_paper.ipynb.badges.md
7
+ """
8
+
9
+ # pylint: disable=invalid-name
@@ -1,6 +1,9 @@
1
1
  """
2
2
  box-model examples feat. analytic solution for breakup from
3
3
  [Srivastava 1982 (JAS)](https://doi.org/10.1175/1520-0469(1982)039%3C1317:ASMOPC%3E2.0.CO;2)
4
+
5
+ figures.ipynb:
6
+ .. include:: ./figures.ipynb.badges.md
4
7
  """
5
8
 
6
9
  from .equations import Equations, EquationsHelpers
@@ -70,7 +70,7 @@ class Simulation:
70
70
  if step != 0:
71
71
  particulator.run(steps=1)
72
72
  for prod in self.settings.prods:
73
- self.simulation_res[n_sd][prod][seed][step] = (
73
+ (self.simulation_res[n_sd][prod][seed][step],) = (
74
74
  particulator.products[prod].get()
75
75
  )
76
76