PySDM 2.79__tar.gz → 2.80__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 (896) hide show
  1. {PySDM-2.79 → PySDM-2.80}/.github/workflows/readme_snippets.yml +4 -4
  2. {PySDM-2.79 → PySDM-2.80}/.github/workflows/tests+artifacts+pypi.yml +17 -8
  3. {PySDM-2.79 → PySDM-2.80}/.zenodo.json +5 -0
  4. PySDM-2.80/PKG-INFO +194 -0
  5. PySDM-2.80/PySDM/__init__.py +20 -0
  6. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/ice/cooling_rate.py +3 -0
  7. PySDM-2.80/PySDM.egg-info/PKG-INFO +194 -0
  8. {PySDM-2.79 → PySDM-2.80}/PySDM.egg-info/SOURCES.txt +4 -2
  9. PySDM-2.80/README.md +168 -0
  10. PySDM-2.79/README.md → PySDM-2.80/docs/markdown/pysdm_landing.md +127 -287
  11. PySDM-2.80/docs/templates/index.html.jinja2 +164 -0
  12. {PySDM-2.79 → PySDM-2.80}/examples/MANIFEST.in +1 -0
  13. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +3 -0
  14. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +6 -0
  15. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +15 -0
  16. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_and_Shima_2017/__init__.py +3 -0
  17. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/__init__.py +6 -0
  18. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/spin_up.py +1 -3
  19. PySDM-2.80/examples/PySDM_examples/Arabas_et_al_2023/__init__.py +29 -0
  20. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/commons.py +1 -1
  21. PySDM-2.80/examples/PySDM_examples/Arabas_et_al_2023/fig_2.ipynb +2590 -0
  22. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/fig_A2.ipynb +1622 -1646
  23. PySDM-2.80/examples/PySDM_examples/Arabas_et_al_2023/figs_10_and_11_and_animations.ipynb +11245 -0
  24. PySDM-2.80/examples/PySDM_examples/Arabas_et_al_2023/figs_3_and_7_and_8.ipynb +39138 -0
  25. PySDM-2.80/examples/PySDM_examples/Arabas_et_al_2023/figs_5_and_6.ipynb +27289 -0
  26. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/make_particulator.py +1 -1
  27. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/plots.py +2 -2
  28. PySDM-2.80/examples/PySDM_examples/Bartman_et_al_2021/__init__.py +13 -0
  29. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Berry_1967/__init__.py +3 -0
  30. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bieli_et_al_2022/__init__.py +3 -0
  31. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bolot_et_al_2013/__init__.py +3 -0
  32. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +3 -0
  33. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +3 -0
  34. PySDM-2.80/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +22 -0
  35. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Graf_et_al_2019/__init__.py +6 -0
  36. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +6 -0
  37. PySDM-2.80/examples/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +22 -0
  38. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +3 -0
  39. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lamb_et_al_2017/__init__.py +3 -0
  40. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/__init__.py +12 -0
  41. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +3 -0
  42. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Miyake_et_al_1968/__init__.py +3 -0
  43. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +6 -0
  44. PySDM-2.80/examples/PySDM_examples/Niedermeier_et_al_2014/__init__.py +9 -0
  45. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pierchala_et_al_2022/__init__.py +6 -0
  46. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/__init__.py +3 -0
  47. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +3 -0
  48. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/__init__.py +3 -0
  49. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shipway_and_Hill_2012/__init__.py +3 -0
  50. PySDM-2.80/examples/PySDM_examples/Singer_Ward/__init__.py +9 -0
  51. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Srivastava_1982/__init__.py +3 -0
  52. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/simulation.py +8 -3
  53. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Van_Hook_1968/__init__.py +3 -0
  54. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Yang_et_al_2018/__init__.py +3 -0
  55. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/__init__.py +1 -2
  56. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/__init__.py +6 -0
  57. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +12 -0
  58. PySDM-2.80/examples/PySDM_examples/seeding/__init__.py +10 -0
  59. PySDM-2.80/examples/README.md +10 -0
  60. PySDM-2.80/examples/docs/pysdm_examples_landing.md +125 -0
  61. {PySDM-2.79 → PySDM-2.80}/examples/setup.py +10 -3
  62. PySDM-2.80/tests/unit_tests/products/test_cooling_rate.py +171 -0
  63. PySDM-2.79/PKG-INFO +0 -886
  64. PySDM-2.79/PySDM/__init__.py +0 -39
  65. PySDM-2.79/PySDM.egg-info/PKG-INFO +0 -886
  66. PySDM-2.79/examples/PySDM_examples/Arabas_et_al_2023/__init__.py +0 -8
  67. PySDM-2.79/examples/PySDM_examples/Arabas_et_al_2023/fig_11.ipynb +0 -4865
  68. PySDM-2.79/examples/PySDM_examples/Arabas_et_al_2023/fig_2.ipynb +0 -2281
  69. PySDM-2.79/examples/PySDM_examples/Arabas_et_al_2023/figs_3_and_7_and_8.ipynb +0 -497
  70. PySDM-2.79/examples/PySDM_examples/Arabas_et_al_2023/figs_5_and_6.ipynb +0 -505
  71. PySDM-2.79/examples/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -4
  72. PySDM-2.79/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -7
  73. PySDM-2.79/examples/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -2
  74. PySDM-2.79/examples/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -4
  75. PySDM-2.79/examples/PySDM_examples/Singer_Ward/__init__.py +0 -1
  76. PySDM-2.79/examples/PySDM_examples/seeding/__init__.py +0 -2
  77. PySDM-2.79/examples/README.md +0 -269
  78. PySDM-2.79/pdoc_templates/index.html.jinja2 +0 -26
  79. PySDM-2.79/tests/unit_tests/products/test_cooling_rate.py +0 -64
  80. {PySDM-2.79 → PySDM-2.80}/.appveyor.yml +0 -0
  81. {PySDM-2.79 → PySDM-2.80}/.binder/apt.txt +0 -0
  82. {PySDM-2.79 → PySDM-2.80}/.binder/postBuild +0 -0
  83. {PySDM-2.79 → PySDM-2.80}/.binder/requirements.txt +0 -0
  84. {PySDM-2.79 → PySDM-2.80}/.codecov.yml +0 -0
  85. {PySDM-2.79 → PySDM-2.80}/.github/dependabot.yml +0 -0
  86. {PySDM-2.79 → PySDM-2.80}/.github/pysdm_logo.png +0 -0
  87. {PySDM-2.79 → PySDM-2.80}/.github/pysdm_logo.svg +0 -0
  88. {PySDM-2.79 → PySDM-2.80}/.github/workflows/cancel.yml +0 -0
  89. {PySDM-2.79 → PySDM-2.80}/.github/workflows/joss.yml +0 -0
  90. {PySDM-2.79 → PySDM-2.80}/.github/workflows/joss_paper.yml +0 -0
  91. {PySDM-2.79 → PySDM-2.80}/.github/workflows/stale.yml +0 -0
  92. {PySDM-2.79 → PySDM-2.80}/.gitignore +0 -0
  93. {PySDM-2.79 → PySDM-2.80}/.gitmodules +0 -0
  94. {PySDM-2.79 → PySDM-2.80}/.pre-commit-config.yaml +0 -0
  95. {PySDM-2.79 → PySDM-2.80}/LICENSE +0 -0
  96. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/__init__.py +0 -0
  97. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/chemistry/__init__.py +0 -0
  98. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/chemistry/acidity.py +0 -0
  99. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/chemistry/concentration.py +0 -0
  100. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/chemistry/hydrogen_ion_concentration.py +0 -0
  101. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/ice/__init__.py +0 -0
  102. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/ice/freezing_temperature.py +0 -0
  103. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/ice/immersed_surface_area.py +0 -0
  104. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/__init__.py +0 -0
  105. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/attribute.py +0 -0
  106. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/attribute_registry.py +0 -0
  107. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/base_attribute.py +0 -0
  108. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/cell_attribute.py +0 -0
  109. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/derived_attribute.py +0 -0
  110. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/dummy_attribute.py +0 -0
  111. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/extensive_attribute.py +0 -0
  112. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/intensive_attribute.py +0 -0
  113. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/maximum_attribute.py +0 -0
  114. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/impl/mole_amount.py +0 -0
  115. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/isotopes/__init__.py +0 -0
  116. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/isotopes/delta.py +0 -0
  117. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/isotopes/moles.py +0 -0
  118. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/numerics/__init__.py +0 -0
  119. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/numerics/cell_id.py +0 -0
  120. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/numerics/cell_origin.py +0 -0
  121. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/numerics/position_in_cell.py +0 -0
  122. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/__init__.py +0 -0
  123. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/area.py +0 -0
  124. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/critical_supersaturation.py +0 -0
  125. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/critical_volume.py +0 -0
  126. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/dry_radius.py +0 -0
  127. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/dry_volume.py +0 -0
  128. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/equilibrium_supersaturation.py +0 -0
  129. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/heat.py +0 -0
  130. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/hygroscopicity.py +0 -0
  131. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/multiplicity.py +0 -0
  132. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/radius.py +0 -0
  133. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/relative_fall_velocity.py +0 -0
  134. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/reynolds_number.py +0 -0
  135. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/temperature.py +0 -0
  136. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/terminal_velocity.py +0 -0
  137. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/volume.py +0 -0
  138. {PySDM-2.79 → PySDM-2.80}/PySDM/attributes/physics/water_mass.py +0 -0
  139. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/__init__.py +0 -0
  140. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/__init__.py +0 -0
  141. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/backend_methods.py +0 -0
  142. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/freezing_attributes.py +0 -0
  143. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/index.py +0 -0
  144. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/indexed_storage.py +0 -0
  145. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/pair_indicator.py +0 -0
  146. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/pairwise_storage.py +0 -0
  147. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/random_common.py +0 -0
  148. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_common/storage_utils.py +0 -0
  149. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/__init__.py +0 -0
  150. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/atomic_operations.py +0 -0
  151. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/conf.py +0 -0
  152. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/__init__.py +0 -0
  153. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/chemistry_methods.py +0 -0
  154. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/collisions_methods.py +0 -0
  155. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/condensation_methods.py +0 -0
  156. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/displacement_methods.py +0 -0
  157. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/fragmentation_methods.py +0 -0
  158. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/freezing_methods.py +0 -0
  159. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/index_methods.py +0 -0
  160. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/isotope_methods.py +0 -0
  161. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/moments_methods.py +0 -0
  162. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/pair_methods.py +0 -0
  163. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/physics_methods.py +0 -0
  164. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/seeding_methods.py +0 -0
  165. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/methods/terminal_velocity_methods.py +0 -0
  166. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/random.py +0 -0
  167. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/storage.py +0 -0
  168. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/storage_impl.py +0 -0
  169. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/test_helpers/__init__.py +0 -0
  170. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/test_helpers/scipy_ode_condensation_solver.py +0 -0
  171. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/toms748.py +0 -0
  172. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_numba/warnings.py +0 -0
  173. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/__init__.py +0 -0
  174. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/bisection.py +0 -0
  175. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/conf.py +0 -0
  176. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/__init__.py +0 -0
  177. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/collisions_methods.py +0 -0
  178. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/condensation_methods.py +0 -0
  179. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/displacement_methods.py +0 -0
  180. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/freezing_methods.py +0 -0
  181. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/index_methods.py +0 -0
  182. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/isotope_methods.py +0 -0
  183. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/moments_methods.py +0 -0
  184. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/pair_methods.py +0 -0
  185. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/physics_methods.py +0 -0
  186. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/terminal_velocity_methods.py +0 -0
  187. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/methods/thrust_rtc_backend_methods.py +0 -0
  188. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/nice_thrust.py +0 -0
  189. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/random.py +0 -0
  190. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/storage.py +0 -0
  191. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/test_helpers/__init__.py +0 -0
  192. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/test_helpers/cpp2python.py +0 -0
  193. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/test_helpers/fake_thrust_rtc.py +0 -0
  194. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/impl_thrust_rtc/test_helpers/flag.py +0 -0
  195. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/numba.py +0 -0
  196. {PySDM-2.79 → PySDM-2.80}/PySDM/backends/thrust_rtc.py +0 -0
  197. {PySDM-2.79 → PySDM-2.80}/PySDM/builder.py +0 -0
  198. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/__init__.py +0 -0
  199. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/ambient_thermodynamics.py +0 -0
  200. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/aqueous_chemistry.py +0 -0
  201. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/__init__.py +0 -0
  202. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_efficiencies/__init__.py +0 -0
  203. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_efficiencies/constEb.py +0 -0
  204. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/__init__.py +0 -0
  205. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/always_n.py +0 -0
  206. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/constant_mass.py +0 -0
  207. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/expon_frag.py +0 -0
  208. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/exponential.py +0 -0
  209. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/feingold1988.py +0 -0
  210. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/gaussian.py +0 -0
  211. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/impl/__init__.py +0 -0
  212. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/impl/volume_based.py +0 -0
  213. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/lowlist82.py +0 -0
  214. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/slams.py +0 -0
  215. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/breakup_fragmentations/straub2010.py +0 -0
  216. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/__init__.py +0 -0
  217. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/_gravitational.py +0 -0
  218. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/_parameterized.py +0 -0
  219. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/berry1967.py +0 -0
  220. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/constEc.py +0 -0
  221. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/lowlist1982.py +0 -0
  222. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/specified_eff.py +0 -0
  223. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/coalescence_efficiencies/straub2010.py +0 -0
  224. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision.py +0 -0
  225. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/__init__.py +0 -0
  226. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/constantK.py +0 -0
  227. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/electric.py +0 -0
  228. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/geometric.py +0 -0
  229. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/golovin.py +0 -0
  230. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/hydrodynamic.py +0 -0
  231. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/impl/__init__.py +0 -0
  232. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/impl/gravitational.py +0 -0
  233. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/impl/parameterized.py +0 -0
  234. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/linear.py +0 -0
  235. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/collisions/collision_kernels/simple_geometric.py +0 -0
  236. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/condensation.py +0 -0
  237. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/displacement.py +0 -0
  238. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/eulerian_advection.py +0 -0
  239. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/freezing.py +0 -0
  240. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/impl/__init__.py +0 -0
  241. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/impl/chemistry_utils.py +0 -0
  242. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/impl/random_generator_optimizer.py +0 -0
  243. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/impl/random_generator_optimizer_nopair.py +0 -0
  244. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/impl/register_dynamic.py +0 -0
  245. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/isotopic_fractionation.py +0 -0
  246. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/relaxed_velocity.py +0 -0
  247. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/seeding.py +0 -0
  248. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/terminal_velocity/__init__.py +0 -0
  249. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/terminal_velocity/gunn_and_kinzer.py +0 -0
  250. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/terminal_velocity/power_series.py +0 -0
  251. {PySDM-2.79 → PySDM-2.80}/PySDM/dynamics/terminal_velocity/rogers_and_yau.py +0 -0
  252. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/__init__.py +0 -0
  253. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/box.py +0 -0
  254. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/impl/__init__.py +0 -0
  255. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/impl/moist.py +0 -0
  256. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/impl/register_environment.py +0 -0
  257. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/kinematic_1d.py +0 -0
  258. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/kinematic_2d.py +0 -0
  259. {PySDM-2.79 → PySDM-2.80}/PySDM/environments/parcel.py +0 -0
  260. {PySDM-2.79 → PySDM-2.80}/PySDM/exporters/__init__.py +0 -0
  261. {PySDM-2.79 → PySDM-2.80}/PySDM/exporters/netcdf_exporter.py +0 -0
  262. {PySDM-2.79 → PySDM-2.80}/PySDM/exporters/netcdf_exporter_1d.py +0 -0
  263. {PySDM-2.79 → PySDM-2.80}/PySDM/exporters/vtk_exporter.py +0 -0
  264. {PySDM-2.79 → PySDM-2.80}/PySDM/exporters/vtk_exporter_1d.py +0 -0
  265. {PySDM-2.79 → PySDM-2.80}/PySDM/formulae.py +0 -0
  266. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/__init__.py +0 -0
  267. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/arakawa_c.py +0 -0
  268. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/camel_case.py +0 -0
  269. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/mesh.py +0 -0
  270. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/null_physics_class.py +0 -0
  271. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/particle_attributes.py +0 -0
  272. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/particle_attributes_factory.py +0 -0
  273. {PySDM-2.79 → PySDM-2.80}/PySDM/impl/wall_timer.py +0 -0
  274. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/__init__.py +0 -0
  275. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/aerosol_composition/__init__.py +0 -0
  276. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/aerosol_composition/dry_aerosol.py +0 -0
  277. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/discretise_multiplicities.py +0 -0
  278. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/equilibrate_wet_radii.py +0 -0
  279. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/impl/__init__.py +0 -0
  280. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/impl/spectrum.py +0 -0
  281. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/init_fall_momenta.py +0 -0
  282. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/sampling/__init__.py +0 -0
  283. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/sampling/spatial_sampling.py +0 -0
  284. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/sampling/spectral_sampling.py +0 -0
  285. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/sampling/spectro_glacial_sampling.py +0 -0
  286. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/__init__.py +0 -0
  287. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/exponential.py +0 -0
  288. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/gamma.py +0 -0
  289. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/gaussian.py +0 -0
  290. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/lognormal.py +0 -0
  291. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/sum.py +0 -0
  292. {PySDM-2.79 → PySDM-2.80}/PySDM/initialisation/spectra/top_hat.py +0 -0
  293. {PySDM-2.79 → PySDM-2.80}/PySDM/particulator.py +0 -0
  294. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/__init__.py +0 -0
  295. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/air_dynamic_viscosity/__init__.py +0 -0
  296. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/air_dynamic_viscosity/zografos_et_al_1987.py +0 -0
  297. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/bulk_phase_partitioning/__init__.py +0 -0
  298. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/bulk_phase_partitioning/kaul_et_al_2015.py +0 -0
  299. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/condensation_coordinate/__init__.py +0 -0
  300. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/condensation_coordinate/volume.py +0 -0
  301. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/condensation_coordinate/volume_logarithm.py +0 -0
  302. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/constants.py +0 -0
  303. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/constants_defaults.py +0 -0
  304. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_kinetics/__init__.py +0 -0
  305. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_kinetics/fuchs_sutugin.py +0 -0
  306. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_kinetics/grabowski_et_al_2011.py +0 -0
  307. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_kinetics/lowe_et_al_2019.py +0 -0
  308. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_kinetics/neglect.py +0 -0
  309. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_kinetics/pruppacher_and_klett_2005.py +0 -0
  310. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_thermics/__init__.py +0 -0
  311. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_thermics/grabowski_et_al_2011.py +0 -0
  312. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_thermics/lowe_et_al_2019.py +0 -0
  313. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_thermics/neglect.py +0 -0
  314. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_thermics/seinfeld_and_pandis_2010.py +0 -0
  315. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/diffusion_thermics/tracy_welch_porter.py +0 -0
  316. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/dimensional_analysis.py +0 -0
  317. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/drop_growth/__init__.py +0 -0
  318. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/drop_growth/mason_1951.py +0 -0
  319. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/drop_growth/mason_1971.py +0 -0
  320. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/__init__.py +0 -0
  321. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/always_n.py +0 -0
  322. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/constant_mass.py +0 -0
  323. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/expon_frag.py +0 -0
  324. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/exponential.py +0 -0
  325. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/feingold1988.py +0 -0
  326. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/gaussian.py +0 -0
  327. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/lowlist82.py +0 -0
  328. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/slams.py +0 -0
  329. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/fragmentation_function/straub2010nf.py +0 -0
  330. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/freezing_temperature_spectrum/__init__.py +0 -0
  331. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/freezing_temperature_spectrum/bigg_1953.py +0 -0
  332. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/freezing_temperature_spectrum/niemand_et_al_2012.py +0 -0
  333. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/freezing_temperature_spectrum/null.py +0 -0
  334. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/heterogeneous_ice_nucleation_rate/__init__.py +0 -0
  335. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/heterogeneous_ice_nucleation_rate/abifm.py +0 -0
  336. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/heterogeneous_ice_nucleation_rate/constant.py +0 -0
  337. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/heterogeneous_ice_nucleation_rate/null.py +0 -0
  338. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/hydrostatics/__init__.py +0 -0
  339. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/hydrostatics/default.py +0 -0
  340. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/hygroscopicity/__init__.py +0 -0
  341. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/hygroscopicity/kappa_koehler.py +0 -0
  342. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/hygroscopicity/kappa_koehler_leading_terms.py +0 -0
  343. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/impl/__init__.py +0 -0
  344. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/impl/fake_unit_registry.py +0 -0
  345. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/impl/flag.py +0 -0
  346. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_diffusivity_ratios/__init__.py +0 -0
  347. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_diffusivity_ratios/grahams_law.py +0 -0
  348. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_diffusivity_ratios/hellmann_and_harvey_2020.py +0 -0
  349. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_diffusivity_ratios/stewart_1975.py +0 -0
  350. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/__init__.py +0 -0
  351. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/barkan_and_luz_2005.py +0 -0
  352. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/ellehoj_et_al_2013.py +0 -0
  353. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/horita_and_wesolowski_1994.py +0 -0
  354. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/lamb_et_al_2017.py +0 -0
  355. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/majoube_1970.py +0 -0
  356. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/majoube_1971.py +0 -0
  357. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/merlivat_and_nief_1967.py +0 -0
  358. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_equilibrium_fractionation_factors/van_hook_1968.py +0 -0
  359. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_meteoric_water_line_excess/__init__.py +0 -0
  360. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_meteoric_water_line_excess/barkan_and_luz_2007.py +0 -0
  361. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_meteoric_water_line_excess/dansgaard_1964.py +0 -0
  362. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_ratio_evolution/__init__.py +0 -0
  363. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_ratio_evolution/gedzelman_and_arnold_1994.py +0 -0
  364. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_ratio_evolution/merlivat_and_jouzel_1979.py +0 -0
  365. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_ratio_evolution/rayleigh_distillation.py +0 -0
  366. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_relaxation_timescale/__init__.py +0 -0
  367. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/isotope_relaxation_timescale/miyake_et_al_1968.py +0 -0
  368. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/latent_heat/__init__.py +0 -0
  369. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/latent_heat/constant.py +0 -0
  370. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/latent_heat/kirchhoff.py +0 -0
  371. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/latent_heat/lowe2019.py +0 -0
  372. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/latent_heat/seinfeld_and_pandis_2010.py +0 -0
  373. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/optical_albedo/__init__.py +0 -0
  374. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/optical_albedo/bohren1987.py +0 -0
  375. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/optical_depth/__init__.py +0 -0
  376. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/optical_depth/stephens_1978.py +0 -0
  377. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_advection/__init__.py +0 -0
  378. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_advection/explicit_in_space.py +0 -0
  379. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_advection/implicit_in_space.py +0 -0
  380. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_shape_and_density/__init__.py +0 -0
  381. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_shape_and_density/liquid_spheres.py +0 -0
  382. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_shape_and_density/mixed_phase_spheres.py +0 -0
  383. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/particle_shape_and_density/porous_spheroids.py +0 -0
  384. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/__init__.py +0 -0
  385. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/august_roche_magnus.py +0 -0
  386. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/bolton_1980.py +0 -0
  387. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/flatau_walko_cotton.py +0 -0
  388. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/lowe1977.py +0 -0
  389. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/murphy_koop_2005.py +0 -0
  390. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/saturation_vapour_pressure/wexler_1976.py +0 -0
  391. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/state_variable_triplet/__init__.py +0 -0
  392. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/state_variable_triplet/libcloudphplusplus.py +0 -0
  393. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/surface_tension/__init__.py +0 -0
  394. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/surface_tension/compressed_film_ovadnevaite.py +0 -0
  395. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/surface_tension/compressed_film_ruehl.py +0 -0
  396. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/surface_tension/constant.py +0 -0
  397. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/surface_tension/szyszkowski_langmuir.py +0 -0
  398. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/terminal_velocity/__init__.py +0 -0
  399. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/terminal_velocity/gunn_kinzer_1949.py +0 -0
  400. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/terminal_velocity/power_series.py +0 -0
  401. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/terminal_velocity/rogers_yau.py +0 -0
  402. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/trivia.py +0 -0
  403. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/ventilation/__init__.py +0 -0
  404. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/ventilation/froessling_1938.py +0 -0
  405. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/ventilation/neglect.py +0 -0
  406. {PySDM-2.79 → PySDM-2.80}/PySDM/physics/ventilation/pruppacher_rasmussen_1979.py +0 -0
  407. {PySDM-2.79 → PySDM-2.80}/PySDM/products/__init__.py +0 -0
  408. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/__init__.py +0 -0
  409. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/ambient_dry_air_density.py +0 -0
  410. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/ambient_dry_air_potential_temperature.py +0 -0
  411. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/ambient_pressure.py +0 -0
  412. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/ambient_relative_humidity.py +0 -0
  413. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/ambient_temperature.py +0 -0
  414. {PySDM-2.79 → PySDM-2.80}/PySDM/products/ambient_thermodynamics/ambient_water_vapour_mixing_ratio.py +0 -0
  415. {PySDM-2.79 → PySDM-2.80}/PySDM/products/aqueous_chemistry/__init__.py +0 -0
  416. {PySDM-2.79 → PySDM-2.80}/PySDM/products/aqueous_chemistry/acidity.py +0 -0
  417. {PySDM-2.79 → PySDM-2.80}/PySDM/products/aqueous_chemistry/aqueous_mass_spectrum.py +0 -0
  418. {PySDM-2.79 → PySDM-2.80}/PySDM/products/aqueous_chemistry/aqueous_mole_fraction.py +0 -0
  419. {PySDM-2.79 → PySDM-2.80}/PySDM/products/aqueous_chemistry/gaseous_mole_fraction.py +0 -0
  420. {PySDM-2.79 → PySDM-2.80}/PySDM/products/aqueous_chemistry/total_dry_mass_mixing_ratio.py +0 -0
  421. {PySDM-2.79 → PySDM-2.80}/PySDM/products/collision/__init__.py +0 -0
  422. {PySDM-2.79 → PySDM-2.80}/PySDM/products/collision/collision_rates.py +0 -0
  423. {PySDM-2.79 → PySDM-2.80}/PySDM/products/collision/collision_timestep_mean.py +0 -0
  424. {PySDM-2.79 → PySDM-2.80}/PySDM/products/collision/collision_timestep_min.py +0 -0
  425. {PySDM-2.79 → PySDM-2.80}/PySDM/products/condensation/__init__.py +0 -0
  426. {PySDM-2.79 → PySDM-2.80}/PySDM/products/condensation/activable_fraction.py +0 -0
  427. {PySDM-2.79 → PySDM-2.80}/PySDM/products/condensation/condensation_timestep.py +0 -0
  428. {PySDM-2.79 → PySDM-2.80}/PySDM/products/condensation/event_rates.py +0 -0
  429. {PySDM-2.79 → PySDM-2.80}/PySDM/products/condensation/peak_supersaturation.py +0 -0
  430. {PySDM-2.79 → PySDM-2.80}/PySDM/products/displacement/__init__.py +0 -0
  431. {PySDM-2.79 → PySDM-2.80}/PySDM/products/displacement/averaged_terminal_velocity.py +0 -0
  432. {PySDM-2.79 → PySDM-2.80}/PySDM/products/displacement/flow_velocity_component.py +0 -0
  433. {PySDM-2.79 → PySDM-2.80}/PySDM/products/displacement/max_courant_number.py +0 -0
  434. {PySDM-2.79 → PySDM-2.80}/PySDM/products/displacement/surface_precipitation.py +0 -0
  435. {PySDM-2.79 → PySDM-2.80}/PySDM/products/freezing/__init__.py +0 -0
  436. {PySDM-2.79 → PySDM-2.80}/PySDM/products/freezing/cooling_rate.py +0 -0
  437. {PySDM-2.79 → PySDM-2.80}/PySDM/products/freezing/freezable_specific_concentration.py +0 -0
  438. {PySDM-2.79 → PySDM-2.80}/PySDM/products/freezing/frozen_particle_concentration.py +0 -0
  439. {PySDM-2.79 → PySDM-2.80}/PySDM/products/freezing/ice_nuclei_concentration.py +0 -0
  440. {PySDM-2.79 → PySDM-2.80}/PySDM/products/freezing/total_unfrozen_immersed_surface_area.py +0 -0
  441. {PySDM-2.79 → PySDM-2.80}/PySDM/products/housekeeping/__init__.py +0 -0
  442. {PySDM-2.79 → PySDM-2.80}/PySDM/products/housekeeping/dynamic_wall_time.py +0 -0
  443. {PySDM-2.79 → PySDM-2.80}/PySDM/products/housekeeping/super_droplet_count_per_gridbox.py +0 -0
  444. {PySDM-2.79 → PySDM-2.80}/PySDM/products/housekeeping/time.py +0 -0
  445. {PySDM-2.79 → PySDM-2.80}/PySDM/products/housekeeping/timers.py +0 -0
  446. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/__init__.py +0 -0
  447. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/activation_filtered_product.py +0 -0
  448. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/concentration_product.py +0 -0
  449. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/moist_environment_product.py +0 -0
  450. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/moment_product.py +0 -0
  451. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/product.py +0 -0
  452. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/rate_product.py +0 -0
  453. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/register_product.py +0 -0
  454. {PySDM-2.79 → PySDM-2.80}/PySDM/products/impl/spectrum_moment_product.py +0 -0
  455. {PySDM-2.79 → PySDM-2.80}/PySDM/products/optical/__init__.py +0 -0
  456. {PySDM-2.79 → PySDM-2.80}/PySDM/products/optical/cloud_albedo.py +0 -0
  457. {PySDM-2.79 → PySDM-2.80}/PySDM/products/optical/cloud_optical_depth.py +0 -0
  458. {PySDM-2.79 → PySDM-2.80}/PySDM/products/parcel/__init__.py +0 -0
  459. {PySDM-2.79 → PySDM-2.80}/PySDM/products/parcel/cloud_water_path.py +0 -0
  460. {PySDM-2.79 → PySDM-2.80}/PySDM/products/parcel/parcel_displacement.py +0 -0
  461. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/__init__.py +0 -0
  462. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/arbitrary_moment.py +0 -0
  463. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/cloud_water_content.py +0 -0
  464. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/effective_radius.py +0 -0
  465. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/effective_radius_activated.py +0 -0
  466. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/mean_radius.py +0 -0
  467. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/mean_radius_activated.py +0 -0
  468. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/mean_volume_radius.py +0 -0
  469. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/number_size_spectrum.py +0 -0
  470. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/particle_concentration.py +0 -0
  471. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/particle_concentration_activated.py +0 -0
  472. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/particle_size_spectrum.py +0 -0
  473. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/particle_volume_versus_radius_logarithm_spectrum.py +0 -0
  474. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/radius_binned_number_averaged_terminal_velocity.py +0 -0
  475. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/size_standard_deviation.py +0 -0
  476. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/total_particle_concentration.py +0 -0
  477. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/total_particle_specific_concentration.py +0 -0
  478. {PySDM-2.79 → PySDM-2.80}/PySDM/products/size_spectral/water_mixing_ratio.py +0 -0
  479. {PySDM-2.79 → PySDM-2.80}/PySDM.egg-info/dependency_links.txt +0 -0
  480. {PySDM-2.79 → PySDM-2.80}/PySDM.egg-info/requires.txt +0 -0
  481. {PySDM-2.79 → PySDM-2.80}/PySDM.egg-info/top_level.txt +0 -0
  482. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abade_and_Albuquerque_2024/fig_2.ipynb +0 -0
  483. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
  484. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +0 -0
  485. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  486. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  487. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  488. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/fig_4_kinetic_limitations.ipynb +0 -0
  489. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/figs1-5.ipynb +0 -0
  490. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
  491. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_1.ipynb +0 -0
  492. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_2.ipynb +0 -0
  493. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_3.ipynb +0 -0
  494. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_4.ipynb +0 -0
  495. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_5.ipynb +0 -0
  496. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
  497. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  498. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  499. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  500. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  501. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_and_Shima_2017/fig_5.ipynb +0 -0
  502. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  503. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
  504. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  505. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  506. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/gui.ipynb +0 -0
  507. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/paraview_hello_world.ipynb +0 -0
  508. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  509. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/aida.ipynb +0 -0
  510. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/copula_hello.ipynb +0 -0
  511. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/curved_text.py +0 -0
  512. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py +0 -0
  513. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Arabas_et_al_2023/run_simulation.py +0 -0
  514. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  515. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
  516. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
  517. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_et_al_2021/demo.ipynb +0 -0
  518. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_et_al_2021/demo_fig2.ipynb +0 -0
  519. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_et_al_2021/demo_fig3.ipynb +0 -0
  520. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  521. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Berry_1967/example.py +0 -0
  522. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
  523. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Berry_1967/figs_5_8_10.ipynb +0 -0
  524. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Berry_1967/settings.py +0 -0
  525. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
  526. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bieli_et_al_2022/make_fig_3.ipynb +0 -0
  527. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  528. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
  529. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bolot_et_al_2013/fig_1.ipynb +0 -0
  530. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.ipynb +0 -0
  531. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  532. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
  533. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  534. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  535. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Gedzelman_and_Arnold_1994/fig_2.ipynb +0 -0
  536. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_1.ipynb +0 -0
  537. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_2.ipynb +0 -0
  538. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_3.ipynb +0 -0
  539. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_4.ipynb +0 -0
  540. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_ripening_rate.ipynb +0 -0
  541. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  542. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
  543. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Graf_et_al_2019/Table_1.ipynb +0 -0
  544. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Graf_et_al_2019/figure_4.ipynb +0 -0
  545. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jaruga_and_Pawlowska_2018/fig_2.ipynb +0 -0
  546. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jaruga_and_Pawlowska_2018/fig_3.ipynb +0 -0
  547. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb +0 -0
  548. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb +0 -0
  549. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_4_bottom_rows.ipynb +0 -0
  550. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb +0 -0
  551. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb +0 -0
  552. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb +0 -0
  553. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
  554. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
  555. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
  556. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  557. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Kreidenweis_et_al_2003/fig_1.ipynb +0 -0
  558. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  559. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
  560. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lamb_et_al_2017/fig_4.ipynb +0 -0
  561. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  562. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  563. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  564. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/fig_1.ipynb +0 -0
  565. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/fig_2.ipynb +0 -0
  566. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/fig_3.ipynb +0 -0
  567. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/fig_s2.ipynb +0 -0
  568. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  569. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  570. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
  571. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Merlivat_and_Nief_1967/fig_2.ipynb +0 -0
  572. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Miyake_et_al_1968/fig_19.ipynb +0 -0
  573. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
  574. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
  575. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Morrison_and_Grabowski_2007/fig_2.ipynb +0 -0
  576. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Morrison_and_Grabowski_2007/fig_3.ipynb +0 -0
  577. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  578. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Niedermeier_et_al_2014/fig_2.ipynb +0 -0
  579. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  580. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
  581. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  582. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pierchala_et_al_2022/fig_3.ipynb +0 -0
  583. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pierchala_et_al_2022/fig_4.ipynb +0 -0
  584. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/example_basic_run.ipynb +0 -0
  585. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  586. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/settings.py +0 -0
  587. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/simulation.py +0 -0
  588. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
  589. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
  590. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Rozanski_and_Sonntag_1982/figs_4_5_6.ipynb +0 -0
  591. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  592. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  593. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  594. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/fig_2.ipynb +0 -0
  595. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  596. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  597. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  598. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  599. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  600. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shipway_and_Hill_2012/fig_1.ipynb +0 -0
  601. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  602. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  603. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  604. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
  605. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Singer_Ward/MWE_joss_paper.ipynb +0 -0
  606. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  607. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Singer_Ward/kohler.ipynb +0 -0
  608. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Srivastava_1982/equations.py +0 -0
  609. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Srivastava_1982/example.py +0 -0
  610. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Srivastava_1982/figures.ipynb +0 -0
  611. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Srivastava_1982/settings.py +0 -0
  612. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Srivastava_1982/simulation.py +0 -0
  613. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
  614. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
  615. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
  616. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
  617. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
  618. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
  619. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
  620. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
  621. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
  622. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
  623. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
  624. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Van_Hook_1968/fig_1.ipynb +0 -0
  625. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Yang_et_al_2018/fig_2.ipynb +0 -0
  626. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  627. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  628. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/box.ipynb +0 -0
  629. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  630. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  631. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/rainshaft.ipynb +0 -0
  632. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  633. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
  634. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/data/straub_fig10.csv +0 -0
  635. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/fig_9.ipynb +0 -0
  636. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/figs_10_11_12_13.ipynb +0 -0
  637. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/figs_3_4_5.ipynb +0 -0
  638. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/figs_6_7_8.ipynb +0 -0
  639. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  640. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  641. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  642. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  643. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
  644. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  645. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/seeding/hello_world.ipynb +0 -0
  646. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/seeding/seeding_no_collisions.ipynb +0 -0
  647. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/seeding/settings.py +0 -0
  648. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/seeding/simulation.py +0 -0
  649. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/__init__.py +0 -0
  650. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/basic_simulation.py +0 -0
  651. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/dummy_controller.py +0 -0
  652. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/notebook_vars.py +0 -0
  653. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/progbar_controller.py +0 -0
  654. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/read_vtk_1d.py +0 -0
  655. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/widgets/__init__.py +0 -0
  656. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/widgets/freezer.py +0 -0
  657. {PySDM-2.79 → PySDM-2.80}/examples/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  658. {PySDM-2.79 → PySDM-2.80}/examples/pyproject.toml +0 -0
  659. {PySDM-2.79 → PySDM-2.80}/paper/joss-ARG-fig_1.pdf +0 -0
  660. {PySDM-2.79 → PySDM-2.80}/paper/paper.bib +0 -0
  661. {PySDM-2.79 → PySDM-2.80}/paper/paper.md +0 -0
  662. {PySDM-2.79 → PySDM-2.80}/paper/paperv1.md +0 -0
  663. {PySDM-2.79 → PySDM-2.80}/paper/readme.pdf +0 -0
  664. {PySDM-2.79 → PySDM-2.80}/paper/test.pdf +0 -0
  665. {PySDM-2.79 → PySDM-2.80}/pyproject.toml +0 -0
  666. {PySDM-2.79 → PySDM-2.80}/setup.cfg +0 -0
  667. {PySDM-2.79 → PySDM-2.80}/setup.py +0 -0
  668. {PySDM-2.79 → PySDM-2.80}/tests/__init__.py +0 -0
  669. {PySDM-2.79 → PySDM-2.80}/tests/examples_tests/__init__.py +0 -0
  670. {PySDM-2.79 → PySDM-2.80}/tests/examples_tests/conftest.py +0 -0
  671. {PySDM-2.79 → PySDM-2.80}/tests/examples_tests/test_run_examples.py +0 -0
  672. {PySDM-2.79 → PySDM-2.80}/tests/examples_tests/test_run_notebooks.py +0 -0
  673. {PySDM-2.79 → PySDM-2.80}/tests/examples_tests/test_tests_completeness.py +0 -0
  674. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/__init__.py +0 -0
  675. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/alpert_and_knopf_2016/__init__.py +0 -0
  676. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/alpert_and_knopf_2016/test_ak16_fig_1.py +0 -0
  677. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/alpert_and_knopf_2016/test_frozen_fraction.py +0 -0
  678. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/berry_1967/__init__.py +0 -0
  679. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/berry_1967/test_coalescence.py +0 -0
  680. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/bieli_et_al_2022/__init__.py +0 -0
  681. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/bieli_et_al_2022/test_moments.py +0 -0
  682. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/__init__.py +0 -0
  683. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_collision.py +0 -0
  684. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_fig_6.py +0 -0
  685. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_fig_7.py +0 -0
  686. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_fig_8.py +0 -0
  687. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/dejong_azimi/test_box.py +0 -0
  688. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/partmc/__init__.py +0 -0
  689. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/partmc/test_dry_wet_equilibration.py +0 -0
  690. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/shima_et_al_2009/__init__.py +0 -0
  691. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/shima_et_al_2009/test_lwc_constant.py +0 -0
  692. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/srivastava_1982/__init__.py +0 -0
  693. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/srivastava_1982/test_eq_10.py +0 -0
  694. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/srivastava_1982/test_eq_13.py +0 -0
  695. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/box/srivastava_1982/test_equations.py +0 -0
  696. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/conftest.py +0 -0
  697. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/deJong_Azimi/__init__.py +0 -0
  698. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/deJong_Azimi/test_few_steps.py +0 -0
  699. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/deJong_Azimi/test_initial_condition.py +0 -0
  700. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/__init__.py +0 -0
  701. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_1d_exporters.py +0 -0
  702. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_few_steps.py +0 -0
  703. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_initial_condition.py +0 -0
  704. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_settings.py +0 -0
  705. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/__init__.py +0 -0
  706. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/dummy_storage.py +0 -0
  707. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_adaptive_displacement.py +0 -0
  708. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_environment.py +0 -0
  709. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_export.py +0 -0
  710. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_freezing.py +0 -0
  711. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_gui_settings.py +0 -0
  712. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_initialisation.py +0 -0
  713. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_spin_up.py +0 -0
  714. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/gedzelman_and_arnold_1994/__init__.py +0 -0
  715. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/gedzelman_and_arnold_1994/test_fig_2.py +0 -0
  716. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/lamb_et_al_2017/__init__.py +0 -0
  717. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/lamb_et_al_2017/test_fig_4.py +0 -0
  718. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/miyake_et_al_1968/__init__.py +0 -0
  719. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/miyake_et_al_1968/test_fig_19.py +0 -0
  720. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/pierchala_et_al_2022/__init__.py +0 -0
  721. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/pierchala_et_al_2022/test_fig_3.py +0 -0
  722. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/pierchala_et_al_2022/test_fig_4.py +0 -0
  723. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/no_env/pierchala_et_al_2022/test_supplement.py +0 -0
  724. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/__init__.py +0 -0
  725. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/conftest.py +0 -0
  726. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_dz_sensitivity.py +0 -0
  727. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_fig_1.py +0 -0
  728. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_fig_2.py +0 -0
  729. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_fig_s2.py +0 -0
  730. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_surface_tension_models.py +0 -0
  731. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_zero_forg.py +0 -0
  732. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/pyrcel/__init__.py +0 -0
  733. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/pyrcel/test_parcel_example.py +0 -0
  734. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/rozanski_and_sonntag_1982/__init__.py +0 -0
  735. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/rozanski_and_sonntag_1982/test_figs_4_5_6.py +0 -0
  736. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/seeding/__init__.py +0 -0
  737. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/seeding/test_hello_world.py +0 -0
  738. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_a/seeding/test_seeding_no_collisions.py +0 -0
  739. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/__init__.py +0 -0
  740. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_conservation.py +0 -0
  741. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_displacement.py +0 -0
  742. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_event_rates.py +0 -0
  743. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_initialisation.py +0 -0
  744. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_vs_scipy.py +0 -0
  745. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/yang_et_al_2018/__init__.py +0 -0
  746. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/yang_et_al_2018/test_displacement.py +0 -0
  747. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/yang_et_al_2018/test_initialisation.py +0 -0
  748. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_b/yang_et_al_2018/test_just_do_it.py +0 -0
  749. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/abade_and_albuquerque_2024/__init__.py +0 -0
  750. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/abade_and_albuquerque_2024/test_fig_2.py +0 -0
  751. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/__init__.py +0 -0
  752. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/test_ARG_example.py +0 -0
  753. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/test_just_do_it.py +0 -0
  754. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/test_single_supersaturation_peak.py +0 -0
  755. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/__init__.py +0 -0
  756. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_condensation_tolerance.py +0 -0
  757. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_figure_1_and_2.py +0 -0
  758. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_figure_3.py +0 -0
  759. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_figure_4.py +0 -0
  760. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_ripening_rate.py +0 -0
  761. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/graf_et_al_2019/__init__.py +0 -0
  762. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/graf_et_al_2019/test_fig_4.py +0 -0
  763. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/graf_et_al_2019/test_table_1.py +0 -0
  764. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/__init__.py +0 -0
  765. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_1.py +0 -0
  766. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_3_and_tab_4_upper_rows.py +0 -0
  767. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_4_and_7_and_tab_4_bottom_rows.py +0 -0
  768. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_5.py +0 -0
  769. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_6.py +0 -0
  770. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_table_3.py +0 -0
  771. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/__init__.py +0 -0
  772. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_fig_1.py +0 -0
  773. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_ionic_strength.py +0 -0
  774. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_spectrum_at_t_0.py +0 -0
  775. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_table_3.py +0 -0
  776. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/niedermeier_et_al_2013/__init__.py +0 -0
  777. {PySDM-2.79 → PySDM-2.80}/tests/smoke_tests/parcel_c/niedermeier_et_al_2013/test_temperature_profile.py +0 -0
  778. {PySDM-2.79 → PySDM-2.80}/tests/tutorials_tests/__init__.py +0 -0
  779. {PySDM-2.79 → PySDM-2.80}/tests/tutorials_tests/conftest.py +0 -0
  780. {PySDM-2.79 → PySDM-2.80}/tests/tutorials_tests/test_run_notebooks.py +0 -0
  781. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/__init__.py +0 -0
  782. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/__init__.py +0 -0
  783. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_acidity.py +0 -0
  784. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_area_radius.py +0 -0
  785. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_critical_supersaturation.py +0 -0
  786. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_fall_velocity.py +0 -0
  787. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_impl_attribute_registry.py +0 -0
  788. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_isotopes.py +0 -0
  789. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_multiplicities.py +0 -0
  790. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/attributes/test_reynolds_number.py +0 -0
  791. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/__init__.py +0 -0
  792. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/storage/__init__.py +0 -0
  793. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/storage/test_basic_ops.py +0 -0
  794. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/storage/test_index.py +0 -0
  795. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/storage/test_setitem.py +0 -0
  796. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_collisions_methods.py +0 -0
  797. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_ctor_defaults.py +0 -0
  798. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_fake_thrust.py +0 -0
  799. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_freezing_methods.py +0 -0
  800. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_isotope_methods.py +0 -0
  801. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_moments_methods.py +0 -0
  802. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_oxidation.py +0 -0
  803. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_pair_methods.py +0 -0
  804. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_physics_methods.py +0 -0
  805. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_seeding_methods.py +0 -0
  806. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/backends/test_toms748.py +0 -0
  807. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/conftest.py +0 -0
  808. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dummy_environment.py +0 -0
  809. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dummy_particulator.py +0 -0
  810. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/__init__.py +0 -0
  811. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/__init__.py +0 -0
  812. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/conftest.py +0 -0
  813. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_croupiers.py +0 -0
  814. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_defaults.py +0 -0
  815. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_efficiencies.py +0 -0
  816. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_fragmentations.py +0 -0
  817. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_kernels.py +0 -0
  818. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_sdm_breakup.py +0 -0
  819. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_sdm_multi_cell.py +0 -0
  820. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/collisions/test_sdm_single_cell.py +0 -0
  821. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/condensation/test_diagnostics.py +0 -0
  822. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/condensation/test_parcel_sanity_checks.py +0 -0
  823. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/condensation/test_ventilation.py +0 -0
  824. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/displacement/__init__.py +0 -0
  825. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/displacement/displacement_settings.py +0 -0
  826. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/displacement/test_advection.py +0 -0
  827. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/displacement/test_courant_product.py +0 -0
  828. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/displacement/test_sedimentation.py +0 -0
  829. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/test_eulerian_advection.py +0 -0
  830. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/test_impl_register_dynamic.py +0 -0
  831. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/test_isotopic_fractionation.py +0 -0
  832. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/test_relaxed_velocity.py +0 -0
  833. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/test_seeding.py +0 -0
  834. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/dynamics/test_terminal_velocity.py +0 -0
  835. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/environments/__init__.py +0 -0
  836. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/environments/test_impl.py +0 -0
  837. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/impl/__init__.py +0 -0
  838. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/impl/test_camel_case.py +0 -0
  839. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/impl/test_mesh.py +0 -0
  840. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/impl/test_moments.py +0 -0
  841. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/impl/test_particle_attributes.py +0 -0
  842. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/__init__.py +0 -0
  843. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_aerosol_init.py +0 -0
  844. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_discretise_multiplicities.py +0 -0
  845. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_equilibrate_wet_radii.py +0 -0
  846. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_init_fall_momenta.py +0 -0
  847. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_spatial_discretisation.py +0 -0
  848. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_spectra_lognormal.py +0 -0
  849. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_spectral_discretisation.py +0 -0
  850. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/initialisation/test_spectro_glacial_discretisation.py +0 -0
  851. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/__init__.py +0 -0
  852. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_accommodation_coefficients.py +0 -0
  853. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_air_dynamic_viscosity.py +0 -0
  854. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_bulk_phase_partitioning.py +0 -0
  855. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_constants.py +0 -0
  856. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_dimensional_analysis.py +0 -0
  857. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_drop_growth.py +0 -0
  858. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_formulae.py +0 -0
  859. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_fragmentation_functions.py +0 -0
  860. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_freezing_temperature_spectra.py +0 -0
  861. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_hygroscopicity_fierce_diagrams.py +0 -0
  862. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_isotope_diffusivity_ratios.py +0 -0
  863. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_isotope_equilibrium_fractionation_factors.py +0 -0
  864. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_isotope_meteoric_water_line_excess.py +0 -0
  865. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_isotope_ratio_evolution.py +0 -0
  866. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_isotope_relaxation_timescale.py +0 -0
  867. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_latent_heat.py +0 -0
  868. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_optical.py +0 -0
  869. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_particle_shape_and_density.py +0 -0
  870. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_saturation_vapour_pressure.py +0 -0
  871. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_spectra.py +0 -0
  872. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_spectra_top_hat.py +0 -0
  873. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_surface_tension.py +0 -0
  874. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_thermal_conductivity.py +0 -0
  875. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_trivia.py +0 -0
  876. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/physics/test_ventilation_coefficient.py +0 -0
  877. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/__init__.py +0 -0
  878. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_ambient_relative_humidity.py +0 -0
  879. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_arbitrary_moment.py +0 -0
  880. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_averaged_terminal_velocity.py +0 -0
  881. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_collision_rates.py +0 -0
  882. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_concentration_product.py +0 -0
  883. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_effective_radii.py +0 -0
  884. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_impl.py +0 -0
  885. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_parcel_liquid_water_path.py +0 -0
  886. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_particle_size_product.py +0 -0
  887. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/products/test_particle_size_spectrum.py +0 -0
  888. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/test_builder.py +0 -0
  889. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/test_formulae.py +0 -0
  890. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/test_imports.py +0 -0
  891. {PySDM-2.79 → PySDM-2.80}/tests/unit_tests/test_particulator.py +0 -0
  892. {PySDM-2.79 → PySDM-2.80}/tutorials/README.md +0 -0
  893. {PySDM-2.79 → PySDM-2.80}/tutorials/collisions/collection_droplet.svg +0 -0
  894. {PySDM-2.79 → PySDM-2.80}/tutorials/collisions/collisions_playground.ipynb +0 -0
  895. {PySDM-2.79 → PySDM-2.80}/tutorials/condensation/condensation_playground.ipynb +0 -0
  896. {PySDM-2.79 → PySDM-2.80}/tutorials/condensation/kohler_curve.svg +0 -0
