PySDM-examples 2.131__tar.gz → 3.0.0rc1__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 (179) hide show
  1. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PKG-INFO +2 -1
  2. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +1 -1
  3. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +1 -1
  4. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/make_particulator.py +9 -1
  5. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +2 -2
  6. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +7 -2
  7. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Spichtinger_et_al_2023/simulation.py +1 -3
  8. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/make_default_product_collection.py +1 -1
  9. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/simulation.py +16 -6
  10. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/README.md +1 -1
  11. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/pysdm_examples.egg-info/PKG-INFO +2 -1
  12. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/pysdm_examples.egg-info/requires.txt +1 -0
  13. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/setup.py +4 -3
  14. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/MANIFEST.in +0 -0
  15. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
  16. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
  17. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
  18. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  19. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  20. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  21. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
  22. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
  23. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  24. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  25. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  26. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
  27. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  28. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  29. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
  30. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
  31. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  32. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  33. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  34. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
  35. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/__init__.py +0 -0
  36. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/commons.py +0 -0
  37. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/curved_text.py +0 -0
  38. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/frozen_fraction.py +0 -0
  39. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/plots.py +0 -0
  40. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Arabas_et_al_2025/run_simulation.py +0 -0
  41. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  42. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
  43. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
  44. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
  45. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  46. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Berry_1967/__init__.py +0 -0
  47. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Berry_1967/example.py +0 -0
  48. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
  49. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Berry_1967/settings.py +0 -0
  50. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
  51. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
  52. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  53. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
  54. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bolin_1958/__init__.py +0 -0
  55. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
  56. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
  57. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.py +0 -0
  58. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  59. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
  60. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  61. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  62. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Fisher_1991/__init__.py +0 -0
  63. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
  64. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Gonfiantini_1986/__init__.py +0 -0
  65. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
  66. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  67. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
  68. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
  69. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
  70. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
  71. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
  72. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
  73. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
  74. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  75. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jouzel_and_Merlivat_1984/__init__.py +0 -0
  76. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Jouzel_and_Merlivat_1984/thermodynamic_profiles.py +0 -0
  77. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Kinzer_And_Gunn_1951/__init__.py +0 -0
  78. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Kinzer_And_Gunn_1951/table_1_and_2.py +0 -0
  79. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
  80. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  81. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
  82. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
  83. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
  84. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  85. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  86. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  87. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  88. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  89. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
  90. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
  91. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
  92. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
  93. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  94. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
  95. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  96. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
  97. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  98. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pruppacher_and_Rasmussen_1979/__init__.py +0 -0
  99. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pyrcel/__init__.py +0 -0
  100. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  101. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pyrcel/settings.py +0 -0
  102. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Pyrcel/simulation.py +0 -0
  103. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Rogers_1975/__init__.py +0 -0
  104. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +0 -0
  105. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Rozanski_and_Sonntag_1982/multibox.py +0 -0
  106. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
  107. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  108. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  109. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  110. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  111. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  112. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  113. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  114. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  115. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
  116. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  117. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  118. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  119. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
  120. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Singer_Ward/__init__.py +0 -0
  121. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  122. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Spichtinger_et_al_2023/__init__.py +0 -0
  123. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Spichtinger_et_al_2023/data/__init__.py +0 -0
  124. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Spichtinger_et_al_2023/data/reference_bulk.py +0 -0
  125. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Spichtinger_et_al_2023/data/simulation_data.py +0 -0
  126. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Spichtinger_et_al_2023/settings.py +0 -0
  127. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
  128. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Srivastava_1982/equations.py +0 -0
  129. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Srivastava_1982/example.py +0 -0
  130. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Srivastava_1982/settings.py +0 -0
  131. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
  132. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Stewart_1975/__init__.py +0 -0
  133. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Toon_et_al_1980/__init__.py +0 -0
  134. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
  135. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
  136. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  137. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  138. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/Zaba_et_al/__init__.py +0 -0
  139. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/_HOWTOs/__init__.py +0 -0
  140. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/__init__.py +0 -0
  141. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
  142. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  143. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  144. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  145. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
  146. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
  147. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  148. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  149. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  150. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  151. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
  152. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  153. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/seeding/__init__.py +0 -0
  154. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/seeding/settings.py +0 -0
  155. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/seeding/simulation.py +0 -0
  156. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/__init__.py +0 -0
  157. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/basic_simulation.py +0 -0
  158. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/dummy_controller.py +0 -0
  159. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/__init__.py +0 -0
  160. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/fields.py +0 -0
  161. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/gui.py +0 -0
  162. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/gui_controller.py +0 -0
  163. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/gui_settings.py +0 -0
  164. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/gui_viewer.py +0 -0
  165. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/mpdata_2d.py +0 -0
  166. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/plots.py +0 -0
  167. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/kinematic_2d/storage.py +0 -0
  168. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/progbar_controller.py +0 -0
  169. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/pvanim.py +0 -0
  170. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/read_vtk_1d.py +0 -0
  171. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/widgets/__init__.py +0 -0
  172. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/widgets/freezer.py +0 -0
  173. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  174. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/docs/pysdm_examples_landing.md +0 -0
  175. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/pyproject.toml +0 -0
  176. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/pysdm_examples.egg-info/SOURCES.txt +0 -0
  177. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/pysdm_examples.egg-info/dependency_links.txt +0 -0
  178. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/pysdm_examples.egg-info/top_level.txt +0 -0
  179. {pysdm_examples-2.131 → pysdm_examples-3.0.0rc1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysdm-examples
3
- Version: 2.131
3
+ Version: 3.0.0rc1
4
4
  Summary: PySDM usage examples reproducing results from literature and depicting how to use PySDM from Python Jupyter notebooks
5
5
  Home-page: https://github.com/open-atmos/PySDM
6
6
  Author: https://github.com/open-atmos/PySDM/graphs/contributors
@@ -21,6 +21,7 @@ Requires-Dist: ipywidgets
21
21
  Requires-Dist: seaborn
22
22
  Requires-Dist: numdifftools
23
23
  Requires-Dist: vtk
24
+ Requires-Dist: pyvinecopulib>=0.7.3
24
25
  Provides-Extra: tests
25
26
  Requires-Dist: pytest; extra == "tests"
26
27
  Requires-Dist: nbconvert; extra == "tests"
@@ -40,7 +40,7 @@ class Simulation(BasicSimulation):
40
40
  builder.add_dynamic(Condensation())
41
41
 
42
42
  if settings.enable_immersion_freezing:
43
- builder.add_dynamic(Freezing())
43
+ builder.add_dynamic(Freezing(immersion_freezing="singular"))
44
44
  if settings.enable_vapour_deposition_on_ice:
45
45
  builder.add_dynamic(VapourDepositionOnIce())
46
46
 
@@ -219,7 +219,7 @@ def simulation(
219
219
  backend=CPU(formulae=formulae),
220
220
  environment=Box(dt=time_step, dv=volume),
221
221
  )
222
- builder.add_dynamic(Freezing(singular=False))
222
+ builder.add_dynamic(Freezing(immersion_freezing="time-dependent"))
223
223
  builder.request_attribute("volume")
224
224
 
225
225
  if hasattr(spectrum, "s_geom") and spectrum.s_geom == 1:
@@ -51,12 +51,18 @@ def make_particulator(
51
51
  _,
52
52
  attributes["multiplicity"],
53
53
  ) = sampling.sample(backend=backend, n_sd=n_sd)
54
+ immersion_freezing_flag = "singular"
54
55
  else:
55
56
  (
56
57
  _,
57
58
  attributes["immersed surface area"],
58
59
  attributes["multiplicity"],
59
60
  ) = sampling.sample(backend=backend, n_sd=n_sd)
61
+ immersion_freezing_flag = "time-dependent"
62
+ if thaw:
63
+ thaw_flag = "instantaneous"
64
+ else:
65
+ thaw_flag = None
60
66
  attributes["multiplicity"] *= total_particle_number
61
67
 
62
68
  builder = Builder(n_sd=n_sd, backend=backend, environment=Box(dt, volume))
@@ -66,7 +72,9 @@ def make_particulator(
66
72
  env["RH"] = A_VALUE_LARGER_THAN_ONE
67
73
  env["rhod"] = 1.0
68
74
 
69
- builder.add_dynamic(Freezing(singular=singular, thaw=thaw))
75
+ builder.add_dynamic(
76
+ Freezing(immersion_freezing=immersion_freezing_flag, thaw=thaw_flag)
77
+ )
70
78
  builder.request_attribute("volume")
71
79
 
72
80
  return builder.build(
@@ -36,8 +36,8 @@ class Common:
36
36
  self.breakup_efficiency = ConstEb(Eb=1.0)
37
37
  self.breakup_fragmentation = AlwaysN(n=2)
38
38
 
39
- self.freezing_singular = True
40
- self.freezing_thaw = False
39
+ self.freezing_immersion = "singular"
40
+ self.freezing_thaw = None
41
41
  self.freezing_inp_spec = None
42
42
 
43
43
  self.displacement_adaptive = displacement.DEFAULTS.adaptive
@@ -26,12 +26,17 @@ class Simulation(BasicSimulation):
26
26
  mixed_phase=True,
27
27
  )
28
28
  builder = Builder(
29
- n_sd=n_particles, backend=CPU(settings.formulae), environment=env
29
+ n_sd=n_particles,
30
+ backend=CPU(
31
+ settings.formulae,
32
+ override_jit_flags={"parallel": False},
33
+ ),
34
+ environment=env,
30
35
  )
31
36
 
32
37
  builder.add_dynamic(AmbientThermodynamics())
33
38
  builder.add_dynamic(Condensation())
34
- builder.add_dynamic(Freezing(singular=False))
39
+ builder.add_dynamic(Freezing(immersion_freezing="time-dependent"))
35
40
 
36
41
  air_volume = settings.mass_of_dry_air / settings.rhod0
37
42
  (
@@ -49,9 +49,7 @@ class Simulation(BasicSimulation):
49
49
  builder.add_dynamic(Condensation())
50
50
  builder.add_dynamic(VapourDepositionOnIce())
51
51
  builder.add_dynamic(
52
- Freezing(
53
- singular=False, homogeneous_freezing=True, immersion_freezing=False
54
- )
52
+ Freezing(homogeneous_freezing="time-dependent", immersion_freezing=None)
55
53
  )
56
54
 
57
55
  self.n_sd = settings.n_sd
@@ -86,7 +86,7 @@ def make_default_product_collection(settings):
86
86
  products.append(PySDM_products.BreakupRateDeficitPerGridbox(name="brd"))
87
87
  if settings.processes["freezing"]:
88
88
  products.append(PySDM_products.IceWaterContent())
89
- if settings.freezing_singular:
89
+ if settings.freezing_immersion == "singular":
90
90
  products.append(
91
91
  PySDM_products.FreezableSpecificConcentration(settings.T_bins_edges)
92
92
  )
@@ -20,6 +20,16 @@ from PySDM.environments import Kinematic2D
20
20
  from PySDM.initialisation.sampling import spatial_sampling
21
21
 
22
22
 
23
+ _BACKEND_CACHE = {}
24
+
25
+
26
+ def backend_factory(backend_class, formulae):
27
+ key = backend_class.__name__ + ":" + str(formulae)
28
+ if key not in _BACKEND_CACHE:
29
+ _BACKEND_CACHE[key] = backend_class(formulae=formulae)
30
+ return _BACKEND_CACHE[key]
31
+
32
+
23
33
  class Simulation:
24
34
  def __init__(self, settings, storage, SpinUp, backend_class=CPU):
25
35
  self.settings = settings
@@ -34,7 +44,7 @@ class Simulation:
34
44
 
35
45
  def reinit(self, products=None):
36
46
  formulae = self.settings.formulae
37
- backend = self.backend_class(formulae=formulae)
47
+ backend = backend_factory(self.backend_class, formulae=formulae)
38
48
  environment = Kinematic2D(
39
49
  dt=self.settings.dt,
40
50
  grid=self.settings.grid,
@@ -140,7 +150,7 @@ class Simulation:
140
150
  if self.settings.processes["freezing"]:
141
151
  builder.add_dynamic(
142
152
  Freezing(
143
- singular=self.settings.freezing_singular,
153
+ immersion_freezing=self.settings.freezing_immersion,
144
154
  thaw=self.settings.freezing_thaw,
145
155
  )
146
156
  )
@@ -165,7 +175,7 @@ class Simulation:
165
175
  np.random.random(attributes["dry volume"].size), # TODO #599: seed
166
176
  )
167
177
 
168
- if self.settings.freezing_singular:
178
+ if self.settings.freezing_immersion == "singular":
169
179
  attributes["freezing temperature"] = (
170
180
  formulae.freezing_temperature_spectrum.invcdf(
171
181
  np.random.random(immersed_surface_area.size), # TODO #599: seed
@@ -179,9 +189,9 @@ class Simulation:
179
189
  assert self.settings.n_sd % 2 == 0
180
190
  assert 0 < self.settings.freezing_inp_frac < 1
181
191
  freezing_attribute = {
182
- True: "freezing temperature",
183
- False: "immersed surface area",
184
- }[self.settings.freezing_singular]
192
+ "singular": "freezing temperature",
193
+ "time-dependent": "immersed surface area",
194
+ }[self.settings.freezing_immersion]
185
195
  for name, array in attributes.items():
186
196
  if array.shape[-1] != self.settings.n_sd // 2:
187
197
  raise AssertionError(f"attribute >>{name}<< has wrong size")
@@ -2,7 +2,7 @@
2
2
  [![DOI](https://zenodo.org/badge/199064632.svg)](https://zenodo.org/badge/latestdoi/199064632)
3
3
 
4
4
  [![PyPI version](https://badge.fury.io/py/PySDM-examples.svg)](https://pypi.org/project/PySDM-examples)
5
- [![API docs](https://img.shields.io/badge/API_docs-pdoc3-blue.svg)](https://open-atmos.github.io/PySDM-examples/)
5
+ [![API docs](https://img.shields.io/badge/API_docs-pdoc3-blue.svg)](https://open-atmos.github.io/PySDM/PySDM_examples.html)
6
6
 
7
7
  For a list of examples, see [PySDM-examples documentation](https://open-atmos.github.io/PySDM/PySDM_examples.html).
8
8
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysdm-examples
3
- Version: 2.131
3
+ Version: 3.0.0rc1
4
4
  Summary: PySDM usage examples reproducing results from literature and depicting how to use PySDM from Python Jupyter notebooks
5
5
  Home-page: https://github.com/open-atmos/PySDM
6
6
  Author: https://github.com/open-atmos/PySDM/graphs/contributors
@@ -21,6 +21,7 @@ Requires-Dist: ipywidgets
21
21
  Requires-Dist: seaborn
22
22
  Requires-Dist: numdifftools
23
23
  Requires-Dist: vtk
24
+ Requires-Dist: pyvinecopulib>=0.7.3
24
25
  Provides-Extra: tests
25
26
  Requires-Dist: pytest; extra == "tests"
26
27
  Requires-Dist: nbconvert; extra == "tests"
@@ -9,6 +9,7 @@ ipywidgets
9
9
  seaborn
10
10
  numdifftools
11
11
  vtk
12
+ pyvinecopulib>=0.7.3
12
13
 
13
14
  [tests]
14
15
  pytest
@@ -1,6 +1,6 @@
1
1
  import os
2
2
  import re
3
- import platform
3
+ import sys
4
4
 
5
5
  from setuptools import find_packages, setup
6
6
 
@@ -38,10 +38,11 @@ setup(
38
38
  "ipywidgets",
39
39
  "seaborn",
40
40
  "numdifftools",
41
+ "vtk",
41
42
  ]
42
43
  + (
43
- ["pyvinecopulib" + "==0.6.4" if CI else "", "vtk"]
44
- if platform.architecture()[0] != "32bit"
44
+ ["pyvinecopulib" + ("==0.7.3" if CI else ">=0.7.3")]
45
+ if sys.platform != "darwin"
45
46
  else []
46
47
  ),
47
48
  extras_require={