@@ -16,7 +16,7 @@ jobs:
16
16
  python:
17
17
  strategy:
18
18
  matrix:
19
- platform: [ubuntu-latest, macos-12, macos-14, windows-latest]
19
+ platform: [ubuntu-latest, macos-13, macos-14, windows-latest]
20
20
  runs-on: ${{ matrix.platform }}
21
21
  steps:
22
22
  - uses: actions/checkout@v4.1.6
@@ -27,7 +27,7 @@ jobs:
27
27
  - run: python -m pip install $PIP_INSTALL_ARGS pytest-codeblocks pytest
28
28
  - run: python -m pip install $PIP_INSTALL_ARGS "pyparsing<3.0.0" # https://github.com/matplotlib/matplotlib/issues/25204
29
29
  - run: |
30
- python -c "import os,pytest_codeblocks; code=pytest_codeblocks.extract_from_file('README.md'); f=open('readme.py', 'w', encoding='utf-8'); f.write('# coding: utf-8'+os.linesep); f.writelines(block.code for block in code if block.syntax=='Python'); f.close()"
30
+ python -c "import os,pytest_codeblocks; code=pytest_codeblocks.extract_from_file('docs/markdown/pysdm_landing.md'); f=open('readme.py', 'w', encoding='utf-8'); f.write('# coding: utf-8'+os.linesep); f.writelines(block.code for block in code if block.syntax=='Python'); f.close()"
31
31
  - run: cat -n readme.py
32
32
  - run: |
33
33
  python -We readme.py
@@ -51,7 +51,7 @@ jobs:
51
51
  python-version: "3.10"
52
52
  - run: pip install -e .
53
53
  - run: pip install pytest-codeblocks pytest
54
- - run: python -c "import pytest_codeblocks; code=pytest_codeblocks.extract_from_file('README.md'); f=open('readme.jl', 'w'); f.writelines(block.code for block in code if block.syntax=='Julia'); f.close()"
54
+ - run: python -c "import pytest_codeblocks; code=pytest_codeblocks.extract_from_file('docs/markdown/pysdm_landing.md'); f=open('readme.jl', 'w'); f.writelines(block.code for block in code if block.syntax=='Julia'); f.close()"
55
55
  - uses: julia-actions/setup-julia@v1.9.6
56
56
  - run: cat -n readme.jl
57
57
  - run: julia readme.jl
@@ -67,7 +67,7 @@ jobs:
67
67
  python-version: 3.8
68
68
  - run: pip install -e .
69
69
  - run: pip install pytest-codeblocks pytest
70
- - run: python -c "import pytest_codeblocks; code=pytest_codeblocks.extract_from_file('README.md'); f=open('readme.m', 'w'); f.writelines(block.code for block in code if block.syntax=='Matlab'); f.close()"
70
+ - run: python -c "import pytest_codeblocks; code=pytest_codeblocks.extract_from_file('docs/markdown/pysdm_landing.md'); f=open('readme.m', 'w'); f.writelines(block.code for block in code if block.syntax=='Matlab'); f.close()"
71
71
  - run: cat -n readme.m
72
72
  - uses: matlab-actions/setup-matlab@v2.1.0
73
73
  with:
@@ -58,7 +58,7 @@ jobs:
58
58
  pdoc:
59
59
  strategy:
60
60
  matrix:
61
- platform: [ubuntu-latest, macos-12, windows-latest]
61
+ platform: [ubuntu-latest, macos-13, windows-latest]
62
62
  runs-on: ${{ matrix.platform }}
63
63
  steps:
64
64
  - uses: actions/checkout@v4.1.6
@@ -69,10 +69,18 @@ jobs:
69
69
  with:
70
70
  python-version: 3.9
71
71
  - run: |
72
- pip install pdoc
72
+ pip install pdoc nbformat
73
73
  pip install -e .
74
74
  pip install -e examples
75
- PDOC_ALLOW_EXEC=1 python -We -m pdoc -o html PySDM examples/PySDM_examples -t pdoc_templates
75
+
76
+ python - <<EOF
77
+ import glob, nbformat
78
+ for notebook_path in glob.glob('examples/PySDM_examples/*/*.ipynb'):
79
+ with open(notebook_path, encoding="utf8") as fin:
80
+ with open(notebook_path + ".badges.md", 'w') as fout:
81
+ fout.write(nbformat.read(fin, nbformat.NO_CONVERT).cells[0].source)
82
+ EOF
83
+ PDOC_ALLOW_EXEC=1 python -We -m pdoc -o html PySDM examples/PySDM_examples -t docs/templates --math --mermaid
76
84
  - if: ${{ github.ref == 'refs/heads/main' && matrix.platform == 'ubuntu-latest' }}
77
85
  uses: JamesIves/github-pages-deploy-action@4.1.1
78
86
  with:
@@ -122,7 +130,7 @@ jobs:
122
130
  needs: [pdoc, nojit_and_codecov, zenodo_json]
123
131
  strategy:
124
132
  matrix:
125
- platform: [ubuntu-latest, macos-12, macos-14, windows-latest]
133
+ platform: [ubuntu-latest, macos-13, macos-14, windows-latest]
126
134
  python-version: ["3.9", "3.11"]
127
135
  test-suite: ["unit_tests/!(dynamics)", "unit_tests/dynamics/!(condensation)", "unit_tests/dynamics/condensation", "smoke_tests/no_env", "smoke_tests/box", "smoke_tests/parcel_a", "smoke_tests/parcel_b", "smoke_tests/parcel_c", "smoke_tests/kinematic_1d", "smoke_tests/kinematic_2d", "tutorials_tests"]
128
136
  exclude:
@@ -188,7 +196,7 @@ jobs:
188
196
  needs: [nojit_and_codecov]
189
197
  strategy:
190
198
  matrix:
191
- platform: [ubuntu-24.04, macos-12, windows-latest]
199
+ platform: [ubuntu-24.04, macos-13, windows-latest]
192
200
  python-version: ["3.9", "3.11"]
193
201
  runs-on: ${{ matrix.platform }}
194
202
  steps:
@@ -224,12 +232,12 @@ jobs:
224
232
  needs: [examples-setup]
225
233
  strategy:
226
234
  matrix:
227
- platform: [ubuntu-24.04, macos-12, windows-latest]
235
+ platform: [ubuntu-24.04, macos-13, windows-latest]
228
236
  python-version: ["3.9", "3.11"]
229
237
  test-suite: [ "chemistry_freezing_isotopes", "condensation_a", "condensation_b", "coagulation", "breakup", "multi-process_a", "multi-process_b"]
230
238
  fail-fast: false
231
239
  runs-on: ${{ matrix.platform }}
232
- timeout-minutes: ${{ startsWith(matrix.platform, 'windows-') && 65 || 50 }}
240
+ timeout-minutes: ${{ !startsWith(matrix.platform, 'ubuntu-') && 65 || 50 }}
233
241
  steps:
234
242
  - uses: actions/checkout@v4.1.6
235
243
  with:
@@ -266,6 +274,7 @@ jobs:
266
274
  run: |
267
275
  brew install --cask paraview
268
276
  echo `dirname /Applications/ParaView-*.app/Contents/bin/pvpython | head -1` >> $GITHUB_PATH
277
+ brew install ghostscript
269
278
 
270
279
  - if: startsWith(matrix.platform, 'windows-') && matrix.test-suite == 'multi-process_a'
271
280
  run: |
@@ -328,7 +337,7 @@ jobs:
328
337
  pkg_install_check:
329
338
  strategy:
330
339
  matrix:
331
- platform: [ubuntu-latest, macos-12, macos-14, windows-latest]
340
+ platform: [ubuntu-latest, macos-13, macos-14, windows-latest]
332
341
  python-version: ["3.9", "3.11"]
333
342
  exclude:
334
343
  - platform: macos-14
@@ -58,6 +58,11 @@
58
58
  "name": "Mackay, J. Ben",
59
59
  "orcid": "0000-0001-8677-3562"
60
60
  },
61
+ {
62
+ "affiliation": "AGH University of Krakow, Poland",
63
+ "name": "Magnuszewski, Paweł",
64
+ "orcid": "0009-0007-9269-6795"
65
+ },
61
66
  {
62
67
  "affiliation": "California Institute of Technology, Pasadena, CA, USA",
63
68
  "name": "Mints, Mikhail"
PySDM-2.80/PKG-INFO ADDED
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.1
2
+ Name: PySDM
3
+ Version: 2.80
4
+ Summary: Pythonic particle-based (super-droplet) warm-rain/aqueous-chemistry cloud microphysics package with box, parcel & 1D/2D prescribed-flow examples in Python, Julia and Matlab
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
11
+ Project-URL: Source, https://github.com/open-atmos/PySDM
12
+ Description: # <img src="https://raw.githubusercontent.com/open-atmos/PySDM/main/.github/pysdm_logo.png" width=100 height=146 alt="pysdm logo">
13
+
14
+ [![Python 3](https://img.shields.io/static/v1?label=Python&logo=Python&color=3776AB&message=3)](https://www.python.org/)
15
+ [![LLVM](https://img.shields.io/static/v1?label=LLVM&logo=LLVM&color=gold&message=Numba)](https://numba.pydata.org)
16
+ [![CUDA](https://img.shields.io/static/v1?label=CUDA&logo=nVidia&color=87ce3e&message=ThrustRTC)](https://pypi.org/project/ThrustRTC/)
17
+ [![Linux OK](https://img.shields.io/static/v1?label=Linux&logo=Linux&color=yellow&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Linux)
18
+ [![macOS OK](https://img.shields.io/static/v1?label=macOS&logo=Apple&color=silver&message=%E2%9C%93)](https://en.wikipedia.org/wiki/macOS)
19
+ [![Windows OK](https://img.shields.io/static/v1?label=Windows&logo=Windows&color=white&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Windows)
20
+ [![Jupyter](https://img.shields.io/static/v1?label=Jupyter&logo=Jupyter&color=f37626&message=%E2%9C%93)](https://jupyter.org/)
21
+ [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/open-atmos/PySDM/graphs/commit-activity)
22
+ [![OpenHub](https://www.openhub.net/p/atmos-cloud-sim-uj-PySDM/widgets/project_thin_badge?format=gif)](https://www.openhub.net/p/atmos-cloud-sim-uj-PySDM)
23
+ [![status](https://joss.theoj.org/papers/62cad07440b941f73f57d187df1aa6e9/status.svg)](https://joss.theoj.org/papers/62cad07440b941f73f57d187df1aa6e9)
24
+ [![DOI](https://zenodo.org/badge/199064632.svg)](https://zenodo.org/badge/latestdoi/199064632)
25
+ [![EU Funding](https://img.shields.io/static/v1?label=EU%20Funding%20by&color=103069&message=FNP&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAeCAYAAABTwyyaAAAEzklEQVRYw9WYS2yUVRiGn3P5ZzozpZ3aUsrNgoKlKBINmkhpCCwwxIAhsDCpBBIWhmCMMYTEhSJ4i9EgBnSBEm81MRrFBhNXEuUSMCopiRWLQqEGLNgr085M5//POS46NNYFzHQ6qGc1i5nzP/P973m/9ztCrf7A8T9csiibCocUbvTzfxLcAcaM3cY3imXz25lT3Y34G7gQYAKV3+bFAHcATlBTPogJNADG92iY28FHW97kyPbnuW/W7xgzAhukQ9xe04PJeOT0HkQRwK0TlEeGWb/kOO9v3kdD3a8YK9GhDMfa6mg9fxunOm/lWPtcpDI4K7n/jnN8+uQbrFrUSiwU/DtSEUB/MsKKBT+zYslJqiYNgVE4JwhHkzy86wlWvrKVWDSZ/YFjZlU39yw4y/rGoyQGowWB67zl4QQue+jssMdXrQvZ/00jyeHwqCgDKwnsiJjSvkYAxsG5K9WsenYbJdqAtAjhCIxCSZt/4fK1w5A2WCvxrUAKCHwNVoA2aGmvq11jJQQapEXrgMBKqmJJugejKGWLIxXrBPFoigfv/omd675gRkU/xgqUDlAhH3UDaAAlLSqUQekAYyVTyhLs3tDMsvntlIYzOFcEcOcEGd9jx9oDbGs6QO0t/Tijxi9S4bhzxiWaVh5m94Zm0n7oui4ybo0raUlcncQnxx+g+WgDF/vLoYDmoqSl/dJUnt7XRCoTZjij0Z6Pc2LiNS4EBBkNvoeOJXN+yPWWSZeANOhwJq/98nKVwNdoL8B5AROxBKBL0gjh8DMhdCh3eJnrA0yqhLpplwmyup6IajvAOIGfKGVx3VmCRGnOMpe5QAdG0bT8CAeeep0d6z6nqjSJnQiZWEllLMWrmz6k+fE9rGk8MVqYgsGv5ZH2i1Opr+9kajzB5d74hKQ+KS3d/WVMLhtgdu1lriRiOR/4nDVunaR24x7qp3UV5Cb/fJvC83nv26W81LIK58SYNFmwq4hsGx/5BwKlzYRma2NUthgOJSew4i7ru9nJYCQF5tApb2yvjiDQKJV/IfJKh0o6qssSLKv/jcAoRKHQQzE2Lj2OMV5OkWFc4MZIpsev8uXWXRx6ZicbGk8QZLxxgwe+x/rlR3h3816+f2E7lbEU+ZDn3vKVpePCdFovzCISHqbl5EIoQOteKMPB1rto65zNyfOz+KOrGl06lHPQyi/WOohH0/T0l1MZH6A3GUEKl7Pmr2la6wBrBWWRDP2DUcqjKVKBGom9RZmABAykwnglafpSJSPQvsfiOR0EQ7ExVmazA8cY6N4K1iw6RdAXRwi4mgrheT5Dvs4LeuS81a15Ll/3dQisFVSVpnj7sf1sX/sZvhAc+6UOrQyBVUQ8gx/orFmDsZqtaw/y1qZ9zKjp5vDpenyjcNe+cLNmTiUdf/bEOddVQ0VpgsOn54ET+EYxvWKALSu+5tGG76it7MNaiZKGQ23zCIcMfUMxBnrjN3fmHHvCAlp+vJcXWx6itqoXpAEnUNLx8iMfo5Xh1i17R3PJYCpC2cZ3qK3sQ8WGEDDuXlAQuFKGHzpmopXhTNfk0bmxs7uC1w6uJul79AxFkMIiBJy5UoUWjrZLU5DCFdTARDHuDqVw+OkSwI0MCEW4gtNF2BPrBCo8fKNbtILWX9aUDqFqHnn7AAAAAElFTkSuQmCC)](https://www.fnp.org.pl/en/)
26
+ [![PL Funding](https://img.shields.io/static/v1?label=PL%20Funding%20by&color=d21132&message=NCN&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAABmJLR0QA/wD/AP+gvaeTAAAAKUlEQVQ4jWP8////fwYqAiZqGjZqIHUAy4dJS6lqIOMdEZvRZDPcDQQAb3cIaY1Sbi4AAAAASUVORK5CYII=)](https://www.ncn.gov.pl/?language=en)
27
+ [![US Funding](https://img.shields.io/static/v1?label=US%20DOE%20Funding%20by&color=267c32&message=ASR&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAQCAMAAAA25D/gAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAASFBMVEVOTXyyIjRDQnNZWINZWITtzdFUU4BVVIFVVYHWiZM9PG/KZnNXVoJaWYT67/FKSXhgX4hgX4lcW4VbWoX03uHQeIN2VXj///9pZChlAAAAAWJLR0QXC9aYjwAAAAd0SU1FB+EICRMGJV+KCCQAAABdSURBVBjThdBJDoAgEETRkkkZBBX0/kd11QTTpH1/STqpAAwWBkobSlkGbt0o5xmEfqxDZJB2Q6XMoBwnVSbTylWp0hi42rmbwTOYPDfR5Kc+07IIUQQvghX9THsBHcES8/SiF0kAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDgtMDlUMTk6MDY6MzcrMDA6MDCX1tBgAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA4LTA5VDE5OjA2OjM3KzAwOjAw5oto3AAAAABJRU5ErkJggg==)](https://asr.science.energy.gov/)
28
+
29
+ [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
30
+
31
+ [![Github Actions Build Status](https://github.com/open-atmos/PySDM/workflows/tests+artifacts+pypi/badge.svg?branch=main)](https://github.com/open-atmos/PySDM/actions)
32
+ [![Appveyor Build status](http://ci.appveyor.com/api/projects/status/github/open-atmos/PySDM?branch=main&svg=true)](https://ci.appveyor.com/project/slayoo/pysdm/branch/main)
33
+ [![Coverage Status](https://codecov.io/gh/open-atmos/PySDM/branch/main/graph/badge.svg)](https://app.codecov.io/gh/open-atmos/PySDM)
34
+ [![PyPI version](https://badge.fury.io/py/PySDM.svg)](https://pypi.org/project/PySDM)
35
+ [![API docs](https://shields.mitmproxy.org/badge/docs-pdoc.dev-brightgreen.svg)](https://open-atmos.github.io/PySDM/)
36
+
37
+ PySDM is a package for simulating the dynamics of population of particles.
38
+ It is intended to serve as a building block for simulation systems modelling
39
+ fluid flows involving a dispersed phase,
40
+ with PySDM being responsible for representation of the dispersed phase.
41
+ Currently, the development is focused on atmospheric cloud physics
42
+ applications, in particular on modelling the dynamics of particles immersed in moist air
43
+ using the particle-based (a.k.a. super-droplet) approach
44
+ to represent aerosol/cloud/rain microphysics.
45
+ The package features a Pythonic high-performance implementation of the
46
+ Super-Droplet Method (SDM) Monte-Carlo algorithm for representing collisional growth
47
+ ([Shima et al. 2009](https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/qj.441)), hence the name.
48
+
49
+ There is a growing set of example Jupyter notebooks exemplifying how to perform
50
+ various types of calculations and simulations using PySDM.
51
+ Most of the example notebooks reproduce results and plot from literature, see below for
52
+ a list of examples and links to the notebooks (which can be either executed or viewed
53
+ "in the cloud").
54
+
55
+ There are also a growing set of [tutorials](https://github.com/open-atmos/PySDM/tree/main/tutorials), also in the form of Jupyter notebooks.
56
+ These tutorials are intended for teaching purposes and include short explanations of cloud microphysical
57
+ concepts paired with widgets for running interactive simulations using PySDM.
58
+ Each tutorial also comes with a set of questions at the end that can be used as homework problems.
59
+ Like the examples, these tutorials can be executed or viewed "in the cloud" making it an especially
60
+ easy way for students to get started.
61
+
62
+ PySDM has two alternative parallel number-crunching backends
63
+ available: multi-threaded CPU backend based on [Numba](http://numba.pydata.org/)
64
+ and GPU-resident backend built on top of [ThrustRTC](https://pypi.org/project/ThrustRTC/).
65
+ The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba.html) backend (aliased ``CPU``) features multi-threaded parallelism for
66
+ multi-core CPUs, it uses the just-in-time compilation technique based on the LLVM infrastructure.
67
+ The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/thrust_rtc.html) backend (aliased ``GPU``) offers GPU-resident operation of PySDM
68
+ leveraging the [SIMT](https://en.wikipedia.org/wiki/Single_instruction,_multiple_threads)
69
+ parallelisation model.
70
+ Using the ``GPU`` backend requires nVidia hardware and [CUDA driver](https://developer.nvidia.com/cuda-downloads).
71
+
72
+ For an overview of PySDM features (and the preferred way to cite PySDM in papers), please refer to our JOSS papers:
73
+ - [Bartman et al. 2022](https://doi.org/10.21105/joss.03219) (PySDM v1).
74
+ - [de Jong, Singer et al. 2023](https://doi.org/10.21105/joss.04968) (PySDM v2).
75
+
76
+ PySDM includes an extension of the SDM scheme to represent collisional breakup described in [de Jong, Mackay et al. 2023](10.5194/gmd-16-4193-2023).
77
+ For a list of talks and other materials on PySDM as well as a list of published papers featuring PySDM simulations, see the [project wiki](https://github.com/open-atmos/PySDM/wiki).
78
+
79
+ A [pdoc-generated](https://pdoc.dev/) documentation of PySDM public API is maintained at: [https://open-atmos.github.io/PySDM](https://open-atmos.github.io/PySDM)
80
+
81
+ ## Example Jupyter notebooks (reproducing results from literature):
82
+
83
+ See [PySDM-examples README](https://github.com/open-atmos/PySDM/blob/main/examples/README.md).
84
+
85
+ ![animation](https://github.com/open-atmos/PySDM/wiki/files/kinematic_2D_example.gif)
86
+
87
+ ## Dependencies and Installation
88
+
89
+ PySDM dependencies are: [Numpy](https://numpy.org/), [Numba](http://numba.pydata.org/), [SciPy](https://scipy.org/),
90
+ [Pint](https://pint.readthedocs.io/), [chempy](https://pypi.org/project/chempy/),
91
+ [pyevtk](https://pypi.org/project/pyevtk/),
92
+ [ThrustRTC](https://fynv.github.io/ThrustRTC/) and [CURandRTC](https://github.com/fynv/CURandRTC).
93
+
94
+ To install PySDM using ``pip``, use: ``pip install PySDM``
95
+ (or ``pip install git+https://github.com/open-atmos/PySDM.git`` to get updates
96
+ beyond the latest release).
97
+
98
+ Conda users may use ``pip`` as well, see the [Installing non-conda packages](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#installing-non-conda-packages) section in the conda docs. Dependencies of PySDM are available at the following conda channels:
99
+ - numba: [numba](https://anaconda.org/numba/numba)
100
+ - conda-forge: [pyevtk](https://anaconda.org/conda-forge/pyevtk), [pint](https://anaconda.org/conda-forge/pint) and []()
101
+ - fyplus: [ThrustRTC](https://anaconda.org/fyplus/thrustrtc), [CURandRTC](https://anaconda.org/fyplus/curandrtc)
102
+ - bjodah: [chempy](https://anaconda.org/bjodah/chempy)
103
+ - nvidia: [cudatoolkit](https://anaconda.org/nvidia/cudatoolkit)
104
+
105
+ For development purposes, we suggest cloning the repository and installing it using ``pip -e``.
106
+ Test-time dependencies can be installed with ``pip -e .[tests]``.
107
+
108
+ PySDM examples constitute the [``PySDM-examples``](https://github.com/open-atmos/PySDM-examples) package.
109
+ The examples have additional dependencies listed in [``PySDM_examples`` package ``setup.py``](https://github.com/open-atmos/PySDM/blob/main/examples/setup.py) file.
110
+ Running the example Jupyter notebooks requires the ``PySDM_examples`` package to be installed.
111
+ The suggested install and launch steps are:
112
+ ```
113
+ git clone https://github.com/open-atmos/PySDM.git
114
+ pip install -e PySDM
115
+ pip install -e PySDM/examples
116
+ jupyter-notebook PySDM/examples/PySDM_examples
117
+ ```
118
+ Alternatively, one can also install the examples package from pypi.org by
119
+ using ``pip install PySDM-examples`` (note that this does not apply to notebooks itself,
120
+ only the supporting .py files).
121
+
122
+ ## Contributing, reporting issues, seeking support
123
+
124
+ #### Our technologicial stack:
125
+ [![Python 3](https://img.shields.io/static/v1?label=+&logo=Python&color=darkred&message=Python)](https://www.python.org/)
126
+ [![Numba](https://img.shields.io/static/v1?label=+&logo=Numba&color=orange&message=Numba)](https://numba.pydata.org)
127
+ [![LLVM](https://img.shields.io/static/v1?label=+&logo=LLVM&color=gold&message=LLVM)](https://llvm.org)
128
+ [![CUDA](https://img.shields.io/static/v1?label=+&logo=nVidia&color=darkgreen&message=ThrustRTC/CUDA)](https://pypi.org/project/ThrustRTC/)
129
+ [![NumPy](https://img.shields.io/static/v1?label=+&logo=numpy&color=blue&message=NumPy)](https://numpy.org/)
130
+ [![pytest](https://img.shields.io/static/v1?label=+&logo=pytest&color=purple&message=pytest)](https://pytest.org/)
131
+ [![Colab](https://img.shields.io/static/v1?label=+&logo=googlecolab&color=darkred&message=Colab)](https://colab.research.google.com/)
132
+ [![Codecov](https://img.shields.io/static/v1?label=+&logo=codecov&color=orange&message=Codecov)](https://codecov.io/)
133
+ [![PyPI](https://img.shields.io/static/v1?label=+&logo=pypi&color=gold&message=PyPI)](https://pypi.org/)
134
+ [![GithubActions](https://img.shields.io/static/v1?label=+&logo=github&color=darkgreen&message=GitHub&nbsp;Actions)](https://github.com/features/actions)
135
+ [![Jupyter](https://img.shields.io/static/v1?label=+&logo=Jupyter&color=blue&message=Jupyter)](https://jupyter.org/)
136
+ [![PyCharm](https://img.shields.io/static/v1?label=+&logo=pycharm&color=purple&message=PyCharm)](https:///)
137
+
138
+ Submitting new code to the project, please preferably use [GitHub pull requests](https://github.com/open-atmos/PySDM/pulls) - it helps to keep record of code authorship,
139
+ track and archive the code review workflow and allows to benefit
140
+ from the continuous integration setup which automates execution of tests
141
+ with the newly added code.
142
+
143
+ Code contributions are assumed to imply transfer of copyright.
144
+ Should there be a need to make an exception, please indicate it when creating
145
+ a pull request or contributing code in any other way. In any case,
146
+ the license of the contributed code must be compatible with GPL v3.
147
+
148
+ Developing the code, we follow [The Way of Python](https://www.python.org/dev/peps/pep-0020/) and
149
+ the [KISS principle](https://en.wikipedia.org/wiki/KISS_principle).
150
+ The codebase has greatly benefited from [PyCharm code inspections](https://www.jetbrains.com/help/pycharm/code-inspection.html)
151
+ and [Pylint](https://pylint.org), [Black](https://black.readthedocs.io/en/stable/) and [isort](https://pycqa.github.io/isort/)
152
+ code analysis (which are all part of the CI workflows).
153
+
154
+ We also use [pre-commit hooks](https://pre-commit.com).
155
+ In our case, the hooks modify files and re-format them.
156
+ The pre-commit hooks can be run locally, and then the resultant changes need to be staged before committing.
157
+ To set up the hooks locally, install pre-commit via `pip install pre-commit` and
158
+ set up the git hooks via `pre-commit install` (this needs to be done every time you clone the project).
159
+ To run all pre-commit hooks, run `pre-commit run --all-files`.
160
+ The `.pre-commit-config.yaml` file can be modified in case new hooks are to be added or
161
+ existing ones need to be altered.
162
+
163
+ Further hints addressed at PySDM developers are maintained in the [open-atmos/python-dev-hints Wiki](https://github.com/open-atmos/python-dev-hints/wiki).
164
+
165
+ Issues regarding any incorrect, unintuitive or undocumented bahaviour of
166
+ PySDM are best to be reported on the [GitHub issue tracker](https://github.com/open-atmos/PySDM/issues/new).
167
+ Feature requests are recorded in the "Ideas..." [PySDM wiki page](https://github.com/open-atmos/PySDM/wiki/Ideas-for-new-features-and-examples).
168
+
169
+ We encourage to use the [GitHub Discussions](https://github.com/open-atmos/PySDM/discussions) feature
170
+ (rather than the issue tracker) for seeking support in understanding, using and extending PySDM code.
171
+
172
+ We look forward to your contributions and feedback.
173
+
174
+ ## Licensing:
175
+
176
+ copyright: [Jagiellonian University](https://en.uj.edu.pl/en) (2019-2023) & [AGH University of Krakow](https://agh.edu.pl/en) (2023-...)
177
+ licence: [GPL v3](https://www.gnu.org/licenses/gpl-3.0.html)
178
+
179
+
180
+
181
+ Keywords: physics-simulation,monte-carlo-simulation,gpu-computing,atmospheric-modelling,particle-system,numba,thrust,nvrtc,pint,atmospheric-physics
182
+ Platform: UNKNOWN
183
+ Classifier: Development Status :: 4 - Beta
184
+ Classifier: Intended Audience :: Science/Research
185
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
186
+ Classifier: Operating System :: OS Independent
187
+ Classifier: Programming Language :: Python :: 3
188
+ Classifier: Topic :: Scientific/Engineering
189
+ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
190
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
191
+ Classifier: Topic :: Scientific/Engineering :: Physics
192
+ Classifier: Topic :: Software Development :: Libraries
193
+ Description-Content-Type: text/markdown
194
+ Provides-Extra: tests
@@ -0,0 +1,20 @@
1
+ # pylint:disable=invalid-name
2
+ """
3
+ .. include:: ../docs/markdown/pysdm_landing.md
4
+ """
5
+
6
+ from importlib.metadata import PackageNotFoundError, version
7
+
8
+ from PySDM.attributes.impl.attribute_registry import register_attribute
9
+
10
+ from . import attributes
11
+ from . import environments, exporters, products
12
+ from .builder import Builder
13
+ from .formulae import Formulae
14
+ from .particulator import Particulator
15
+
16
+ try:
17
+ __version__ = version(__name__)
18
+ except PackageNotFoundError:
19
+ # package is not installed
20
+ pass
@@ -21,6 +21,9 @@ class CoolingRate(DerivedAttribute):
21
21
  builder.particulator.observers.append(self)
22
22
 
23
23
  def notify(self):
24
+ """triggers update to ensure recalculation is done before
25
+ overwriting `self.prev_T` with current temperature"""
26
+ self.update()
24
27
  cell_id = self.particulator.attributes["cell id"]
25
28
  self.prev_T[:] = self.particulator.environment["T"][cell_id]
26
29
 
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.1
2
+ Name: PySDM
3
+ Version: 2.80
4
+ Summary: Pythonic particle-based (super-droplet) warm-rain/aqueous-chemistry cloud microphysics package with box, parcel & 1D/2D prescribed-flow examples in Python, Julia and Matlab
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
11
+ Project-URL: Source, https://github.com/open-atmos/PySDM
12
+ Description: # <img src="https://raw.githubusercontent.com/open-atmos/PySDM/main/.github/pysdm_logo.png" width=100 height=146 alt="pysdm logo">
13
+
14
+ [![Python 3](https://img.shields.io/static/v1?label=Python&logo=Python&color=3776AB&message=3)](https://www.python.org/)
15
+ [![LLVM](https://img.shields.io/static/v1?label=LLVM&logo=LLVM&color=gold&message=Numba)](https://numba.pydata.org)
16
+ [![CUDA](https://img.shields.io/static/v1?label=CUDA&logo=nVidia&color=87ce3e&message=ThrustRTC)](https://pypi.org/project/ThrustRTC/)
17
+ [![Linux OK](https://img.shields.io/static/v1?label=Linux&logo=Linux&color=yellow&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Linux)
18
+ [![macOS OK](https://img.shields.io/static/v1?label=macOS&logo=Apple&color=silver&message=%E2%9C%93)](https://en.wikipedia.org/wiki/macOS)
19
+ [![Windows OK](https://img.shields.io/static/v1?label=Windows&logo=Windows&color=white&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Windows)
20
+ [![Jupyter](https://img.shields.io/static/v1?label=Jupyter&logo=Jupyter&color=f37626&message=%E2%9C%93)](https://jupyter.org/)
21
+ [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/open-atmos/PySDM/graphs/commit-activity)
22
+ [![OpenHub](https://www.openhub.net/p/atmos-cloud-sim-uj-PySDM/widgets/project_thin_badge?format=gif)](https://www.openhub.net/p/atmos-cloud-sim-uj-PySDM)
23
+ [![status](https://joss.theoj.org/papers/62cad07440b941f73f57d187df1aa6e9/status.svg)](https://joss.theoj.org/papers/62cad07440b941f73f57d187df1aa6e9)
24
+ [![DOI](https://zenodo.org/badge/199064632.svg)](https://zenodo.org/badge/latestdoi/199064632)
25
+ [![EU Funding](https://img.shields.io/static/v1?label=EU%20Funding%20by&color=103069&message=FNP&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAeCAYAAABTwyyaAAAEzklEQVRYw9WYS2yUVRiGn3P5ZzozpZ3aUsrNgoKlKBINmkhpCCwwxIAhsDCpBBIWhmCMMYTEhSJ4i9EgBnSBEm81MRrFBhNXEuUSMCopiRWLQqEGLNgr085M5//POS46NNYFzHQ6qGc1i5nzP/P973m/9ztCrf7A8T9csiibCocUbvTzfxLcAcaM3cY3imXz25lT3Y34G7gQYAKV3+bFAHcATlBTPogJNADG92iY28FHW97kyPbnuW/W7xgzAhukQ9xe04PJeOT0HkQRwK0TlEeGWb/kOO9v3kdD3a8YK9GhDMfa6mg9fxunOm/lWPtcpDI4K7n/jnN8+uQbrFrUSiwU/DtSEUB/MsKKBT+zYslJqiYNgVE4JwhHkzy86wlWvrKVWDSZ/YFjZlU39yw4y/rGoyQGowWB67zl4QQue+jssMdXrQvZ/00jyeHwqCgDKwnsiJjSvkYAxsG5K9WsenYbJdqAtAjhCIxCSZt/4fK1w5A2WCvxrUAKCHwNVoA2aGmvq11jJQQapEXrgMBKqmJJugejKGWLIxXrBPFoigfv/omd675gRkU/xgqUDlAhH3UDaAAlLSqUQekAYyVTyhLs3tDMsvntlIYzOFcEcOcEGd9jx9oDbGs6QO0t/Tijxi9S4bhzxiWaVh5m94Zm0n7oui4ybo0raUlcncQnxx+g+WgDF/vLoYDmoqSl/dJUnt7XRCoTZjij0Z6Pc2LiNS4EBBkNvoeOJXN+yPWWSZeANOhwJq/98nKVwNdoL8B5AROxBKBL0gjh8DMhdCh3eJnrA0yqhLpplwmyup6IajvAOIGfKGVx3VmCRGnOMpe5QAdG0bT8CAeeep0d6z6nqjSJnQiZWEllLMWrmz6k+fE9rGk8MVqYgsGv5ZH2i1Opr+9kajzB5d74hKQ+KS3d/WVMLhtgdu1lriRiOR/4nDVunaR24x7qp3UV5Cb/fJvC83nv26W81LIK58SYNFmwq4hsGx/5BwKlzYRma2NUthgOJSew4i7ru9nJYCQF5tApb2yvjiDQKJV/IfJKh0o6qssSLKv/jcAoRKHQQzE2Lj2OMV5OkWFc4MZIpsev8uXWXRx6ZicbGk8QZLxxgwe+x/rlR3h3816+f2E7lbEU+ZDn3vKVpePCdFovzCISHqbl5EIoQOteKMPB1rto65zNyfOz+KOrGl06lHPQyi/WOohH0/T0l1MZH6A3GUEKl7Pmr2la6wBrBWWRDP2DUcqjKVKBGom9RZmABAykwnglafpSJSPQvsfiOR0EQ7ExVmazA8cY6N4K1iw6RdAXRwi4mgrheT5Dvs4LeuS81a15Ll/3dQisFVSVpnj7sf1sX/sZvhAc+6UOrQyBVUQ8gx/orFmDsZqtaw/y1qZ9zKjp5vDpenyjcNe+cLNmTiUdf/bEOddVQ0VpgsOn54ET+EYxvWKALSu+5tGG76it7MNaiZKGQ23zCIcMfUMxBnrjN3fmHHvCAlp+vJcXWx6itqoXpAEnUNLx8iMfo5Xh1i17R3PJYCpC2cZ3qK3sQ8WGEDDuXlAQuFKGHzpmopXhTNfk0bmxs7uC1w6uJul79AxFkMIiBJy5UoUWjrZLU5DCFdTARDHuDqVw+OkSwI0MCEW4gtNF2BPrBCo8fKNbtILWX9aUDqFqHnn7AAAAAElFTkSuQmCC)](https://www.fnp.org.pl/en/)
26
+ [![PL Funding](https://img.shields.io/static/v1?label=PL%20Funding%20by&color=d21132&message=NCN&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAABmJLR0QA/wD/AP+gvaeTAAAAKUlEQVQ4jWP8////fwYqAiZqGjZqIHUAy4dJS6lqIOMdEZvRZDPcDQQAb3cIaY1Sbi4AAAAASUVORK5CYII=)](https://www.ncn.gov.pl/?language=en)
27
+ [![US Funding](https://img.shields.io/static/v1?label=US%20DOE%20Funding%20by&color=267c32&message=ASR&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAQCAMAAAA25D/gAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAASFBMVEVOTXyyIjRDQnNZWINZWITtzdFUU4BVVIFVVYHWiZM9PG/KZnNXVoJaWYT67/FKSXhgX4hgX4lcW4VbWoX03uHQeIN2VXj///9pZChlAAAAAWJLR0QXC9aYjwAAAAd0SU1FB+EICRMGJV+KCCQAAABdSURBVBjThdBJDoAgEETRkkkZBBX0/kd11QTTpH1/STqpAAwWBkobSlkGbt0o5xmEfqxDZJB2Q6XMoBwnVSbTylWp0hi42rmbwTOYPDfR5Kc+07IIUQQvghX9THsBHcES8/SiF0kAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDgtMDlUMTk6MDY6MzcrMDA6MDCX1tBgAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA4LTA5VDE5OjA2OjM3KzAwOjAw5oto3AAAAABJRU5ErkJggg==)](https://asr.science.energy.gov/)
28
+
29
+ [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
30
+
31
+ [![Github Actions Build Status](https://github.com/open-atmos/PySDM/workflows/tests+artifacts+pypi/badge.svg?branch=main)](https://github.com/open-atmos/PySDM/actions)
32
+ [![Appveyor Build status](http://ci.appveyor.com/api/projects/status/github/open-atmos/PySDM?branch=main&svg=true)](https://ci.appveyor.com/project/slayoo/pysdm/branch/main)
33
+ [![Coverage Status](https://codecov.io/gh/open-atmos/PySDM/branch/main/graph/badge.svg)](https://app.codecov.io/gh/open-atmos/PySDM)
34
+ [![PyPI version](https://badge.fury.io/py/PySDM.svg)](https://pypi.org/project/PySDM)
35
+ [![API docs](https://shields.mitmproxy.org/badge/docs-pdoc.dev-brightgreen.svg)](https://open-atmos.github.io/PySDM/)
36
+
37
+ PySDM is a package for simulating the dynamics of population of particles.
38
+ It is intended to serve as a building block for simulation systems modelling
39
+ fluid flows involving a dispersed phase,
40
+ with PySDM being responsible for representation of the dispersed phase.
41
+ Currently, the development is focused on atmospheric cloud physics
42
+ applications, in particular on modelling the dynamics of particles immersed in moist air
43
+ using the particle-based (a.k.a. super-droplet) approach
44
+ to represent aerosol/cloud/rain microphysics.
45
+ The package features a Pythonic high-performance implementation of the
46
+ Super-Droplet Method (SDM) Monte-Carlo algorithm for representing collisional growth
47
+ ([Shima et al. 2009](https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/qj.441)), hence the name.
48
+
49
+ There is a growing set of example Jupyter notebooks exemplifying how to perform
50
+ various types of calculations and simulations using PySDM.
51
+ Most of the example notebooks reproduce results and plot from literature, see below for
52
+ a list of examples and links to the notebooks (which can be either executed or viewed
53
+ "in the cloud").
54
+
55
+ There are also a growing set of [tutorials](https://github.com/open-atmos/PySDM/tree/main/tutorials), also in the form of Jupyter notebooks.
56
+ These tutorials are intended for teaching purposes and include short explanations of cloud microphysical
57
+ concepts paired with widgets for running interactive simulations using PySDM.
58
+ Each tutorial also comes with a set of questions at the end that can be used as homework problems.
59
+ Like the examples, these tutorials can be executed or viewed "in the cloud" making it an especially
60
+ easy way for students to get started.
61
+
62
+ PySDM has two alternative parallel number-crunching backends
63
+ available: multi-threaded CPU backend based on [Numba](http://numba.pydata.org/)
64
+ and GPU-resident backend built on top of [ThrustRTC](https://pypi.org/project/ThrustRTC/).
65
+ The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba.html) backend (aliased ``CPU``) features multi-threaded parallelism for
66
+ multi-core CPUs, it uses the just-in-time compilation technique based on the LLVM infrastructure.
67
+ The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/thrust_rtc.html) backend (aliased ``GPU``) offers GPU-resident operation of PySDM
68
+ leveraging the [SIMT](https://en.wikipedia.org/wiki/Single_instruction,_multiple_threads)
69
+ parallelisation model.
70
+ Using the ``GPU`` backend requires nVidia hardware and [CUDA driver](https://developer.nvidia.com/cuda-downloads).
71
+
72
+ For an overview of PySDM features (and the preferred way to cite PySDM in papers), please refer to our JOSS papers:
73
+ - [Bartman et al. 2022](https://doi.org/10.21105/joss.03219) (PySDM v1).
74
+ - [de Jong, Singer et al. 2023](https://doi.org/10.21105/joss.04968) (PySDM v2).
75
+
76
+ PySDM includes an extension of the SDM scheme to represent collisional breakup described in [de Jong, Mackay et al. 2023](10.5194/gmd-16-4193-2023).
77
+ For a list of talks and other materials on PySDM as well as a list of published papers featuring PySDM simulations, see the [project wiki](https://github.com/open-atmos/PySDM/wiki).
78
+
79
+ A [pdoc-generated](https://pdoc.dev/) documentation of PySDM public API is maintained at: [https://open-atmos.github.io/PySDM](https://open-atmos.github.io/PySDM)
80
+
81
+ ## Example Jupyter notebooks (reproducing results from literature):
82
+
83
+ See [PySDM-examples README](https://github.com/open-atmos/PySDM/blob/main/examples/README.md).
84
+
85
+ ![animation](https://github.com/open-atmos/PySDM/wiki/files/kinematic_2D_example.gif)
86
+
87
+ ## Dependencies and Installation
88
+
89
+ PySDM dependencies are: [Numpy](https://numpy.org/), [Numba](http://numba.pydata.org/), [SciPy](https://scipy.org/),
90
+ [Pint](https://pint.readthedocs.io/), [chempy](https://pypi.org/project/chempy/),
91
+ [pyevtk](https://pypi.org/project/pyevtk/),
92
+ [ThrustRTC](https://fynv.github.io/ThrustRTC/) and [CURandRTC](https://github.com/fynv/CURandRTC).
93
+
94
+ To install PySDM using ``pip``, use: ``pip install PySDM``
95
+ (or ``pip install git+https://github.com/open-atmos/PySDM.git`` to get updates
96
+ beyond the latest release).
97
+
98
+ Conda users may use ``pip`` as well, see the [Installing non-conda packages](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#installing-non-conda-packages) section in the conda docs. Dependencies of PySDM are available at the following conda channels:
99
+ - numba: [numba](https://anaconda.org/numba/numba)
100
+ - conda-forge: [pyevtk](https://anaconda.org/conda-forge/pyevtk), [pint](https://anaconda.org/conda-forge/pint) and []()
101
+ - fyplus: [ThrustRTC](https://anaconda.org/fyplus/thrustrtc), [CURandRTC](https://anaconda.org/fyplus/curandrtc)
102
+ - bjodah: [chempy](https://anaconda.org/bjodah/chempy)
103
+ - nvidia: [cudatoolkit](https://anaconda.org/nvidia/cudatoolkit)
104
+
105
+ For development purposes, we suggest cloning the repository and installing it using ``pip -e``.
106
+ Test-time dependencies can be installed with ``pip -e .[tests]``.
107
+
108
+ PySDM examples constitute the [``PySDM-examples``](https://github.com/open-atmos/PySDM-examples) package.
109
+ The examples have additional dependencies listed in [``PySDM_examples`` package ``setup.py``](https://github.com/open-atmos/PySDM/blob/main/examples/setup.py) file.
110
+ Running the example Jupyter notebooks requires the ``PySDM_examples`` package to be installed.
111
+ The suggested install and launch steps are:
112
+ ```
113
+ git clone https://github.com/open-atmos/PySDM.git
114
+ pip install -e PySDM
115
+ pip install -e PySDM/examples
116
+ jupyter-notebook PySDM/examples/PySDM_examples
117
+ ```
118
+ Alternatively, one can also install the examples package from pypi.org by
119
+ using ``pip install PySDM-examples`` (note that this does not apply to notebooks itself,
120
+ only the supporting .py files).
121
+
122
+ ## Contributing, reporting issues, seeking support
123
+
124
+ #### Our technologicial stack:
125
+ [![Python 3](https://img.shields.io/static/v1?label=+&logo=Python&color=darkred&message=Python)](https://www.python.org/)
126
+ [![Numba](https://img.shields.io/static/v1?label=+&logo=Numba&color=orange&message=Numba)](https://numba.pydata.org)
127
+ [![LLVM](https://img.shields.io/static/v1?label=+&logo=LLVM&color=gold&message=LLVM)](https://llvm.org)
128
+ [![CUDA](https://img.shields.io/static/v1?label=+&logo=nVidia&color=darkgreen&message=ThrustRTC/CUDA)](https://pypi.org/project/ThrustRTC/)
129
+ [![NumPy](https://img.shields.io/static/v1?label=+&logo=numpy&color=blue&message=NumPy)](https://numpy.org/)
130
+ [![pytest](https://img.shields.io/static/v1?label=+&logo=pytest&color=purple&message=pytest)](https://pytest.org/)
131
+ [![Colab](https://img.shields.io/static/v1?label=+&logo=googlecolab&color=darkred&message=Colab)](https://colab.research.google.com/)
132
+ [![Codecov](https://img.shields.io/static/v1?label=+&logo=codecov&color=orange&message=Codecov)](https://codecov.io/)
133
+ [![PyPI](https://img.shields.io/static/v1?label=+&logo=pypi&color=gold&message=PyPI)](https://pypi.org/)
134
+ [![GithubActions](https://img.shields.io/static/v1?label=+&logo=github&color=darkgreen&message=GitHub&nbsp;Actions)](https://github.com/features/actions)
135
+ [![Jupyter](https://img.shields.io/static/v1?label=+&logo=Jupyter&color=blue&message=Jupyter)](https://jupyter.org/)
136
+ [![PyCharm](https://img.shields.io/static/v1?label=+&logo=pycharm&color=purple&message=PyCharm)](https:///)
137
+
138
+ Submitting new code to the project, please preferably use [GitHub pull requests](https://github.com/open-atmos/PySDM/pulls) - it helps to keep record of code authorship,
139
+ track and archive the code review workflow and allows to benefit
140
+ from the continuous integration setup which automates execution of tests
141
+ with the newly added code.
142
+
143
+ Code contributions are assumed to imply transfer of copyright.
144
+ Should there be a need to make an exception, please indicate it when creating
145
+ a pull request or contributing code in any other way. In any case,
146
+ the license of the contributed code must be compatible with GPL v3.
147
+
148
+ Developing the code, we follow [The Way of Python](https://www.python.org/dev/peps/pep-0020/) and
149
+ the [KISS principle](https://en.wikipedia.org/wiki/KISS_principle).
150
+ The codebase has greatly benefited from [PyCharm code inspections](https://www.jetbrains.com/help/pycharm/code-inspection.html)
151
+ and [Pylint](https://pylint.org), [Black](https://black.readthedocs.io/en/stable/) and [isort](https://pycqa.github.io/isort/)
152
+ code analysis (which are all part of the CI workflows).
153
+
154
+ We also use [pre-commit hooks](https://pre-commit.com).
155
+ In our case, the hooks modify files and re-format them.
156
+ The pre-commit hooks can be run locally, and then the resultant changes need to be staged before committing.
157
+ To set up the hooks locally, install pre-commit via `pip install pre-commit` and
158
+ set up the git hooks via `pre-commit install` (this needs to be done every time you clone the project).
159
+ To run all pre-commit hooks, run `pre-commit run --all-files`.
160
+ The `.pre-commit-config.yaml` file can be modified in case new hooks are to be added or
161
+ existing ones need to be altered.
162
+
163
+ Further hints addressed at PySDM developers are maintained in the [open-atmos/python-dev-hints Wiki](https://github.com/open-atmos/python-dev-hints/wiki).
164
+
165
+ Issues regarding any incorrect, unintuitive or undocumented bahaviour of
166
+ PySDM are best to be reported on the [GitHub issue tracker](https://github.com/open-atmos/PySDM/issues/new).
167
+ Feature requests are recorded in the "Ideas..." [PySDM wiki page](https://github.com/open-atmos/PySDM/wiki/Ideas-for-new-features-and-examples).
168
+
169
+ We encourage to use the [GitHub Discussions](https://github.com/open-atmos/PySDM/discussions) feature
170
+ (rather than the issue tracker) for seeking support in understanding, using and extending PySDM code.
171
+
172
+ We look forward to your contributions and feedback.
173
+
174
+ ## Licensing:
175
+
176
+ copyright: [Jagiellonian University](https://en.uj.edu.pl/en) (2019-2023) & [AGH University of Krakow](https://agh.edu.pl/en) (2023-...)
177
+ licence: [GPL v3](https://www.gnu.org/licenses/gpl-3.0.html)
178
+
179
+
180
+
181
+ Keywords: physics-simulation,monte-carlo-simulation,gpu-computing,atmospheric-modelling,particle-system,numba,thrust,nvrtc,pint,atmospheric-physics
182
+ Platform: UNKNOWN
183
+ Classifier: Development Status :: 4 - Beta
184
+ Classifier: Intended Audience :: Science/Research
185
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
186
+ Classifier: Operating System :: OS Independent
187
+ Classifier: Programming Language :: Python :: 3
188
+ Classifier: Topic :: Scientific/Engineering
189
+ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
190
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
191
+ Classifier: Topic :: Scientific/Engineering :: Physics
192
+ Classifier: Topic :: Software Development :: Libraries
193
+ Description-Content-Type: text/markdown
194
+ Provides-Extra: tests
@@ -410,6 +410,8 @@ PySDM/products/size_spectral/size_standard_deviation.py
410
410
  PySDM/products/size_spectral/total_particle_concentration.py
411
411
  PySDM/products/size_spectral/total_particle_specific_concentration.py
412
412
  PySDM/products/size_spectral/water_mixing_ratio.py
413
+ docs/markdown/pysdm_landing.md
414
+ docs/templates/index.html.jinja2
413
415
  examples/MANIFEST.in
414
416
  examples/README.md
415
417
  examples/pyproject.toml
@@ -453,9 +455,9 @@ examples/PySDM_examples/Arabas_et_al_2023/aida.ipynb
453
455
  examples/PySDM_examples/Arabas_et_al_2023/commons.py
454
456
  examples/PySDM_examples/Arabas_et_al_2023/copula_hello.ipynb
455
457
  examples/PySDM_examples/Arabas_et_al_2023/curved_text.py
456
- examples/PySDM_examples/Arabas_et_al_2023/fig_11.ipynb
457
458
  examples/PySDM_examples/Arabas_et_al_2023/fig_2.ipynb
458
459
  examples/PySDM_examples/Arabas_et_al_2023/fig_A2.ipynb
460
+ examples/PySDM_examples/Arabas_et_al_2023/figs_10_and_11_and_animations.ipynb
459
461
  examples/PySDM_examples/Arabas_et_al_2023/figs_3_and_7_and_8.ipynb
460
462
  examples/PySDM_examples/Arabas_et_al_2023/figs_5_and_6.ipynb
461
463
  examples/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py
@@ -636,13 +638,13 @@ examples/PySDM_examples/utils/read_vtk_1d.py
636
638
  examples/PySDM_examples/utils/widgets/__init__.py
637
639
  examples/PySDM_examples/utils/widgets/freezer.py
638
640
  examples/PySDM_examples/utils/widgets/progbar_updater.py
641
+ examples/docs/pysdm_examples_landing.md
639
642
  paper/joss-ARG-fig_1.pdf
640
643
  paper/paper.bib
641
644
  paper/paper.md
642
645
  paper/paperv1.md
643
646
  paper/readme.pdf
644
647
  paper/test.pdf
645
- pdoc_templates/index.html.jinja2
646
648
  tests/__init__.py
647
649
  tests/examples_tests/__init__.py
648
650
  tests/examples_tests/conftest.py